Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/04/10 18:08:43 (13 years ago)
Author:
cneumuel
Message:

#1215 worked on metaoptimization

File:
1 edited

Legend:

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

    r5009 r5023  
    1313  [StorableClass]
    1414  public class ParameterConfigurationTree : ValueConfiguration {
    15     //[Storable]
    16     //protected EngineAlgorithm algorithm;
    17     //public EngineAlgorithm Algorithm {
    18     //  get { return algorithm; }
    19     //  set {
    20     //    if (algorithm != value) {
    21     //      if (algorithm != null) DeregisterAlgorithmEvents();
    22     //      algorithm = value;
    23     //      if (algorithm != null) RegisterAlgorithmEvents();
    24     //      OnAlgorithmChanged();
    25     //    }
    26     //  }
    27     //}
     15    [Storable]
     16    public EngineAlgorithm Algorithm {
     17      get { return (EngineAlgorithm)base.ActualValue.Value; }
     18      set {
     19        base.ActualValue.Value = value;
     20      }
     21    }
    2822
    2923    [Storable]
    30     private DoubleValue quality;
    31     public DoubleValue Quality {
    32       get { return quality; }
     24    private DoubleValue bestQuality;
     25    public DoubleValue BestQuality {
     26      get { return bestQuality; }
    3327      set {
    34         if (quality != value) {
    35           if (quality != null) DeregisterQualityEvents();
    36           quality = value;
    37           if (quality != null) RegisterQualityEvents();
     28        if (bestQuality != value) {
     29          if (bestQuality != null) DeregisterQualityEvents();
     30          bestQuality = value;
     31          if (bestQuality != null) RegisterQualityEvents();
    3832          OnQualityChanged();
    3933        }
     
    4135    }
    4236
     37    [Storable]
     38    private DoubleValue averageQuality;
     39    public DoubleValue AverageQuality {
     40      get { return averageQuality; }
     41      set { averageQuality = value; }
     42    }
     43
     44    [Storable]
     45    private DoubleValue worstQuality;
     46    public DoubleValue WorstQuality {
     47      get { return worstQuality; }
     48      set { worstQuality = value; }
     49    }
     50   
     51    [Storable]
     52    private DoubleValue qualityVariance;
     53    public DoubleValue QualityVariance {
     54      get { return qualityVariance; }
     55      set { qualityVariance = value; }
     56    }
     57   
     58    [Storable]
     59    private DoubleValue qualityStandardDeviation;
     60    public DoubleValue QualityStandardDeviation {
     61      get { return qualityStandardDeviation; }
     62      set { qualityStandardDeviation = value; }
     63    }
     64   
     65    [Storable]
     66    private TimeSpanValue averageExecutionTime;
     67    public TimeSpanValue AverageExecutionTime {
     68      get { return averageExecutionTime; }
     69      set { averageExecutionTime = value; }
     70    }
     71
     72    [Storable]
     73    private IntValue repetitions;
     74    public IntValue Repetitions {
     75      get { return repetitions; }
     76      set { repetitions = value; }
     77    }
     78
     79    [Storable]
     80    public RunCollection Runs { get; set; }
     81   
    4382    #region constructors and cloning
    4483    public ParameterConfigurationTree(EngineAlgorithm algorithm) : base(algorithm, algorithm.GetType()) {
    4584      this.Optimize = true; // root must always be optimized
    46       this.Quality = new DoubleValue();
    47       //this.algorithm = algorithm;
     85      this.BestQuality = new DoubleValue();
    4886    }
    4987    public ParameterConfigurationTree() {
     
    5391    protected ParameterConfigurationTree(bool deserializing) : base(deserializing) { }
    5492    protected ParameterConfigurationTree(ParameterConfigurationTree original, Cloner cloner) : base(original, cloner) {
    55       this.quality = cloner.Clone(original.Quality);
     93      this.bestQuality = cloner.Clone(original.BestQuality);
     94      this.Algorithm.Prepare();
     95      this.Algorithm.Runs.Clear();
    5696      Initialize();
    5797    }
     
    67107    private void Initialize() {
    68108      //if (algorithm != null) RegisterAlgorithmEvents();
    69       if (quality != null) RegisterQualityEvents();
     109      if (bestQuality != null) RegisterQualityEvents();
     110    }
     111
     112    public virtual void CollectResultValues(IDictionary<string, IItem> values) {
     113      values.Add("RunsAverageExecutionTime", AverageExecutionTime);
     114      values.Add("Repetitions", Repetitions);
     115      values.Add("RunsBestQuality", BestQuality);
     116      values.Add("RunsAverageQuality", AverageQuality);
     117      values.Add("RunsWorstQuality", WorstQuality);
     118      values.Add("RunsQualityVariance", QualityVariance);
     119      values.Add("RunsQualityStandardDeviation", QualityStandardDeviation);
     120      values.Add("Runs", Runs);
    70121    }
    71122
     
    89140    //}
    90141    private void RegisterQualityEvents() {
    91       Quality.ValueChanged += new EventHandler(Quality_ValueChanged);
     142      BestQuality.ValueChanged += new EventHandler(Quality_ValueChanged);
    92143    }
    93144    private void DeregisterQualityEvents() {
    94       Quality.ValueChanged -= new EventHandler(Quality_ValueChanged);
     145      BestQuality.ValueChanged -= new EventHandler(Quality_ValueChanged);
    95146    }
    96147
     
    99150    }
    100151    #endregion
     152
    101153  }
    102154}
Note: See TracChangeset for help on using the changeset viewer.