Changeset 12079 for branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/Comparators/UnwantedMutationsComparator.cs
- Timestamp:
- 02/25/15 23:08:19 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/Comparators/UnwantedMutationsComparator.cs
r11884 r12079 37 37 [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.")] 38 38 [StorableClass] 39 public class UnwantedMutationsComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator , ISimilarityBasedOperator{39 public class UnwantedMutationsComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator { 40 40 [Storable] 41 41 public ISolutionSimilarityCalculator SimilarityCalculator { get; set; } 42 public IValueLookupParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter { 43 get { return (IValueLookupParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; } 44 } 42 45 public IValueLookupParameter<BoolValue> MaximizationParameter { 43 46 get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; } … … 135 138 Parameters.Add(new ValueParameter<BoolValue>("EnableDivCriteria", "Use diversity as additional offspring selection criteria.", new BoolValue(true))); 136 139 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.")); 137 141 138 142 foreach (IDiscreteDoubleValueModifier modifier in ApplicationManager.Manager.GetInstances<IDiscreteDoubleValueModifier>().OrderBy(x => x.Name)) … … 145 149 public override IDeepCloneable Clone(Cloner cloner) { 146 150 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 147 160 } 148 161 … … 203 216 } 204 217 205 string solutionVariableName = ((ISingleObjectiveSolutionSimilarityCalculator)SimilarityCalculator ).SolutionVariableName;218 string solutionVariableName = ((ISingleObjectiveSolutionSimilarityCalculator)SimilarityCalculatorParameter.ActualValue).SolutionVariableName; 206 219 double resultVal = AnalyzeUnwantedMutations(ExecutionContext.Scope.SubScopes[0], 207 220 ExecutionContext.Scope.SubScopes[1], ExecutionContext.Scope, solutionVariableName); … … 237 250 if (EnableDivCriteriaParameter.Value.Value && !EnableQualityCriteriaParameter.Value.Value) { 238 251 result = resultDiversity; 239 } 252 } 240 253 //use diveristiy criteria or not 241 254 if (EnableDivCriteriaParameter.Value.Value && EnableQualityCriteriaParameter.Value.Value) {
Note: See TracChangeset
for help on using the changeset viewer.