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

    r11845 r12079  
    3636  [Item("PopulationDiversityComparator", "Structural comparison of child to population.")]
    3737  [StorableClass]
    38   public class PopulationDiversityComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator, ISimilarityBasedOperator {
     38  public class PopulationDiversityComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator {
    3939    [Storable]
    4040    public ISolutionSimilarityCalculator SimilarityCalculator { get; set; }
     41    public IValueLookupParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter {
     42      get { return (IValueLookupParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; }
     43    }
    4144    public IValueLookupParameter<BoolValue> MaximizationParameter {
    4245      get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
     
    126129      Parameters.Add(new LookupParameter<IntValue>("Generations", "The current number of generations."));
    127130      Parameters.Add(new ValueParameter<BoolValue>("EnableDivCriteria", "Use diversity as additional offspring selection criteria.", new BoolValue(true)));
     131      Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity."));
    128132
    129133      foreach (IDiscreteDoubleValueModifier modifier in ApplicationManager.Manager.GetInstances<IDiscreteDoubleValueModifier>().OrderBy(x => x.Name))
     
    136140    public override IDeepCloneable Clone(Cloner cloner) {
    137141      return new PopulationDiversityComparator(this, cloner);
     142    }
     143
     144    [StorableHook(HookType.AfterDeserialization)]
     145    private void AfterDeserialization() {
     146      // BackwardsCompatibility3.3
     147      #region Backwards compatible code, remove with 3.4
     148      if (!Parameters.ContainsKey("SimilarityCalculator"))
     149        Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity."));
     150      #endregion
    138151    }
    139152
     
    207220        Scope fakeScope = new Scope();
    208221        fakeScope.SubScopes.Add((IScope)ExecutionContext.Scope.Clone());
    209         var similarities = SimilarityCalculator.CalculateSolutionCrowdSimilarity(fakeScope, remainingScope);
     222        var similarities = SimilarityCalculatorParameter.ActualValue.CalculateSolutionCrowdSimilarity(fakeScope, remainingScope);
    210223        double averageSimilarity = similarities[0].Average();
    211224        resultDiversity = averageSimilarity < diversityComFact;
Note: See TracChangeset for help on using the changeset viewer.