Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/22/10 16:34:44 (14 years ago)
Author:
abeham
Message:

updated SASEGASA #839
changed DataTableValuesCollector to plot IEnumerable<DoubleValue>
removed IMigrator from SASEGASAReunificator

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs

    r3479 r3489  
    155155      QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator();
    156156      ResultsCollector resultsCollector = new ResultsCollector();
     157      Assigner fixedReunificationStepConditionInitializer = new Assigner();
    157158      UniformSubScopesProcessor ussp1 = new UniformSubScopesProcessor();
     159      // MAINLOOP
    158160      OffspringSelectionGeneticAlgorithmMainLoop mainLoop = new OffspringSelectionGeneticAlgorithmMainLoop();
    159       UniformSubScopesProcessor ussp2 = new UniformSubScopesProcessor();
     161      // MAINLOOP
    160162      Comparator sasegasaGenVillageGenComparator = new Comparator();
    161163      ConditionalBranch sasegasaGenerationsUpdateBranch = new ConditionalBranch();
    162164      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();
    164171      IntCounter villageMaximumGenerationsCounter = new IntCounter();
     172      DataTableValuesCollector selPressValuesCollector2 = new DataTableValuesCollector();
    165173      Comparator villageCountComparator = new Comparator();
    166174      ConditionalBranch villageTerminationCondition0 = new ConditionalBranch();
     
    172180      BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator3 = new BestAverageWorstQualityCalculator();
    173181      DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector();
    174       DataTableValuesCollector selPressValuesCollector2 = new DataTableValuesCollector();
    175182      QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator();
    176183      ConditionalBranch villagesTerminationCondition = new ConditionalBranch();
     
    240247      resultsCollector.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("VillageResults", "Result set for each village"));
    241248      resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
     249
     250      fixedReunificationStepConditionInitializer.LeftSideParameter.ActualName = "PerformFixedReunification";
     251      fixedReunificationStepConditionInitializer.RightSideParameter.Value = new BoolValue(false);
    242252
    243253      mainLoop.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name;
     
    273283      sasegasaGenerationsUpdater.RightSideParameter.ActualName = "Generations";
    274284
    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
    279300      villageMaximumGenerationsCounter.ValueParameter.ActualName = "VillageMaximumGenerations";
    280301      villageMaximumGenerationsCounter.Increment = null;
    281302      villageMaximumGenerationsCounter.IncrementParameter.ActualName = "MigrationInterval";
     303
     304      selPressValuesCollector2.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Selection Pressure Village", null, "SelectionPressure"));
     305      selPressValuesCollector2.DataTableParameter.ActualName = "VillagesSelectionPressures";
    282306
    283307      // if there's just one island left and we're getting to this point SASEGASA terminates
     
    321345      dataTableValuesCollector2.DataTableParameter.ActualName = "BestQualities";
    322346
    323       selPressValuesCollector2.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Selection Pressure Village", null, "SelectionPressure"));
    324       selPressValuesCollector2.DataTableParameter.ActualName = "VillagesSelectionPressures";
    325 
    326347      qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    327348      qualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;
     
    330351
    331352      villagesTerminationCondition.ConditionParameter.ActualName = "TerminateVillages";
    332       villageMaximumGenerationsConditionalBranch.ConditionParameter.ActualName = "TerminateMaximumGenerations";
     353      villageMaximumGenerationsConditionalBranch1.ConditionParameter.ActualName = "TerminateMaximumGenerations";
    333354      #endregion
    334355
     
    348369      selPressValuesCollector1.Successor = qualityDifferenceCalculator1;
    349370      qualityDifferenceCalculator1.Successor = resultsCollector;
    350       resultsCollector.Successor = ussp1;
     371      resultsCollector.Successor = fixedReunificationStepConditionInitializer;
     372      fixedReunificationStepConditionInitializer.Successor = ussp1;
    351373      ussp1.Operator = mainLoop;
    352       ussp1.Successor = ussp2;
     374      ussp1.Successor = sasegasaGenerationsCollector;
    353375      mainLoop.Successor = sasegasaGenVillageGenComparator;
    354376      sasegasaGenVillageGenComparator.Successor = sasegasaGenerationsUpdateBranch;
    355377      sasegasaGenerationsUpdateBranch.TrueBranch = sasegasaGenerationsUpdater;
    356378      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;
    363390      villageMaximumGenerationsCounter.Successor = null;
     391      selPressValuesCollector2.Successor = villageCountComparator;
    364392      villageCountComparator.Successor = villageTerminationCondition0;
    365393      villageTerminationCondition0.TrueBranch = null;
     
    372400      bestQualityMemorizer3.Successor = bestAverageWorstQualityCalculator3;
    373401      bestAverageWorstQualityCalculator3.Successor = dataTableValuesCollector2;
    374       dataTableValuesCollector2.Successor = selPressValuesCollector2;
    375       selPressValuesCollector2.Successor = qualityDifferenceCalculator2;
     402      dataTableValuesCollector2.Successor = qualityDifferenceCalculator2;
    376403      qualityDifferenceCalculator2.Successor = villagesTerminationCondition;
    377404      villagesTerminationCondition.FalseBranch = maximumGenerationsTerminationCondition;
    378405      villagesTerminationCondition.TrueBranch = null;
    379406      villagesTerminationCondition.Successor = null;
    380       maximumGenerationsTerminationCondition.FalseBranch = ussp1;
     407      maximumGenerationsTerminationCondition.FalseBranch = fixedReunificationStepConditionInitializer;
    381408      maximumGenerationsTerminationCondition.TrueBranch = null;
    382409      maximumGenerationsTerminationCondition.Successor = null;
Note: See TracChangeset for help on using the changeset viewer.