Changeset 9569 for trunk/sources/HeuristicLab.Algorithms.RAPGA
- Timestamp:
- 06/03/13 14:39:36 (11 years ago)
- Location:
- trunk/sources/HeuristicLab.Algorithms.RAPGA/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.RAPGA/3.3/RAPGA.cs
r9456 r9569 94 94 get { return (ValueParameter<IntValue>)Parameters["Elites"]; } 95 95 } 96 private IFixedValueParameter<BoolValue> ReevaluateElitesParameter { 97 get { return (IFixedValueParameter<BoolValue>)Parameters["ReevaluateElites"]; } 98 } 96 99 private ValueParameter<MultiAnalyzer> AnalyzerParameter { 97 100 get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; } … … 157 160 get { return ElitesParameter.Value; } 158 161 set { ElitesParameter.Value = value; } 162 } 163 public bool ReevaluteElites { 164 get { return ReevaluateElitesParameter.Value.Value; } 165 set { ReevaluateElitesParameter.Value.Value = value; } 159 166 } 160 167 public MultiAnalyzer Analyzer { … … 192 199 private RAPGA(bool deserializing) : base(deserializing) { } 193 200 [StorableHook(HookType.AfterDeserialization)] 194 private void AfterDeserialization() { Initialize(); } 201 private void AfterDeserialization() { 202 if (!Parameters.ContainsKey("ReevaluateElites")) { 203 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 }); 204 } 205 Initialize(); 206 } 195 207 private RAPGA(RAPGA original, Cloner cloner) 196 208 : base(original, cloner) { … … 216 228 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 217 229 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 230 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 }); 218 231 Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer())); 219 232 Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntValue(1000))); … … 248 261 mainLoop.CrossoverParameter.ActualName = CrossoverParameter.Name; 249 262 mainLoop.ElitesParameter.ActualName = ElitesParameter.Name; 263 mainLoop.ReevaluateElitesParameter.ActualName = ReevaluateElitesParameter.Name; 250 264 mainLoop.MaximumGenerationsParameter.ActualName = MaximumGenerationsParameter.Name; 251 265 mainLoop.MutatorParameter.ActualName = MutatorParameter.Name; -
trunk/sources/HeuristicLab.Algorithms.RAPGA/3.3/RAPGAMainLoop.cs
r9456 r9569 65 65 get { return (ValueLookupParameter<IntValue>)Parameters["Elites"]; } 66 66 } 67 public IValueLookupParameter<BoolValue> ReevaluateElitesParameter { 68 get { return (IValueLookupParameter<BoolValue>)Parameters["ReevaluateElites"]; } 69 } 67 70 public ValueLookupParameter<IntValue> MaximumGenerationsParameter { 68 71 get { return (ValueLookupParameter<IntValue>)Parameters["MaximumGenerations"]; } … … 129 132 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.")); 130 133 Parameters.Add(new ValueLookupParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.")); 134 Parameters.Add(new ValueLookupParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)")); 131 135 Parameters.Add(new ValueLookupParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.")); 132 136 Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored.")); … … 190 194 Assigner assigner4 = new Assigner(); 191 195 Assigner assigner5 = new Assigner(); 196 ConditionalBranch reevaluateElitesBranch = new ConditionalBranch(); 197 UniformSubScopesProcessor uniformSubScopesProcessor2 = new UniformSubScopesProcessor(); 198 Placeholder evaluator2 = new Placeholder(); 199 SubScopesCounter subScopesCounter4 = new SubScopesCounter(); 192 200 193 201 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); // Class RAPGA expects this to be called Generations … … 338 346 assigner5.LeftSideParameter.ActualName = "OffspringList"; 339 347 assigner5.RightSideParameter.Value = new ScopeList(); 348 349 reevaluateElitesBranch.ConditionParameter.ActualName = "ReevaluateElites"; 350 reevaluateElitesBranch.Name = "Reevaluate elites ?"; 351 352 uniformSubScopesProcessor2.Parallel.Value = true; 353 354 evaluator2.Name = "Evaluator (placeholder)"; 355 evaluator2.OperatorParameter.ActualName = EvaluatorParameter.Name; 356 357 subScopesCounter4.Name = "Increment EvaluatedSolutions"; 358 subScopesCounter4.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 340 359 #endregion 341 360 … … 378 397 subScopesProcessor2.Successor = mergingReducer; 379 398 bestSelector.Successor = rightReducer2; 380 rightReducer2.Successor = null; 399 rightReducer2.Successor = reevaluateElitesBranch; 400 reevaluateElitesBranch.TrueBranch = uniformSubScopesProcessor2; 401 uniformSubScopesProcessor2.Operator = evaluator2; 402 uniformSubScopesProcessor2.Successor = subScopesCounter4; 403 evaluator2.Successor = null; 404 subScopesCounter4.Successor = null; 405 reevaluateElitesBranch.FalseBranch = null; 406 reevaluateElitesBranch.Successor = null; 381 407 scopeCleaner.Successor = scopeRestorer; 382 408 mergingReducer.Successor = intCounter3;
Note: See TracChangeset
for help on using the changeset viewer.