Changeset 3650 for trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs
- Timestamp:
- 05/05/10 18:54:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs
r3479 r3650 46 46 get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; } 47 47 } 48 public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {49 get { return (ValueLookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }50 }51 48 public ValueLookupParameter<IOperator> SelectorParameter { 52 49 get { return (ValueLookupParameter<IOperator>)Parameters["Selector"]; } … … 73 70 get { return (ValueLookupParameter<VariableCollection>)Parameters["Results"]; } 74 71 } 75 public ValueLookupParameter<IOperator> VisualizerParameter { 76 get { return (ValueLookupParameter<IOperator>)Parameters["Visualizer"]; } 77 } 78 public LookupParameter<IItem> VisualizationParameter { 79 get { return (LookupParameter<IItem>)Parameters["Visualization"]; } 72 public ValueLookupParameter<IOperator> AnalyzerParameter { 73 get { return (ValueLookupParameter<IOperator>)Parameters["Analyzer"]; } 80 74 } 81 75 public ValueLookupParameter<DoubleValue> SuccessRatioParameter { … … 120 114 Parameters.Add(new ValueLookupParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.")); 121 115 Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored.")); 122 Parameters.Add(new ValueLookupParameter<IOperator>("Visualizer", "The operator used to visualize solutions.")); 123 Parameters.Add(new LookupParameter<IItem>("Visualization", "The item which represents the visualization of solutions.")); 116 Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation.")); 124 117 Parameters.Add(new ValueLookupParameter<DoubleValue>("SuccessRatio", "The ratio of successful to total children that should be achieved.")); 125 118 Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorLowerBound", "The lower bound of the comparison factor (start).")); … … 131 124 132 125 #region Create operators 133 ConditionalBranch initializationBranch = new ConditionalBranch();134 126 VariableCreator variableCreator = new VariableCreator(); 135 Assigner variableAssigner = new Assigner();136 BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer();137 BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer();138 BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator1 = new BestAverageWorstQualityCalculator();139 DataTableValuesCollector dataTableValuesCollector1 = new DataTableValuesCollector();140 DataTableValuesCollector selPressDataTableValuesCollector1 = new DataTableValuesCollector();141 QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator();142 Placeholder visualizer1 = new Placeholder();143 ResultsCollector resultsCollector = new ResultsCollector();144 Placeholder selector = new Placeholder();145 SubScopesProcessor subScopesProcessor1 = new SubScopesProcessor();146 ChildrenCreator childrenCreator = new ChildrenCreator();147 UniformSubScopesProcessor uniformSubScopesProcessor = new UniformSubScopesProcessor();148 Placeholder crossover = new Placeholder();149 ConditionalBranch osBeforeMutationBranch = new ConditionalBranch();150 Placeholder evaluator1 = new Placeholder();151 IntCounter evaluationCounter1 = new IntCounter();152 WeightedParentsQualityComparator qualityComparer1 = new WeightedParentsQualityComparator();153 StochasticBranch mutationBranch1 = new StochasticBranch();154 Placeholder mutator1 = new Placeholder();155 Placeholder evaluator2 = new Placeholder();156 IntCounter evaluationCounter2 = new IntCounter();157 StochasticBranch mutationBranch2 = new StochasticBranch();158 Placeholder mutator2 = new Placeholder();159 Placeholder evaluator3 = new Placeholder();160 IntCounter evaluationCounter3 = new IntCounter();161 WeightedParentsQualityComparator qualityComparer2 = new WeightedParentsQualityComparator();162 SubScopesRemover subScopesRemover = new SubScopesRemover();163 ConditionalSelector conditionalSelector = new ConditionalSelector();164 OffspringSelector offspringSelector = new OffspringSelector();165 SubScopesProcessor subScopesProcessor2 = new SubScopesProcessor();166 BestSelector bestSelector = new BestSelector();167 RightReducer rightReducer = new RightReducer();168 MergingReducer mergingReducer = new MergingReducer();169 IntCounter intCounter = new IntCounter();170 127 Placeholder comparisonFactorModifier = new Placeholder(); 171 Comparator comparator1 = new Comparator(); 172 Comparator comparator2 = new Comparator(); 173 Assigner evaluatedSolutionsAssigner = new Assigner(); 174 ResultsCollector evalSolCollector = new ResultsCollector(); 175 BestQualityMemorizer bestQualityMemorizer3 = new BestQualityMemorizer(); 176 BestQualityMemorizer bestQualityMemorizer4 = new BestQualityMemorizer(); 177 BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator(); 178 DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector(); 179 DataTableValuesCollector selPressDataTableValuesCollector2 = new DataTableValuesCollector(); 180 QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator(); 181 Placeholder visualizer2 = new Placeholder(); 128 Placeholder analyzer1 = new Placeholder(); 129 ResultsCollector resultsCollector1 = new ResultsCollector(); 130 OffspringSelectionGeneticAlgorithmMainOperator mainOperator = new OffspringSelectionGeneticAlgorithmMainOperator(); 131 IntCounter generationsCounter = new IntCounter(); 132 Comparator maxGenerationsComparator = new Comparator(); 133 Comparator maxSelectionPressureComparator = new Comparator(); 134 Placeholder analyzer2 = new Placeholder(); 135 ResultsCollector resultsCollector2 = new ResultsCollector(); 182 136 ConditionalBranch conditionalBranch1 = new ConditionalBranch(); 183 137 ConditionalBranch conditionalBranch2 = new ConditionalBranch(); 184 138 185 initializationBranch.ConditionParameter.ActualName = "IsInitialized"; 186 187 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); // this variable is referenced in SASEGASAMainLoop, do not change! 139 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); 188 140 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutions", new IntValue(0))); 189 141 variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("SelectionPressure", new DoubleValue(0))); 190 142 variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("CurrentSuccessRatio", new DoubleValue(0))); 191 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutionsResult", new IntValue(0)));192 variableCreator.CollectedValues.Add(new ValueParameter<BoolValue>("IsInitialized", new BoolValue(true)));193 194 variableAssigner.LeftSideParameter.ActualName = "ComparisonFactor"; // this variable is referenced in SASEGASA, OffspringSelectionGeneticAlgorithm, do not change!195 variableAssigner.RightSideParameter.ActualName = ComparisonFactorLowerBoundParameter.Name;196 197 bestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality";198 bestQualityMemorizer1.MaximizationParameter.ActualName = MaximizationParameter.Name;199 bestQualityMemorizer1.QualityParameter.ActualName = QualityParameter.Name;200 201 bestQualityMemorizer2.BestQualityParameter.ActualName = BestKnownQualityParameter.Name;202 bestQualityMemorizer2.MaximizationParameter.ActualName = MaximizationParameter.Name;203 bestQualityMemorizer2.QualityParameter.ActualName = QualityParameter.Name;204 205 bestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageQuality";206 bestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestQuality";207 bestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = MaximizationParameter.Name;208 bestAverageWorstQualityCalculator1.QualityParameter.ActualName = QualityParameter.Name;209 bestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstQuality";210 211 dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));212 dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));213 dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));214 dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));215 dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));216 dataTableValuesCollector1.DataTableParameter.ActualName = "Qualities";217 218 selPressDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Selection Pressure", null, "SelectionPressure"));219 selPressDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Maximum Selection Pressure", null, MaximumSelectionPressureParameter.Name));220 selPressDataTableValuesCollector1.DataTableParameter.ActualName = "SelectionPressures";221 222 qualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";223 qualityDifferenceCalculator1.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;224 qualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";225 qualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality";226 227 visualizer1.Name = "Visualizer (placeholder)";228 visualizer1.OperatorParameter.ActualName = VisualizerParameter.Name;229 230 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));231 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));232 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));233 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));234 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));235 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));236 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest"));237 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest"));238 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutionsResult"));239 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Curent Comparison Factor", null, "ComparisonFactor"));240 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Selection Pressure", null, "SelectionPressure"));241 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Success Ratio", null, "CurrentSuccessRatio"));242 resultsCollector.CollectedValues.Add(new LookupParameter<IItem>("Solution Visualization", null, VisualizationParameter.Name));243 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities"));244 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("SelectionPressures"));245 resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;246 247 selector.Name = "Selector (placeholder)";248 selector.OperatorParameter.ActualName = SelectorParameter.Name;249 250 childrenCreator.ParentsPerChild = new IntValue(2);251 252 crossover.Name = "Crossover (placeholder)";253 crossover.OperatorParameter.ActualName = CrossoverParameter.Name;254 255 osBeforeMutationBranch.Name = "Apply OS before mutation?";256 osBeforeMutationBranch.ConditionParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name;257 258 evaluator1.Name = "Evaluator (placeholder)";259 evaluator1.OperatorParameter.ActualName = EvaluatorParameter.Name;260 261 evaluationCounter1.Name = "EvaluatedSolutions++";262 evaluationCounter1.Increment = new IntValue(1);263 evaluationCounter1.ValueParameter.ActualName = "EvaluatedSolutions";264 265 qualityComparer1.ComparisonFactorParameter.ActualName = "ComparisonFactor";266 qualityComparer1.LeftSideParameter.ActualName = QualityParameter.Name;267 qualityComparer1.MaximizationParameter.ActualName = MaximizationParameter.Name;268 qualityComparer1.RightSideParameter.ActualName = QualityParameter.Name;269 qualityComparer1.ResultParameter.ActualName = "SuccessfulOffspring";270 271 mutationBranch1.ProbabilityParameter.ActualName = MutationProbabilityParameter.Name;272 mutationBranch1.RandomParameter.ActualName = RandomParameter.Name;273 274 mutator1.Name = "Mutator (placeholder)";275 mutator1.OperatorParameter.ActualName = MutatorParameter.Name;276 277 evaluator2.Name = "Evaluator (placeholder)";278 evaluator2.OperatorParameter.ActualName = EvaluatorParameter.Name;279 280 evaluationCounter2.Name = "EvaluatedSolutions++";281 evaluationCounter2.Increment = new IntValue(1);282 evaluationCounter2.ValueParameter.ActualName = "EvaluatedSolutions";283 284 mutationBranch2.ProbabilityParameter.ActualName = MutationProbabilityParameter.Name;285 mutationBranch2.RandomParameter.ActualName = RandomParameter.Name;286 287 mutator2.Name = "Mutator (placeholder)";288 mutator2.OperatorParameter.ActualName = MutatorParameter.Name;289 290 evaluator3.Name = "Evaluator (placeholder)";291 evaluator3.OperatorParameter.ActualName = EvaluatorParameter.Name;292 293 evaluationCounter3.Name = "EvaluatedSolutions++";294 evaluationCounter3.Increment = new IntValue(1);295 evaluationCounter3.ValueParameter.ActualName = "EvaluatedSolutions";296 297 qualityComparer2.ComparisonFactorParameter.ActualName = "ComparisonFactor";298 qualityComparer2.LeftSideParameter.ActualName = QualityParameter.Name;299 qualityComparer2.MaximizationParameter.ActualName = MaximizationParameter.Name;300 qualityComparer2.RightSideParameter.ActualName = QualityParameter.Name;301 qualityComparer2.ResultParameter.ActualName = "SuccessfulOffspring";302 303 subScopesRemover.RemoveAllSubScopes = true;304 305 conditionalSelector.CopySelected = new BoolValue(false);306 conditionalSelector.ConditionParameter.ActualName = "SuccessfulOffspring";307 308 offspringSelector.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio";309 offspringSelector.LuckyLosersParameter.ActualName = "OSLuckyLosers";310 offspringSelector.MaximumSelectionPressureParameter.ActualName = MaximumSelectionPressureParameter.Name;311 offspringSelector.SelectionPressureParameter.ActualName = "SelectionPressure";312 offspringSelector.SuccessRatioParameter.ActualName = SuccessRatioParameter.Name;313 offspringSelector.WinnersParameter.ActualName = "OSWinners";314 315 bestSelector.CopySelected = new BoolValue(false);316 bestSelector.MaximizationParameter.ActualName = MaximizationParameter.Name;317 bestSelector.NumberOfSelectedSubScopesParameter.ActualName = ElitesParameter.Name;318 bestSelector.QualityParameter.ActualName = QualityParameter.Name;319 320 intCounter.Increment = new IntValue(1);321 intCounter.ValueParameter.ActualName = "Generations";322 143 323 144 comparisonFactorModifier.Name = "Modify ComparisonFactor (placeholder)"; 324 145 comparisonFactorModifier.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name; 325 146 326 comparator1.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 327 comparator1.LeftSideParameter.ActualName = "Generations"; 328 comparator1.ResultParameter.ActualName = "TerminateMaximumGenerations"; 329 comparator1.RightSideParameter.ActualName = MaximumGenerationsParameter.Name; 330 331 comparator2.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 332 comparator2.LeftSideParameter.ActualName = "SelectionPressure"; 333 comparator2.ResultParameter.ActualName = "TerminateSelectionPressure"; 334 comparator2.RightSideParameter.ActualName = MaximumSelectionPressureParameter.Name; 335 336 evaluatedSolutionsAssigner.LeftSideParameter.ActualName = "EvaluatedSolutionsResult"; 337 evaluatedSolutionsAssigner.RightSideParameter.ActualName = "EvaluatedSolutions"; 338 339 evalSolCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutionsResult")); 340 evalSolCollector.ResultsParameter.ActualName = ResultsParameter.Name; 341 342 bestQualityMemorizer3.BestQualityParameter.ActualName = "BestQuality"; 343 bestQualityMemorizer3.MaximizationParameter.ActualName = MaximizationParameter.Name; 344 bestQualityMemorizer3.QualityParameter.ActualName = QualityParameter.Name; 345 346 bestQualityMemorizer4.BestQualityParameter.ActualName = BestKnownQualityParameter.Name; 347 bestQualityMemorizer4.MaximizationParameter.ActualName = MaximizationParameter.Name; 348 bestQualityMemorizer4.QualityParameter.ActualName = QualityParameter.Name; 349 350 bestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "CurrentAverageQuality"; 351 bestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "CurrentBestQuality"; 352 bestAverageWorstQualityCalculator2.MaximizationParameter.ActualName = MaximizationParameter.Name; 353 bestAverageWorstQualityCalculator2.QualityParameter.ActualName = QualityParameter.Name; 354 bestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "CurrentWorstQuality"; 355 356 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality")); 357 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality")); 358 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality")); 359 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality")); 360 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 361 dataTableValuesCollector2.DataTableParameter.ActualName = "Qualities"; 362 363 selPressDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Selection Pressure", null, "SelectionPressure")); 364 selPressDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Maximum Selection Pressure", null, MaximumSelectionPressureParameter.Name)); 365 selPressDataTableValuesCollector2.DataTableParameter.ActualName = "SelectionPressures"; 366 367 qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; 368 qualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name; 369 qualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest"; 370 qualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality"; 371 372 visualizer2.Name = "Visualizer (placeholder)"; 373 visualizer2.OperatorParameter.ActualName = VisualizerParameter.Name; 147 analyzer1.Name = "Analyzer (placeholder)"; 148 analyzer1.OperatorParameter.ActualName = AnalyzerParameter.Name; 149 150 resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations")); 151 resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions")); 152 resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Curent Comparison Factor", null, "ComparisonFactor")); 153 resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Selection Pressure", null, "SelectionPressure")); 154 resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Success Ratio", null, "CurrentSuccessRatio")); 155 resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name; 156 157 mainOperator.ComparisonFactorParameter.ActualName = "ComparisonFactor"; 158 mainOperator.CrossoverParameter.ActualName = CrossoverParameter.Name; 159 mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio"; 160 mainOperator.ElitesParameter.ActualName = ElitesParameter.Name; 161 mainOperator.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions"; 162 mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 163 mainOperator.MaximizationParameter.ActualName = MaximizationParameter.Name; 164 mainOperator.MaximumSelectionPressureParameter.ActualName = MaximumSelectionPressureParameter.Name; 165 mainOperator.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name; 166 mainOperator.MutatorParameter.ActualName = MutatorParameter.Name; 167 mainOperator.OffspringSelectionBeforeMutationParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name; 168 mainOperator.QualityParameter.ActualName = QualityParameter.Name; 169 mainOperator.RandomParameter.ActualName = RandomParameter.Name; 170 mainOperator.SelectionPressureParameter.ActualName = "SelectionPressure"; 171 mainOperator.SelectorParameter.ActualName = SelectorParameter.Name; 172 mainOperator.SuccessRatioParameter.ActualName = SuccessRatioParameter.Name; 173 174 generationsCounter.Increment = new IntValue(1); 175 generationsCounter.ValueParameter.ActualName = "Generations"; 176 177 maxGenerationsComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 178 maxGenerationsComparator.LeftSideParameter.ActualName = "Generations"; 179 maxGenerationsComparator.ResultParameter.ActualName = "TerminateMaximumGenerations"; 180 maxGenerationsComparator.RightSideParameter.ActualName = MaximumGenerationsParameter.Name; 181 182 maxSelectionPressureComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 183 maxSelectionPressureComparator.LeftSideParameter.ActualName = "SelectionPressure"; 184 maxSelectionPressureComparator.ResultParameter.ActualName = "TerminateSelectionPressure"; 185 maxSelectionPressureComparator.RightSideParameter.ActualName = MaximumSelectionPressureParameter.Name; 186 187 analyzer2.Name = "Analyzer (placeholder)"; 188 analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name; 189 190 resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Generations")); 191 resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions")); 192 resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Curent Comparison Factor", null, "ComparisonFactor")); 193 resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Selection Pressure", null, "SelectionPressure")); 194 resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Success Ratio", null, "CurrentSuccessRatio")); 195 resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name; 374 196 375 197 conditionalBranch1.Name = "MaximumSelectionPressure reached?"; … … 377 199 378 200 conditionalBranch2.Name = "MaximumGenerations reached?"; 379 conditionalBranch2.ConditionParameter.ActualName = "TerminateMaximumGenerations"; // this variable is referenced in SASEGASAMainLoop, do not change!201 conditionalBranch2.ConditionParameter.ActualName = "TerminateMaximumGenerations"; 380 202 #endregion 381 203 382 204 #region Create operator graph 383 OperatorGraph.InitialOperator = initializationBranch; 384 initializationBranch.FalseBranch = variableCreator; 385 initializationBranch.Successor = selector; 386 variableCreator.Successor = variableAssigner; 387 variableAssigner.Successor = bestQualityMemorizer1; 388 bestQualityMemorizer1.Successor = bestQualityMemorizer2; 389 bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator1; 390 bestAverageWorstQualityCalculator1.Successor = dataTableValuesCollector1; 391 dataTableValuesCollector1.Successor = selPressDataTableValuesCollector1; 392 selPressDataTableValuesCollector1.Successor = qualityDifferenceCalculator1; 393 qualityDifferenceCalculator1.Successor = visualizer1; 394 visualizer1.Successor = resultsCollector; 395 resultsCollector.Successor = null; 396 selector.Successor = subScopesProcessor1; 397 subScopesProcessor1.Operators.Add(new EmptyOperator()); 398 subScopesProcessor1.Operators.Add(childrenCreator); 399 subScopesProcessor1.Successor = offspringSelector; 400 childrenCreator.Successor = uniformSubScopesProcessor; 401 uniformSubScopesProcessor.Operator = crossover; 402 uniformSubScopesProcessor.Successor = conditionalSelector; 403 crossover.Successor = osBeforeMutationBranch; 404 osBeforeMutationBranch.TrueBranch = evaluator1; 405 osBeforeMutationBranch.FalseBranch = mutationBranch2; 406 osBeforeMutationBranch.Successor = subScopesRemover; 407 evaluator1.Successor = evaluationCounter1; 408 evaluationCounter1.Successor = qualityComparer1; 409 qualityComparer1.Successor = mutationBranch1; 410 mutationBranch1.FirstBranch = mutator1; 411 mutationBranch1.SecondBranch = null; 412 mutationBranch1.Successor = null; 413 mutator1.Successor = evaluator2; 414 evaluator2.Successor = evaluationCounter2; 415 evaluationCounter2.Successor = null; 416 mutationBranch2.FirstBranch = mutator2; 417 mutationBranch2.SecondBranch = null; 418 mutationBranch2.Successor = evaluator3; 419 mutator2.Successor = null; 420 evaluator3.Successor = evaluationCounter3; 421 evaluationCounter3.Successor = qualityComparer2; 422 subScopesRemover.Successor = null; 423 offspringSelector.OffspringCreator = selector; 424 offspringSelector.Successor = subScopesProcessor2; 425 subScopesProcessor2.Operators.Add(bestSelector); 426 subScopesProcessor2.Operators.Add(new EmptyOperator()); 427 subScopesProcessor2.Successor = mergingReducer; 428 bestSelector.Successor = rightReducer; 429 rightReducer.Successor = null; 430 mergingReducer.Successor = intCounter; 431 intCounter.Successor = comparisonFactorModifier; 432 comparisonFactorModifier.Successor = comparator1; 433 comparator1.Successor = comparator2; 434 comparator2.Successor = evaluatedSolutionsAssigner; 435 evaluatedSolutionsAssigner.Successor = evalSolCollector; 436 evalSolCollector.Successor = bestQualityMemorizer3; 437 bestQualityMemorizer3.Successor = bestQualityMemorizer4; 438 bestQualityMemorizer4.Successor = bestAverageWorstQualityCalculator2; 439 bestAverageWorstQualityCalculator2.Successor = dataTableValuesCollector2; 440 dataTableValuesCollector2.Successor = selPressDataTableValuesCollector2; 441 selPressDataTableValuesCollector2.Successor = qualityDifferenceCalculator2; 442 qualityDifferenceCalculator2.Successor = visualizer2; 443 visualizer2.Successor = conditionalBranch1; 205 OperatorGraph.InitialOperator = variableCreator; 206 variableCreator.Successor = comparisonFactorModifier; 207 comparisonFactorModifier.Successor = analyzer1; 208 analyzer1.Successor = resultsCollector1; 209 resultsCollector1.Successor = mainOperator; 210 mainOperator.Successor = generationsCounter; 211 generationsCounter.Successor = maxGenerationsComparator; 212 maxGenerationsComparator.Successor = maxSelectionPressureComparator; 213 maxSelectionPressureComparator.Successor = analyzer2; 214 analyzer2.Successor = resultsCollector2; 215 resultsCollector2.Successor = conditionalBranch1; 444 216 conditionalBranch1.FalseBranch = conditionalBranch2; 445 217 conditionalBranch1.TrueBranch = null; 446 218 conditionalBranch1.Successor = null; 447 conditionalBranch2.FalseBranch = selector;219 conditionalBranch2.FalseBranch = mainOperator; 448 220 conditionalBranch2.TrueBranch = null; 449 221 conditionalBranch2.Successor = null;
Note: See TracChangeset
for help on using the changeset viewer.