Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/05/11 02:03:20 (13 years ago)
Author:
cneumuel
Message:

#1215

  • added normalization for quality values of individuals
File:
1 edited

Legend:

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

    r5207 r5212  
    1414  [StorableClass]
    1515  public class ParameterConfigurationTree : ValueConfiguration, IEnumerable {
    16     [Storable]
    17     private DoubleValue bestQuality;
    18     public DoubleValue BestQuality {
    19       get { return bestQuality; }
     16
     17    [Storable]
     18    private DoubleValue averageQualityNormalized;
     19    public DoubleValue AverageQualityNormalized {
     20      get { return averageQualityNormalized; }
    2021      set {
    21         if (bestQuality != value) {
    22           if (bestQuality != null) DeregisterQualityEvents();
    23           bestQuality = value;
    24           if (bestQuality != null) RegisterQualityEvents();
     22        if (averageQualityNormalized != value) {
     23          averageQualityNormalized = value;
    2524          OnQualityChanged();
    2625        }
     
    2928
    3029    [Storable]
    31     private DoubleValue averageQuality;
    32     public DoubleValue AverageQuality {
    33       get { return averageQuality; }
    34       set { averageQuality = value; }
    35     }
    36 
    37     [Storable]
    38     private DoubleValue worstQuality;
    39     public DoubleValue WorstQuality {
    40       get { return worstQuality; }
    41       set { worstQuality = value; }
    42     }
    43 
    44     [Storable]
    45     private DoubleValue qualityVariance;
    46     public DoubleValue QualityVariance {
    47       get { return qualityVariance; }
    48       set { qualityVariance = value; }
    49     }
    50 
    51     [Storable]
    52     private DoubleValue qualityStandardDeviation;
    53     public DoubleValue QualityStandardDeviation {
    54       get { return qualityStandardDeviation; }
    55       set { qualityStandardDeviation = value; }
    56     }
    57 
    58     [Storable]
    59     private TimeSpanValue averageExecutionTime;
    60     public TimeSpanValue AverageExecutionTime {
    61       get { return averageExecutionTime; }
    62       set { averageExecutionTime = value; }
     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
     40    [Storable]
     41    private DoubleArray bestQualities;
     42    public DoubleArray BestQualities {
     43      get { return bestQualities; }
     44      set {
     45        if (bestQualities != value) {
     46          bestQualities = value;
     47        }
     48      }
     49    }
     50
     51    [Storable]
     52    private DoubleArray averageQualities;
     53    public DoubleArray AverageQualities {
     54      get { return averageQualities; }
     55      set { averageQualities = value; }
     56    }
     57
     58    [Storable]
     59    private DoubleArray worstQualities;
     60    public DoubleArray WorstQualities {
     61      get { return worstQualities; }
     62      set { worstQualities = value; }
     63    }
     64
     65    [Storable]
     66    private DoubleArray qualityVariances;
     67    public DoubleArray QualityVariances {
     68      get { return qualityVariances; }
     69      set { qualityVariances = value; }
     70    }
     71
     72    [Storable]
     73    private DoubleArray qualityStandardDeviations;
     74    public DoubleArray QualityStandardDeviations {
     75      get { return qualityStandardDeviations; }
     76      set { qualityStandardDeviations = value; }
     77    }
     78
     79    [Storable]
     80    private ItemList<TimeSpanValue> averageExecutionTimes;
     81    public ItemList<TimeSpanValue> AverageExecutionTimes {
     82      get { return averageExecutionTimes; }
     83      set { averageExecutionTimes = value; }
    6384    }
    6485
     
    88109      : base(null, algorithm.GetType()) {
    89110      this.Optimize = true; // root must always be optimized
    90       this.BestQuality = new DoubleValue();
    91111      this.parameters = new Dictionary<string, IItem>();
    92112
    93113      PopulateParameterConfigurations(algorithm);
    94       Initialize();
    95114    }
    96115    public ParameterConfigurationTree() {
    97       Initialize();
    98116    }
    99117    [StorableConstructor]
     
    101119    protected ParameterConfigurationTree(ParameterConfigurationTree original, Cloner cloner)
    102120      : base(original, cloner) {
    103       this.bestQuality = cloner.Clone(original.BestQuality);
    104       this.averageQuality = cloner.Clone(original.averageQuality);
    105       this.worstQuality = cloner.Clone(original.worstQuality);
    106       this.qualityStandardDeviation = cloner.Clone(original.qualityStandardDeviation);
    107       this.qualityVariance = cloner.Clone(original.qualityVariance);
    108       this.averageExecutionTime = cloner.Clone(original.averageExecutionTime);
     121      this.bestQualities = cloner.Clone(original.BestQualities);
     122      this.averageQualities = cloner.Clone(original.averageQualities);
     123      this.worstQualities = cloner.Clone(original.worstQualities);
     124      this.qualityStandardDeviations = cloner.Clone(original.qualityStandardDeviations);
     125      this.qualityVariances = cloner.Clone(original.qualityVariances);
     126      this.averageExecutionTimes = cloner.Clone(original.averageExecutionTimes);
    109127      this.repetitions = cloner.Clone(original.repetitions);
    110128      this.runs = cloner.Clone(original.runs);
     
    113131        this.parameters.Add(p.Key, cloner.Clone(p.Value));
    114132      }
    115       Initialize();
    116133    }
    117134    public override IDeepCloneable Clone(Cloner cloner) {
     
    120137    [StorableHook(HookType.AfterDeserialization)]
    121138    private void AfterDeserialization() {
    122       Initialize();
    123139    }
    124140    #endregion
    125141
    126     private void Initialize() {
    127       //if (algorithm != null) RegisterAlgorithmEvents();
    128       if (bestQuality != null) RegisterQualityEvents();
    129     }
    130 
    131142    public virtual void CollectResultValues(IDictionary<string, IItem> values) {
    132       values.Add("RunsAverageExecutionTime", AverageExecutionTime);
     143      values.Add("RunsAverageExecutionTimes", AverageExecutionTimes);
    133144      values.Add("Repetitions", Repetitions);
    134       values.Add("RunsBestQuality", BestQuality);
    135       values.Add("RunsAverageQuality", AverageQuality);
    136       values.Add("RunsWorstQuality", WorstQuality);
    137       values.Add("RunsQualityVariance", QualityVariance);
    138       values.Add("RunsQualityStandardDeviation", QualityStandardDeviation);
     145      values.Add("RunsBestQualities", BestQualities);
     146      values.Add("RunsAverageQualities", AverageQualities);
     147      values.Add("RunsWorstQualities", WorstQualities);
     148      values.Add("RunsQualityVariances", QualityVariances);
     149      values.Add("RunsQualityStandardDeviations", QualityStandardDeviations);
     150      values.Add("QualitiesNormalized", QualitiesNormalized);
     151      values.Add("AverageQualityNormalized", AverageQualityNormalized);
    139152      values.Add("Runs", Runs);
    140153    }
     
    147160
    148161    #region Events
    149     //public event EventHandler AlgorithmChanged;
    150     //private void OnAlgorithmChanged() {
    151     //  var handler = AlgorithmChanged;
    152     //  if (handler != null) handler(this, EventArgs.Empty);
    153     //}
    154162    public event EventHandler QualityChanged;
    155163    private void OnQualityChanged() {
    156164      var handler = QualityChanged;
    157165      if (handler != null) handler(this, EventArgs.Empty);
    158     }
    159 
    160     //private void RegisterAlgorithmEvents() {
    161 
    162     //}
    163     //private void DeregisterAlgorithmEvents() {
    164 
    165     //}
    166     private void RegisterQualityEvents() {
    167       BestQuality.ValueChanged += new EventHandler(Quality_ValueChanged);
    168     }
    169     private void DeregisterQualityEvents() {
    170       BestQuality.ValueChanged -= new EventHandler(Quality_ValueChanged);
    171166    }
    172167
Note: See TracChangeset for help on using the changeset viewer.