- Timestamp:
- 06/03/13 14:39:36 (11 years ago)
- Location:
- trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs
r9456 r9569 100 100 get { return (ValueParameter<IntValue>)Parameters["Elites"]; } 101 101 } 102 private IFixedValueParameter<BoolValue> ReevaluateElitesParameter { 103 get { return (IFixedValueParameter<BoolValue>)Parameters["ReevaluateElites"]; } 104 } 102 105 private ValueLookupParameter<DoubleValue> SuccessRatioParameter { 103 106 get { return (ValueLookupParameter<DoubleValue>)Parameters["SuccessRatio"]; } … … 192 195 get { return ElitesParameter.Value; } 193 196 set { ElitesParameter.Value = value; } 197 } 198 public bool ReevaluteElites { 199 get { return ReevaluateElitesParameter.Value.Value; } 200 set { ReevaluateElitesParameter.Value.Value = value; } 194 201 } 195 202 private DoubleValue SuccessRatio { … … 260 267 if (successfulOffspringAnalyzer == null) 261 268 successfulOffspringAnalyzer = new SuccessfulOffspringAnalyzer(); 269 if (!Parameters.ContainsKey("ReevaluateElites")) { 270 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", (BoolValue)new BoolValue(false).AsReadOnly()) { Hidden = true }); 271 } 262 272 #endregion 263 273 … … 293 303 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 294 304 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 305 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 }); 295 306 Parameters.Add(new ValueLookupParameter<DoubleValue>("SuccessRatio", "The ratio of successful to total children that should be achieved.", new DoubleValue(1))); 296 307 Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorLowerBound", "The lower bound of the comparison factor (start).", new DoubleValue(0))); … … 355 366 mainLoop.CrossoverParameter.ActualName = CrossoverParameter.Name; 356 367 mainLoop.ElitesParameter.ActualName = ElitesParameter.Name; 368 mainLoop.ReevaluateElitesParameter.ActualName = ReevaluateElitesParameter.Name; 357 369 mainLoop.MutatorParameter.ActualName = MutatorParameter.Name; 358 370 mainLoop.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name; -
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs
r9456 r9569 90 90 public ValueLookupParameter<IntValue> ElitesParameter { 91 91 get { return (ValueLookupParameter<IntValue>)Parameters["Elites"]; } 92 } 93 public IValueLookupParameter<BoolValue> ReevaluateElitesParameter { 94 get { return (IValueLookupParameter<BoolValue>)Parameters["ReevaluateElites"]; } 92 95 } 93 96 public ValueLookupParameter<ResultCollection> ResultsParameter { … … 158 161 Parameters.Add(new ValueLookupParameter<IOperator>("Evaluator", "The operator used to evaluate solutions. This operator is executed in parallel, if an engine is used which supports parallelization.")); 159 162 Parameters.Add(new ValueLookupParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.")); 163 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 160 164 Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The results collection to store the results.")); 161 165 Parameters.Add(new ValueLookupParameter<IOperator>("Visualizer", "The operator used to visualize solutions.")); … … 248 252 mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio"; 249 253 mainOperator.ElitesParameter.ActualName = ElitesParameter.Name; 254 mainOperator.ReevaluateElitesParameter.ActualName = ReevaluateElitesParameter.Name; 250 255 mainOperator.EvaluatedSolutionsParameter.ActualName = EvaluatedSolutionsParameter.Name; 251 256 mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name; … … 414 419 } 415 420 421 [StorableHook(HookType.AfterDeserialization)] 422 private void AfterDeserialization() { 423 if (!Parameters.ContainsKey("ReevaluateElites")) { 424 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 425 } 426 } 427 416 428 public override IOperation Apply() { 417 429 if (CrossoverParameter.ActualValue == null) -
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
r9456 r9569 79 79 get { return (ValueParameter<IntValue>)Parameters["Elites"]; } 80 80 } 81 private IFixedValueParameter<BoolValue> ReevaluateElitesParameter { 82 get { return (IFixedValueParameter<BoolValue>)Parameters["ReevaluateElites"]; } 83 } 81 84 private ValueParameter<IntValue> MaximumGenerationsParameter { 82 85 get { return (ValueParameter<IntValue>)Parameters["MaximumGenerations"]; } … … 143 146 get { return ElitesParameter.Value; } 144 147 set { ElitesParameter.Value = value; } 148 } 149 public bool ReevaluteElites { 150 get { return ReevaluateElitesParameter.Value.Value; } 151 set { ReevaluateElitesParameter.Value.Value = value; } 145 152 } 146 153 public IntValue MaximumGenerations { … … 208 215 if (successfulOffspringAnalyzer == null) 209 216 successfulOffspringAnalyzer = new SuccessfulOffspringAnalyzer(); 217 if (!Parameters.ContainsKey("ReevaluateElites")) { 218 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", (BoolValue)new BoolValue(false).AsReadOnly()) { Hidden = true }); 219 } 210 220 #endregion 211 221 … … 232 242 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 233 243 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 244 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 }); 234 245 Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntValue(1000))); 235 246 Parameters.Add(new ValueLookupParameter<DoubleValue>("SuccessRatio", "The ratio of successful to total children that should be achieved.", new DoubleValue(1))); … … 274 285 mainLoop.CrossoverParameter.ActualName = CrossoverParameter.Name; 275 286 mainLoop.ElitesParameter.ActualName = ElitesParameter.Name; 287 mainLoop.ReevaluateElitesParameter.ActualName = ReevaluateElitesParameter.Name; 276 288 mainLoop.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions"; 277 289 mainLoop.MaximumGenerationsParameter.ActualName = MaximumGenerationsParameter.Name; -
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs
r9456 r9569 63 63 get { return (ValueLookupParameter<IntValue>)Parameters["Elites"]; } 64 64 } 65 public IValueLookupParameter<BoolValue> ReevaluateElitesParameter { 66 get { return (IValueLookupParameter<BoolValue>)Parameters["ReevaluateElites"]; } 67 } 65 68 public ValueLookupParameter<IntValue> MaximumGenerationsParameter { 66 69 get { return (ValueLookupParameter<IntValue>)Parameters["MaximumGenerations"]; } … … 106 109 : base() { 107 110 Initialize(); 111 } 112 113 [StorableHook(HookType.AfterDeserialization)] 114 private void AfterDeserialization() { 115 if (!Parameters.ContainsKey("ReevaluateElites")) { 116 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 117 } 108 118 } 109 119 … … 120 130 Parameters.Add(new ValueLookupParameter<IOperator>("Evaluator", "The operator used to evaluate solutions. This operator is executed in parallel, if an engine is used which supports parallelization.")); 121 131 Parameters.Add(new ValueLookupParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.")); 132 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 122 133 Parameters.Add(new ValueLookupParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.")); 123 134 Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored.")); … … 170 181 mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio"; 171 182 mainOperator.ElitesParameter.ActualName = ElitesParameter.Name; 183 mainOperator.ReevaluateElitesParameter.ActualName = ReevaluateElitesParameter.Name; 172 184 mainOperator.EvaluatedSolutionsParameter.ActualName = EvaluatedSolutionsParameter.Name; 173 185 mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name; -
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainOperator.cs
r9456 r9569 67 67 get { return (ValueLookupParameter<IntValue>)Parameters["Elites"]; } 68 68 } 69 public IValueLookupParameter<BoolValue> ReevaluateElitesParameter { 70 get { return (IValueLookupParameter<BoolValue>)Parameters["ReevaluateElites"]; } 71 } 69 72 public LookupParameter<DoubleValue> ComparisonFactorParameter { 70 73 get { return (LookupParameter<DoubleValue>)Parameters["ComparisonFactor"]; } … … 98 101 : base() { 99 102 Initialize(); 103 } 104 105 [StorableHook(HookType.AfterDeserialization)] 106 private void AfterDeserialization() { 107 if (!Parameters.ContainsKey("ReevaluateElites")) { 108 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 109 } 100 110 } 101 111 … … 112 122 Parameters.Add(new LookupParameter<IntValue>("EvaluatedSolutions", "The number of evaluated solutions.")); 113 123 Parameters.Add(new ValueLookupParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.")); 124 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 114 125 Parameters.Add(new LookupParameter<DoubleValue>("ComparisonFactor", "The comparison factor is used to determine whether the offspring should be compared to the better parent, the worse parent or a quality value linearly interpolated between them. It is in the range [0;1].")); 115 126 Parameters.Add(new LookupParameter<DoubleValue>("CurrentSuccessRatio", "The current success ratio.")); … … 159 170 LeftReducer leftReducer = new LeftReducer(); 160 171 MergingReducer mergingReducer2 = new MergingReducer(); 172 ConditionalBranch reevaluateElitesBranch = new ConditionalBranch(); 173 UniformSubScopesProcessor uniformSubScopesProcessor7 = new UniformSubScopesProcessor(); 174 Placeholder evaluator4 = new Placeholder(); 175 SubScopesCounter subScopesCounter4 = new SubScopesCounter(); 161 176 162 177 selector.Name = "Selector (placeholder)"; … … 253 268 worstSelector.NumberOfSelectedSubScopesParameter.ActualName = ElitesParameter.Name; 254 269 worstSelector.QualityParameter.ActualName = QualityParameter.Name; 270 271 reevaluateElitesBranch.ConditionParameter.ActualName = "ReevaluateElites"; 272 reevaluateElitesBranch.Name = "Reevaluate elites ?"; 273 274 uniformSubScopesProcessor7.Parallel.Value = true; 275 276 evaluator4.Name = "Evaluator (placeholder)"; 277 evaluator4.OperatorParameter.ActualName = EvaluatorParameter.Name; 278 279 subScopesCounter4.Name = "Increment EvaluatedSolutions"; 280 subScopesCounter4.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 255 281 #endregion 256 282 … … 310 336 subScopesProcessor3.Successor = mergingReducer2; 311 337 bestSelector.Successor = rightReducer; 312 rightReducer.Successor = null; 338 rightReducer.Successor = reevaluateElitesBranch; 339 reevaluateElitesBranch.TrueBranch = uniformSubScopesProcessor7; 340 uniformSubScopesProcessor7.Operator = evaluator4; 341 uniformSubScopesProcessor7.Successor = subScopesCounter4; 342 subScopesCounter4.Successor = null; 343 reevaluateElitesBranch.FalseBranch = null; 344 reevaluateElitesBranch.Successor = null; 313 345 worstSelector.Successor = leftReducer; 314 346 leftReducer.Successor = null; -
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs
r9456 r9569 85 85 get { return (ValueParameter<IntValue>)Parameters["Elites"]; } 86 86 } 87 private IFixedValueParameter<BoolValue> ReevaluateElitesParameter { 88 get { return (IFixedValueParameter<BoolValue>)Parameters["ReevaluateElites"]; } 89 } 87 90 private ValueLookupParameter<DoubleValue> SuccessRatioParameter { 88 91 get { return (ValueLookupParameter<DoubleValue>)Parameters["SuccessRatio"]; } … … 160 163 get { return ElitesParameter.Value; } 161 164 set { ElitesParameter.Value = value; } 165 } 166 public bool ReevaluteElites { 167 get { return ReevaluateElitesParameter.Value.Value; } 168 set { ReevaluateElitesParameter.Value.Value = value; } 162 169 } 163 170 public DoubleValue SuccessRatio { … … 236 243 if (successfulOffspringAnalyzer == null) 237 244 successfulOffspringAnalyzer = new SuccessfulOffspringAnalyzer(); 245 if (!Parameters.ContainsKey("ReevaluateElites")) { 246 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", (BoolValue)new BoolValue(false).AsReadOnly()) { Hidden = true }); 247 } 238 248 #endregion 239 249 … … 264 274 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 265 275 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 276 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 }); 266 277 Parameters.Add(new ValueLookupParameter<DoubleValue>("SuccessRatio", "The ratio of successful to total children that should be achieved.", new DoubleValue(1))); 267 278 Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorLowerBound", "The lower bound of the comparison factor (start).", new DoubleValue(0.3))); … … 321 332 mainLoop.CrossoverParameter.ActualName = CrossoverParameter.Name; 322 333 mainLoop.ElitesParameter.ActualName = ElitesParameter.Name; 334 mainLoop.ReevaluateElitesParameter.ActualName = ReevaluateElitesParameter.Name; 323 335 mainLoop.MutatorParameter.ActualName = MutatorParameter.Name; 324 336 mainLoop.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name; -
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs
r9456 r9569 73 73 get { return (ValueLookupParameter<IntValue>)Parameters["Elites"]; } 74 74 } 75 public IValueLookupParameter<BoolValue> ReevaluateElitesParameter { 76 get { return (IValueLookupParameter<BoolValue>)Parameters["ReevaluateElites"]; } 77 } 75 78 public ValueLookupParameter<ResultCollection> ResultsParameter { 76 79 get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; } … … 134 137 Parameters.Add(new ValueLookupParameter<IOperator>("Evaluator", "The operator used to evaluate solutions. This operator is executed in parallel, if an engine is used which supports parallelization.")); 135 138 Parameters.Add(new ValueLookupParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.")); 139 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 136 140 Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The results collection to store the results.")); 137 141 Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to the analyze the villages.")); … … 236 240 mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio"; 237 241 mainOperator.ElitesParameter.ActualName = ElitesParameter.Name; 242 mainOperator.ReevaluateElitesParameter.ActualName = ReevaluateElitesParameter.Name; 238 243 mainOperator.EvaluatedSolutionsParameter.ActualName = EvaluatedSolutionsParameter.Name; 239 244 mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name; … … 424 429 } 425 430 431 [StorableHook(HookType.AfterDeserialization)] 432 private void AfterDeserialization() { 433 if (!Parameters.ContainsKey("ReevaluateElites")) { 434 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 435 } 436 } 437 426 438 public override IOperation Apply() { 427 439 if (CrossoverParameter.ActualValue == null)
Note: See TracChangeset
for help on using the changeset viewer.