Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/04/11 06:17:50 (14 years ago)
Author:
swagner
Message:

Adapted EAs to enable parallel solution evaluation (#1333)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/sources/HeuristicLab.Algorithms.EvolutionStrategy/3.3/EvolutionStrategyMainLoop.cs

    r4722 r5208  
    120120      Parameters.Add(new ValueLookupParameter<IOperator>("Mutator", "The operator used to mutate solutions."));
    121121      Parameters.Add(new ValueLookupParameter<IOperator>("Recombinator", "The operator used to cross solutions."));
    122       Parameters.Add(new ValueLookupParameter<IOperator>("Evaluator", "The operator used to evaluate solutions."));
     122      Parameters.Add(new ValueLookupParameter<IOperator>("Evaluator", "The operator used to evaluate solutions. This operator is executed in parallel, if an engine is used which supports parallelization."));
    123123      Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored."));
    124124      Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation."));
     
    142142      Placeholder strategyMutator1 = new Placeholder();
    143143      Placeholder mutator1 = new Placeholder();
    144       Placeholder evaluator1 = new Placeholder();
    145144      SubScopesRemover subScopesRemover = new SubScopesRemover();
    146145      UniformSubScopesProcessor uniformSubScopesProcessor2 = new UniformSubScopesProcessor();
    147146      Placeholder strategyMutator2 = new Placeholder();
    148147      Placeholder mutator2 = new Placeholder();
    149       Placeholder evaluator2 = new Placeholder();
     148      UniformSubScopesProcessor uniformSubScopesProcessor3 = new UniformSubScopesProcessor();
     149      Placeholder evaluator = new Placeholder();
    150150      ConditionalBranch plusOrCommaReplacementBranch = new ConditionalBranch();
    151151      MergingReducer plusReplacement = new MergingReducer();
     
    195195      mutator1.OperatorParameter.ActualName = MutatorParameter.Name;
    196196
    197       evaluator1.Name = "Evaluator (placeholder)";
    198       evaluator1.OperatorParameter.ActualName = EvaluatorParameter.Name;
    199 
    200197      subScopesRemover.RemoveAllSubScopes = true;
    201198
     
    206203      mutator2.OperatorParameter.ActualName = MutatorParameter.Name;
    207204
    208       evaluator2.Name = "Evaluator (placeholder)";
    209       evaluator2.OperatorParameter.ActualName = EvaluatorParameter.Name;
     205      uniformSubScopesProcessor3.Parallel.Value = true;
     206
     207      evaluator.Name = "Evaluator (placeholder)";
     208      evaluator.OperatorParameter.ActualName = EvaluatorParameter.Name;
    210209
    211210      plusOrCommaReplacementBranch.ConditionParameter.ActualName = PlusSelectionParameter.Name;
     
    245244      useRecombinationBranch.TrueBranch = childrenCreator;
    246245      useRecombinationBranch.FalseBranch = uniformSubScopesProcessor2;
    247       useRecombinationBranch.Successor = null;
     246      useRecombinationBranch.Successor = uniformSubScopesProcessor3;
    248247      childrenCreator.Successor = uniformSubScopesProcessor1;
    249248      uniformSubScopesProcessor1.Operator = recombinator;
     
    252251      strategyRecombinator.Successor = strategyMutator1;
    253252      strategyMutator1.Successor = mutator1;
    254       mutator1.Successor = evaluator1;
    255       evaluator1.Successor = subScopesRemover;
     253      mutator1.Successor = subScopesRemover;
    256254      subScopesRemover.Successor = null;
    257255      uniformSubScopesProcessor2.Operator = strategyMutator2;
    258256      uniformSubScopesProcessor2.Successor = null;
    259257      strategyMutator2.Successor = mutator2;
    260       mutator2.Successor = evaluator2;
     258      mutator2.Successor = null;
     259      uniformSubScopesProcessor3.Operator = evaluator;
     260      uniformSubScopesProcessor3.Successor = null;
     261      evaluator.Successor = null;
    261262      plusOrCommaReplacementBranch.TrueBranch = plusReplacement;
    262263      plusOrCommaReplacementBranch.FalseBranch = commaReplacement;
Note: See TracChangeset for help on using the changeset viewer.