Changeset 3616 for trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm
- Timestamp:
- 05/05/10 00:48:18 (15 years ago)
- 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 33 33 using HeuristicLab.PluginInfrastructure; 34 34 using HeuristicLab.Random; 35 using HeuristicLab.Analysis; 35 36 36 37 namespace HeuristicLab.Algorithms.GeneticAlgorithm { … … 77 78 get { return (ValueParameter<IntValue>)Parameters["Elites"]; } 78 79 } 80 private ValueParameter<MultiAnalyzer> AnalyzerParameter { 81 get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; } 82 } 79 83 private ValueParameter<IntValue> MaximumGenerationsParameter { 80 84 get { return (ValueParameter<IntValue>)Parameters["MaximumGenerations"]; } … … 115 119 set { ElitesParameter.Value = value; } 116 120 } 121 public MultiAnalyzer Analyzer { 122 get { return AnalyzerParameter.Value; } 123 set { AnalyzerParameter.Value = value; } 124 } 117 125 public IntValue MaximumGenerations { 118 126 get { return MaximumGenerationsParameter.Value; } … … 132 140 get { return selectors; } 133 141 } 142 private BestAverageWorstQualityAnalyzer qualityAnalyzer; 134 143 #endregion 135 144 … … 144 153 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 145 154 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())); 146 156 Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntValue(1000))); 147 157 … … 168 178 geneticAlgorithmMainLoop.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name; 169 179 geneticAlgorithmMainLoop.RandomParameter.ActualName = RandomCreator.RandomParameter.ActualName; 180 geneticAlgorithmMainLoop.AnalyzerParameter.ActualName = AnalyzerParameter.Name; 170 181 geneticAlgorithmMainLoop.ResultsParameter.ActualName = "Results"; 171 182 … … 189 200 ParameterizeStochasticOperator(Problem.SolutionCreator); 190 201 ParameterizeStochasticOperator(Problem.Evaluator); 191 ParameterizeStochasticOperator(Problem.Visualizer);192 202 foreach (IOperator op in Problem.Operators) ParameterizeStochasticOperator(op); 193 203 ParameterizeSolutionsCreator(); 194 204 ParameterizeGeneticAlgorithmMainLoop(); 195 205 ParameterizeSelectors(); 206 ParameterizeAnalyzers(); 196 207 UpdateCrossovers(); 197 208 UpdateMutators(); 209 UpdateAnalyzers(); 198 210 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 199 if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);200 211 base.OnProblemChanged(); 201 212 } … … 211 222 ParameterizeGeneticAlgorithmMainLoop(); 212 223 ParameterizeSelectors(); 224 ParameterizeAnalyzers(); 213 225 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 214 226 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);221 227 } 222 228 protected override void Problem_OperatorsChanged(object sender, EventArgs e) { … … 224 230 UpdateCrossovers(); 225 231 UpdateMutators(); 232 UpdateAnalyzers(); 226 233 base.Problem_OperatorsChanged(sender, e); 227 234 } … … 243 250 ParameterizeGeneticAlgorithmMainLoop(); 244 251 ParameterizeSelectors(); 245 } 246 private void Visualizer_VisualizationParameter_ActualNameChanged(object sender, EventArgs e) { 247 ParameterizeGeneticAlgorithmMainLoop(); 252 ParameterizeAnalyzers(); 248 253 } 249 254 #endregion … … 253 258 private void Initialize() { 254 259 InitializeSelectors(); 260 InitializeAnalyzers(); 255 261 UpdateSelectors(); 262 UpdateAnalyzers(); 256 263 PopulationSizeParameter.ValueChanged += new EventHandler(PopulationSizeParameter_ValueChanged); 257 264 PopulationSize.ValueChanged += new EventHandler(PopulationSize_ValueChanged); … … 262 269 UpdateMutators(); 263 270 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 264 if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);265 271 } 266 272 } … … 271 277 } 272 278 private void ParameterizeGeneticAlgorithmMainLoop() { 273 GeneticAlgorithmMainLoop.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;274 279 GeneticAlgorithmMainLoop.EvaluatorParameter.ActualName = Problem.EvaluatorParameter.Name; 275 280 GeneticAlgorithmMainLoop.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name; 276 281 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;280 282 } 281 283 private void ParameterizeStochasticOperator(IOperator op) { … … 287 289 selectors.AddRange(ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name)); 288 290 ParameterizeSelectors(); 291 } 292 private void InitializeAnalyzers() { 293 qualityAnalyzer = new BestAverageWorstQualityAnalyzer(); 294 ParameterizeAnalyzers(); 289 295 } 290 296 private void ParameterizeSelectors() { … … 299 305 selector.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName; 300 306 } 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; 301 315 } 302 316 } … … 335 349 } 336 350 } 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 } 337 359 #endregion 338 360 } -
TabularUnified trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithmMainLoop.cs ¶
r3376 r3616 47 47 get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; } 48 48 } 49 public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {50 get { return (ValueLookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }51 }52 49 public ValueLookupParameter<IOperator> SelectorParameter { 53 50 get { return (ValueLookupParameter<IOperator>)Parameters["Selector"]; } … … 74 71 get { return (ValueLookupParameter<VariableCollection>)Parameters["Results"]; } 75 72 } 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"]; } 81 75 } 82 76 private ScopeParameter CurrentScopeParameter { … … 101 95 Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false.")); 102 96 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."));104 97 Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction.")); 105 98 Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions.")); … … 110 103 Parameters.Add(new ValueLookupParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.")); 111 104 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.")); 114 106 Parameters.Add(new ScopeParameter("CurrentScope", "The current scope which represents a population of solutions on which the genetic algorithm should be applied.")); 115 107 #endregion … … 117 109 #region Create operators 118 110 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(); 126 113 Placeholder selector = new Placeholder(); 127 114 SubScopesProcessor subScopesProcessor1 = new SubScopesProcessor(); … … 139 126 IntCounter intCounter = new IntCounter(); 140 127 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(); 147 130 ConditionalBranch conditionalBranch = new ConditionalBranch(); 148 131 149 132 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); 150 133 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"; 191 139 192 140 selector.Name = "Selector"; … … 222 170 comparator.RightSideParameter.ActualName = "MaximumGenerations"; 223 171 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"; 252 177 253 178 conditionalBranch.ConditionParameter.ActualName = "Terminate"; … … 256 181 #region Create operator graph 257 182 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; 266 186 selector.Successor = subScopesProcessor1; 267 187 subScopesProcessor1.Operators.Add(new EmptyOperator()); … … 285 205 mergingReducer.Successor = intCounter; 286 206 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; 294 210 conditionalBranch.FalseBranch = selector; 295 211 conditionalBranch.TrueBranch = null; -
TabularUnified trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs ¶
r3609 r3616 271 271 ParameterizeStochasticOperator(Problem.SolutionCreator); 272 272 ParameterizeStochasticOperator(Problem.Evaluator); 273 ParameterizeStochasticOperator(Problem.Visualizer);274 273 foreach (IOperator op in Problem.Operators) ParameterizeStochasticOperator(op); 275 274 ParameterizeSolutionsCreator(); … … 279 278 UpdateMutators(); 280 279 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 281 if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);282 280 base.OnProblemChanged(); 283 281 } … … 295 293 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 296 294 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);303 295 } 304 296 protected override void Problem_OperatorsChanged(object sender, EventArgs e) { … … 325 317 ParameterizeMainLoop(); 326 318 ParameterizeSelectors(); 327 }328 private void Visualizer_VisualizationParameter_ActualNameChanged(object sender, EventArgs e) {329 ParameterizeMainLoop();330 319 } 331 320 private void MigrationRateParameter_ValueChanged(object sender, EventArgs e) { … … 355 344 UpdateMutators(); 356 345 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 357 if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged);358 346 } 359 347 } … … 367 355 MainLoop.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name; 368 356 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;372 357 } 373 358 private void ParameterizeStochasticOperator(IOperator op) { -
TabularUnified trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs ¶
r3611 r3616 100 100 get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; } 101 101 } 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"]; } 107 104 } 108 105 #endregion … … 132 129 Parameters.Add(new ValueLookupParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.")); 133 130 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.")); 136 132 #endregion 137 133 … … 144 140 DataTableValuesCollector islandDataTableValuesCollector1 = new DataTableValuesCollector(); 145 141 QualityDifferenceCalculator islandQualityDifferenceCalculator1 = new QualityDifferenceCalculator(); 146 Placeholder island Visualizer1 = new Placeholder();142 Placeholder islandAnalyzer1 = new Placeholder(); 147 143 ResultsCollector islandResultsCollector = new ResultsCollector(); 148 144 BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer(); … … 170 166 DataTableValuesCollector islandDataTableValuesCollector2 = new DataTableValuesCollector(); 171 167 QualityDifferenceCalculator islandQualityDifferenceCalculator2 = new QualityDifferenceCalculator(); 172 Placeholder island Visualizer2 = new Placeholder();168 Placeholder islandAnalyzer2 = new Placeholder(); 173 169 IntCounter generationsCounter = new IntCounter(); 174 170 IntCounter generationsSinceLastMigrationCounter = new IntCounter(); … … 218 214 islandQualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality"; 219 215 220 island Visualizer1.Name = "Visualizer";221 island Visualizer1.OperatorParameter.ActualName = "Visualizer";216 islandAnalyzer1.Name = "Analyzer"; 217 islandAnalyzer1.OperatorParameter.ActualName = "Analyzer"; 222 218 223 219 islandResultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations")); … … 229 225 islandResultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest")); 230 226 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"));232 227 islandResultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities")); 233 228 islandResultsCollector.ResultsParameter.ActualName = "IslandResults"; … … 317 312 islandQualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality"; 318 313 319 island Visualizer2.Name = "Visualizer";320 island Visualizer2.OperatorParameter.ActualName = "Visualizer";314 islandAnalyzer2.Name = "Analyzer"; 315 islandAnalyzer2.OperatorParameter.ActualName = "Analyzer"; 321 316 322 317 generationsCounter.Name = "Generations + 1"; … … 399 394 islandBestAverageWorstQualityCalculator1.Successor = islandDataTableValuesCollector1; 400 395 islandDataTableValuesCollector1.Successor = islandQualityDifferenceCalculator1; 401 islandQualityDifferenceCalculator1.Successor = island Visualizer1;402 island Visualizer1.Successor = islandResultsCollector;396 islandQualityDifferenceCalculator1.Successor = islandAnalyzer1; 397 islandAnalyzer1.Successor = islandResultsCollector; 403 398 bestQualityMemorizer1.Successor = bestQualityMemorizer2; 404 399 bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator1; … … 432 427 islandBestAverageWorstQualityCalculator2.Successor = islandDataTableValuesCollector2; 433 428 islandDataTableValuesCollector2.Successor = islandQualityDifferenceCalculator2; 434 islandQualityDifferenceCalculator2.Successor = island Visualizer2;435 island Visualizer2.Successor = null;429 islandQualityDifferenceCalculator2.Successor = islandAnalyzer2; 430 islandAnalyzer2.Successor = null; 436 431 generationsCounter.Successor = generationsSinceLastMigrationCounter; 437 432 generationsSinceLastMigrationCounter.Successor = migrationComparator;
Note: See TracChangeset
for help on using the changeset viewer.