Changeset 15281 for branches/Async/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
- Timestamp:
- 07/23/17 11:17:18 (7 years ago)
- Location:
- branches/Async
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Async
- Property svn:ignore
-
old new 24 24 protoc.exe 25 25 obj 26 .vs
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
branches/Async/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
r13173 r15281 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 5Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 55 55 56 56 #region Parameter Properties 57 p rivateValueParameter<IntValue> SeedParameter {57 public IValueParameter<IntValue> SeedParameter { 58 58 get { return (ValueParameter<IntValue>)Parameters["Seed"]; } 59 59 } 60 p rivateValueParameter<BoolValue> SetSeedRandomlyParameter {60 public IValueParameter<BoolValue> SetSeedRandomlyParameter { 61 61 get { return (ValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; } 62 62 } 63 p rivateValueParameter<IntValue> PopulationSizeParameter {63 public IValueParameter<IntValue> PopulationSizeParameter { 64 64 get { return (ValueParameter<IntValue>)Parameters["PopulationSize"]; } 65 65 } … … 70 70 get { return (IConstrainedValueParameter<ICrossover>)Parameters["Crossover"]; } 71 71 } 72 p rivateValueParameter<PercentValue> MutationProbabilityParameter {72 public IValueParameter<PercentValue> MutationProbabilityParameter { 73 73 get { return (ValueParameter<PercentValue>)Parameters["MutationProbability"]; } 74 74 } … … 76 76 get { return (IConstrainedValueParameter<IManipulator>)Parameters["Mutator"]; } 77 77 } 78 p rivateValueParameter<IntValue> ElitesParameter {78 public IValueParameter<IntValue> ElitesParameter { 79 79 get { return (ValueParameter<IntValue>)Parameters["Elites"]; } 80 80 } 81 p rivateIFixedValueParameter<BoolValue> ReevaluateElitesParameter {81 public IFixedValueParameter<BoolValue> ReevaluateElitesParameter { 82 82 get { return (IFixedValueParameter<BoolValue>)Parameters["ReevaluateElites"]; } 83 83 } 84 p rivateValueParameter<IntValue> MaximumGenerationsParameter {84 public IValueParameter<IntValue> MaximumGenerationsParameter { 85 85 get { return (ValueParameter<IntValue>)Parameters["MaximumGenerations"]; } 86 86 } 87 p rivateValueLookupParameter<DoubleValue> SuccessRatioParameter {87 public IValueLookupParameter<DoubleValue> SuccessRatioParameter { 88 88 get { return (ValueLookupParameter<DoubleValue>)Parameters["SuccessRatio"]; } 89 89 } 90 p rivateValueLookupParameter<DoubleValue> ComparisonFactorLowerBoundParameter {90 public IValueLookupParameter<DoubleValue> ComparisonFactorLowerBoundParameter { 91 91 get { return (ValueLookupParameter<DoubleValue>)Parameters["ComparisonFactorLowerBound"]; } 92 92 } 93 p rivateValueLookupParameter<DoubleValue> ComparisonFactorUpperBoundParameter {93 public IValueLookupParameter<DoubleValue> ComparisonFactorUpperBoundParameter { 94 94 get { return (ValueLookupParameter<DoubleValue>)Parameters["ComparisonFactorUpperBound"]; } 95 95 } … … 97 97 get { return (IConstrainedValueParameter<IDiscreteDoubleValueModifier>)Parameters["ComparisonFactorModifier"]; } 98 98 } 99 p rivateValueLookupParameter<DoubleValue> MaximumSelectionPressureParameter {99 public IValueLookupParameter<DoubleValue> MaximumSelectionPressureParameter { 100 100 get { return (ValueLookupParameter<DoubleValue>)Parameters["MaximumSelectionPressure"]; } 101 101 } 102 p rivateValueLookupParameter<BoolValue> OffspringSelectionBeforeMutationParameter {102 public IValueLookupParameter<BoolValue> OffspringSelectionBeforeMutationParameter { 103 103 get { return (ValueLookupParameter<BoolValue>)Parameters["OffspringSelectionBeforeMutation"]; } 104 104 } 105 p rivateValueLookupParameter<IntValue> SelectedParentsParameter {105 public IValueLookupParameter<IntValue> SelectedParentsParameter { 106 106 get { return (ValueLookupParameter<IntValue>)Parameters["SelectedParents"]; } 107 107 } 108 p rivateValueParameter<MultiAnalyzer> AnalyzerParameter {108 public IValueParameter<MultiAnalyzer> AnalyzerParameter { 109 109 get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; } 110 110 } 111 p rivateValueParameter<IntValue> MaximumEvaluatedSolutionsParameter {111 public IValueParameter<IntValue> MaximumEvaluatedSolutionsParameter { 112 112 get { return (ValueParameter<IntValue>)Parameters["MaximumEvaluatedSolutions"]; } 113 113 } 114 p rivateIFixedValueParameter<BoolValue> FillPopulationWithParentsParameter {114 public IFixedValueParameter<BoolValue> FillPopulationWithParentsParameter { 115 115 get { return (IFixedValueParameter<BoolValue>)Parameters["FillPopulationWithParents"]; } 116 116 } … … 228 228 if (!Parameters.ContainsKey("FillPopulationWithParents")) 229 229 Parameters.Add(new FixedValueParameter<BoolValue>("FillPopulationWithParents", "True if the population should be filled with parent individual or false if worse children should be used when the maximum selection pressure is exceeded.", new BoolValue(false)) { Hidden = true }); 230 231 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 232 if (optionalMutatorParameter != null) { 233 Parameters.Remove(optionalMutatorParameter); 234 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 235 foreach (var m in optionalMutatorParameter.ValidValues) 236 MutatorParameter.ValidValues.Add(m); 237 if (optionalMutatorParameter.Value == null) MutationProbability.Value = 0; // to guarantee that the old configuration results in the same behavior 238 else Mutator = optionalMutatorParameter.Value; 239 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 240 } 230 241 #endregion 231 242 … … 250 261 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 251 262 Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 252 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));263 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 253 264 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 254 265 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", new BoolValue(false)) { Hidden = true }); … … 487 498 IManipulator oldMutator = MutatorParameter.Value; 488 499 MutatorParameter.ValidValues.Clear(); 500 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 501 489 502 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) 490 503 MutatorParameter.ValidValues.Add(mutator); 504 491 505 if (oldMutator != null) { 492 506 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 493 507 if (mutator != null) MutatorParameter.Value = mutator; 494 } 508 else oldMutator = null; 509 } 510 511 if (oldMutator == null && defaultMutator != null) 512 MutatorParameter.Value = defaultMutator; 495 513 } 496 514 private void UpdateAnalyzers() {
Note: See TracChangeset
for help on using the changeset viewer.