Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/05/10 00:48:18 (15 years ago)
Author:
swagner
Message:

Worked on refactoring of algorithm analysis and tracing (#999)

  • adapted GA and TSP
  • removed stuff related to visualizers
Location:
trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3
Files:
4 edited

Legend:

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

    r3376 r3616  
    3333using HeuristicLab.PluginInfrastructure;
    3434using HeuristicLab.Random;
     35using HeuristicLab.Analysis;
    3536
    3637namespace HeuristicLab.Algorithms.GeneticAlgorithm {
     
    7778      get { return (ValueParameter<IntValue>)Parameters["Elites"]; }
    7879    }
     80    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
     81      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     82    }
    7983    private ValueParameter<IntValue> MaximumGenerationsParameter {
    8084      get { return (ValueParameter<IntValue>)Parameters["MaximumGenerations"]; }
     
    115119      set { ElitesParameter.Value = value; }
    116120    }
     121    public MultiAnalyzer Analyzer {
     122      get { return AnalyzerParameter.Value; }
     123      set { AnalyzerParameter.Value = value; }
     124    }
    117125    public IntValue MaximumGenerations {
    118126      get { return MaximumGenerationsParameter.Value; }
     
    132140      get { return selectors; }
    133141    }
     142    private BestAverageWorstQualityAnalyzer qualityAnalyzer;
    134143    #endregion
    135144
     
    144153      Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));
    145154      Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1)));
     155      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer()));
    146156      Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntValue(1000)));
    147157
     
    168178      geneticAlgorithmMainLoop.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name;
    169179      geneticAlgorithmMainLoop.RandomParameter.ActualName = RandomCreator.RandomParameter.ActualName;
     180      geneticAlgorithmMainLoop.AnalyzerParameter.ActualName = AnalyzerParameter.Name;
    170181      geneticAlgorithmMainLoop.ResultsParameter.ActualName = "Results";
    171182
     
    189200      ParameterizeStochasticOperator(Problem.SolutionCreator);
    190201      ParameterizeStochasticOperator(Problem.Evaluator);
    191       ParameterizeStochasticOperator(Problem.Visualizer);
    192202      foreach (IOperator op in Problem.Operators) ParameterizeStochasticOperator(op);
    193203      ParameterizeSolutionsCreator();
    194204      ParameterizeGeneticAlgorithmMainLoop();
    195205      ParameterizeSelectors();
     206      ParameterizeAnalyzers();
    196207      UpdateCrossovers();
    197208      UpdateMutators();
     209      UpdateAnalyzers();
    198210      Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    199       if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);
    200211      base.OnProblemChanged();
    201212    }
     
    211222      ParameterizeGeneticAlgorithmMainLoop();
    212223      ParameterizeSelectors();
     224      ParameterizeAnalyzers();
    213225      Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    214226      base.Problem_EvaluatorChanged(sender, e);
    215     }
    216     protected override void Problem_VisualizerChanged(object sender, EventArgs e) {
    217       ParameterizeStochasticOperator(Problem.Visualizer);
    218       ParameterizeGeneticAlgorithmMainLoop();
    219       if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);
    220       base.Problem_VisualizerChanged(sender, e);
    221227    }
    222228    protected override void Problem_OperatorsChanged(object sender, EventArgs e) {
     
    224230      UpdateCrossovers();
    225231      UpdateMutators();
     232      UpdateAnalyzers();
    226233      base.Problem_OperatorsChanged(sender, e);
    227234    }
     
    243250      ParameterizeGeneticAlgorithmMainLoop();
    244251      ParameterizeSelectors();
    245     }
    246     private void Visualizer_VisualizationParameter_ActualNameChanged(object sender, EventArgs e) {
    247       ParameterizeGeneticAlgorithmMainLoop();
     252      ParameterizeAnalyzers();
    248253    }
    249254    #endregion
     
    253258    private void Initialize() {
    254259      InitializeSelectors();
     260      InitializeAnalyzers();
    255261      UpdateSelectors();
     262      UpdateAnalyzers();
    256263      PopulationSizeParameter.ValueChanged += new EventHandler(PopulationSizeParameter_ValueChanged);
    257264      PopulationSize.ValueChanged += new EventHandler(PopulationSize_ValueChanged);
     
    262269        UpdateMutators();
    263270        Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    264         if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);
    265271      }
    266272    }
     
    271277    }
    272278    private void ParameterizeGeneticAlgorithmMainLoop() {
    273       GeneticAlgorithmMainLoop.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;
    274279      GeneticAlgorithmMainLoop.EvaluatorParameter.ActualName = Problem.EvaluatorParameter.Name;
    275280      GeneticAlgorithmMainLoop.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
    276281      GeneticAlgorithmMainLoop.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
    277       GeneticAlgorithmMainLoop.VisualizerParameter.ActualName = Problem.VisualizerParameter.Name;
    278       if (Problem.Visualizer != null)
    279         GeneticAlgorithmMainLoop.VisualizationParameter.ActualName = Problem.Visualizer.VisualizationParameter.ActualName;
    280282    }
    281283    private void ParameterizeStochasticOperator(IOperator op) {
     
    287289      selectors.AddRange(ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name));
    288290      ParameterizeSelectors();
     291    }
     292    private void InitializeAnalyzers() {
     293      qualityAnalyzer = new BestAverageWorstQualityAnalyzer();
     294      ParameterizeAnalyzers();
    289295    }
    290296    private void ParameterizeSelectors() {
     
    299305          selector.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
    300306        }
     307      }
     308    }
     309    private void ParameterizeAnalyzers() {
     310      qualityAnalyzer.ResultsParameter.ActualName = "Results";
     311      if (Problem != null) {
     312        qualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
     313        qualityAnalyzer.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
     314        qualityAnalyzer.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;
    301315      }
    302316    }
     
    335349      }
    336350    }
     351    private void UpdateAnalyzers() {
     352      Analyzer.Operators.Clear();
     353      Analyzer.Operators.Add(qualityAnalyzer);
     354      if (Problem != null) {
     355        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
     356          Analyzer.Operators.Add(analyzer);
     357      }
     358    }
    337359    #endregion
    338360  }
  • TabularUnified trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithmMainLoop.cs

    r3376 r3616  
    4747      get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
    4848    }
    49     public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {
    50       get { return (ValueLookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
    51     }
    5249    public ValueLookupParameter<IOperator> SelectorParameter {
    5350      get { return (ValueLookupParameter<IOperator>)Parameters["Selector"]; }
     
    7471      get { return (ValueLookupParameter<VariableCollection>)Parameters["Results"]; }
    7572    }
    76     public ValueLookupParameter<IOperator> VisualizerParameter {
    77       get { return (ValueLookupParameter<IOperator>)Parameters["Visualizer"]; }
    78     }
    79     public LookupParameter<IItem> VisualizationParameter {
    80       get { return (LookupParameter<IItem>)Parameters["Visualization"]; }
     73    public ValueLookupParameter<IOperator> AnalyzerParameter {
     74      get { return (ValueLookupParameter<IOperator>)Parameters["Analyzer"]; }
    8175    }
    8276    private ScopeParameter CurrentScopeParameter {
     
    10195      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    10296      Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    103       Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
    10497      Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction."));
    10598      Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions."));
     
    110103      Parameters.Add(new ValueLookupParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed."));
    111104      Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored."));
    112       Parameters.Add(new ValueLookupParameter<IOperator>("Visualizer", "The operator used to visualize solutions."));
    113       Parameters.Add(new LookupParameter<IItem>("Visualization", "The item which represents the visualization of solutions."));
     105      Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation."));
    114106      Parameters.Add(new ScopeParameter("CurrentScope", "The current scope which represents a population of solutions on which the genetic algorithm should be applied."));
    115107      #endregion
     
    117109      #region Create operators
    118110      VariableCreator variableCreator = new VariableCreator();
    119       BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer();
    120       BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer();
    121       BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator1 = new BestAverageWorstQualityCalculator();
    122       DataTableValuesCollector dataTableValuesCollector1 = new DataTableValuesCollector();
    123       QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator();
    124       Placeholder visualizer1 = new Placeholder();
    125       ResultsCollector resultsCollector = new ResultsCollector();
     111      ResultsCollector resultsCollector1 = new ResultsCollector();
     112      Placeholder analyzer1 = new Placeholder();
    126113      Placeholder selector = new Placeholder();
    127114      SubScopesProcessor subScopesProcessor1 = new SubScopesProcessor();
     
    139126      IntCounter intCounter = new IntCounter();
    140127      Comparator comparator = new Comparator();
    141       BestQualityMemorizer bestQualityMemorizer3 = new BestQualityMemorizer();
    142       BestQualityMemorizer bestQualityMemorizer4 = new BestQualityMemorizer();
    143       BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator();
    144       DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector();
    145       QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator();
    146       Placeholder visualizer2 = new Placeholder();
     128      ResultsCollector resultsCollector2 = new ResultsCollector();
     129      Placeholder analyzer2 = new Placeholder();
    147130      ConditionalBranch conditionalBranch = new ConditionalBranch();
    148131
    149132      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0)));
    150133
    151       bestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality";
    152       bestQualityMemorizer1.MaximizationParameter.ActualName = "Maximization";
    153       bestQualityMemorizer1.QualityParameter.ActualName = "Quality";
    154 
    155       bestQualityMemorizer2.BestQualityParameter.ActualName = "BestKnownQuality";
    156       bestQualityMemorizer2.MaximizationParameter.ActualName = "Maximization";
    157       bestQualityMemorizer2.QualityParameter.ActualName = "Quality";
    158 
    159       bestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageQuality";
    160       bestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestQuality";
    161       bestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = "Maximization";
    162       bestAverageWorstQualityCalculator1.QualityParameter.ActualName = "Quality";
    163       bestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstQuality";
    164 
    165       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    166       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    167       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    168       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    169       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
    170       dataTableValuesCollector1.DataTableParameter.ActualName = "Qualities";
    171 
    172       qualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    173       qualityDifferenceCalculator1.FirstQualityParameter.ActualName = "BestKnownQuality";
    174       qualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
    175       qualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality";
    176 
    177       visualizer1.Name = "Visualizer";
    178       visualizer1.OperatorParameter.ActualName = "Visualizer";
    179 
    180       resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    181       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    182       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    183       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    184       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    185       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
    186       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest"));
    187       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest"));
    188       resultsCollector.CollectedValues.Add(new LookupParameter<IItem>("Solution Visualization", null, "Visualization"));
    189       resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities"));
    190       resultsCollector.ResultsParameter.ActualName = "Results";
     134      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
     135      resultsCollector1.ResultsParameter.ActualName = "Results";
     136
     137      analyzer1.Name = "Analyzer";
     138      analyzer1.OperatorParameter.ActualName = "Analyzer";
    191139
    192140      selector.Name = "Selector";
     
    222170      comparator.RightSideParameter.ActualName = "MaximumGenerations";
    223171
    224       bestQualityMemorizer3.BestQualityParameter.ActualName = "BestQuality";
    225       bestQualityMemorizer3.MaximizationParameter.ActualName = "Maximization";
    226       bestQualityMemorizer3.QualityParameter.ActualName = "Quality";
    227 
    228       bestQualityMemorizer4.BestQualityParameter.ActualName = "BestKnownQuality";
    229       bestQualityMemorizer4.MaximizationParameter.ActualName = "Maximization";
    230       bestQualityMemorizer4.QualityParameter.ActualName = "Quality";
    231 
    232       bestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "CurrentAverageQuality";
    233       bestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "CurrentBestQuality";
    234       bestAverageWorstQualityCalculator2.MaximizationParameter.ActualName = "Maximization";
    235       bestAverageWorstQualityCalculator2.QualityParameter.ActualName = "Quality";
    236       bestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "CurrentWorstQuality";
    237 
    238       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    239       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    240       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    241       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    242       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
    243       dataTableValuesCollector2.DataTableParameter.ActualName = "Qualities";
    244 
    245       qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    246       qualityDifferenceCalculator2.FirstQualityParameter.ActualName = "BestKnownQuality";
    247       qualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
    248       qualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality";
    249 
    250       visualizer2.Name = "Visualizer";
    251       visualizer2.OperatorParameter.ActualName = "Visualizer";
     172      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
     173      resultsCollector2.ResultsParameter.ActualName = "Results";
     174
     175      analyzer2.Name = "Analyzer";
     176      analyzer2.OperatorParameter.ActualName = "Analyzer";
    252177
    253178      conditionalBranch.ConditionParameter.ActualName = "Terminate";
     
    256181      #region Create operator graph
    257182      OperatorGraph.InitialOperator = variableCreator;
    258       variableCreator.Successor = bestQualityMemorizer1;
    259       bestQualityMemorizer1.Successor = bestQualityMemorizer2;
    260       bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator1;
    261       bestAverageWorstQualityCalculator1.Successor = dataTableValuesCollector1;
    262       dataTableValuesCollector1.Successor = qualityDifferenceCalculator1;
    263       qualityDifferenceCalculator1.Successor = visualizer1;
    264       visualizer1.Successor = resultsCollector;
    265       resultsCollector.Successor = selector;
     183      variableCreator.Successor = resultsCollector1;
     184      resultsCollector1.Successor = analyzer1;
     185      analyzer1.Successor = selector;
    266186      selector.Successor = subScopesProcessor1;
    267187      subScopesProcessor1.Operators.Add(new EmptyOperator());
     
    285205      mergingReducer.Successor = intCounter;
    286206      intCounter.Successor = comparator;
    287       comparator.Successor = bestQualityMemorizer3;
    288       bestQualityMemorizer3.Successor = bestQualityMemorizer4;
    289       bestQualityMemorizer4.Successor = bestAverageWorstQualityCalculator2;
    290       bestAverageWorstQualityCalculator2.Successor = dataTableValuesCollector2;
    291       dataTableValuesCollector2.Successor = qualityDifferenceCalculator2;
    292       qualityDifferenceCalculator2.Successor = visualizer2;
    293       visualizer2.Successor = conditionalBranch;
     207      comparator.Successor = resultsCollector2;
     208      resultsCollector2.Successor = analyzer2;
     209      analyzer2.Successor = conditionalBranch;
    294210      conditionalBranch.FalseBranch = selector;
    295211      conditionalBranch.TrueBranch = null;
  • TabularUnified trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs

    r3609 r3616  
    271271      ParameterizeStochasticOperator(Problem.SolutionCreator);
    272272      ParameterizeStochasticOperator(Problem.Evaluator);
    273       ParameterizeStochasticOperator(Problem.Visualizer);
    274273      foreach (IOperator op in Problem.Operators) ParameterizeStochasticOperator(op);
    275274      ParameterizeSolutionsCreator();
     
    279278      UpdateMutators();
    280279      Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    281       if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);
    282280      base.OnProblemChanged();
    283281    }
     
    295293      Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    296294      base.Problem_EvaluatorChanged(sender, e);
    297     }
    298     protected override void Problem_VisualizerChanged(object sender, EventArgs e) {
    299       ParameterizeStochasticOperator(Problem.Visualizer);
    300       ParameterizeMainLoop();
    301       if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);
    302       base.Problem_VisualizerChanged(sender, e);
    303295    }
    304296    protected override void Problem_OperatorsChanged(object sender, EventArgs e) {
     
    325317      ParameterizeMainLoop();
    326318      ParameterizeSelectors();
    327     }
    328     private void Visualizer_VisualizationParameter_ActualNameChanged(object sender, EventArgs e) {
    329       ParameterizeMainLoop();
    330319    }
    331320    private void MigrationRateParameter_ValueChanged(object sender, EventArgs e) {
     
    355344        UpdateMutators();
    356345        Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    357         if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);
    358346      }
    359347    }
     
    367355      MainLoop.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
    368356      MainLoop.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
    369       MainLoop.VisualizerParameter.ActualName = Problem.VisualizerParameter.Name;
    370       if (Problem.Visualizer != null)
    371         MainLoop.VisualizationParameter.ActualName = Problem.Visualizer.VisualizationParameter.ActualName;
    372357    }
    373358    private void ParameterizeStochasticOperator(IOperator op) {
  • TabularUnified trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs

    r3611 r3616  
    100100      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
    101101    }
    102     public ValueLookupParameter<IOperator> VisualizerParameter {
    103       get { return (ValueLookupParameter<IOperator>)Parameters["Visualizer"]; }
    104     }
    105     public LookupParameter<IItem> VisualizationParameter {
    106       get { return (LookupParameter<IItem>)Parameters["Visualization"]; }
     102    public ValueLookupParameter<IOperator> AnalyzerParameter {
     103      get { return (ValueLookupParameter<IOperator>)Parameters["Analyzer"]; }
    107104    }
    108105    #endregion
     
    132129      Parameters.Add(new ValueLookupParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation."));
    133130      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The results collection to store the results."));
    134       Parameters.Add(new ValueLookupParameter<IOperator>("Visualizer", "The operator used to visualize solutions."));
    135       Parameters.Add(new LookupParameter<IItem>("Visualization", "The item which represents the visualization of solutions."));
     131      Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each island."));
    136132      #endregion
    137133
     
    144140      DataTableValuesCollector islandDataTableValuesCollector1 = new DataTableValuesCollector();
    145141      QualityDifferenceCalculator islandQualityDifferenceCalculator1 = new QualityDifferenceCalculator();
    146       Placeholder islandVisualizer1 = new Placeholder();
     142      Placeholder islandAnalyzer1 = new Placeholder();
    147143      ResultsCollector islandResultsCollector = new ResultsCollector();
    148144      BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer();
     
    170166      DataTableValuesCollector islandDataTableValuesCollector2 = new DataTableValuesCollector();
    171167      QualityDifferenceCalculator islandQualityDifferenceCalculator2 = new QualityDifferenceCalculator();
    172       Placeholder islandVisualizer2 = new Placeholder();
     168      Placeholder islandAnalyzer2 = new Placeholder();
    173169      IntCounter generationsCounter = new IntCounter();
    174170      IntCounter generationsSinceLastMigrationCounter = new IntCounter();
     
    218214      islandQualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality";
    219215
    220       islandVisualizer1.Name = "Visualizer";
    221       islandVisualizer1.OperatorParameter.ActualName = "Visualizer";
     216      islandAnalyzer1.Name = "Analyzer";
     217      islandAnalyzer1.OperatorParameter.ActualName = "Analyzer";
    222218
    223219      islandResultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
     
    229225      islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest"));
    230226      islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest"));
    231       islandResultsCollector.CollectedValues.Add(new LookupParameter<IItem>("Solution Visualization", null, "Visualization"));
    232227      islandResultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities"));
    233228      islandResultsCollector.ResultsParameter.ActualName = "IslandResults";
     
    317312      islandQualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality";
    318313
    319       islandVisualizer2.Name = "Visualizer";
    320       islandVisualizer2.OperatorParameter.ActualName = "Visualizer";
     314      islandAnalyzer2.Name = "Analyzer";
     315      islandAnalyzer2.OperatorParameter.ActualName = "Analyzer";
    321316
    322317      generationsCounter.Name = "Generations + 1";
     
    399394      islandBestAverageWorstQualityCalculator1.Successor = islandDataTableValuesCollector1;
    400395      islandDataTableValuesCollector1.Successor = islandQualityDifferenceCalculator1;
    401       islandQualityDifferenceCalculator1.Successor = islandVisualizer1;
    402       islandVisualizer1.Successor = islandResultsCollector;
     396      islandQualityDifferenceCalculator1.Successor = islandAnalyzer1;
     397      islandAnalyzer1.Successor = islandResultsCollector;
    403398      bestQualityMemorizer1.Successor = bestQualityMemorizer2;
    404399      bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator1;
     
    432427      islandBestAverageWorstQualityCalculator2.Successor = islandDataTableValuesCollector2;
    433428      islandDataTableValuesCollector2.Successor = islandQualityDifferenceCalculator2;
    434       islandQualityDifferenceCalculator2.Successor = islandVisualizer2;
    435       islandVisualizer2.Successor = null;
     429      islandQualityDifferenceCalculator2.Successor = islandAnalyzer2;
     430      islandAnalyzer2.Successor = null;
    436431      generationsCounter.Successor = generationsSinceLastMigrationCounter;
    437432      generationsSinceLastMigrationCounter.Successor = migrationComparator;
Note: See TracChangeset for help on using the changeset viewer.