Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/26/14 17:22:19 (9 years ago)
Author:
pfleck
Message:

#2269

  • Finished implementing LayerUpdator.
  • Proper implemented per-layer results.
  • Some bugfixes and wiring.
  • Added LastSubScopeCloner. Note that the First/LastSubScopeCloner/Processor might be dropped and Left/Right-Selectors are used instead. Thanks to jkarder for this suggestion.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs

    r11586 r11590  
    5555      get { return OperatorGraph.Iterate().OfType<EldersEmigrator>().First(); }
    5656    }
     57    public LayerUpdator LayerUpdator {
     58      get { return OperatorGraph.Iterate().OfType<LayerUpdator>().First(); }
     59    }
    5760
    5861    [StorableConstructor]
     
    7477      var initAnalyzerPlaceholder = new Placeholder() { Name = "Analyzer (Placeholder)" };
    7578      var initLayerAnalyzerProcessor = new SubScopesProcessor();
     79      var layerVariableCreator = new VariableCreator() { Name = "Initialize Layer" };
    7680      var initLayerAnalyzerPlaceholder = new Placeholder() { Name = "LayerAnalyzer (Placeholder)" };
    7781      var matingPoolCreator = new MatingPoolCreator() { Name = "Create Mating Pools" };
    7882      var matingPoolProcessor = new UniformSubScopesProcessor();
     83      var initializeLayer = new Assigner() { Name = "Reset LayerEvaluatedSolutions" };
    7984      var mainOperator = CreatePreparedGeneticAlgorithmMainLoop();
    8085      var layerAnalyzerPlaceholder = new Placeholder() { Name = "LayerAnalyzer (Placeholder)" };
     
    101106      initAnalyzerPlaceholder.Successor = initLayerAnalyzerProcessor;
    102107
    103       initLayerAnalyzerProcessor.Operators.Add(initLayerAnalyzerPlaceholder);
     108      initLayerAnalyzerProcessor.Operators.Add(layerVariableCreator);
    104109      initLayerAnalyzerProcessor.Successor = matingPoolCreator;
     110
     111      layerVariableCreator.CollectedValues.Add(new ValueParameter<IntValue>("LayerEvaluatedSolutions"));
     112      layerVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("Results"));
     113      layerVariableCreator.Successor = initLayerAnalyzerPlaceholder;
    105114
    106115      initLayerAnalyzerPlaceholder.OperatorParameter.ActualName = LayerAnalyzerParameter.Name;
     
    110119
    111120      matingPoolProcessor.Parallel.Value = true;
    112       matingPoolProcessor.Operator = mainOperator;
     121      matingPoolProcessor.Operator = initializeLayer;
    113122      matingPoolProcessor.Successor = generationsIcrementor;
     123
     124      initializeLayer.LeftSideParameter.ActualName = "LayerEvaluatedSolutions";
     125      initializeLayer.RightSideParameter.Value = new IntValue(0);
     126      initializeLayer.Successor = mainOperator;
    114127
    115128      generationsIcrementor.ValueParameter.ActualName = "Generations";
     
    149162      var selector = mainLoop.OperatorGraph.Iterate().OfType<Placeholder>().First(o => o.OperatorParameter.ActualName == "Selector");
    150163      var crossover = mainLoop.OperatorGraph.Iterate().OfType<Placeholder>().First(o => o.OperatorParameter.ActualName == "Crossover");
     164      var subScopesCounter = mainLoop.OperatorGraph.Iterate().OfType<SubScopesCounter>().First();
    151165      var elitesMerger = mainLoop.OperatorGraph.Iterate().OfType<MergingReducer>().First();
    152166
     
    164178      ageCalculator.Successor = crossoverSuccessor;
    165179
     180      // When counting the evaluated solutions, write in LayerEvaluatedSolutions
     181      subScopesCounter.ValueParameter.ActualName = "LayerEvaluatedSolutions";
     182      subScopesCounter.AccumulateParameter.Value = new BoolValue(false);
     183
    166184      // Instead of generational loop after merging of elites, increment ages of all individuals
    167185      var processor = new UniformSubScopesProcessor();
Note: See TracChangeset for help on using the changeset viewer.