Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/25/15 23:08:19 (9 years ago)
Author:
ascheibe
Message:

#2267 adapted branch to changes from #2332

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/Comparators/UnwantedMutationsComparator.cs

    r11884 r12079  
    3737  [Item("UnwantedMutationsComparator", "Compares the similarity against that of its parents (assumes the parents are subscopes to the child scope). This operator works with any number of subscopes > 0.")]
    3838  [StorableClass]
    39   public class UnwantedMutationsComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator, ISimilarityBasedOperator {
     39  public class UnwantedMutationsComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator {
    4040    [Storable]
    4141    public ISolutionSimilarityCalculator SimilarityCalculator { get; set; }
     42    public IValueLookupParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter {
     43      get { return (IValueLookupParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; }
     44    }
    4245    public IValueLookupParameter<BoolValue> MaximizationParameter {
    4346      get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
     
    135138      Parameters.Add(new ValueParameter<BoolValue>("EnableDivCriteria", "Use diversity as additional offspring selection criteria.", new BoolValue(true)));
    136139      Parameters.Add(new ValueParameter<BoolValue>("EnableQualityCriteria", "Use quality as additional offspring selection criteria.", new BoolValue(false)));
     140      Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity."));
    137141
    138142      foreach (IDiscreteDoubleValueModifier modifier in ApplicationManager.Manager.GetInstances<IDiscreteDoubleValueModifier>().OrderBy(x => x.Name))
     
    145149    public override IDeepCloneable Clone(Cloner cloner) {
    146150      return new UnwantedMutationsComparator(this, cloner);
     151    }
     152
     153    [StorableHook(HookType.AfterDeserialization)]
     154    private void AfterDeserialization() {
     155      // BackwardsCompatibility3.3
     156      #region Backwards compatible code, remove with 3.4
     157      if (!Parameters.ContainsKey("SimilarityCalculator"))
     158        Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity."));
     159      #endregion
    147160    }
    148161
     
    203216      }
    204217
    205       string solutionVariableName = ((ISingleObjectiveSolutionSimilarityCalculator)SimilarityCalculator).SolutionVariableName;
     218      string solutionVariableName = ((ISingleObjectiveSolutionSimilarityCalculator)SimilarityCalculatorParameter.ActualValue).SolutionVariableName;
    206219      double resultVal = AnalyzeUnwantedMutations(ExecutionContext.Scope.SubScopes[0],
    207220        ExecutionContext.Scope.SubScopes[1], ExecutionContext.Scope, solutionVariableName);
     
    237250      if (EnableDivCriteriaParameter.Value.Value && !EnableQualityCriteriaParameter.Value.Value) {
    238251        result = resultDiversity;
    239       }                         
     252      }
    240253      //use diveristiy criteria or not
    241254      if (EnableDivCriteriaParameter.Value.Value && EnableQualityCriteriaParameter.Value.Value) {
Note: See TracChangeset for help on using the changeset viewer.