Changeset 12079 for branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/Comparators/PopulationDiversityComparator.cs
- Timestamp:
- 02/25/15 23:08:19 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/Comparators/PopulationDiversityComparator.cs
r11845 r12079 36 36 [Item("PopulationDiversityComparator", "Structural comparison of child to population.")] 37 37 [StorableClass] 38 public class PopulationDiversityComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator , ISimilarityBasedOperator{38 public class PopulationDiversityComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator { 39 39 [Storable] 40 40 public ISolutionSimilarityCalculator SimilarityCalculator { get; set; } 41 public IValueLookupParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter { 42 get { return (IValueLookupParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; } 43 } 41 44 public IValueLookupParameter<BoolValue> MaximizationParameter { 42 45 get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; } … … 126 129 Parameters.Add(new LookupParameter<IntValue>("Generations", "The current number of generations.")); 127 130 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.")); 128 132 129 133 foreach (IDiscreteDoubleValueModifier modifier in ApplicationManager.Manager.GetInstances<IDiscreteDoubleValueModifier>().OrderBy(x => x.Name)) … … 136 140 public override IDeepCloneable Clone(Cloner cloner) { 137 141 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 138 151 } 139 152 … … 207 220 Scope fakeScope = new Scope(); 208 221 fakeScope.SubScopes.Add((IScope)ExecutionContext.Scope.Clone()); 209 var similarities = SimilarityCalculator .CalculateSolutionCrowdSimilarity(fakeScope, remainingScope);222 var similarities = SimilarityCalculatorParameter.ActualValue.CalculateSolutionCrowdSimilarity(fakeScope, remainingScope); 210 223 double averageSimilarity = similarities[0].Average(); 211 224 resultDiversity = averageSimilarity < diversityComFact;
Note: See TracChangeset
for help on using the changeset viewer.