Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/17/11 14:35:58 (13 years ago)
Author:
svonolfe
Message:

Implemented review comments of swagner (#1425)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/VNS/HeuristicLab.Algorithms.VariableNeighborhoodSearch/3.3/VariableNeighborhoodSearchMainLoop.cs

    r5642 r5735  
    6969      get { return (LookupParameter<IntValue>)Parameters["EvaluatedSolutions"]; }
    7070    }
    71     public ValueLookupParameter<ILocalImprovement> LocalImprovementParameter {
    72       get { return (ValueLookupParameter<ILocalImprovement>)Parameters["LocalImprovement"]; }
     71    public ValueLookupParameter<ILocalImprovementOperator> LocalImprovementParameter {
     72      get { return (ValueLookupParameter<ILocalImprovementOperator>)Parameters["LocalImprovement"]; }
    7373    }
    7474    public ValueLookupParameter<IShakingOperator> ShakingParameter {
     
    102102      Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze the solution."));
    103103      Parameters.Add(new LookupParameter<IntValue>("EvaluatedSolutions", "The number of evaluated solutions."));
    104       Parameters.Add(new ValueLookupParameter<ILocalImprovement>("LocalImprovement", "The local improvement operation."));
     104      Parameters.Add(new ValueLookupParameter<ILocalImprovementOperator>("LocalImprovement", "The local improvement operation."));
    105105      Parameters.Add(new ValueLookupParameter<IShakingOperator>("Shaking", "The shaking operation."));
    106106      #endregion
     
    116116      Assigner iterationInit = new Assigner();
    117117
    118       ChildrenCreator createChild = new ChildrenCreator();
     118      SubScopesCloner createChild = new SubScopesCloner();
    119119      SubScopesProcessor childProcessor = new SubScopesProcessor();
    120       ParentCopyCrossover parentCloner = new ParentCopyCrossover();
    121120
    122121      Assigner qualityAssigner = new Assigner();
     
    127126
    128127      QualityComparator qualityComparator = new QualityComparator();
    129       ConditionalBranch improvesQualityBranch = new ConditionalBranch();
     128      ConditionalBranch improvesQualityBranch1 = new ConditionalBranch();
    130129      ConditionalBranch improvesQualityBranch2 = new ConditionalBranch();
    131130
    132131      Assigner bestQualityUpdater = new Assigner();
    133       ScopeCleaner cleaner = new ScopeCleaner();
    134       ParentCopyCrossover originalRestorer = new ParentCopyCrossover();
     132
     133      BestSelector bestSelector = new BestSelector();
     134      RightReducer rightReducer = new RightReducer();
    135135
    136136      IntCounter indexCounter = new IntCounter();
    137137      Assigner indexResetter = new Assigner();
    138138
    139       SubScopesRemover remover1 = new SubScopesRemover();
    140       SubScopesRemover remover2 = new SubScopesRemover();
    141139      Placeholder analyzer2 = new Placeholder();
    142140
     
    147145      ConditionalBranch iterationsTermination = new ConditionalBranch();
    148146
    149       variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("OuterIterations", new IntValue(0)));
     147      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Iterations", new IntValue(0)));
    150148      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Index", new IntValue(0)));
    151149      variableCreator.CollectedValues.Add(new ValueParameter<BoolValue>("Continue", new BoolValue(false)));
     
    161159
    162160      resultsCollector1.CopyValue = new BoolValue(false);
    163       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("OuterIterations"));
     161      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Iterations"));
    164162      resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    165163      resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name;
     
    172170
    173171      createChild.Name = "Create child";
    174       createChild.ParentsPerChild.Value = 1;
    175 
    176       parentCloner.Name = "Copy parent";
    177172
    178173      qualityAssigner.Name = "Assign quality";
     
    189184      evaluator.OperatorParameter.ActualName = EvaluatorParameter.Name;
    190185
    191       evalCounter.Name = "Count evaluateions";
     186      evalCounter.Name = "Count evaluations";
    192187      evalCounter.Increment.Value = 1;
    193188      evalCounter.ValueParameter.ActualName = EvaluatedSolutionsParameter.ActualName;
     
    197192      qualityComparator.ResultParameter.ActualName = "IsBetter";
    198193
    199       improvesQualityBranch.ConditionParameter.ActualName = "IsBetter";
     194      improvesQualityBranch1.ConditionParameter.ActualName = "IsBetter";
    200195      improvesQualityBranch2.ConditionParameter.ActualName = "IsBetter";
    201196
     
    204199      bestQualityUpdater.RightSideParameter.ActualName = QualityParameter.Name;
    205200
    206       cleaner.Name = "Clean scope";
    207       cleaner.ClearSubScopesParameter.Value = new BoolValue(false);
    208       originalRestorer.Name = "Restore original solution";
     201      bestSelector.CopySelected = new BoolValue(false);
     202      bestSelector.MaximizationParameter.ActualName = MaximizationParameter.Name;
     203      bestSelector.NumberOfSelectedSubScopesParameter.Value = new IntValue(1);
     204      bestSelector.QualityParameter.ActualName = QualityParameter.Name;
    209205
    210206      indexCounter.Name = "Count index";
     
    216212      indexResetter.RightSideParameter.Value = new IntValue(0);
    217213
    218       remover1.Name = remover2.Name = "Remove subscope";
    219 
    220214      analyzer2.Name = "Analyzer (placeholder)";
    221215      analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name;
    222216
    223       originalRestorer.Name = "Restore parent";
    224 
    225217      iterationsCounter.Name = "Iterations Counter";
    226218      iterationsCounter.Increment = new IntValue(1);
    227       iterationsCounter.ValueParameter.ActualName = "OuterIterations";
     219      iterationsCounter.ValueParameter.ActualName = "Iterations";
    228220
    229221      iterationsComparator.Name = "Iterations >= MaximumIterations";
    230222      iterationsComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual);
    231       iterationsComparator.LeftSideParameter.ActualName = "OuterIterations";
     223      iterationsComparator.LeftSideParameter.ActualName = "Iterations";
    232224      iterationsComparator.RightSideParameter.ActualName = MaximumIterationsParameter.Name;
    233225      iterationsComparator.ResultParameter.ActualName = "Terminate";
     
    254246
    255247      createChild.Successor = childProcessor;
    256       childProcessor.Operators.Add(parentCloner);
    257       childProcessor.Successor = analyzer2;
     248      childProcessor.Operators.Add(new EmptyOperator());
     249      childProcessor.Operators.Add(qualityAssigner);
     250      childProcessor.Successor = bestSelector;
    258251      /////////
    259       parentCloner.Successor = qualityAssigner;
    260252      qualityAssigner.Successor = shaking;
    261253      shaking.Successor = evaluator;
     
    263255      evalCounter.Successor = localImprovement;
    264256      localImprovement.Successor = qualityComparator;
    265       qualityComparator.Successor = improvesQualityBranch;
    266       improvesQualityBranch.TrueBranch = bestQualityUpdater;
    267       improvesQualityBranch.FalseBranch = cleaner;
     257      qualityComparator.Successor = improvesQualityBranch1;
     258      improvesQualityBranch1.TrueBranch = bestQualityUpdater;
     259      improvesQualityBranch1.FalseBranch = indexCounter;
    268260
    269261      bestQualityUpdater.Successor = indexResetter;
    270       indexResetter.Successor = remover1;
    271 
    272       cleaner.Successor = originalRestorer;
    273       originalRestorer.Successor = remover2;
    274       remover2.Successor = indexCounter;
     262      indexResetter.Successor = null;
     263
     264      indexCounter.Successor = null;
    275265      /////////
     266      bestSelector.Successor = rightReducer;
     267      rightReducer.Successor = analyzer2;
    276268      analyzer2.Successor = indexTermination;
    277269      indexTermination.TrueBranch = improvesQualityBranch2;
Note: See TracChangeset for help on using the changeset viewer.