Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/05/10 18:54:00 (14 years ago)
Author:
abeham
Message:

#999

  • ported Island GA to Analyzers
  • ported OSGA to Analyzers
  • changed OSGA to use OSGA's main operator
Location:
trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs

    r3616 r3650  
    3434using HeuristicLab.Random;
    3535using HeuristicLab.Selection;
     36using HeuristicLab.Analysis;
    3637
    3738namespace HeuristicLab.Algorithms.GeneticAlgorithm {
     
    103104      get { return (ValueParameter<BoolValue>)Parameters["Parallel"]; }
    104105    }
     106    private ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>> AnalyzerParameter {
     107      get { return (ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>)Parameters["Analyzer"]; }
     108    }
     109    private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> IslandAnalyzerParameter {
     110      get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["IslandAnalyzer"]; }
     111    }
    105112    #endregion
    106113
     
    169176      get { return ParallelParameter.Value; }
    170177      set { ParallelParameter.Value = value; }
     178    }
     179    public MultiAnalyzer<IMultiPopulationAnalyzer> Analyzer {
     180      get { return AnalyzerParameter.Value; }
     181      set { AnalyzerParameter.Value = value; }
     182    }
     183    public MultiAnalyzer<IPopulationAnalyzer> IslandAnalyzer {
     184      get { return IslandAnalyzerParameter.Value; }
     185      set { IslandAnalyzerParameter.Value = value; }
    171186    }
    172187    private List<ISelector> selectors;
     
    189204      get { return (IslandGeneticAlgorithmMainLoop)IslandProcessor.Successor; }
    190205    }
     206    private PopulationBestAverageWorstQualityAnalyzer islandQualityAnalyzer;
     207    //private MultipopulationBestAverageWorstQualityAnalyzer qualityAnalyzer;
    191208    #endregion
    192209
     
    211228      Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1)));
    212229      Parameters.Add(new ValueParameter<BoolValue>("Parallel", "True if the islands should be run in parallel (also requires a parallel engine)", new BoolValue(false)));
    213 
     230      Parameters.Add(new ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer<IMultiPopulationAnalyzer>()));
     231      Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("IslandAnalyzer", "The operator used to analyze each island.", new MultiAnalyzer<IPopulationAnalyzer>()));
     232     
    214233      RandomCreator randomCreator = new RandomCreator();
    215234      SubScopesCreator populationCreator = new SubScopesCreator();
     
    251270      mainLoop.RandomParameter.ActualName = randomCreator.RandomParameter.ActualName;
    252271      mainLoop.ResultsParameter.ActualName = "Results";
     272      mainLoop.AnalyzerParameter.ActualName = AnalyzerParameter.Name;
     273      mainLoop.IslandAnalyzerParameter.ActualName = IslandAnalyzerParameter.Name;
    253274
    254275      mainLoop.Successor = null;
     
    275296      ParameterizeMainLoop();
    276297      ParameterizeSelectors();
     298      ParameterizeAnalyzers();
    277299      UpdateCrossovers();
    278300      UpdateMutators();
     301      UpdateAnalyzers();
    279302      Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    280303      base.OnProblemChanged();
     
    291314      ParameterizeMainLoop();
    292315      ParameterizeSelectors();
     316      ParameterizeAnalyzers();
    293317      Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    294318      base.Problem_EvaluatorChanged(sender, e);
     
    298322      UpdateCrossovers();
    299323      UpdateMutators();
     324      UpdateAnalyzers();
    300325      base.Problem_OperatorsChanged(sender, e);
    301326    }
     
    317342      ParameterizeMainLoop();
    318343      ParameterizeSelectors();
     344      ParameterizeAnalyzers();
    319345    }
    320346    private void MigrationRateParameter_ValueChanged(object sender, EventArgs e) {
     
    331357    private void Initialize() {
    332358      InitializeSelectors();
     359      InitializeAnalyzers();
    333360      UpdateSelectors();
     361      UpdateAnalyzers();
    334362      InitializeMigrators();
    335363      UpdateMigrators();
     
    368396      immigrationReplacers.AddRange(ApplicationManager.Manager.GetInstances<IReplacer>().OrderBy(x => x.Name));
    369397      ParameterizeSelectors();
     398    }
     399    private void InitializeAnalyzers() {
     400      islandQualityAnalyzer = new PopulationBestAverageWorstQualityAnalyzer();
     401      //qualityAnalyzer = new MultipopulationBestAverageWorstQualityAnalyzer();
     402      ParameterizeAnalyzers();
    370403    }
    371404    private void InitializeMigrators() {
     
    403436      }
    404437    }
     438    private void ParameterizeAnalyzers() {
     439      islandQualityAnalyzer.ResultsParameter.ActualName = "Results";
     440      //qualityAnalyzer.ResultsParameter.ActualName = "Results";
     441      if (Problem != null) {
     442        islandQualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
     443        islandQualityAnalyzer.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
     444        islandQualityAnalyzer.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;
     445      }
     446    }
    405447    private void UpdateSelectors() {
    406448      ISelector oldSelector = SelectorParameter.Value;
     
    465507      }
    466508    }
     509    private void UpdateAnalyzers() {
     510      IslandAnalyzer.Operators.Clear();
     511      Analyzer.Operators.Clear();
     512      IslandAnalyzer.Operators.Add(islandQualityAnalyzer);
     513      //Analyzer.Operators.Add(qualityAnalyzer);
     514      if (Problem != null) {
     515        foreach (IPopulationAnalyzer analyzer in Problem.Operators.OfType<IPopulationAnalyzer>().OrderBy(x => x.Name)) {
     516          IslandAnalyzer.Operators.Add(analyzer);
     517        }
     518        foreach (IMultiPopulationAnalyzer analyzer in Problem.Operators.OfType<IMultiPopulationAnalyzer>().OrderBy(x => x.Name))
     519          Analyzer.Operators.Add(analyzer);
     520      }
     521    }
    467522    #endregion
    468523  }
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs

    r3616 r3650  
    102102    public ValueLookupParameter<IOperator> AnalyzerParameter {
    103103      get { return (ValueLookupParameter<IOperator>)Parameters["Analyzer"]; }
     104    }
     105    public ValueLookupParameter<IOperator> IslandAnalyzerParameter {
     106      get { return (ValueLookupParameter<IOperator>)Parameters["IslandAnalyzer"]; }
    104107    }
    105108    #endregion
     
    129132      Parameters.Add(new ValueLookupParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation."));
    130133      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The results collection to store the results."));
    131       Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each island."));
     134      Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to the analyze the islands."));
     135      Parameters.Add(new ValueLookupParameter<IOperator>("IslandAnalyzer", "The operator used to analyze each island."));
    132136      #endregion
    133137
     
    136140      UniformSubScopesProcessor uniformSubScopesProcessor0 = new UniformSubScopesProcessor();
    137141      VariableCreator islandVariableCreator = new VariableCreator();
    138       BestQualityMemorizer islandBestQualityMemorizer1 = new BestQualityMemorizer();
    139       BestAverageWorstQualityCalculator islandBestAverageWorstQualityCalculator1 = new BestAverageWorstQualityCalculator();
    140       DataTableValuesCollector islandDataTableValuesCollector1 = new DataTableValuesCollector();
    141       QualityDifferenceCalculator islandQualityDifferenceCalculator1 = new QualityDifferenceCalculator();
    142142      Placeholder islandAnalyzer1 = new Placeholder();
    143       ResultsCollector islandResultsCollector = new ResultsCollector();
    144       BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer();
    145       BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer();
    146       BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator1 = new BestAverageWorstQualityCalculator();
    147       DataTableValuesCollector dataTableValuesCollector1 = new DataTableValuesCollector();
    148       QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator();
    149       ResultsCollector resultsCollector = new ResultsCollector();
     143      Placeholder analyzer1 = new Placeholder();
     144      ResultsCollector resultsCollector1 = new ResultsCollector();
     145      ResultsCollector resultsCollector2 = new ResultsCollector();
    150146      UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor();
    151147      Placeholder selector = new Placeholder();
     
    162158      RightReducer rightReducer = new RightReducer();
    163159      MergingReducer mergingReducer = new MergingReducer();
    164       BestQualityMemorizer islandBestQualityMemorizer2 = new BestQualityMemorizer();
    165       BestAverageWorstQualityCalculator islandBestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator();
    166       DataTableValuesCollector islandDataTableValuesCollector2 = new DataTableValuesCollector();
    167       QualityDifferenceCalculator islandQualityDifferenceCalculator2 = new QualityDifferenceCalculator();
    168160      Placeholder islandAnalyzer2 = new Placeholder();
    169161      IntCounter generationsCounter = new IntCounter();
     
    179171      Placeholder immigrationReplacer = new Placeholder();
    180172      Comparator generationsComparator = new Comparator();
    181       BestQualityMemorizer bestQualityMemorizer3 = new BestQualityMemorizer();
    182       BestQualityMemorizer bestQualityMemorizer4 = new BestQualityMemorizer();
    183       BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator();
    184       DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector();
    185       QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator();
     173      Placeholder analyzer2 = new Placeholder();
     174      ResultsCollector resultsCollector3 = new ResultsCollector();
    186175      ConditionalBranch generationsTerminationCondition = new ConditionalBranch();
    187176
     
    190179      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0)));
    191180
    192       islandVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("IslandResults", new ResultCollection()));
    193 
    194       islandBestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality";
    195       islandBestQualityMemorizer1.MaximizationParameter.ActualName = MaximizationParameter.Name;
    196       islandBestQualityMemorizer1.QualityParameter.ActualName = QualityParameter.Name;
    197 
    198       islandBestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageQuality";
    199       islandBestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestQuality";
    200       islandBestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = MaximizationParameter.Name;
    201       islandBestAverageWorstQualityCalculator1.QualityParameter.ActualName = QualityParameter.Name;
    202       islandBestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstQuality";
    203 
    204       islandDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    205       islandDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    206       islandDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    207       islandDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    208       islandDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
    209       islandDataTableValuesCollector1.DataTableParameter.ActualName = "Qualities";
    210 
    211       islandQualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    212       islandQualityDifferenceCalculator1.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;
    213       islandQualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
    214       islandQualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality";
    215 
    216       islandAnalyzer1.Name = "Analyzer";
    217       islandAnalyzer1.OperatorParameter.ActualName = "Analyzer";
    218 
    219       islandResultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    220       islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    221       islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    222       islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    223       islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    224       islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
    225       islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest"));
    226       islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest"));
    227       islandResultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities"));
    228       islandResultsCollector.ResultsParameter.ActualName = "IslandResults";
    229 
    230       bestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality";
    231       bestQualityMemorizer1.MaximizationParameter.ActualName = MaximizationParameter.Name;
    232       bestQualityMemorizer1.QualityParameter.ActualName = "BestQuality";
    233 
    234       bestQualityMemorizer2.BestQualityParameter.ActualName = BestKnownQualityParameter.Name;
    235       bestQualityMemorizer2.MaximizationParameter.ActualName = MaximizationParameter.Name;
    236       bestQualityMemorizer2.QualityParameter.ActualName = "BestQuality";
    237 
    238       bestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageBestQuality";
    239       bestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestBestQuality";
    240       bestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = MaximizationParameter.Name;
    241       bestAverageWorstQualityCalculator1.QualityParameter.ActualName = "CurrentBestQuality";
    242       bestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstBestQuality";
    243 
    244       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestBestQuality"));
    245       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average BestQuality", null, "CurrentAverageBestQuality"));
    246       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst BestQuality", null, "CurrentWorstBestQuality"));
    247       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    248       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));
    249       dataTableValuesCollector1.DataTableParameter.ActualName = "BestQualities";
    250 
    251       qualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    252       qualityDifferenceCalculator1.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;
    253       qualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
    254       qualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality";
    255 
    256       resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Migrations"));
    257       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestBestQuality"));
    258       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average BestQuality", null, "CurrentAverageBestQuality"));
    259       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst BestQuality", null, "CurrentWorstBestQuality"));
    260       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    261       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));
    262       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest"));
    263       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest"));
    264       resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("BestQualities"));
    265       resultsCollector.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("IslandResults", "Result set for each island"));
    266       resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
     181      islandVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("Results", new ResultCollection()));
     182
     183      islandAnalyzer1.Name = "Island Analyzer (placeholder)";
     184      islandAnalyzer1.OperatorParameter.ActualName = IslandAnalyzerParameter.Name;
     185
     186      analyzer1.Name = "Analyzer (placeholder)";
     187      analyzer1.OperatorParameter.ActualName = AnalyzerParameter.Name;
     188
     189      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Migrations"));
     190      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
     191      resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name;
     192
     193      resultsCollector2.Name = "Reference Island Results";
     194      resultsCollector2.CopyValue = new BoolValue(false);
     195      resultsCollector2.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
     196      resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
    267197
    268198      selector.Name = "Selector (placeholder)";
     
    290220      bestSelector.QualityParameter.ActualName = QualityParameter.Name;
    291221
    292       islandBestQualityMemorizer2.BestQualityParameter.ActualName = "BestQuality";
    293       islandBestQualityMemorizer2.MaximizationParameter.ActualName = MaximizationParameter.Name;
    294       islandBestQualityMemorizer2.QualityParameter.ActualName = QualityParameter.Name;
    295 
    296       islandBestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "CurrentAverageQuality";
    297       islandBestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "CurrentBestQuality";
    298       islandBestAverageWorstQualityCalculator2.MaximizationParameter.ActualName = MaximizationParameter.Name;
    299       islandBestAverageWorstQualityCalculator2.QualityParameter.ActualName = QualityParameter.Name;
    300       islandBestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "CurrentWorstQuality";
    301 
    302       islandDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    303       islandDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    304       islandDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    305       islandDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    306       islandDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));
    307       islandDataTableValuesCollector2.DataTableParameter.ActualName = "Qualities";
    308 
    309       islandQualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    310       islandQualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;
    311       islandQualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
    312       islandQualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality";
    313 
    314       islandAnalyzer2.Name = "Analyzer";
    315       islandAnalyzer2.OperatorParameter.ActualName = "Analyzer";
     222      islandAnalyzer2.Name = "Island Analyzer (placeholder)";
     223      islandAnalyzer2.OperatorParameter.ActualName = IslandAnalyzerParameter.Name;
    316224
    317225      generationsCounter.Name = "Generations + 1";
     
    355263      generationsComparator.RightSideParameter.ActualName = MaximumGenerationsParameter.Name;
    356264
    357       bestQualityMemorizer3.BestQualityParameter.ActualName = "BestQuality";
    358       bestQualityMemorizer3.MaximizationParameter.ActualName = MaximizationParameter.Name;
    359       bestQualityMemorizer3.QualityParameter.ActualName = "BestQuality";
    360 
    361       bestQualityMemorizer4.BestQualityParameter.ActualName = BestKnownQualityParameter.Name;
    362       bestQualityMemorizer4.MaximizationParameter.ActualName = MaximizationParameter.Name;
    363       bestQualityMemorizer4.QualityParameter.ActualName = "BestQuality";
    364 
    365       bestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "CurrentAverageBestQuality";
    366       bestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "CurrentBestBestQuality";
    367       bestAverageWorstQualityCalculator2.MaximizationParameter.ActualName = MaximizationParameter.Name;
    368       bestAverageWorstQualityCalculator2.QualityParameter.ActualName = "CurrentBestQuality";
    369       bestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "CurrentWorstBestQuality";
    370 
    371       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best BestQuality", null, "CurrentBestBestQuality"));
    372       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average BestQuality", null, "CurrentAverageBestQuality"));
    373       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst BestQuality", null, "CurrentWorstBestQuality"));
    374       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    375       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));
    376       dataTableValuesCollector2.DataTableParameter.ActualName = "BestQualities";
    377 
    378       qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    379       qualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;
    380       qualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
    381       qualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality";
     265      analyzer2.Name = "Analyzer (placeholder)";
     266      analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name;
     267
     268      resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Migrations"));
     269      resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
     270      resultsCollector3.ResultsParameter.ActualName = ResultsParameter.Name;
    382271
    383272      generationsTerminationCondition.Name = "Terminate?";
     
    389278      variableCreator.Successor = uniformSubScopesProcessor0;
    390279      uniformSubScopesProcessor0.Operator = islandVariableCreator;
    391       uniformSubScopesProcessor0.Successor = bestQualityMemorizer1;
    392       islandVariableCreator.Successor = islandBestQualityMemorizer1;
    393       islandBestQualityMemorizer1.Successor = islandBestAverageWorstQualityCalculator1;
    394       islandBestAverageWorstQualityCalculator1.Successor = islandDataTableValuesCollector1;
    395       islandDataTableValuesCollector1.Successor = islandQualityDifferenceCalculator1;
    396       islandQualityDifferenceCalculator1.Successor = islandAnalyzer1;
    397       islandAnalyzer1.Successor = islandResultsCollector;
    398       bestQualityMemorizer1.Successor = bestQualityMemorizer2;
    399       bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator1;
    400       bestAverageWorstQualityCalculator1.Successor = dataTableValuesCollector1;
    401       dataTableValuesCollector1.Successor = qualityDifferenceCalculator1;
    402       qualityDifferenceCalculator1.Successor = resultsCollector;
    403       resultsCollector.Successor = uniformSubScopesProcessor1;
     280      uniformSubScopesProcessor0.Successor = analyzer1;
     281      islandVariableCreator.Successor = islandAnalyzer1;
     282      islandAnalyzer1.Successor = null;
     283      analyzer1.Successor = resultsCollector1;
     284      resultsCollector1.Successor = resultsCollector2;
     285      resultsCollector2.Successor = uniformSubScopesProcessor1;
    404286      uniformSubScopesProcessor1.Operator = selector;
    405287      uniformSubScopesProcessor1.Successor = generationsCounter;
     
    423305      bestSelector.Successor = rightReducer;
    424306      rightReducer.Successor = null;
    425       mergingReducer.Successor = islandBestQualityMemorizer2;
    426       islandBestQualityMemorizer2.Successor = islandBestAverageWorstQualityCalculator2;
    427       islandBestAverageWorstQualityCalculator2.Successor = islandDataTableValuesCollector2;
    428       islandDataTableValuesCollector2.Successor = islandQualityDifferenceCalculator2;
    429       islandQualityDifferenceCalculator2.Successor = islandAnalyzer2;
     307      mergingReducer.Successor = islandAnalyzer2;
    430308      islandAnalyzer2.Successor = null;
    431309      generationsCounter.Successor = generationsSinceLastMigrationCounter;
     
    442320      uniformSubScopesProcessor4.Operator = immigrationReplacer;
    443321      uniformSubScopesProcessor4.Successor = null;
    444       generationsComparator.Successor = bestQualityMemorizer3;
    445       bestQualityMemorizer3.Successor = bestQualityMemorizer4;
    446       bestQualityMemorizer4.Successor = bestAverageWorstQualityCalculator2;
    447       bestAverageWorstQualityCalculator2.Successor = dataTableValuesCollector2;
    448       dataTableValuesCollector2.Successor = qualityDifferenceCalculator2;
    449       qualityDifferenceCalculator2.Successor = generationsTerminationCondition;
     322      generationsComparator.Successor = analyzer2;
     323      analyzer2.Successor = resultsCollector3;
     324      resultsCollector3.Successor = generationsTerminationCondition;
    450325      generationsTerminationCondition.TrueBranch = null;
    451326      generationsTerminationCondition.FalseBranch = uniformSubScopesProcessor1;
Note: See TracChangeset for help on using the changeset viewer.