Changeset 12363 for branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/Comparators
- Timestamp:
- 04/29/15 16:00:38 (9 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/VOSGA/HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm/Comparators/EliteWeightedParentsQualityComparator.cs
r12354 r12363 31 31 32 32 namespace HeuristicLab.Algorithms.VOffspringSelectionGeneticAlgorithm { 33 [Item(" WeightedParentsQualityComparator", "Compares the quality against that of its parents (assumes the parents are subscopes to the child scope). This operator works with any number of subscopes > 0.")]33 [Item("EliteWeightedParentsQualityComparator", "M2")] 34 34 [StorableClass] 35 public class WeightedParentsQualityComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator {35 public class EliteWeightedParentsQualityComparator : SingleSuccessorOperator, ISubScopesQualityComparatorOperator { 36 36 public IValueLookupParameter<BoolValue> MaximizationParameter { 37 37 get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; } … … 46 46 get { return (ILookupParameter<BoolValue>)Parameters["Result"]; } 47 47 } 48 public ILookupParameter<BoolValue> ResultImprovementParameter { 49 get { return (ILookupParameter<BoolValue>)Parameters["ResultImprovement"]; } 50 } 48 51 public ValueLookupParameter<DoubleValue> ComparisonFactorParameter { 49 52 get { return (ValueLookupParameter<DoubleValue>)Parameters["ComparisonFactor"]; } … … 51 54 52 55 [StorableConstructor] 53 protected WeightedParentsQualityComparator(bool deserializing) : base(deserializing) { }54 protected WeightedParentsQualityComparator(WeightedParentsQualityComparator original, Cloner cloner) : base(original, cloner) { }55 public WeightedParentsQualityComparator()56 protected EliteWeightedParentsQualityComparator(bool deserializing) : base(deserializing) { } 57 protected EliteWeightedParentsQualityComparator(EliteWeightedParentsQualityComparator original, Cloner cloner) : base(original, cloner) { } 58 public EliteWeightedParentsQualityComparator() 56 59 : base() { 57 60 Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, false otherwise")); … … 59 62 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("RightSide", "The qualities of the parents.")); 60 63 Parameters.Add(new LookupParameter<BoolValue>("Result", "The result of the comparison: True means Quality is better, False means it is worse than parents.")); 64 Parameters.Add(new LookupParameter<BoolValue>("ResultImprovement", "A solution has improved if it is better than the worse parent.")); 61 65 Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactor", "Determines if the quality should be compared to the better parent (1.0), to the worse (0.0) or to any linearly interpolated value between them.")); 62 66 } 63 67 64 68 public override IDeepCloneable Clone(Cloner cloner) { 65 return new WeightedParentsQualityComparator(this, cloner);69 return new EliteWeightedParentsQualityComparator(this, cloner); 66 70 } 67 71 … … 122 126 } 123 127 128 bool resultImprovement = maximization && leftQuality > rightQualities.Min(x => x.Value) || 129 !maximization && leftQuality < rightQualities.Max(x => x.Value); 130 BoolValue resultImprovementValue = ResultImprovementParameter.ActualValue; 131 if (resultImprovementValue == null) { 132 ResultImprovementParameter.ActualValue = new BoolValue(resultImprovement); 133 } else { 134 resultImprovementValue.Value = resultImprovement; 135 } 136 124 137 return base.Apply(); 125 138 }
Note: See TracChangeset
for help on using the changeset viewer.