Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/17/11 18:22:28 (13 years ago)
Author:
cneumuel
Message:

#1215

  • support for maximization problems
  • made base level algorithms stoppable
  • optimization for multiple goals possible (AverageQuality, AverageDeviation, AverageEvaluatedSolutions)
  • lots of fixes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/ParameterConfigurationTree.cs

    r5927 r6018  
    1616
    1717    [Storable]
    18     private DoubleValue averageQualityNormalized;
    19     public DoubleValue AverageQualityNormalized {
    20       get { return averageQualityNormalized; }
    21       set {
    22         if (averageQualityNormalized != value) {
    23           averageQualityNormalized = value;
     18    private DoubleValue quality;
     19    public DoubleValue Quality {
     20      get { return quality; }
     21      set {
     22        if (quality != value) {
     23          quality = value;
    2424          OnQualityChanged();
    2525        }
     
    2828
    2929    [Storable]
    30     private DoubleArray qualitiesNormalized;
    31     public DoubleArray QualitiesNormalized {
    32       get { return qualitiesNormalized; }
    33       set {
    34         if (qualitiesNormalized != value) {
    35           qualitiesNormalized = value;
    36         }
    37       }
    38     }
    39 
     30    private DoubleArray normalizedQualityAverages;
     31    public DoubleArray NormalizedQualityAverages {
     32      get { return normalizedQualityAverages; }
     33      set {
     34        if (normalizedQualityAverages != value) {
     35          normalizedQualityAverages = value;
     36        }
     37      }
     38    }
     39
     40    [Storable]
     41    private DoubleArray normalizedQualityDeviations;
     42    public DoubleArray NormalizedQualityDeviations {
     43      get { return normalizedQualityDeviations; }
     44      set {
     45        if (normalizedQualityDeviations != value) {
     46          normalizedQualityDeviations = value;
     47        }
     48      }
     49    }
     50
     51    [Storable]
     52    private DoubleArray normalizedEvaluatedSolutions;
     53    public DoubleArray NormalizedEvaluatedSolutions {
     54      get { return normalizedEvaluatedSolutions; }
     55      set {
     56        if (normalizedEvaluatedSolutions != value) {
     57          normalizedEvaluatedSolutions = value;
     58        }
     59      }
     60    }
     61   
    4062    [Storable]
    4163    private DoubleArray bestQualities;
     
    85107
    86108    [Storable]
     109    private DoubleArray averageEvaluatedSolutions;
     110    public DoubleArray AverageEvaluatedSolutions {
     111      get { return averageEvaluatedSolutions; }
     112      set { averageEvaluatedSolutions = value; }
     113    }
     114
     115    [Storable]
    87116    private IntValue repetitions;
    88117    public IntValue Repetitions {
     
    116145      }
    117146    }
    118 
    119     //[Storable]
    120     //protected string name;
    121     //public string Name {
    122     //  get { return name; }
    123     //  set { name = value; }
    124     //}
    125147
    126148    #region constructors and cloning
     
    136158      algproblemitem.ProblemParameter.Value = problem;
    137159      this.discoverValidValues = false;
    138      
     160
    139161      this.parameterConfigurations.Add(new SingleValuedParameterConfiguration("Algorithm", algproblemitem.AlgorithmParameter));
    140162      this.parameterConfigurations.Add(new SingleValuedParameterConfiguration("Problem", algproblemitem.ProblemParameter));
     
    145167    protected ParameterConfigurationTree(ParameterConfigurationTree original, Cloner cloner)
    146168      : base(original, cloner) {
    147       this.averageQualityNormalized = cloner.Clone(original.averageQualityNormalized);
    148       this.qualitiesNormalized = cloner.Clone(original.qualitiesNormalized);
     169      this.quality = cloner.Clone(original.quality);
     170      this.normalizedQualityAverages = cloner.Clone(original.normalizedQualityAverages);
     171      this.normalizedQualityDeviations = cloner.Clone(original.normalizedQualityDeviations);
     172      this.normalizedEvaluatedSolutions = cloner.Clone(original.normalizedEvaluatedSolutions);
    149173      this.bestQualities = cloner.Clone(original.BestQualities);
    150174      this.averageQualities = cloner.Clone(original.averageQualities);
     
    153177      this.qualityVariances = cloner.Clone(original.qualityVariances);
    154178      this.averageExecutionTimes = cloner.Clone(original.averageExecutionTimes);
     179      this.averageEvaluatedSolutions = cloner.Clone(original.averageEvaluatedSolutions);
    155180      this.repetitions = cloner.Clone(original.repetitions);
    156181      this.runs = cloner.Clone(original.runs);
     
    171196    public virtual void CollectResultValues(IDictionary<string, IItem> values) {
    172197      values.Add("RunsAverageExecutionTimes", AverageExecutionTimes);
     198      values.Add("RunsAverageEvaluatedSolutions", AverageEvaluatedSolutions);
    173199      values.Add("Repetitions", Repetitions);
    174200      values.Add("RunsBestQualities", BestQualities);
     
    177203      values.Add("RunsQualityVariances", QualityVariances);
    178204      values.Add("RunsQualityStandardDeviations", QualityStandardDeviations);
    179       values.Add("QualitiesNormalized", QualitiesNormalized);
    180       values.Add("AverageQualityNormalized", AverageQualityNormalized);
     205      values.Add("QualitiesNormalized", NormalizedQualityAverages);
     206      values.Add("AverageQualityNormalized", Quality);
    181207      values.Add("Runs", Runs);
    182208    }
     
    209235
    210236      algorithm.CollectParameterValues(this.Parameters);
    211       //((IProblem)ProblemConfiguration.ActualValue.Value).CollectParameterValues(this.Parameters);
    212       //CollectAlgorithmParameterValues((IAlgorithm)AlgorithmConfiguration.ActualValue.Value, parameters);
    213     }
    214 
    215     //protected virtual void CollectAlgorithmParameterValues(IAlgorithm algorithm, IDictionary<string, IItem> values) {
    216     //  var algorithmValues = new Dictionary<string, IItem>();
    217     //  algorithm.CollectParameterValues(algorithmValues);
    218     //  foreach (var value in algorithmValues) {
    219     //    values.Add("Algorithm." + value.Key, value.Value);
    220     //  }
    221     //}
     237    }
    222238
    223239    public Experiment GenerateExperiment(IAlgorithm algorithm, bool createBatchRuns, int repetitions) {
     
    294310        var sb = new StringBuilder();
    295311        if (!string.IsNullOrEmpty(algorithmInfo)) {
    296           sb.Append("Algorithm: ");
     312          sb.Append("Algorithm (");
    297313          sb.Append(algorithmInfo);
     314          sb.Append(")");
    298315        }
    299316        if (!string.IsNullOrEmpty(problemInfo)) {
    300317          if (sb.Length > 0)
    301318            sb.Append(", ");
    302           sb.Append("Problem: ");
     319          sb.Append("Problem( ");
    303320          sb.Append(problemInfo);
     321          sb.Append(")");
    304322        }
    305323        return sb.ToString();
     
    311329      ProblemConfiguration.CollectOptimizedParameterNames(parameterNames, string.Empty);
    312330    }
    313 
    314    
    315331  }
    316332}
Note: See TracChangeset for help on using the changeset viewer.