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/SymbolicDataAnalysisSingleObjectiveValidationBestSolutionAnalyzer.cs

    r7721 r9152  
    4343    private const string ValidationBestSolutionParameterName = "Best validation solution";
    4444    private const string ValidationBestSolutionQualityParameterName = "Best validation solution quality";
     45    private const string UpdateAlwaysParameterName = "Always update best solution";
    4546
    4647    #region parameter properties
     
    5051    public ILookupParameter<DoubleValue> ValidationBestSolutionQualityParameter {
    5152      get { return (ILookupParameter<DoubleValue>)Parameters[ValidationBestSolutionQualityParameterName]; }
     53    }
     54    public IFixedValueParameter<BoolValue> UpdateAlwaysParameter {
     55      get { return (IFixedValueParameter<BoolValue>)Parameters[UpdateAlwaysParameterName]; }
    5256    }
    5357    #endregion
     
    6165      set { ValidationBestSolutionQualityParameter.ActualValue = value; }
    6266    }
     67    public BoolValue UpdateAlways {
     68      get { return UpdateAlwaysParameter.Value; }
     69    }
    6370    #endregion
    6471
     
    7077      Parameters.Add(new LookupParameter<S>(ValidationBestSolutionParameterName, "The validation best symbolic data analyis solution."));
    7178      Parameters.Add(new LookupParameter<DoubleValue>(ValidationBestSolutionQualityParameterName, "The quality of the validation best symbolic data analysis solution."));
     79      Parameters.Add(new FixedValueParameter<BoolValue>(UpdateAlwaysParameterName, "Determines if the best validation solution should always be updated regardless of its quality.", new BoolValue(false)));
     80      UpdateAlwaysParameter.Hidden = true;
     81    }
     82
     83    [StorableHook(HookType.AfterDeserialization)]
     84    private void AfterDeserialization() {
     85      if (!Parameters.ContainsKey(UpdateAlwaysParameterName)) {
     86        Parameters.Add(new FixedValueParameter<BoolValue>(UpdateAlwaysParameterName, "Determines if the best training solution should always be updated regardless of its quality.", new BoolValue(false)));
     87        UpdateAlwaysParameter.Hidden = true;
     88      }
    7289    }
    7390
     
    117134
    118135      var results = ResultCollection;
    119       if (ValidationBestSolutionQuality == null ||
     136      if (UpdateAlways.Value || ValidationBestSolutionQuality == null ||
    120137        IsBetter(bestValidationQuality, ValidationBestSolutionQuality.Value, Maximization.Value)) {
    121138        ValidationBestSolution = CreateSolution(bestTree, bestValidationQuality);
Note: See TracChangeset for help on using the changeset viewer.