Changeset 3650 for trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
- Timestamp:
- 05/05/10 18:54:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
r3616 r3650 23 23 using System.Collections.Generic; 24 24 using System.Linq; 25 using HeuristicLab.Analysis; 25 26 using HeuristicLab.Core; 26 27 using HeuristicLab.Data; 27 using HeuristicLab.Operators;28 28 using HeuristicLab.Optimization; 29 29 using HeuristicLab.Optimization.Operators; … … 101 101 get { return (ValueLookupParameter<IntValue>)Parameters["SelectedParents"]; } 102 102 } 103 private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> AnalyzerParameter { 104 get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["Analyzer"]; } 105 } 103 106 #endregion 104 107 … … 167 170 get { return SelectedParentsParameter.Value; } 168 171 set { SelectedParentsParameter.Value = value; } 172 } 173 public MultiAnalyzer<IPopulationAnalyzer> Analyzer { 174 get { return AnalyzerParameter.Value; } 175 set { AnalyzerParameter.Value = value; } 169 176 } 170 177 private RandomCreator RandomCreator { … … 204 211 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))); 205 212 Parameters.Add(new ValueLookupParameter<IntValue>("SelectedParents", "Should be about 2 * PopulationSize, for large problems use a smaller value to decrease memory footprint.", new IntValue(200))); 206 213 Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer<IPopulationAnalyzer>())); 214 207 215 RandomCreator randomCreator = new RandomCreator(); 208 216 SolutionsCreator solutionsCreator = new SolutionsCreator(); … … 250 258 ParameterizMainLoop(); 251 259 ParameterizeSelectors(); 260 ParameterizeAnalyzers(); 252 261 UpdateCrossovers(); 253 262 UpdateMutators(); 263 UpdateAnalyzers(); 254 264 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 255 265 base.OnProblemChanged(); … … 266 276 ParameterizMainLoop(); 267 277 ParameterizeSelectors(); 278 ParameterizeAnalyzers(); 268 279 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 269 280 base.Problem_EvaluatorChanged(sender, e); … … 273 284 UpdateCrossovers(); 274 285 UpdateMutators(); 286 UpdateAnalyzers(); 275 287 base.Problem_OperatorsChanged(sender, e); 276 288 } … … 292 304 ParameterizMainLoop(); 293 305 ParameterizeSelectors(); 306 ParameterizeAnalyzers(); 294 307 } 295 308 #endregion … … 299 312 private void Initialize() { 300 313 InitializeSelectors(); 314 InitializeAnalyzers(); 301 315 UpdateSelectors(); 316 UpdateAnalyzers(); 302 317 InitializeComparisonFactorModifiers(); 303 318 UpdateComparisonFactorModifiers(); … … 317 332 } 318 333 private void ParameterizMainLoop() { 319 MainLoop.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;320 334 MainLoop.EvaluatorParameter.ActualName = Problem.EvaluatorParameter.Name; 321 335 MainLoop.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name; … … 330 344 selectors.AddRange(ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name)); 331 345 ParameterizeSelectors(); 346 } 347 private void InitializeAnalyzers() { 348 //qualityAnalyzer = new PopulationBestAverageWorstQualityAnalyzer(); 349 ParameterizeAnalyzers(); 332 350 } 333 351 private void InitializeComparisonFactorModifiers() { … … 348 366 selector.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName; 349 367 } 368 } 369 } 370 private void ParameterizeAnalyzers() { 371 //qualityAnalyzer.ResultsParameter.ActualName = "Results"; 372 if (Problem != null) { 373 //qualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name; 374 //qualityAnalyzer.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName; 375 //qualityAnalyzer.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name; 350 376 } 351 377 } … … 406 432 } 407 433 } 434 private void UpdateAnalyzers() { 435 Analyzer.Operators.Clear(); 436 //Analyzer.Operators.Add(qualityAnalyzer); 437 if (Problem != null) { 438 foreach (IPopulationAnalyzer analyzer in Problem.Operators.OfType<IPopulationAnalyzer>().OrderBy(x => x.Name)) 439 Analyzer.Operators.Add(analyzer); 440 } 441 } 408 442 #endregion 409 443 }
Note: See TracChangeset
for help on using the changeset viewer.