- Timestamp:
- 05/05/10 00:21:40 (15 years ago)
- Location:
- trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs
r3611 r3615 193 193 Placeholder islandVisualizer2 = new Placeholder(); 194 194 IntCounter islandEvaluatedSolutionsCounter = new IntCounter(); 195 Assigner islandEvaluatedSolutionsAssigner = new Assigner(); 195 196 Comparator islandSelectionPressureComparator = new Comparator(); 196 197 ConditionalBranch islandTerminatedBySelectionPressure2 = new ConditionalBranch(); … … 265 266 islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest")); 266 267 islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest")); 267 islandResultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "IslandEvaluatedSolutions"));268 268 islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Curent Comparison Factor", null, "ComparisonFactor")); 269 269 islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Selection Pressure", null, "SelectionPressure")); … … 372 372 islandEvaluatedSolutionsCounter.Increment = null; 373 373 islandEvaluatedSolutionsCounter.IncrementParameter.ActualName = "IslandEvaluatedSolutions"; 374 375 islandEvaluatedSolutionsAssigner.Name = "Reset EvaluatedSolutions"; 376 islandEvaluatedSolutionsAssigner.LeftSideParameter.ActualName = "IslandEvaluatedSolutions"; 377 islandEvaluatedSolutionsAssigner.RightSideParameter.Value = new IntValue(0); 374 378 375 379 islandSelectionPressureComparator.Name = "SelectionPressure >= MaximumSelectionPressure ?"; … … 510 514 islandQualityDifferenceCalculator2.Successor = islandVisualizer2; 511 515 islandVisualizer2.Successor = islandEvaluatedSolutionsCounter; 512 islandEvaluatedSolutionsCounter.Successor = islandSelectionPressureComparator; 516 islandEvaluatedSolutionsCounter.Successor = islandEvaluatedSolutionsAssigner; 517 islandEvaluatedSolutionsAssigner.Successor = islandSelectionPressureComparator; 513 518 islandSelectionPressureComparator.Successor = islandTerminatedBySelectionPressure2; 514 519 islandTerminatedBySelectionPressure2.TrueBranch = terminatedIslandsCounter; -
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs
r3490 r3615 90 90 public ValueLookupParameter<DoubleValue> SuccessRatioParameter { 91 91 get { return (ValueLookupParameter<DoubleValue>)Parameters["SuccessRatio"]; } 92 } 93 public LookupParameter<DoubleValue> ComparisonFactorParameter { 94 get { return (LookupParameter<DoubleValue>)Parameters["ComparisonFactor"]; } 92 95 } 93 96 public ValueLookupParameter<DoubleValue> ComparisonFactorLowerBoundParameter { … … 135 138 Parameters.Add(new LookupParameter<IItem>("Visualization", "The item which represents the visualization of solutions.")); 136 139 Parameters.Add(new ValueLookupParameter<DoubleValue>("SuccessRatio", "The ratio of successful to total children that should be achieved.")); 140 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].")); 137 141 Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorLowerBound", "The lower bound of the comparison factor (start).")); 138 142 Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorUpperBound", "The upper bound of the comparison factor (end).")); … … 149 153 Assigner villageCountAssigner = new Assigner(); 150 154 Assigner comparisonFactorInitializer = new Assigner(); 151 UniformSubScopesProcessor ussp0 = new UniformSubScopesProcessor(); 152 VariableCreator islandVariableCreator = new VariableCreator(); 153 Assigner islandVariableAssigner = new Assigner(); 155 UniformSubScopesProcessor uniformSubScopesProcessor0 = new UniformSubScopesProcessor(); 156 VariableCreator villageVariableCreator = new VariableCreator(); 157 BestQualityMemorizer villageBestQualityMemorizer1 = new BestQualityMemorizer(); 158 BestAverageWorstQualityCalculator villageBestAverageWorstQualityCalculator1 = new BestAverageWorstQualityCalculator(); 159 DataTableValuesCollector villageDataTableValuesCollector1 = new DataTableValuesCollector(); 160 DataTableValuesCollector villageDataTableValuesCollector2 = new DataTableValuesCollector(); 161 QualityDifferenceCalculator villageQualityDifferenceCalculator1 = new QualityDifferenceCalculator(); 162 ResultsCollector villageResultsCollector = new ResultsCollector(); 154 163 BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer(); 164 BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer(); 155 165 BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator1 = new BestAverageWorstQualityCalculator(); 156 BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer();157 BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator();158 166 DataTableValuesCollector dataTableValuesCollector1 = new DataTableValuesCollector(); 159 DataTableValuesCollector selPressValuesCollector1= new DataTableValuesCollector();167 DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector(); 160 168 QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator(); 161 169 ResultsCollector resultsCollector = new ResultsCollector(); 162 Assigner fixedReunificationStepConditionInitializer = new Assigner(); 163 UniformSubScopesProcessor ussp1 = new UniformSubScopesProcessor(); 164 // MAINLOOP 165 OffspringSelectionGeneticAlgorithmMainLoop mainLoop = new OffspringSelectionGeneticAlgorithmMainLoop(); 166 // MAINLOOP 167 Comparator sasegasaGenVillageGenComparator = new Comparator(); 168 ConditionalBranch sasegasaGenerationsUpdateBranch = new ConditionalBranch(); 169 Assigner sasegasaGenerationsUpdater = new Assigner(); 170 ConditionalBranch villageMaximumGenerationsConditionalBranch1 = new ConditionalBranch(); 171 Assigner fixedReunificationStepConditionUpdater = new Assigner(); 172 ResultsCollector sasegasaGenerationsCollector = new ResultsCollector(); 173 UniformSubScopesProcessor ussp2 = new UniformSubScopesProcessor(); 174 ConditionalBranch villageMaximumGenerationsConditionalBranch2 = new ConditionalBranch(); 175 Assigner villageMaximumGenerationsToGenerationsAssigner = new Assigner(); 176 IntCounter villageMaximumGenerationsCounter = new IntCounter(); 177 DataTableValuesCollector selPressValuesCollector2 = new DataTableValuesCollector(); 178 Comparator villageCountComparator1 = new Comparator(); 179 ConditionalBranch villageTerminationCondition1 = new ConditionalBranch(); 170 UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor(); 171 ConditionalBranch villageTerminatedBySelectionPressure1 = new ConditionalBranch(); 172 OffspringSelectionGeneticAlgorithmMainOperator mainOperator = new OffspringSelectionGeneticAlgorithmMainOperator(); 173 BestQualityMemorizer villageBestQualityMemorizer2 = new BestQualityMemorizer(); 174 BestAverageWorstQualityCalculator villageBestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator(); 175 DataTableValuesCollector villageDataTableValuesCollector3 = new DataTableValuesCollector(); 176 DataTableValuesCollector villageDataTableValuesCollector4 = new DataTableValuesCollector(); 177 QualityDifferenceCalculator villageQualityDifferenceCalculator2 = new QualityDifferenceCalculator(); 178 IntCounter evaluatedSolutionsCounter = new IntCounter(); 179 Assigner villageEvaluatedSolutionsAssigner = new Assigner(); 180 Comparator villageSelectionPressureComparator = new Comparator(); 181 ConditionalBranch villageTerminatedBySelectionPressure2 = new ConditionalBranch(); 182 IntCounter terminatedVillagesCounter = new IntCounter(); 183 IntCounter generationsCounter = new IntCounter(); 184 IntCounter generationsSinceLastReunificationCounter = new IntCounter(); 185 Comparator reunificationComparator1 = new Comparator(); 186 ConditionalBranch reunificationConditionalBranch1 = new ConditionalBranch(); 187 Comparator reunificationComparator2 = new Comparator(); 188 ConditionalBranch reunificationConditionalBranch2 = new ConditionalBranch(); 189 Comparator reunificationComparator3 = new Comparator(); 190 ConditionalBranch reunificationConditionalBranch3 = new ConditionalBranch(); 191 Assigner resetTerminatedVillagesAssigner = new Assigner(); 192 Assigner resetGenerationsSinceLastReunificationAssigner = new Assigner(); 180 193 SASEGASAReunificator reunificator = new SASEGASAReunificator(); 181 194 IntCounter reunificationCounter = new IntCounter(); 182 195 Placeholder comparisonFactorModifier = new Placeholder(); 183 Comparator villageCountComparator2 = new Comparator(); 184 ConditionalBranch villageTerminationCondition2 = new ConditionalBranch(); 196 UniformSubScopesProcessor uniformSubScopesProcessor2 = new UniformSubScopesProcessor(); 197 Assigner villageReviver = new Assigner(); 198 Comparator villageCountComparator = new Comparator(); 199 ConditionalBranch villageCountConditionalBranch = new ConditionalBranch(); 185 200 Assigner finalMaxSelPressAssigner = new Assigner(); 186 201 Comparator maximumGenerationsComparator = new Comparator(); 187 202 BestQualityMemorizer bestQualityMemorizer3 = new BestQualityMemorizer(); 188 BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator3 = new BestAverageWorstQualityCalculator(); 189 DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector(); 203 BestQualityMemorizer bestQualityMemorizer4 = new BestQualityMemorizer(); 204 BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator(); 205 DataTableValuesCollector dataTableValuesCollector3 = new DataTableValuesCollector(); 206 DataTableValuesCollector dataTableValuesCollector4 = new DataTableValuesCollector(); 190 207 QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator(); 191 ConditionalBranch villagesTerminationCondition3= new ConditionalBranch();208 ConditionalBranch terminationCondition = new ConditionalBranch(); 192 209 ConditionalBranch maximumGenerationsTerminationCondition = new ConditionalBranch(); 193 210 194 // The generations of SASEGASA progress with the generations of its villages 195 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("SASEGASAGenerations", new IntValue(0))); 211 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Reunifications", new IntValue(0))); 212 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); 213 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("GenerationsSinceLastReunification", new IntValue(0))); 214 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutions", new IntValue(0))); 215 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("TerminatedVillages", new IntValue(0))); 196 216 197 217 villageCountAssigner.LeftSideParameter.ActualName = "VillageCount"; … … 204 224 comparisonFactorInitializer.RightSideParameter.ActualName = ComparisonFactorLowerBoundParameter.Name; 205 225 206 islandVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("VillageResults", new ResultCollection())); 207 islandVariableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("SelectionPressure", new DoubleValue(0))); 208 209 islandVariableAssigner.LeftSideParameter.ActualName = "VillageMaximumGenerations"; 210 islandVariableAssigner.RightSideParameter.ActualName = MigrationIntervalParameter.Name; 226 villageVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("VillageResults", new ResultCollection())); 227 villageVariableCreator.CollectedValues.Add(new ValueParameter<IntValue>("VillageEvaluatedSolutions", new IntValue(0))); 228 villageVariableCreator.CollectedValues.Add(new ValueParameter<BoolValue>("TerminateSelectionPressure", new BoolValue(false))); 229 villageVariableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("SelectionPressure", new DoubleValue(0))); 230 villageVariableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("CurrentSuccessRatio", new DoubleValue(0))); 231 232 villageBestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality"; 233 villageBestQualityMemorizer1.MaximizationParameter.ActualName = MaximizationParameter.Name; 234 villageBestQualityMemorizer1.QualityParameter.ActualName = QualityParameter.Name; 235 236 villageBestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageQuality"; 237 villageBestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestQuality"; 238 villageBestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = MaximizationParameter.Name; 239 villageBestAverageWorstQualityCalculator1.QualityParameter.ActualName = QualityParameter.Name; 240 villageBestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstQuality"; 241 242 villageDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestQuality")); 243 villageDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average BestQuality", null, "CurrentAverageQuality")); 244 villageDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst BestQuality", null, "CurrentWorstQuality")); 245 villageDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality")); 246 villageDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 247 villageDataTableValuesCollector1.DataTableParameter.ActualName = "Qualities"; 248 249 villageDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Selection Pressure", null, "SelectionPressure")); 250 villageDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Maximum Selection Pressure", null, "MaximumSelectionPressure")); 251 villageDataTableValuesCollector2.DataTableParameter.ActualName = "SelectionPressures"; 252 253 villageQualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; 254 villageQualityDifferenceCalculator1.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name; 255 villageQualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest"; 256 villageQualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality"; 257 258 villageResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Success Ratio", null, "CurrentSuccessRatio")); 259 villageResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality")); 260 villageResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality")); 261 villageResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality")); 262 villageResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality")); 263 villageResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 264 villageResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest")); 265 villageResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest")); 266 villageResultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities")); 267 villageResultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("SelectionPressures")); 268 villageResultsCollector.ResultsParameter.ActualName = "VillageResults"; 211 269 212 270 bestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality"; 213 271 bestQualityMemorizer1.MaximizationParameter.ActualName = MaximizationParameter.Name; 214 bestQualityMemorizer1.QualityParameter.ActualName = QualityParameter.Name; 215 216 bestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageQuality"; 217 bestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestQuality"; 218 bestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = MaximizationParameter.Name; 219 bestAverageWorstQualityCalculator1.QualityParameter.ActualName = QualityParameter.Name; 220 bestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstQuality"; 221 222 bestQualityMemorizer2.BestQualityParameter.ActualName = "BestQuality"; 272 bestQualityMemorizer1.QualityParameter.ActualName = "BestQuality"; 273 274 bestQualityMemorizer2.BestQualityParameter.ActualName = BestKnownQualityParameter.Name; 223 275 bestQualityMemorizer2.MaximizationParameter.ActualName = MaximizationParameter.Name; 224 276 bestQualityMemorizer2.QualityParameter.ActualName = "BestQuality"; 225 277 226 bestAverageWorstQualityCalculator 2.AverageQualityParameter.ActualName = "CurrentAverageBestQuality";227 bestAverageWorstQualityCalculator 2.BestQualityParameter.ActualName = "CurrentBestBestQuality";228 bestAverageWorstQualityCalculator 2.MaximizationParameter.ActualName = MaximizationParameter.Name;229 bestAverageWorstQualityCalculator 2.QualityParameter.ActualName = "CurrentBestQuality";230 bestAverageWorstQualityCalculator 2.WorstQualityParameter.ActualName = "CurrentWorstBestQuality";278 bestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageBestQuality"; 279 bestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestBestQuality"; 280 bestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = MaximizationParameter.Name; 281 bestAverageWorstQualityCalculator1.QualityParameter.ActualName = "CurrentBestQuality"; 282 bestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstBestQuality"; 231 283 232 284 dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestBestQuality")); … … 237 289 dataTableValuesCollector1.DataTableParameter.ActualName = "BestQualities"; 238 290 239 selPressValuesCollector1.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Selection Pressure Village", null, "SelectionPressure")); 240 selPressValuesCollector1.DataTableParameter.ActualName = "VillagesSelectionPressures"; 291 dataTableValuesCollector2.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Selection Pressure Village", null, "SelectionPressure")); 292 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Maximum Selection Pressure", null, "MaximumSelectionPressure")); 293 dataTableValuesCollector2.DataTableParameter.ActualName = "VillageSelectionPressures"; 241 294 242 295 qualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; … … 245 298 qualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality"; 246 299 247 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations", null, "SASEGASAGenerations")); 248 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Current Villages", null, "VillageCount")); 300 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations")); 301 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions")); 302 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Active Villages", null, "VillageCount")); 249 303 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestBestQuality")); 250 304 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average BestQuality", null, "CurrentAverageBestQuality")); … … 255 309 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest")); 256 310 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("BestQualities")); 257 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Village sSelectionPressures"));311 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("VillageSelectionPressures")); 258 312 resultsCollector.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("VillageResults", "Result set for each village")); 259 313 resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name; 260 314 261 fixedReunificationStepConditionInitializer.LeftSideParameter.ActualName = "PerformFixedReunification"; 262 fixedReunificationStepConditionInitializer.RightSideParameter.Value = new BoolValue(false); 263 264 mainLoop.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name; 265 mainLoop.MaximizationParameter.ActualName = MaximizationParameter.Name; 266 mainLoop.QualityParameter.ActualName = QualityParameter.Name; 267 mainLoop.SelectorParameter.ActualName = SelectorParameter.Name; 268 mainLoop.CrossoverParameter.ActualName = CrossoverParameter.Name; 269 mainLoop.ElitesParameter.ActualName = ElitesParameter.Name; 270 mainLoop.MaximumGenerationsParameter.ActualName = "VillageMaximumGenerations"; 271 mainLoop.MutatorParameter.ActualName = MutatorParameter.Name; 272 mainLoop.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 273 mainLoop.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name; 274 mainLoop.RandomParameter.ActualName = RandomParameter.Name; 275 mainLoop.ResultsParameter.ActualName = "VillageResults"; 276 mainLoop.VisualizerParameter.ActualName = VisualizerParameter.Name; 277 mainLoop.VisualizationParameter.ActualName = VisualizationParameter.Name; 278 mainLoop.SuccessRatioParameter.ActualName = SuccessRatioParameter.Name; 279 mainLoop.ComparisonFactorLowerBoundParameter.ActualName = ComparisonFactorLowerBoundParameter.Name; 280 mainLoop.ComparisonFactorModifierParameter.Value = new EmptyOperator(); // comparison factor is modified here 281 mainLoop.ComparisonFactorUpperBoundParameter.ActualName = ComparisonFactorUpperBoundParameter.Name; 282 mainLoop.MaximumSelectionPressureParameter.ActualName = "CurrentMaximumSelectionPressure"; 283 mainLoop.OffspringSelectionBeforeMutationParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name; 284 285 // SASEGASAGenerations is the maximum of all village generations 286 sasegasaGenVillageGenComparator.LeftSideParameter.ActualName = "SASEGASAGenerations"; 287 sasegasaGenVillageGenComparator.RightSideParameter.ActualName = "Generations"; 288 sasegasaGenVillageGenComparator.Comparison = new Comparison(ComparisonType.Less); 289 sasegasaGenVillageGenComparator.ResultParameter.ActualName = "UpdateSASEGASAGenerations"; 290 291 sasegasaGenerationsUpdateBranch.ConditionParameter.ActualName = "UpdateSASEGASAGenerations"; 292 293 sasegasaGenerationsUpdater.LeftSideParameter.ActualName = "SASEGASAGenerations"; 294 sasegasaGenerationsUpdater.RightSideParameter.ActualName = "Generations"; 295 296 // check if the village has terminated due to reaching maximum generations (in that case we need to increase in each village the maximum generations by the migration interval) 297 villageMaximumGenerationsConditionalBranch1.ConditionParameter.ActualName = "TerminateMaximumGenerations"; 298 299 fixedReunificationStepConditionUpdater.LeftSideParameter.ActualName = "PerformFixedReunification"; 300 fixedReunificationStepConditionUpdater.RightSideParameter.Value = new BoolValue(true); 301 302 sasegasaGenerationsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations", null, "SASEGASAGenerations")); 303 304 villageMaximumGenerationsConditionalBranch2.ConditionParameter.ActualName = "PerformFixedReunification"; 305 306 // if the village terminated because of maximum generations first set the maxgen of a village back to its generation 307 villageMaximumGenerationsToGenerationsAssigner.LeftSideParameter.ActualName = "VillageMaximumGenerations"; 308 villageMaximumGenerationsToGenerationsAssigner.RightSideParameter.ActualName = "Generations"; 309 310 // if the village terminated because of maximum generations and then increase the maximum generations by the fixed migration interval 311 villageMaximumGenerationsCounter.ValueParameter.ActualName = "VillageMaximumGenerations"; 312 villageMaximumGenerationsCounter.Increment = null; 313 villageMaximumGenerationsCounter.IncrementParameter.ActualName = "MigrationInterval"; 314 315 selPressValuesCollector2.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Selection Pressure Village", null, "SelectionPressure")); 316 selPressValuesCollector2.DataTableParameter.ActualName = "VillagesSelectionPressures"; 317 318 // if there's just one island left and we're getting to this point SASEGASA terminates 319 villageCountComparator1.Name = "VillageCount <= 1 ?"; 320 villageCountComparator1.LeftSideParameter.ActualName = "VillageCount"; 321 villageCountComparator1.RightSideParameter.Value = new IntValue(1); 322 villageCountComparator1.Comparison.Value = ComparisonType.LessOrEqual; 323 villageCountComparator1.ResultParameter.ActualName = "TerminateVillages"; 324 325 villageTerminationCondition1.Name = "Skip reunification?"; 326 villageTerminationCondition1.ConditionParameter.ActualName = "TerminateVillages"; 315 villageTerminatedBySelectionPressure1.Name = "Village Terminated ?"; 316 villageTerminatedBySelectionPressure1.ConditionParameter.ActualName = "TerminateSelectionPressure"; 317 318 mainOperator.ComparisonFactorParameter.ActualName = ComparisonFactorParameter.Name; 319 mainOperator.CrossoverParameter.ActualName = CrossoverParameter.Name; 320 mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio"; 321 mainOperator.ElitesParameter.ActualName = ElitesParameter.Name; 322 mainOperator.EvaluatedSolutionsParameter.ActualName = "VillageEvaluatedSolutions"; 323 mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 324 mainOperator.MaximizationParameter.ActualName = MaximizationParameter.Name; 325 mainOperator.MaximumSelectionPressureParameter.ActualName = "CurrentMaximumSelectionPressure"; 326 mainOperator.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name; 327 mainOperator.MutatorParameter.ActualName = MutatorParameter.Name; 328 mainOperator.OffspringSelectionBeforeMutationParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name; 329 mainOperator.QualityParameter.ActualName = QualityParameter.Name; 330 mainOperator.RandomParameter.ActualName = RandomParameter.Name; 331 mainOperator.SelectionPressureParameter.ActualName = "SelectionPressure"; 332 mainOperator.SelectorParameter.ActualName = SelectorParameter.Name; 333 mainOperator.SuccessRatioParameter.ActualName = SuccessRatioParameter.Name; 334 335 villageBestQualityMemorizer2.BestQualityParameter.ActualName = "BestQuality"; 336 villageBestQualityMemorizer2.MaximizationParameter.ActualName = MaximizationParameter.Name; 337 villageBestQualityMemorizer2.QualityParameter.ActualName = QualityParameter.Name; 338 339 villageBestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "CurrentAverageQuality"; 340 villageBestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "CurrentBestQuality"; 341 villageBestAverageWorstQualityCalculator2.MaximizationParameter.ActualName = MaximizationParameter.Name; 342 villageBestAverageWorstQualityCalculator2.QualityParameter.ActualName = QualityParameter.Name; 343 villageBestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "CurrentWorstQuality"; 344 345 villageDataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestQuality")); 346 villageDataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average BestQuality", null, "CurrentAverageQuality")); 347 villageDataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst BestQuality", null, "CurrentWorstQuality")); 348 villageDataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality")); 349 villageDataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 350 villageDataTableValuesCollector3.DataTableParameter.ActualName = "Qualities"; 351 352 villageDataTableValuesCollector4.CollectedValues.Add(new LookupParameter<DoubleValue>("Selection Pressure", null, "SelectionPressure")); 353 villageDataTableValuesCollector4.CollectedValues.Add(new LookupParameter<DoubleValue>("Maximum Selection Pressure", null, "MaximumSelectionPressure")); 354 villageDataTableValuesCollector4.DataTableParameter.ActualName = "SelectionPressures"; 355 356 villageQualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; 357 villageQualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name; 358 villageQualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest"; 359 villageQualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality"; 360 361 evaluatedSolutionsCounter.Name = "Update EvaluatedSolutions"; 362 evaluatedSolutionsCounter.ValueParameter.ActualName = "EvaluatedSolutions"; 363 evaluatedSolutionsCounter.Increment = null; 364 evaluatedSolutionsCounter.IncrementParameter.ActualName = "VillageEvaluatedSolutions"; 365 366 villageEvaluatedSolutionsAssigner.Name = "Reset EvaluatedSolutions"; 367 villageEvaluatedSolutionsAssigner.LeftSideParameter.ActualName = "VillageEvaluatedSolutions"; 368 villageEvaluatedSolutionsAssigner.RightSideParameter.Value = new IntValue(0); 369 370 villageSelectionPressureComparator.Name = "SelectionPressure >= MaximumSelectionPressure ?"; 371 villageSelectionPressureComparator.LeftSideParameter.ActualName = "SelectionPressure"; 372 villageSelectionPressureComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 373 villageSelectionPressureComparator.RightSideParameter.ActualName = MaximumSelectionPressureParameter.Name; 374 villageSelectionPressureComparator.ResultParameter.ActualName = "TerminateSelectionPressure"; 375 376 villageTerminatedBySelectionPressure2.Name = "Village Terminated ?"; 377 villageTerminatedBySelectionPressure2.ConditionParameter.ActualName = "TerminateSelectionPressure"; 378 379 terminatedVillagesCounter.Name = "TerminatedVillages + 1"; 380 terminatedVillagesCounter.ValueParameter.ActualName = "TerminatedVillages"; 381 terminatedVillagesCounter.Increment = new IntValue(1); 382 383 generationsCounter.Name = "Generations + 1"; 384 generationsCounter.ValueParameter.ActualName = "Generations"; 385 generationsCounter.Increment = new IntValue(1); 386 387 generationsSinceLastReunificationCounter.Name = "GenerationsSinceLastReunification + 1"; 388 generationsSinceLastReunificationCounter.ValueParameter.ActualName = "GenerationsSinceLastReunification"; 389 generationsSinceLastReunificationCounter.Increment = new IntValue(1); 390 391 reunificationComparator1.Name = "TerminatedVillages = VillageCount ?"; 392 reunificationComparator1.LeftSideParameter.ActualName = "TerminatedVillages"; 393 reunificationComparator1.Comparison = new Comparison(ComparisonType.Equal); 394 reunificationComparator1.RightSideParameter.ActualName = "VillageCount"; 395 reunificationComparator1.ResultParameter.ActualName = "Reunificate"; 396 397 reunificationConditionalBranch1.Name = "Reunificate ?"; 398 reunificationConditionalBranch1.ConditionParameter.ActualName = "Reunificate"; 399 400 reunificationComparator2.Name = "GenerationsSinceLastReunification = MigrationInterval ?"; 401 reunificationComparator2.LeftSideParameter.ActualName = "GenerationsSinceLastReunification"; 402 reunificationComparator2.Comparison = new Comparison(ComparisonType.Equal); 403 reunificationComparator2.RightSideParameter.ActualName = "MigrationInterval"; 404 reunificationComparator2.ResultParameter.ActualName = "Reunificate"; 405 406 reunificationConditionalBranch2.Name = "Reunificate ?"; 407 reunificationConditionalBranch2.ConditionParameter.ActualName = "Reunificate"; 408 409 // if there's just one village left and we're getting to this point SASEGASA terminates 410 reunificationComparator3.Name = "VillageCount <= 1 ?"; 411 reunificationComparator3.LeftSideParameter.ActualName = "VillageCount"; 412 reunificationComparator3.RightSideParameter.Value = new IntValue(1); 413 reunificationComparator3.Comparison.Value = ComparisonType.LessOrEqual; 414 reunificationComparator3.ResultParameter.ActualName = "TerminateSASEGASA"; 415 416 reunificationConditionalBranch3.Name = "Skip reunification?"; 417 reunificationConditionalBranch3.ConditionParameter.ActualName = "TerminateSASEGASA"; 418 419 resetTerminatedVillagesAssigner.Name = "Reset TerminatedVillages"; 420 resetTerminatedVillagesAssigner.LeftSideParameter.ActualName = "TerminatedVillages"; 421 resetTerminatedVillagesAssigner.RightSideParameter.Value = new IntValue(0); 422 423 resetGenerationsSinceLastReunificationAssigner.Name = "Reset GenerationsSinceLastReunification"; 424 resetGenerationsSinceLastReunificationAssigner.LeftSideParameter.ActualName = "GenerationsSinceLastReunification"; 425 resetGenerationsSinceLastReunificationAssigner.RightSideParameter.Value = new IntValue(0); 327 426 328 427 reunificator.VillageCountParameter.ActualName = "VillageCount"; … … 333 432 comparisonFactorModifier.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name; 334 433 335 villageCountComparator2.Name = "VillageCount == 1 ?"; 336 villageCountComparator2.LeftSideParameter.ActualName = "VillageCount"; 337 villageCountComparator2.RightSideParameter.Value = new IntValue(1); 338 villageCountComparator2.Comparison.Value = ComparisonType.Equal; 339 villageCountComparator2.ResultParameter.ActualName = "ChangeMaxSelPress"; 340 341 villageTerminationCondition2.Name = "Change max selection pressure?"; 342 villageTerminationCondition2.ConditionParameter.ActualName = "ChangeMaxSelPress"; 434 villageReviver.Name = "Village Reviver"; 435 villageReviver.LeftSideParameter.ActualName = "TerminateSelectionPressure"; 436 villageReviver.RightSideParameter.Value = new BoolValue(false); 437 438 villageCountComparator.Name = "VillageCount == 1 ?"; 439 villageCountComparator.LeftSideParameter.ActualName = "VillageCount"; 440 villageCountComparator.RightSideParameter.Value = new IntValue(1); 441 villageCountComparator.Comparison.Value = ComparisonType.Equal; 442 villageCountComparator.ResultParameter.ActualName = "ChangeMaxSelPress"; 443 444 villageCountConditionalBranch.Name = "Change max selection pressure?"; 445 villageCountConditionalBranch.ConditionParameter.ActualName = "ChangeMaxSelPress"; 343 446 344 447 finalMaxSelPressAssigner.LeftSideParameter.ActualName = "CurrentMaximumSelectionPressure"; 345 448 finalMaxSelPressAssigner.RightSideParameter.ActualName = FinalMaximumSelectionPressureParameter.Name; 346 449 347 // if SASEGASAGenerations is reaching MaximumGenerations we're also terminating348 maximumGenerationsComparator.LeftSideParameter.ActualName = " SASEGASAGenerations";450 // if Generations is reaching MaximumGenerations we're also terminating 451 maximumGenerationsComparator.LeftSideParameter.ActualName = "Generations"; 349 452 maximumGenerationsComparator.RightSideParameter.ActualName = MaximumGenerationsParameter.Name; 350 453 maximumGenerationsComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual); … … 355 458 bestQualityMemorizer3.QualityParameter.ActualName = "BestQuality"; 356 459 357 bestAverageWorstQualityCalculator3.AverageQualityParameter.ActualName = "CurrentAverageBestQuality"; 358 bestAverageWorstQualityCalculator3.BestQualityParameter.ActualName = "CurrentBestBestQuality"; 359 bestAverageWorstQualityCalculator3.MaximizationParameter.ActualName = MaximizationParameter.Name; 360 bestAverageWorstQualityCalculator3.QualityParameter.ActualName = "CurrentBestQuality"; 361 bestAverageWorstQualityCalculator3.WorstQualityParameter.ActualName = "CurrentWorstBestQuality"; 362 363 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestBestQuality")); 364 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average BestQuality", null, "CurrentAverageBestQuality")); 365 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst BestQuality", null, "CurrentWorstBestQuality")); 366 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality")); 367 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 368 dataTableValuesCollector2.DataTableParameter.ActualName = "BestQualities"; 460 bestQualityMemorizer4.BestQualityParameter.ActualName = "BestQuality"; 461 bestQualityMemorizer4.MaximizationParameter.ActualName = MaximizationParameter.Name; 462 bestQualityMemorizer4.QualityParameter.ActualName = "BestQuality"; 463 464 bestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "CurrentAverageBestQuality"; 465 bestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "CurrentBestBestQuality"; 466 bestAverageWorstQualityCalculator2.MaximizationParameter.ActualName = MaximizationParameter.Name; 467 bestAverageWorstQualityCalculator2.QualityParameter.ActualName = "CurrentBestQuality"; 468 bestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "CurrentWorstBestQuality"; 469 470 dataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestBestQuality")); 471 dataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average BestQuality", null, "CurrentAverageBestQuality")); 472 dataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst BestQuality", null, "CurrentWorstBestQuality")); 473 dataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality")); 474 dataTableValuesCollector3.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 475 dataTableValuesCollector3.DataTableParameter.ActualName = "BestQualities"; 476 477 dataTableValuesCollector4.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Selection Pressure Village", null, "SelectionPressure")); 478 dataTableValuesCollector4.CollectedValues.Add(new LookupParameter<DoubleValue>("Maximum Selection Pressure", null, "MaximumSelectionPressure")); 479 dataTableValuesCollector4.DataTableParameter.ActualName = "VillageSelectionPressures"; 369 480 370 481 qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; … … 373 484 qualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality"; 374 485 375 villagesTerminationCondition3.ConditionParameter.ActualName = "TerminateVillages";376 villageMaximumGenerationsConditionalBranch1.ConditionParameter.ActualName = "TerminateMaximumGenerations";486 terminationCondition.ConditionParameter.ActualName = "TerminateSASEGASA"; 487 maximumGenerationsTerminationCondition.ConditionParameter.ActualName = "TerminateMaximumGenerations"; 377 488 #endregion 378 489 379 490 #region Create operator graph 380 491 OperatorGraph.InitialOperator = variableCreator; 381 variableCreator.Successor = villageCountAssigner; 382 villageCountAssigner.Successor = maxSelPressAssigner; 383 maxSelPressAssigner.Successor = comparisonFactorInitializer; 384 comparisonFactorInitializer.Successor = ussp0; 385 ussp0.Operator = islandVariableCreator; 386 ussp0.Successor = bestQualityMemorizer2; 387 islandVariableCreator.Successor = islandVariableAssigner; 388 islandVariableAssigner.Successor = bestQualityMemorizer1; 389 bestQualityMemorizer1.Successor = bestAverageWorstQualityCalculator1; 390 bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator2; 391 bestAverageWorstQualityCalculator2.Successor = dataTableValuesCollector1; 392 dataTableValuesCollector1.Successor = selPressValuesCollector1; 393 selPressValuesCollector1.Successor = qualityDifferenceCalculator1; 492 variableCreator.Successor = maxSelPressAssigner; 493 maxSelPressAssigner.Successor = villageCountAssigner; 494 villageCountAssigner.Successor = comparisonFactorInitializer; 495 comparisonFactorInitializer.Successor = uniformSubScopesProcessor0; 496 uniformSubScopesProcessor0.Operator = villageVariableCreator; 497 uniformSubScopesProcessor0.Successor = bestQualityMemorizer1; 498 villageVariableCreator.Successor = villageBestQualityMemorizer1; 499 villageBestQualityMemorizer1.Successor = villageBestAverageWorstQualityCalculator1; 500 villageBestAverageWorstQualityCalculator1.Successor = villageDataTableValuesCollector1; 501 villageDataTableValuesCollector1.Successor = villageDataTableValuesCollector2; 502 villageDataTableValuesCollector2.Successor = villageQualityDifferenceCalculator1; 503 villageQualityDifferenceCalculator1.Successor = villageResultsCollector; 504 bestQualityMemorizer1.Successor = bestQualityMemorizer2; 505 bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator1; 506 bestAverageWorstQualityCalculator1.Successor = dataTableValuesCollector1; 507 dataTableValuesCollector1.Successor = dataTableValuesCollector2; 508 dataTableValuesCollector2.Successor = qualityDifferenceCalculator1; 394 509 qualityDifferenceCalculator1.Successor = resultsCollector; 395 resultsCollector.Successor = fixedReunificationStepConditionInitializer; 396 fixedReunificationStepConditionInitializer.Successor = ussp1; 397 ussp1.Operator = mainLoop; 398 ussp1.Successor = sasegasaGenerationsCollector; 399 mainLoop.Successor = sasegasaGenVillageGenComparator; 400 sasegasaGenVillageGenComparator.Successor = sasegasaGenerationsUpdateBranch; 401 sasegasaGenerationsUpdateBranch.TrueBranch = sasegasaGenerationsUpdater; 402 sasegasaGenerationsUpdateBranch.FalseBranch = null; 403 sasegasaGenerationsUpdateBranch.Successor = villageMaximumGenerationsConditionalBranch1; 404 villageMaximumGenerationsConditionalBranch1.TrueBranch = fixedReunificationStepConditionUpdater; 405 villageMaximumGenerationsConditionalBranch1.FalseBranch = null; 406 villageMaximumGenerationsConditionalBranch1.Successor = null; 407 sasegasaGenerationsCollector.Successor = ussp2; 408 ussp2.Operator = villageMaximumGenerationsConditionalBranch2; 409 ussp2.Successor = selPressValuesCollector2; 410 villageMaximumGenerationsConditionalBranch2.TrueBranch = villageMaximumGenerationsToGenerationsAssigner; 411 villageMaximumGenerationsConditionalBranch2.FalseBranch = null; 412 villageMaximumGenerationsConditionalBranch2.Successor = null; 413 villageMaximumGenerationsToGenerationsAssigner.Successor = villageMaximumGenerationsCounter; 414 villageMaximumGenerationsCounter.Successor = null; 415 selPressValuesCollector2.Successor = villageCountComparator1; 416 villageCountComparator1.Successor = villageTerminationCondition1; 417 villageTerminationCondition1.TrueBranch = null; 418 villageTerminationCondition1.FalseBranch = reunificator; 419 villageTerminationCondition1.Successor = maximumGenerationsComparator; 510 resultsCollector.Successor = uniformSubScopesProcessor1; 511 uniformSubScopesProcessor1.Operator = villageTerminatedBySelectionPressure1; 512 uniformSubScopesProcessor1.Successor = generationsCounter; 513 villageTerminatedBySelectionPressure1.TrueBranch = null; 514 villageTerminatedBySelectionPressure1.FalseBranch = mainOperator; 515 villageTerminatedBySelectionPressure1.Successor = null; 516 mainOperator.Successor = villageBestQualityMemorizer2; 517 villageBestQualityMemorizer2.Successor = villageBestAverageWorstQualityCalculator2; 518 villageBestAverageWorstQualityCalculator2.Successor = villageDataTableValuesCollector3; 519 villageDataTableValuesCollector3.Successor = villageDataTableValuesCollector4; 520 villageDataTableValuesCollector4.Successor = villageQualityDifferenceCalculator2; 521 villageQualityDifferenceCalculator2.Successor = evaluatedSolutionsCounter; 522 evaluatedSolutionsCounter.Successor = villageEvaluatedSolutionsAssigner; 523 villageEvaluatedSolutionsAssigner.Successor = villageSelectionPressureComparator; 524 villageSelectionPressureComparator.Successor = villageTerminatedBySelectionPressure2; 525 villageTerminatedBySelectionPressure2.TrueBranch = terminatedVillagesCounter; 526 villageTerminatedBySelectionPressure2.FalseBranch = null; 527 villageTerminatedBySelectionPressure2.Successor = null; 528 terminatedVillagesCounter.Successor = null; 529 generationsCounter.Successor = generationsSinceLastReunificationCounter; 530 generationsSinceLastReunificationCounter.Successor = reunificationComparator1; 531 reunificationComparator1.Successor = reunificationConditionalBranch1; 532 reunificationConditionalBranch1.TrueBranch = reunificationComparator3; 533 reunificationConditionalBranch1.FalseBranch = reunificationComparator2; 534 reunificationConditionalBranch1.Successor = maximumGenerationsComparator; 535 reunificationComparator2.Successor = reunificationConditionalBranch2; 536 reunificationConditionalBranch2.TrueBranch = reunificationComparator3; 537 reunificationConditionalBranch2.FalseBranch = null; 538 reunificationConditionalBranch2.Successor = null; 539 reunificationComparator3.Successor = reunificationConditionalBranch3; 540 reunificationConditionalBranch3.TrueBranch = null; 541 reunificationConditionalBranch3.FalseBranch = resetTerminatedVillagesAssigner; 542 reunificationConditionalBranch3.Successor = null; 543 resetTerminatedVillagesAssigner.Successor = resetGenerationsSinceLastReunificationAssigner; 544 resetGenerationsSinceLastReunificationAssigner.Successor = reunificator; 420 545 reunificator.Successor = reunificationCounter; 421 546 reunificationCounter.Successor = comparisonFactorModifier; 422 comparisonFactorModifier.Successor = villageCountComparator2; 423 villageCountComparator2.Successor = villageTerminationCondition2; 424 villageTerminationCondition2.TrueBranch = finalMaxSelPressAssigner; 425 villageTerminationCondition2.FalseBranch = null; 426 villageTerminationCondition2.Successor = null; 547 comparisonFactorModifier.Successor = uniformSubScopesProcessor2; 548 uniformSubScopesProcessor2.Operator = villageReviver; 549 uniformSubScopesProcessor2.Successor = villageCountComparator; 550 villageReviver.Successor = null; 551 villageCountComparator.Successor = villageCountConditionalBranch; 552 villageCountConditionalBranch.TrueBranch = finalMaxSelPressAssigner; 553 villageCountConditionalBranch.FalseBranch = null; 554 villageCountConditionalBranch.Successor = null; 427 555 finalMaxSelPressAssigner.Successor = null; 428 556 maximumGenerationsComparator.Successor = bestQualityMemorizer3; 429 bestQualityMemorizer3.Successor = bestAverageWorstQualityCalculator3; 430 bestAverageWorstQualityCalculator3.Successor = dataTableValuesCollector2; 431 dataTableValuesCollector2.Successor = qualityDifferenceCalculator2; 432 qualityDifferenceCalculator2.Successor = villagesTerminationCondition3; 433 villagesTerminationCondition3.FalseBranch = maximumGenerationsTerminationCondition; 434 villagesTerminationCondition3.TrueBranch = null; 435 villagesTerminationCondition3.Successor = null; 436 maximumGenerationsTerminationCondition.FalseBranch = fixedReunificationStepConditionInitializer; 557 bestQualityMemorizer3.Successor = bestQualityMemorizer4; 558 bestQualityMemorizer4.Successor = bestAverageWorstQualityCalculator2; 559 bestAverageWorstQualityCalculator2.Successor = dataTableValuesCollector3; 560 dataTableValuesCollector3.Successor = dataTableValuesCollector4; 561 dataTableValuesCollector4.Successor = qualityDifferenceCalculator2; 562 qualityDifferenceCalculator2.Successor = terminationCondition; 563 terminationCondition.TrueBranch = null; 564 terminationCondition.FalseBranch = maximumGenerationsTerminationCondition; 565 terminationCondition.Successor = null; 437 566 maximumGenerationsTerminationCondition.TrueBranch = null; 567 maximumGenerationsTerminationCondition.FalseBranch = uniformSubScopesProcessor1; 438 568 maximumGenerationsTerminationCondition.Successor = null; 439 569 #endregion
Note: See TracChangeset
for help on using the changeset viewer.