Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/22/11 15:18:20 (14 years ago)
Author:
abeham
Message:

#1344

  • Adapted all algorithms to count evaluated solutions / moves and outside of the parallel region
  • Used the same pattern in every algorithm: Initialize and collect the variable in the Algorithm and increment it in the main loops and main operators
Location:
trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3
Files:
4 edited

Legend:

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

    r5352 r5356  
    135135    }
    136136    private GeneticAlgorithmMainLoop GeneticAlgorithmMainLoop {
    137       get { return (GeneticAlgorithmMainLoop)((SubScopesCounter)SolutionsCreator.Successor).Successor; }
     137      get {
     138        return (GeneticAlgorithmMainLoop)(
     139          (ResultsCollector)(
     140            (SubScopesCounter)SolutionsCreator.Successor
     141          ).Successor
     142        ).Successor;
     143      }
    138144    }
    139145    [Storable]
     
    157163      SolutionsCreator solutionsCreator = new SolutionsCreator();
    158164      SubScopesCounter subScopesCounter = new SubScopesCounter();
    159       GeneticAlgorithmMainLoop geneticAlgorithmMainLoop = new GeneticAlgorithmMainLoop();
     165      ResultsCollector resultsCollector = new ResultsCollector();
     166      GeneticAlgorithmMainLoop mainLoop = new GeneticAlgorithmMainLoop();
    160167      OperatorGraph.InitialOperator = randomCreator;
    161168
     
    172179      subScopesCounter.Name = "Initialize EvaluatedSolutions";
    173180      subScopesCounter.ValueParameter.ActualName = "EvaluatedSolutions";
    174       subScopesCounter.Successor = geneticAlgorithmMainLoop;
    175 
    176       geneticAlgorithmMainLoop.SelectorParameter.ActualName = SelectorParameter.Name;
    177       geneticAlgorithmMainLoop.CrossoverParameter.ActualName = CrossoverParameter.Name;
    178       geneticAlgorithmMainLoop.ElitesParameter.ActualName = ElitesParameter.Name;
    179       geneticAlgorithmMainLoop.MaximumGenerationsParameter.ActualName = MaximumGenerationsParameter.Name;
    180       geneticAlgorithmMainLoop.MutatorParameter.ActualName = MutatorParameter.Name;
    181       geneticAlgorithmMainLoop.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name;
    182       geneticAlgorithmMainLoop.RandomParameter.ActualName = RandomCreator.RandomParameter.ActualName;
    183       geneticAlgorithmMainLoop.AnalyzerParameter.ActualName = AnalyzerParameter.Name;
    184       geneticAlgorithmMainLoop.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions";
    185       geneticAlgorithmMainLoop.PopulationSizeParameter.ActualName = PopulationSizeParameter.Name;
    186       geneticAlgorithmMainLoop.ResultsParameter.ActualName = "Results";
     181      subScopesCounter.Successor = resultsCollector;
     182
     183      resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
     184      resultsCollector.ResultsParameter.ActualName = "Results";
     185      resultsCollector.Successor = mainLoop;
     186
     187      mainLoop.SelectorParameter.ActualName = SelectorParameter.Name;
     188      mainLoop.CrossoverParameter.ActualName = CrossoverParameter.Name;
     189      mainLoop.ElitesParameter.ActualName = ElitesParameter.Name;
     190      mainLoop.MaximumGenerationsParameter.ActualName = MaximumGenerationsParameter.Name;
     191      mainLoop.MutatorParameter.ActualName = MutatorParameter.Name;
     192      mainLoop.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name;
     193      mainLoop.RandomParameter.ActualName = RandomCreator.RandomParameter.ActualName;
     194      mainLoop.AnalyzerParameter.ActualName = AnalyzerParameter.Name;
     195      mainLoop.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions";
     196      mainLoop.PopulationSizeParameter.ActualName = PopulationSizeParameter.Name;
     197      mainLoop.ResultsParameter.ActualName = "Results";
    187198
    188199      foreach (ISelector selector in ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name))
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithmMainLoop.cs

    r5352 r5356  
    141141      IntCounter intCounter = new IntCounter();
    142142      Comparator comparator = new Comparator();
    143       ResultsCollector resultsCollector2 = new ResultsCollector();
    144143      Placeholder analyzer2 = new Placeholder();
    145144      ConditionalBranch conditionalBranch = new ConditionalBranch();
     
    148147
    149148      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    150       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>(EvaluatedSolutionsParameter.Name));
    151149      resultsCollector1.ResultsParameter.ActualName = "Results";
    152150
     
    190188      comparator.ResultParameter.ActualName = "Terminate";
    191189      comparator.RightSideParameter.ActualName = "MaximumGenerations";
    192 
    193       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    194       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>(EvaluatedSolutionsParameter.Name));
    195       resultsCollector2.ResultsParameter.ActualName = "Results";
    196190
    197191      analyzer2.Name = "Analyzer";
     
    230224      mergingReducer.Successor = intCounter;
    231225      intCounter.Successor = comparator;
    232       comparator.Successor = resultsCollector2;
    233       resultsCollector2.Successor = analyzer2;
     226      comparator.Successor = analyzer2;
    234227      analyzer2.Successor = conditionalBranch;
    235228      conditionalBranch.FalseBranch = selector;
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs

    r5351 r5356  
    187187    }
    188188    private IslandGeneticAlgorithmMainLoop MainLoop {
    189       get { return (IslandGeneticAlgorithmMainLoop)((UniformSubScopesProcessor)((VariableCreator)IslandProcessor.Successor).Successor).Successor; }
     189      get {
     190        return (IslandGeneticAlgorithmMainLoop)(
     191          (ResultsCollector)(
     192            (UniformSubScopesProcessor)(
     193              (VariableCreator)IslandProcessor.Successor
     194            ).Successor
     195          ).Successor
     196        ).Successor;
     197      }
    190198    }
    191199    [Storable]
     
    238246      UniformSubScopesProcessor ussp2 = new UniformSubScopesProcessor();
    239247      SubScopesCounter subScopesCounter = new SubScopesCounter();
     248      ResultsCollector resultsCollector = new ResultsCollector();
    240249      IslandGeneticAlgorithmMainLoop mainLoop = new IslandGeneticAlgorithmMainLoop();
    241250      OperatorGraph.InitialOperator = randomCreator;
     
    262271
    263272      ussp2.Operator = subScopesCounter;
    264       ussp2.Successor = mainLoop;
     273      ussp2.Successor = resultsCollector;
    265274
    266275      subScopesCounter.Name = "Count EvaluatedSolutions";
    267276      subScopesCounter.ValueParameter.ActualName = "EvaluatedSolutions";
    268277      subScopesCounter.Successor = null;
     278
     279      resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
     280      resultsCollector.ResultsParameter.ActualName = "Results";
     281      resultsCollector.Successor = mainLoop;
    269282
    270283      mainLoop.EmigrantsSelectorParameter.ActualName = EmigrantsSelectorParameter.Name;
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs

    r5351 r5356  
    159159      UniformSubScopesProcessor uniformSubScopesProcessor3 = new UniformSubScopesProcessor();
    160160      Placeholder evaluator = new Placeholder();
     161      SubScopesCounter subScopesCounter = new SubScopesCounter();
    161162      SubScopesProcessor subScopesProcessor2 = new SubScopesProcessor();
    162163      BestSelector bestSelector = new BestSelector();
     
    165166      IntCounter generationsCounter = new IntCounter();
    166167      UniformSubScopesProcessor uniformSubScopesProcessor4 = new UniformSubScopesProcessor();
    167       SubScopesCounter subScopesCounter = new SubScopesCounter();
    168168      Placeholder islandAnalyzer2 = new Placeholder();
    169169      IntCounter generationsSinceLastMigrationCounter = new IntCounter();
     
    179179      Comparator generationsComparator = new Comparator();
    180180      Placeholder analyzer2 = new Placeholder();
    181       ResultsCollector resultsCollector2 = new ResultsCollector();
    182181      ConditionalBranch generationsTerminationCondition = new ConditionalBranch();
    183182
     
    197196      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    198197      resultsCollector1.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
    199       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("EvaluatedSolutions"));
    200198      resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name;
    201199
     
    220218      evaluator.Name = "Evaluator (placeholder)";
    221219      evaluator.OperatorParameter.ActualName = EvaluatorParameter.Name;
     220
     221      subScopesCounter.Name = "Increment EvaluatedSolutions";
     222      subScopesCounter.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name;
    222223
    223224      bestSelector.CopySelected = new BoolValue(false);
     
    225226      bestSelector.NumberOfSelectedSubScopesParameter.ActualName = ElitesParameter.Name;
    226227      bestSelector.QualityParameter.ActualName = QualityParameter.Name;
    227 
    228       subScopesCounter.Name = "Increment EvaluatedSolutions";
    229       subScopesCounter.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name;
    230228
    231229      islandAnalyzer2.Name = "Island Analyzer (placeholder)";
     
    274272      analyzer2.Name = "Analyzer (placeholder)";
    275273      analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name;
    276 
    277       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Migrations"));
    278       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    279       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("EvaluatedSolutions"));
    280       resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
    281274
    282275      generationsTerminationCondition.Name = "Terminate?";
     
    335328      uniformSubScopesProcessor6.Successor = null;
    336329      generationsComparator.Successor = analyzer2;
    337       analyzer2.Successor = resultsCollector2;
    338       resultsCollector2.Successor = generationsTerminationCondition;
     330      analyzer2.Successor = generationsTerminationCondition;
    339331      generationsTerminationCondition.TrueBranch = null;
    340332      generationsTerminationCondition.FalseBranch = uniformSubScopesProcessor1;
Note: See TracChangeset for help on using the changeset viewer.