- Timestamp:
- 04/22/10 16:34:44 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs
r3479 r3489 155 155 QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator(); 156 156 ResultsCollector resultsCollector = new ResultsCollector(); 157 Assigner fixedReunificationStepConditionInitializer = new Assigner(); 157 158 UniformSubScopesProcessor ussp1 = new UniformSubScopesProcessor(); 159 // MAINLOOP 158 160 OffspringSelectionGeneticAlgorithmMainLoop mainLoop = new OffspringSelectionGeneticAlgorithmMainLoop(); 159 UniformSubScopesProcessor ussp2 = new UniformSubScopesProcessor();161 // MAINLOOP 160 162 Comparator sasegasaGenVillageGenComparator = new Comparator(); 161 163 ConditionalBranch sasegasaGenerationsUpdateBranch = new ConditionalBranch(); 162 164 Assigner sasegasaGenerationsUpdater = new Assigner(); 163 ConditionalBranch villageMaximumGenerationsConditionalBranch = new ConditionalBranch(); 165 ConditionalBranch villageMaximumGenerationsConditionalBranch1 = new ConditionalBranch(); 166 Assigner fixedReunificationStepConditionUpdater = new Assigner(); 167 ResultsCollector sasegasaGenerationsCollector = new ResultsCollector(); 168 UniformSubScopesProcessor ussp2 = new UniformSubScopesProcessor(); 169 ConditionalBranch villageMaximumGenerationsConditionalBranch2 = new ConditionalBranch(); 170 Assigner villageMaximumGenerationsToGenerationsAssigner = new Assigner(); 164 171 IntCounter villageMaximumGenerationsCounter = new IntCounter(); 172 DataTableValuesCollector selPressValuesCollector2 = new DataTableValuesCollector(); 165 173 Comparator villageCountComparator = new Comparator(); 166 174 ConditionalBranch villageTerminationCondition0 = new ConditionalBranch(); … … 172 180 BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator3 = new BestAverageWorstQualityCalculator(); 173 181 DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector(); 174 DataTableValuesCollector selPressValuesCollector2 = new DataTableValuesCollector();175 182 QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator(); 176 183 ConditionalBranch villagesTerminationCondition = new ConditionalBranch(); … … 240 247 resultsCollector.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("VillageResults", "Result set for each village")); 241 248 resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name; 249 250 fixedReunificationStepConditionInitializer.LeftSideParameter.ActualName = "PerformFixedReunification"; 251 fixedReunificationStepConditionInitializer.RightSideParameter.Value = new BoolValue(false); 242 252 243 253 mainLoop.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name; … … 273 283 sasegasaGenerationsUpdater.RightSideParameter.ActualName = "Generations"; 274 284 275 // check if the village has terminated due to reaching maximum generations (in that case we need to increase maximum generations by the migration interval) 276 villageMaximumGenerationsConditionalBranch.ConditionParameter.ActualName = "TerminateMaximumGenerations"; 277 278 // if the village terminated because of maximum generations (inter-migration period) its maximum generations are updated 285 // 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) 286 villageMaximumGenerationsConditionalBranch1.ConditionParameter.ActualName = "TerminateMaximumGenerations"; 287 288 fixedReunificationStepConditionUpdater.LeftSideParameter.ActualName = "PerformFixedReunification"; 289 fixedReunificationStepConditionUpdater.RightSideParameter.Value = new BoolValue(true); 290 291 sasegasaGenerationsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations", null, "SASEGASAGenerations")); 292 293 villageMaximumGenerationsConditionalBranch2.ConditionParameter.ActualName = "PerformFixedReunification"; 294 295 // if the village terminated because of maximum generations first set the maxgen of a village back to its generation 296 villageMaximumGenerationsToGenerationsAssigner.LeftSideParameter.ActualName = "VillageMaximumGenerations"; 297 villageMaximumGenerationsToGenerationsAssigner.RightSideParameter.ActualName = "Generations"; 298 299 // if the village terminated because of maximum generations and then increase the maximum generations by the fixed migration interval 279 300 villageMaximumGenerationsCounter.ValueParameter.ActualName = "VillageMaximumGenerations"; 280 301 villageMaximumGenerationsCounter.Increment = null; 281 302 villageMaximumGenerationsCounter.IncrementParameter.ActualName = "MigrationInterval"; 303 304 selPressValuesCollector2.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Selection Pressure Village", null, "SelectionPressure")); 305 selPressValuesCollector2.DataTableParameter.ActualName = "VillagesSelectionPressures"; 282 306 283 307 // if there's just one island left and we're getting to this point SASEGASA terminates … … 321 345 dataTableValuesCollector2.DataTableParameter.ActualName = "BestQualities"; 322 346 323 selPressValuesCollector2.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Selection Pressure Village", null, "SelectionPressure"));324 selPressValuesCollector2.DataTableParameter.ActualName = "VillagesSelectionPressures";325 326 347 qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; 327 348 qualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name; … … 330 351 331 352 villagesTerminationCondition.ConditionParameter.ActualName = "TerminateVillages"; 332 villageMaximumGenerationsConditionalBranch .ConditionParameter.ActualName = "TerminateMaximumGenerations";353 villageMaximumGenerationsConditionalBranch1.ConditionParameter.ActualName = "TerminateMaximumGenerations"; 333 354 #endregion 334 355 … … 348 369 selPressValuesCollector1.Successor = qualityDifferenceCalculator1; 349 370 qualityDifferenceCalculator1.Successor = resultsCollector; 350 resultsCollector.Successor = ussp1; 371 resultsCollector.Successor = fixedReunificationStepConditionInitializer; 372 fixedReunificationStepConditionInitializer.Successor = ussp1; 351 373 ussp1.Operator = mainLoop; 352 ussp1.Successor = ussp2;374 ussp1.Successor = sasegasaGenerationsCollector; 353 375 mainLoop.Successor = sasegasaGenVillageGenComparator; 354 376 sasegasaGenVillageGenComparator.Successor = sasegasaGenerationsUpdateBranch; 355 377 sasegasaGenerationsUpdateBranch.TrueBranch = sasegasaGenerationsUpdater; 356 378 sasegasaGenerationsUpdateBranch.FalseBranch = null; 357 sasegasaGenerationsUpdateBranch.Successor = null; 358 ussp2.Operator = villageMaximumGenerationsConditionalBranch; 359 ussp2.Successor = villageCountComparator; 360 villageMaximumGenerationsConditionalBranch.TrueBranch = villageMaximumGenerationsCounter; 361 villageMaximumGenerationsConditionalBranch.FalseBranch = null; 362 villageMaximumGenerationsConditionalBranch.Successor = null; 379 sasegasaGenerationsUpdateBranch.Successor = villageMaximumGenerationsConditionalBranch1; 380 villageMaximumGenerationsConditionalBranch1.TrueBranch = fixedReunificationStepConditionUpdater; 381 villageMaximumGenerationsConditionalBranch1.FalseBranch = null; 382 villageMaximumGenerationsConditionalBranch1.Successor = null; 383 sasegasaGenerationsCollector.Successor = ussp2; 384 ussp2.Operator = villageMaximumGenerationsConditionalBranch2; 385 ussp2.Successor = selPressValuesCollector2; 386 villageMaximumGenerationsConditionalBranch2.TrueBranch = villageMaximumGenerationsToGenerationsAssigner; 387 villageMaximumGenerationsConditionalBranch2.FalseBranch = null; 388 villageMaximumGenerationsConditionalBranch2.Successor = null; 389 villageMaximumGenerationsToGenerationsAssigner.Successor = villageMaximumGenerationsCounter; 363 390 villageMaximumGenerationsCounter.Successor = null; 391 selPressValuesCollector2.Successor = villageCountComparator; 364 392 villageCountComparator.Successor = villageTerminationCondition0; 365 393 villageTerminationCondition0.TrueBranch = null; … … 372 400 bestQualityMemorizer3.Successor = bestAverageWorstQualityCalculator3; 373 401 bestAverageWorstQualityCalculator3.Successor = dataTableValuesCollector2; 374 dataTableValuesCollector2.Successor = selPressValuesCollector2; 375 selPressValuesCollector2.Successor = qualityDifferenceCalculator2; 402 dataTableValuesCollector2.Successor = qualityDifferenceCalculator2; 376 403 qualityDifferenceCalculator2.Successor = villagesTerminationCondition; 377 404 villagesTerminationCondition.FalseBranch = maximumGenerationsTerminationCondition; 378 405 villagesTerminationCondition.TrueBranch = null; 379 406 villagesTerminationCondition.Successor = null; 380 maximumGenerationsTerminationCondition.FalseBranch = ussp1;407 maximumGenerationsTerminationCondition.FalseBranch = fixedReunificationStepConditionInitializer; 381 408 maximumGenerationsTerminationCondition.TrueBranch = null; 382 409 maximumGenerationsTerminationCondition.Successor = null;
Note: See TracChangeset
for help on using the changeset viewer.