Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/09/12 12:22:33 (12 years ago)
Author:
jkarder
Message:

#1331:

  • fixed bug in path relinking selection
  • fixed bug in ScatterSearch.Prepare()
  • added custom interface (IImprovementOperator) for Scatter Search specific improvement operators
  • switched from diversity calculation to similarity calculation
  • separated IPathRelinker from ICrossover
  • changed TestFunctionsImprovementOperator to use reflection for evaluating functions
  • changed SolutionPoolUpdateMethod to use similarity calculation for solution comparison
  • improved TravelingSalesmanImprovementOperator
  • improved operator graph
  • removed specific operators used to evaluate TestFunctions problems
  • removed custom crossover operator (NChildCrossover)
  • added parameters and adjusted types
  • adjusted event handling
  • changed access levels
  • minor code improvements
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/ScatterSearchMainLoop.cs

    r7778 r7786  
    4141      get { return (IValueLookupParameter<IMultiAnalyzer>)Parameters["Analyzer"]; }
    4242    }
     43    public IValueLookupParameter<DoubleValue> BestKnownQualityParameter {
     44      get { return (IValueLookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
     45    }
    4346    public IValueLookupParameter<ICrossover> CrossoverParameter {
    4447      get { return (IValueLookupParameter<ICrossover>)Parameters["Crossover"]; }
    4548    }
    46     public IValueLookupParameter<IOperator> ImproverParameter {
    47       get { return (IValueLookupParameter<IOperator>)Parameters["Improver"]; }
    48     }
    49     public IValueLookupParameter<DiversityCalculator> DiversityCalculatorParameter {
    50       get { return (IValueLookupParameter<DiversityCalculator>)Parameters["DiversityCalculator"]; }
     49    public IValueLookupParameter<IEvaluator> EvaluatorParameter {
     50      get { return (IValueLookupParameter<IEvaluator>)Parameters["Evaluator"]; }
     51    }
     52    public IValueLookupParameter<BoolValue> ExecutePathRelinkingParameter {
     53      get { return (IValueLookupParameter<BoolValue>)Parameters["ExecutePathRelinking"]; }
     54    }
     55    public IValueLookupParameter<IImprovementOperator> ImproverParameter {
     56      get { return (IValueLookupParameter<IImprovementOperator>)Parameters["Improver"]; }
     57    }
     58    public IValueLookupParameter<IntValue> IterationsParameter {
     59      get { return (IValueLookupParameter<IntValue>)Parameters["Iterations"]; }
     60    }
     61    public IValueLookupParameter<BoolValue> MaximizationParameter {
     62      get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
     63    }
     64    public IValueLookupParameter<IntValue> MaximumIterationsParameter {
     65      get { return (IValueLookupParameter<IntValue>)Parameters["MaximumIterations"]; }
    5166    }
    5267    public IValueLookupParameter<IntValue> NumberOfHighQualitySolutionsParameter {
    5368      get { return (IValueLookupParameter<IntValue>)Parameters["NumberOfHighQualitySolutions"]; }
    5469    }
     70    public IValueLookupParameter<IPathRelinker> PathRelinkerParameter {
     71      get { return (IValueLookupParameter<IPathRelinker>)Parameters["PathRelinker"]; }
     72    }
    5573    public IValueLookupParameter<IntValue> PopulationSizeParameter {
    5674      get { return (IValueLookupParameter<IntValue>)Parameters["PopulationSize"]; }
     
    5977      get { return (IValueLookupParameter<IntValue>)Parameters["ReferenceSetSize"]; }
    6078    }
    61     public IValueLookupParameter<DoubleValue> BestKnownQualityParameter {
    62       get { return (IValueLookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
    63     }
    64     public IValueLookupParameter<IEvaluator> EvaluatorParameter {
    65       get { return (IValueLookupParameter<IEvaluator>)Parameters["Evaluator"]; }
    66     }
    67     public IValueLookupParameter<IntValue> IterationsParameter {
    68       get { return (IValueLookupParameter<IntValue>)Parameters["Iterations"]; }
    69     }
    70     public IValueLookupParameter<BoolValue> MaximizationParameter {
    71       get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    72     }
    73     public IValueLookupParameter<IntValue> MaximumIterationsParameter {
    74       get { return (IValueLookupParameter<IntValue>)Parameters["MaximumIterations"]; }
    75     }
    7679    public IValueLookupParameter<DoubleValue> QualityParameter {
    7780      get { return (IValueLookupParameter<DoubleValue>)Parameters["Quality"]; }
     
    8386      get { return (IValueLookupParameter<VariableCollection>)Parameters["Results"]; }
    8487    }
    85     public IValueLookupParameter<IntValue> SampleSizeParameter {
    86       get { return (IValueLookupParameter<IntValue>)Parameters["SampleSize"]; }
     88    public IValueLookupParameter<SimilarityCalculator> SimilarityCalculatorParameter {
     89      get { return (IValueLookupParameter<SimilarityCalculator>)Parameters["SimilarityCalculator"]; }
    8790    }
    8891    public IValueLookupParameter<ISolutionCreator> SolutionCreatorParameter {
     
    9699      set { AnalyzerParameter.ActualValue = value; }
    97100    }
     101    private DoubleValue BestKnownQuality {
     102      get { return BestKnownQualityParameter.ActualValue; }
     103      set { BestKnownQualityParameter.ActualValue = value; }
     104    }
    98105    private ICrossover Crossover {
    99106      get { return CrossoverParameter.ActualValue; }
    100107      set { CrossoverParameter.ActualValue = value; }
    101108    }
    102     private IOperator Improver {
     109    private IEvaluator Evaluator {
     110      get { return EvaluatorParameter.ActualValue; }
     111      set { EvaluatorParameter.ActualValue = value; }
     112    }
     113    private BoolValue ExecutePathRelinking {
     114      get { return ExecutePathRelinkingParameter.ActualValue; }
     115      set { ExecutePathRelinkingParameter.ActualValue = value; }
     116    }
     117    private IImprovementOperator Improver {
    103118      get { return ImproverParameter.ActualValue; }
    104119      set { ImproverParameter.ActualValue = value; }
    105120    }
    106     private DiversityCalculator DiversityCalculator {
    107       get { return DiversityCalculatorParameter.ActualValue; }
    108       set { DiversityCalculatorParameter.ActualValue = value; }
     121    private IntValue Iterations {
     122      get { return IterationsParameter.ActualValue; }
     123      set { IterationsParameter.ActualValue = value; }
     124    }
     125    private BoolValue Maximization {
     126      get { return MaximizationParameter.ActualValue; }
     127      set { MaximizationParameter.ActualValue = value; }
     128    }
     129    private IntValue MaximumIterations {
     130      get { return MaximumIterationsParameter.ActualValue; }
     131      set { MaximumIterationsParameter.ActualValue = value; }
    109132    }
    110133    private IntValue NumberOfHighQualitySolutions {
     
    112135      set { NumberOfHighQualitySolutionsParameter.ActualValue = value; }
    113136    }
     137    private IPathRelinker PathRelinker {
     138      get { return PathRelinkerParameter.ActualValue; }
     139      set { PathRelinkerParameter.ActualValue = value; }
     140    }
    114141    private IntValue PopulationSize {
    115142      get { return PopulationSizeParameter.ActualValue; }
     
    120147      set { ReferenceSetSizeParameter.ActualValue = value; }
    121148    }
    122     private DoubleValue BestKnownQuality {
    123       get { return BestKnownQualityParameter.ActualValue; }
    124       set { BestKnownQualityParameter.ActualValue = value; }
    125     }
    126     private IEvaluator Evaluator {
    127       get { return EvaluatorParameter.ActualValue; }
    128       set { EvaluatorParameter.ActualValue = value; }
    129     }
    130     private IntValue Iterations {
    131       get { return IterationsParameter.ActualValue; }
    132       set { IterationsParameter.ActualValue = value; }
    133     }
    134     private BoolValue Maximization {
    135       get { return MaximizationParameter.ActualValue; }
    136       set { MaximizationParameter.ActualValue = value; }
    137     }
    138     private IntValue MaximumIterations {
    139       get { return MaximumIterationsParameter.ActualValue; }
    140       set { MaximumIterationsParameter.ActualValue = value; }
    141     }
    142149    private DoubleValue Quality {
    143150      get { return QualityParameter.ActualValue; }
     
    152159      set { ResultsParameter.ActualValue = value; }
    153160    }
    154     private IntValue SampleSize {
    155       get { return SampleSizeParameter.ActualValue; }
    156       set { SampleSizeParameter.ActualValue = value; }
     161    private SimilarityCalculator SimilarityCalculator {
     162      get { return SimilarityCalculatorParameter.ActualValue; }
     163      set { SimilarityCalculatorParameter.ActualValue = value; }
    157164    }
    158165    private ISolutionCreator SolutionCreator {
     
    173180    private void Initialize() {
    174181      #region Create parameters
    175       Parameters.Add(new ValueLookupParameter<IMultiAnalyzer>("Analyzer", "The operator used to analyze the solution and moves."));
    176       Parameters.Add(new ValueLookupParameter<ICrossover>("Crossover", "The operator used to combine solutions."));
    177       Parameters.Add(new ValueLookupParameter<IOperator>("Improver", "The operator used to improve solutions."));
    178       Parameters.Add(new ValueLookupParameter<DiversityCalculator>("DiversityCalculator", "The operator used to calculate the diversity of two solutions."));
    179       Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfHighQualitySolutions", "The number of high quality solutions that should be added to the reference set."));
    180       Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize", "The size of the population."));
    181       Parameters.Add(new ValueLookupParameter<IntValue>("ReferenceSetSize", "The size of the reference set."));
    182       Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The problem's best known quality value found so far."));
    183       Parameters.Add(new ValueLookupParameter<IEvaluator>("Evaluator", "The operator which is used to evaluate new solutions."));
    184       Parameters.Add(new ValueLookupParameter<IntValue>("Iterations", "The number of iterations performed."));
    185       Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    186       Parameters.Add(new ValueLookupParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed."));
    187       Parameters.Add(new ValueLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    188       Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator."));
    189       Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored."));
    190       Parameters.Add(new ValueLookupParameter<IntValue>("SampleSize", "Number of moves that MultiMoveGenerators should create. This is ignored for Exhaustive- and SingleMoveGenerators."));
    191       Parameters.Add(new ValueLookupParameter<ISolutionCreator>("SolutionCreator", "The operator which is used to create new solutions."));
     182      Parameters.Add(new ValueLookupParameter<IMultiAnalyzer>("Analyzer"));
     183      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality"));
     184      Parameters.Add(new ValueLookupParameter<ICrossover>("Crossover"));
     185      Parameters.Add(new ValueLookupParameter<IEvaluator>("Evaluator"));
     186      Parameters.Add(new ValueLookupParameter<BoolValue>("ExecutePathRelinking"));
     187      Parameters.Add(new ValueLookupParameter<IOperator>("Improver"));
     188      Parameters.Add(new ValueLookupParameter<IntValue>("Iterations"));
     189      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization"));
     190      Parameters.Add(new ValueLookupParameter<IntValue>("MaximumIterations"));
     191      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfHighQualitySolutions"));
     192      Parameters.Add(new ValueLookupParameter<IPathRelinker>("PathRelinker"));
     193      Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize"));
     194      Parameters.Add(new ValueLookupParameter<IntValue>("ReferenceSetSize"));
     195      Parameters.Add(new ValueLookupParameter<DoubleValue>("Quality"));
     196      Parameters.Add(new ValueLookupParameter<IRandom>("Random"));
     197      Parameters.Add(new ValueLookupParameter<VariableCollection>("Results"));
     198      Parameters.Add(new ValueLookupParameter<SimilarityCalculator>("SimilarityCalculator"));
     199      Parameters.Add(new ValueLookupParameter<ISolutionCreator>("SolutionCreator"));
    192200      #endregion
    193201
    194202      #region Create operators
     203      Placeholder analyzer = new Placeholder();
    195204      Assigner assigner1 = new Assigner();
    196205      Assigner assigner2 = new Assigner();
    197206      ChildrenCreator childrenCreator = new ChildrenCreator();
     207      Placeholder crossover = new Placeholder();
    198208      Comparator iterationsChecker = new Comparator();
     209      IntCounter iterationsCounter = new IntCounter();
     210      MergingReducer mergingReducer = new MergingReducer();
     211      ConditionalBranch executePathRelinkingBranch = new ConditionalBranch();
    199212      ConditionalBranch newSolutionsBranch = new ConditionalBranch();
    200       ConditionalBranch terminateBranch = new ConditionalBranch();
    201       IntCounter interationsCounter = new IntCounter();
    202       MergingReducer mergingReducer = new MergingReducer();
    203213      OffspringProcessor offspringProcessor = new OffspringProcessor();
    204       Placeholder analyzer = new Placeholder();
    205       Placeholder crossover = new Placeholder();
     214      Placeholder pathRelinker = new Placeholder();
     215      PopulationRebuildMethod populationRebuildMethod = new PopulationRebuildMethod();
     216      ReferenceSetUpdateMethod referenceSetUpdateMethod = new ReferenceSetUpdateMethod();
     217      ResultsCollector resultsCollector = new ResultsCollector();
     218      RightSelector rightSelector = new RightSelector();
    206219      Placeholder solutionEvaluator1 = new Placeholder();
    207220      Placeholder solutionEvaluator2 = new Placeholder();
    208221      Placeholder solutionImprover1 = new Placeholder();
    209222      Placeholder solutionImprover2 = new Placeholder();
    210       PopulationRebuildMethod populationRebuildMethod = new PopulationRebuildMethod();
    211       ResultsCollector resultsCollector = new ResultsCollector();
    212       ReferenceSetUpdateMethod referenceSetUpdateMethod = new ReferenceSetUpdateMethod();
    213       RightSelector rightSelector = new RightSelector();
    214223      SolutionPoolUpdateMethod solutionPoolUpdateMethod = new SolutionPoolUpdateMethod();
    215224      SolutionsCreator solutionsCreator = new SolutionsCreator();
     
    217226      SubScopesProcessor subScopesProcessor2 = new SubScopesProcessor();
    218227      SubScopesProcessor subScopesProcessor3 = new SubScopesProcessor();
     228      ConditionalBranch terminateBranch = new ConditionalBranch();
    219229      UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor();
    220230      UniformSubScopesProcessor uniformSubScopesProcessor2 = new UniformSubScopesProcessor();
    221231      UniformSubScopesProcessor uniformSubScopesProcessor3 = new UniformSubScopesProcessor();
     232      VariableCreator variableCreator = new VariableCreator();
    222233      #endregion
    223234
    224235      #region Create operator graph
    225       OperatorGraph.InitialOperator = interationsCounter;
    226       assigner1.Name = "NewSolutions = true";
    227       assigner1.LeftSideParameter.ActualName = "NewSolutions";
    228       assigner1.RightSideParameter.Value = new BoolValue(true);
    229       assigner1.Successor = newSolutionsBranch;
    230 
    231       assigner2.Name = "NewSolutions = false";
    232       assigner2.LeftSideParameter.ActualName = "NewSolutions";
    233       assigner2.RightSideParameter.Value = new BoolValue(false);
    234       assigner2.Successor = uniformSubScopesProcessor1;
    235 
    236       childrenCreator.Name = "SubsetGenerator";
    237       childrenCreator.ParentsPerChildParameter.Value = new IntValue(2);
    238       childrenCreator.Successor = assigner2;
     236      OperatorGraph.InitialOperator = variableCreator;
     237      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Iterations", new IntValue(0)));
     238      variableCreator.CollectedValues.Add(new ValueParameter<BoolValue>("NewSolutions", new BoolValue(false)));
     239      variableCreator.Successor = resultsCollector;
     240
     241      resultsCollector.CopyValue = new BoolValue(false);
     242      resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>(IterationsParameter.Name));
     243      resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
     244      resultsCollector.Successor = iterationsChecker;
    239245
    240246      iterationsChecker.Name = "IterationsChecker";
     
    245251      iterationsChecker.Successor = terminateBranch;
    246252
    247       solutionImprover2.Name = "SolutionImprover";
    248       solutionImprover2.OperatorParameter.ActualName = "Improver";
    249       solutionImprover2.Successor = solutionEvaluator2;
    250 
    251       solutionEvaluator2.Name = "SolutionEvaluator";
    252       solutionEvaluator2.OperatorParameter.ActualName = "Evaluator";
    253       solutionEvaluator2.Successor = null;
    254 
    255       newSolutionsBranch.Name = "NewSolutionChecker";
    256       newSolutionsBranch.ConditionParameter.ActualName = "NewSolutions";
    257       newSolutionsBranch.TrueBranch = subScopesProcessor1;
    258       newSolutionsBranch.FalseBranch = populationRebuildMethod;
    259       newSolutionsBranch.Successor = null;
    260 
    261253      terminateBranch.Name = "TerminateChecker";
    262254      terminateBranch.ConditionParameter.ActualName = "Terminate";
    263       terminateBranch.TrueBranch = new EmptyOperator();
    264255      terminateBranch.FalseBranch = referenceSetUpdateMethod;
    265       terminateBranch.Successor = null;
    266 
    267       interationsCounter.Name = "IterationCounter";
    268       interationsCounter.IncrementParameter.Value = new IntValue(1);
    269       interationsCounter.ValueParameter.ActualName = "Iterations";
    270       interationsCounter.Successor = resultsCollector;
    271 
    272       offspringProcessor.Successor = rightSelector;
    273 
    274       rightSelector.NumberOfSelectedSubScopesParameter.Value = new IntValue(1);
    275       rightSelector.CopySelected = new BoolValue(false);
    276       rightSelector.Successor = subScopesProcessor2;
    277 
    278       analyzer.Name = "Analyzer";
    279       analyzer.OperatorParameter.ActualName = "Analyzer";
    280 
    281       crossover.Name = "Crossover";
    282       crossover.OperatorParameter.ActualName = "Crossover";
    283       crossover.Successor = offspringProcessor;
    284 
    285       solutionImprover1.Name = "SolutionImprover";
    286       solutionImprover1.OperatorParameter.ActualName = "Improver";
    287       solutionImprover1.Successor = solutionEvaluator1;
    288 
    289       solutionEvaluator1.Name = "SolutionEvaluator";
    290       solutionEvaluator1.OperatorParameter.ActualName = "Evaluator";
    291       solutionEvaluator1.Successor = null;
    292 
    293       populationRebuildMethod.Successor = subScopesProcessor3;
    294 
    295       resultsCollector.CopyValue = new BoolValue(false);
    296       resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>(IterationsParameter.Name));
    297       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(BestKnownQualityParameter.Name, null, BestKnownQualityParameter.Name));
    298       resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
    299       resultsCollector.Successor = iterationsChecker;
    300256
    301257      referenceSetUpdateMethod.Successor = assigner1;
    302258
    303       solutionPoolUpdateMethod.Successor = analyzer;
    304 
    305       solutionsCreator.Name = "DiversificationGenerationMethod";
    306       solutionsCreator.NumberOfSolutionsParameter.ActualName = "PopulationSize";
    307       solutionsCreator.Successor = uniformSubScopesProcessor3;
     259      assigner1.Name = "NewSolutions = true";
     260      assigner1.LeftSideParameter.ActualName = "NewSolutions";
     261      assigner1.RightSideParameter.Value = new BoolValue(true);
     262      assigner1.Successor = subScopesProcessor1;
    308263
    309264      subScopesProcessor1.DepthParameter.Value = new IntValue(1);
     
    312267      subScopesProcessor1.Successor = newSolutionsBranch;
    313268
     269      childrenCreator.Name = "SubsetGenerator";
     270      childrenCreator.ParentsPerChildParameter.Value = new IntValue(2);
     271      childrenCreator.Successor = assigner2;
     272
     273      assigner2.Name = "NewSolutions = false";
     274      assigner2.LeftSideParameter.ActualName = "NewSolutions";
     275      assigner2.RightSideParameter.Value = new BoolValue(false);
     276      assigner2.Successor = uniformSubScopesProcessor1;
     277
     278      uniformSubScopesProcessor1.DepthParameter.Value = new IntValue(1);
     279      uniformSubScopesProcessor1.Operator = executePathRelinkingBranch;
     280      uniformSubScopesProcessor1.Successor = solutionPoolUpdateMethod;
     281
     282      executePathRelinkingBranch.Name = "ExecutePathRelinkingChecker";
     283      executePathRelinkingBranch.ConditionParameter.ActualName = ExecutePathRelinkingParameter.ActualName;
     284      executePathRelinkingBranch.TrueBranch = pathRelinker;
     285      executePathRelinkingBranch.FalseBranch = crossover;
     286
     287      pathRelinker.Name = "PathRelinker";
     288      pathRelinker.OperatorParameter.ActualName = "PathRelinker";
     289      pathRelinker.Successor = offspringProcessor;
     290
     291      crossover.Name = "Crossover";
     292      crossover.OperatorParameter.ActualName = "Crossover";
     293      crossover.Successor = offspringProcessor;
     294
     295      offspringProcessor.Successor = rightSelector;
     296
     297      rightSelector.NumberOfSelectedSubScopesParameter.Value = new IntValue(1);
     298      rightSelector.CopySelected = new BoolValue(false);
     299      rightSelector.Successor = subScopesProcessor2;
     300
    314301      subScopesProcessor2.DepthParameter.Value = new IntValue(1);
    315302      subScopesProcessor2.Operators.Add(new EmptyOperator());
     
    317304      subScopesProcessor2.Successor = mergingReducer;
    318305
     306      uniformSubScopesProcessor2.DepthParameter.Value = new IntValue(2);
     307      uniformSubScopesProcessor2.Operator = solutionImprover1;
     308
     309      solutionImprover1.Name = "SolutionImprover";
     310      solutionImprover1.OperatorParameter.ActualName = "Improver";
     311      solutionImprover1.Successor = solutionEvaluator1;
     312
     313      solutionEvaluator1.Name = "SolutionEvaluator";
     314      solutionEvaluator1.OperatorParameter.ActualName = "Evaluator";
     315
     316      solutionPoolUpdateMethod.Successor = analyzer;
     317
     318      analyzer.Name = "Analyzer";
     319      analyzer.OperatorParameter.ActualName = "Analyzer";
     320
     321      newSolutionsBranch.Name = "NewSolutionsChecker";
     322      newSolutionsBranch.ConditionParameter.ActualName = "NewSolutions";
     323      newSolutionsBranch.TrueBranch = subScopesProcessor1;
     324      newSolutionsBranch.FalseBranch = populationRebuildMethod;
     325
     326      populationRebuildMethod.Successor = subScopesProcessor3;
     327
    319328      subScopesProcessor3.DepthParameter.Value = new IntValue(1);
    320329      subScopesProcessor3.Operators.Add(solutionsCreator);
    321330      subScopesProcessor3.Operators.Add(new EmptyOperator());
    322       subScopesProcessor3.Successor = interationsCounter;
    323 
    324       uniformSubScopesProcessor1.DepthParameter.Value = new IntValue(1);
    325       uniformSubScopesProcessor1.Operator = crossover;
    326       uniformSubScopesProcessor1.Successor = solutionPoolUpdateMethod;
    327 
    328       uniformSubScopesProcessor2.DepthParameter.Value = new IntValue(2);
    329       uniformSubScopesProcessor2.Operator = solutionImprover1;
    330       uniformSubScopesProcessor2.Successor = null;
     331      subScopesProcessor3.Successor = iterationsCounter;
     332
     333      solutionsCreator.Name = "DiversificationGenerationMethod";
     334      solutionsCreator.NumberOfSolutionsParameter.ActualName = "PopulationSize";
     335      solutionsCreator.Successor = uniformSubScopesProcessor3;
    331336
    332337      uniformSubScopesProcessor3.DepthParameter.Value = new IntValue(1);
    333338      uniformSubScopesProcessor3.Operator = solutionImprover2;
    334       uniformSubScopesProcessor3.Successor = null;
     339
     340      solutionImprover2.Name = "SolutionImprover";
     341      solutionImprover2.OperatorParameter.ActualName = "Improver";
     342      solutionImprover2.Successor = solutionEvaluator2;
     343
     344      solutionEvaluator2.Name = "SolutionEvaluator";
     345      solutionEvaluator2.OperatorParameter.ActualName = "Evaluator";
     346
     347      iterationsCounter.Name = "IterationCounter";
     348      iterationsCounter.IncrementParameter.Value = new IntValue(1);
     349      iterationsCounter.ValueParameter.ActualName = "Iterations";
     350      iterationsCounter.Successor = resultsCollector;
    335351      #endregion
    336352    }
Note: See TracChangeset for help on using the changeset viewer.