Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/14/13 13:14:22 (11 years ago)
Author:
mkommend
Message:

#2004: Add an update flag to the best solution symbolic data analysis analyzers (single- and multi objective).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisSingleObjectiveTrainingBestSolutionAnalyzer.cs

    r8798 r9152  
    2020#endregion
    2121
    22 using System.Collections.Generic;
    2322using System.Linq;
    2423using HeuristicLab.Common;
     
    2625using HeuristicLab.Data;
    2726using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    28 using HeuristicLab.Operators;
    2927using HeuristicLab.Optimization;
    3028using HeuristicLab.Parameters;
     
    4139    private const string TrainingBestSolutionParameterName = "Best training solution";
    4240    private const string TrainingBestSolutionQualityParameterName = "Best training solution quality";
     41    private const string UpdateAlwaysParameterName = "Always update best solution";
    4342
    4443    #region parameter properties
     
    4847    public ILookupParameter<DoubleValue> TrainingBestSolutionQualityParameter {
    4948      get { return (ILookupParameter<DoubleValue>)Parameters[TrainingBestSolutionQualityParameterName]; }
     49    }
     50    public IFixedValueParameter<BoolValue> UpdateAlwaysParameter {
     51      get { return (IFixedValueParameter<BoolValue>)Parameters[UpdateAlwaysParameterName]; }
    5052    }
    5153    #endregion
     
    5961      set { TrainingBestSolutionQualityParameter.ActualValue = value; }
    6062    }
     63    public BoolValue UpdateAlways {
     64      get { return UpdateAlwaysParameter.Value; }
     65    }
    6166    #endregion
    6267
     
    6873      Parameters.Add(new LookupParameter<T>(TrainingBestSolutionParameterName, "The training best symbolic data analyis solution."));
    6974      Parameters.Add(new LookupParameter<DoubleValue>(TrainingBestSolutionQualityParameterName, "The quality of the training best symbolic data analysis solution."));
     75      Parameters.Add(new FixedValueParameter<BoolValue>(UpdateAlwaysParameterName, "Determines if the best training solution should always be updated regardless of its quality.", new BoolValue(false)));
     76      UpdateAlwaysParameter.Hidden = true;
     77    }
     78
     79    [StorableHook(HookType.AfterDeserialization)]
     80    private void AfterDeserialization() {
     81      if (!Parameters.ContainsKey(UpdateAlwaysParameterName)) {
     82        Parameters.Add(new FixedValueParameter<BoolValue>(UpdateAlwaysParameterName, "Determines if the best training solution should always be updated regardless of its quality.", new BoolValue(false)));
     83        UpdateAlwaysParameter.Hidden = true;
     84      }
    7085    }
    7186
     
    85100
    86101      var results = ResultCollection;
    87       if (bestTree != null && (TrainingBestSolutionQuality == null ||
     102      if (bestTree != null && (UpdateAlways.Value || TrainingBestSolutionQuality == null ||
    88103        IsBetter(bestQuality, TrainingBestSolutionQuality.Value, Maximization.Value))) {
    89104        TrainingBestSolution = CreateSolution(bestTree, bestQuality);
Note: See TracChangeset for help on using the changeset viewer.