Changeset 3654 for trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs
- Timestamp:
- 05/05/10 22:08:17 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs
r3616 r3654 23 23 using System.Collections.Generic; 24 24 using System.Linq; 25 using HeuristicLab.Analysis; 25 26 using HeuristicLab.Common; 26 27 using HeuristicLab.Core; … … 33 34 using HeuristicLab.PluginInfrastructure; 34 35 using HeuristicLab.Random; 35 using HeuristicLab.Selection;36 36 37 37 namespace HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm { … … 121 121 get { return (ValueLookupParameter<BoolValue>)Parameters["OffspringSelectionBeforeMutation"]; } 122 122 } 123 private ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>> AnalyzerParameter { 124 get { return (ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>)Parameters["Analyzer"]; } 125 } 126 private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> IslandAnalyzerParameter { 127 get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["IslandAnalyzer"]; } 128 } 123 129 #endregion 124 130 … … 211 217 get { return OffspringSelectionBeforeMutationParameter.Value; } 212 218 set { OffspringSelectionBeforeMutationParameter.Value = value; } 219 } 220 public MultiAnalyzer<IMultiPopulationAnalyzer> Analyzer { 221 get { return AnalyzerParameter.Value; } 222 set { AnalyzerParameter.Value = value; } 223 } 224 public MultiAnalyzer<IPopulationAnalyzer> IslandAnalyzer { 225 get { return IslandAnalyzerParameter.Value; } 226 set { IslandAnalyzerParameter.Value = value; } 213 227 } 214 228 private List<ISelector> selectors; … … 232 246 get { return (IslandOffspringSelectionGeneticAlgorithmMainLoop)IslandProcessor.Successor; } 233 247 } 248 private PopulationBestAverageWorstQualityAnalyzer islandQualityAnalyzer; 249 //private MultipopulationBestAverageWorstQualityAnalyzer qualityAnalyzer; 234 250 #endregion 235 251 … … 260 276 Parameters.Add(new ValueLookupParameter<DoubleValue>("MaximumSelectionPressure", "The maximum selection pressure that terminates the algorithm.", new DoubleValue(100))); 261 277 Parameters.Add(new ValueLookupParameter<BoolValue>("OffspringSelectionBeforeMutation", "True if the offspring selection step should be applied before mutation, false if it should be applied after mutation.", new BoolValue(false))); 262 278 Parameters.Add(new ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer<IMultiPopulationAnalyzer>())); 279 Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("IslandAnalyzer", "The operator used to analyze each island.", new MultiAnalyzer<IPopulationAnalyzer>())); 280 263 281 RandomCreator randomCreator = new RandomCreator(); 264 282 SubScopesCreator populationCreator = new SubScopesCreator(); … … 331 349 ParameterizeMainLoop(); 332 350 ParameterizeSelectors(); 351 ParameterizeAnalyzers(); 333 352 UpdateCrossovers(); 334 353 UpdateMutators(); 354 UpdateAnalyzers(); 335 355 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 336 356 base.OnProblemChanged(); … … 347 367 ParameterizeMainLoop(); 348 368 ParameterizeSelectors(); 369 ParameterizeAnalyzers(); 349 370 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 350 371 base.Problem_EvaluatorChanged(sender, e); … … 354 375 UpdateCrossovers(); 355 376 UpdateMutators(); 377 UpdateAnalyzers(); 356 378 base.Problem_OperatorsChanged(sender, e); 357 379 } … … 373 395 ParameterizeMainLoop(); 374 396 ParameterizeSelectors(); 397 ParameterizeAnalyzers(); 375 398 } 376 399 private void MigrationRateParameter_ValueChanged(object sender, EventArgs e) { … … 401 424 private void Initialize() { 402 425 InitializeSelectors(); 426 InitializeAnalyzers(); 403 427 UpdateSelectors(); 428 UpdateAnalyzers(); 404 429 InitializeComparisonFactorModifiers(); 405 430 UpdateComparisonFactorModifiers(); … … 445 470 ParameterizeSelectors(); 446 471 } 472 private void InitializeAnalyzers() { 473 islandQualityAnalyzer = new PopulationBestAverageWorstQualityAnalyzer(); 474 //qualityAnalyzer = new MultipopulationBestAverageWorstQualityAnalyzer(); 475 ParameterizeAnalyzers(); 476 } 447 477 private void InitializeComparisonFactorModifiers() { 448 478 comparisonFactorModifiers = new List<IDiscreteDoubleValueModifier>(); … … 484 514 } 485 515 } 516 private void ParameterizeAnalyzers() { 517 islandQualityAnalyzer.ResultsParameter.ActualName = "Results"; 518 //qualityAnalyzer.ResultsParameter.ActualName = "Results"; 519 if (Problem != null) { 520 islandQualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name; 521 islandQualityAnalyzer.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName; 522 islandQualityAnalyzer.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name; 523 } 524 } 486 525 private void ParameterizeComparisonFactorModifiers() { 487 526 foreach (IDiscreteDoubleValueModifier modifier in comparisonFactorModifiers) { … … 568 607 } 569 608 } 609 private void UpdateAnalyzers() { 610 IslandAnalyzer.Operators.Clear(); 611 Analyzer.Operators.Clear(); 612 IslandAnalyzer.Operators.Add(islandQualityAnalyzer); 613 //Analyzer.Operators.Add(qualityAnalyzer); 614 if (Problem != null) { 615 foreach (IPopulationAnalyzer analyzer in Problem.Operators.OfType<IPopulationAnalyzer>().OrderBy(x => x.Name)) { 616 IslandAnalyzer.Operators.Add(analyzer); 617 } 618 foreach (IMultiPopulationAnalyzer analyzer in Problem.Operators.OfType<IMultiPopulationAnalyzer>().OrderBy(x => x.Name)) 619 Analyzer.Operators.Add(analyzer); 620 } 621 } 570 622 #endregion 571 623 }
Note: See TracChangeset
for help on using the changeset viewer.