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
File:
1 edited

Legend:

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

    r4722 r5356  
    8080    public ValueLookupParameter<VariableCollection> ResultsParameter {
    8181      get { return (ValueLookupParameter<VariableCollection>)Parameters["Results"]; }
     82    }
     83    public LookupParameter<IntValue> EvaluatedMovesParameter {
     84      get { return (LookupParameter<IntValue>)Parameters["EvaluatedMoves"]; }
    8285    }
    8386    #endregion
     
    115118      Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation."));
    116119      Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored."));
     120      Parameters.Add(new LookupParameter<IntValue>("EvaluatedMoves", "The number of evaluated moves."));
    117121      #endregion
    118122
     
    129133      UniformSubScopesProcessor moveEvaluationProcessor = new UniformSubScopesProcessor();
    130134      Placeholder moveEvaluator = new Placeholder();
     135      SubScopesCounter subScopesCounter = new SubScopesCounter();
    131136      ProbabilisticQualityComparator qualityComparator = new ProbabilisticQualityComparator();
    132137      ConditionalBranch improvesQualityBranch = new ConditionalBranch();
     
    135140      IntCounter iterationsCounter = new IntCounter();
    136141      Comparator iterationsComparator = new Comparator();
    137       ResultsCollector resultsCollector2 = new ResultsCollector();
    138142      SubScopesProcessor subScopesProcessor1 = new SubScopesProcessor();
    139143      Placeholder analyzer2 = new Placeholder();
     
    158162      moveEvaluator.Name = "Move evaluator (placeholder)";
    159163      moveEvaluator.OperatorParameter.ActualName = MoveEvaluatorParameter.Name;
     164
     165      subScopesCounter.Name = "Increment EvaluatedMoves";
     166      subScopesCounter.ValueParameter.ActualName = EvaluatedMovesParameter.Name;
    160167
    161168      qualityComparator.LeftSideParameter.ActualName = MoveQualityParameter.Name;
     
    180187      iterationsComparator.ResultParameter.ActualName = "Terminate";
    181188      iterationsComparator.Comparison.Value = ComparisonType.GreaterOrEqual;
    182 
    183       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Iterations"));
    184       resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Temperature"));
    185       resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
    186189
    187190      analyzer2.Name = "Analyzer (placeholder)";
     
    198201      subScopesProcessor0.Operators.Add(analyzer1);
    199202      subScopesProcessor0.Successor = sssp;
     203      analyzer1.Successor = null;
    200204      sssp.Operators.Add(resultsCollector);
     205      sssp.Successor = annealingOperator;
    201206      resultsCollector.Successor = null;
    202       sssp.Successor = annealingOperator;
    203207      annealingOperator.Successor = mainProcessor;
    204208      mainProcessor.Operator = moveGenerator;
     
    206210      moveGenerator.Successor = moveEvaluationProcessor;
    207211      moveEvaluationProcessor.Operator = moveEvaluator;
    208       moveEvaluationProcessor.Successor = subScopesRemover;
     212      moveEvaluationProcessor.Successor = subScopesCounter;
    209213      moveEvaluator.Successor = qualityComparator;
    210214      qualityComparator.Successor = improvesQualityBranch;
    211215      improvesQualityBranch.TrueBranch = moveMaker;
     216      improvesQualityBranch.FalseBranch = null;
     217      improvesQualityBranch.Successor = null;
     218      moveMaker.Successor = null;
     219      subScopesCounter.Successor = subScopesRemover;
     220      subScopesRemover.Successor = null;
    212221      iterationsCounter.Successor = iterationsComparator;
    213       iterationsComparator.Successor = resultsCollector2;
    214       resultsCollector2.Successor = subScopesProcessor1;
     222      iterationsComparator.Successor = subScopesProcessor1;
    215223      subScopesProcessor1.Operators.Add(analyzer2);
    216224      subScopesProcessor1.Successor = iterationsTermination;
Note: See TracChangeset for help on using the changeset viewer.