- Timestamp:
- 07/13/17 17:46:58 (7 years ago)
- Location:
- stable
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 15006-15008,15047,15049,15070,15107
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Algorithms.ALPS
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Algorithms.ALPS merged: 15070
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs
r14997 r15238 251 251 [StorableHook(HookType.AfterDeserialization)] 252 252 private void AfterDeserialization() { 253 // BackwardsCompatibility3.3 254 #region Backwards compatible code, remove with 3.4 255 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 256 if (optionalMutatorParameter != null) { 257 Parameters.Remove(optionalMutatorParameter); 258 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 259 foreach (var m in optionalMutatorParameter.ValidValues) 260 MutatorParameter.ValidValues.Add(m); 261 if (optionalMutatorParameter.Value == null) MutationProbability.Value = 0; // to guarantee that the old configuration results in the same behavior 262 else Mutator = optionalMutatorParameter.Value; 263 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 264 } 265 #endregion 253 266 Initialize(); 254 267 } … … 284 297 Parameters.Add(new ConstrainedValueParameter<ISelector>("Selector", "The operator used to select solutions for reproduction.")); 285 298 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 286 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));299 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 287 300 Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 288 301 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); … … 690 703 } 691 704 private void UpdateMutators() { 692 var oldMutator = MutatorParameter.Value;705 IManipulator oldMutator = MutatorParameter.Value; 693 706 MutatorParameter.ValidValues.Clear(); 694 foreach (var mutator in Problem.Operators.OfType<IManipulator>().OrderBy(m => m.Name)) { 707 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 708 709 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) { 695 710 ParameterizeStochasticOperatorForLayer(mutator); 696 711 MutatorParameter.ValidValues.Add(mutator); 697 712 } 713 698 714 if (oldMutator != null) { 699 var mutator = MutatorParameter.ValidValues.FirstOrDefault(m => m.GetType() == oldMutator.GetType()); 700 if (mutator != null) 701 MutatorParameter.Value = mutator; 702 } 715 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 716 if (mutator != null) MutatorParameter.Value = mutator; 717 else oldMutator = null; 718 } 719 720 if (oldMutator == null && defaultMutator != null) 721 MutatorParameter.Value = defaultMutator; 703 722 } 704 723 private void UpdateTerminators() { -
stable/HeuristicLab.Algorithms.ALPS/3.3/AlpsOffspringSelectionGeneticAlgorithm.cs
r14186 r15238 298 298 [StorableHook(HookType.AfterDeserialization)] 299 299 private void AfterDeserialization() { 300 // BackwardsCompatibility3.3 301 #region Backwards compatible code, remove with 3.4 302 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 303 if (optionalMutatorParameter != null) { 304 Parameters.Remove(optionalMutatorParameter); 305 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 306 foreach (var m in optionalMutatorParameter.ValidValues) 307 MutatorParameter.ValidValues.Add(m); 308 if (optionalMutatorParameter.Value == null) MutationProbability = 0; // to guarantee that the old configuration results in the same behavior 309 else Mutator = optionalMutatorParameter.Value; 310 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 311 } 312 #endregion 300 313 Initialize(); 301 314 } … … 334 347 Parameters.Add(new ConstrainedValueParameter<ISelector>("Selector", "The operator used to select solutions for reproduction.")); 335 348 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 336 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));349 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 337 350 Parameters.Add(new FixedValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 338 351 Parameters.Add(new FixedValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); … … 755 768 } 756 769 private void UpdateMutators() { 757 var oldMutator = MutatorParameter.Value;770 IManipulator oldMutator = MutatorParameter.Value; 758 771 MutatorParameter.ValidValues.Clear(); 759 foreach (var mutator in Problem.Operators.OfType<IManipulator>().OrderBy(m => m.Name)) { 772 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 773 774 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) { 760 775 ParameterizeStochasticOperatorForLayer(mutator); 761 776 MutatorParameter.ValidValues.Add(mutator); 762 777 } 778 763 779 if (oldMutator != null) { 764 var mutator = MutatorParameter.ValidValues.FirstOrDefault(m => m.GetType() == oldMutator.GetType()); 765 if (mutator != null) 766 MutatorParameter.Value = mutator; 767 } 780 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 781 if (mutator != null) MutatorParameter.Value = mutator; 782 else oldMutator = null; 783 } 784 785 if (oldMutator == null && defaultMutator != null) 786 MutatorParameter.Value = defaultMutator; 768 787 } 769 788 private void UpdateTerminators() { -
stable/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs
r14186 r15238 156 156 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 157 157 Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 158 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));158 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 159 159 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 160 160 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", new BoolValue(false)) { Hidden = true }); … … 221 221 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", (BoolValue)new BoolValue(false).AsReadOnly()) { Hidden = true }); 222 222 } 223 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 224 if (optionalMutatorParameter != null) { 225 Parameters.Remove(optionalMutatorParameter); 226 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 227 foreach (var m in optionalMutatorParameter.ValidValues) 228 MutatorParameter.ValidValues.Add(m); 229 if (optionalMutatorParameter.Value == null) MutationProbability.Value = 0; // to guarantee that the old configuration results in the same behavior 230 else Mutator = optionalMutatorParameter.Value; 231 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 232 } 223 233 #endregion 224 234 … … 387 397 IManipulator oldMutator = MutatorParameter.Value; 388 398 MutatorParameter.ValidValues.Clear(); 399 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 400 389 401 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) 390 402 MutatorParameter.ValidValues.Add(mutator); 403 391 404 if (oldMutator != null) { 392 405 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 393 406 if (mutator != null) MutatorParameter.Value = mutator; 394 } 407 else oldMutator = null; 408 } 409 410 if (oldMutator == null && defaultMutator != null) 411 MutatorParameter.Value = defaultMutator; 395 412 } 396 413 private void UpdateAnalyzers() { -
stable/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs
r14186 r15238 211 211 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", (BoolValue)new BoolValue(false).AsReadOnly()) { Hidden = true }); 212 212 } 213 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 214 if (optionalMutatorParameter != null) { 215 Parameters.Remove(optionalMutatorParameter); 216 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 217 foreach (var m in optionalMutatorParameter.ValidValues) 218 MutatorParameter.ValidValues.Add(m); 219 if (optionalMutatorParameter.Value == null) MutationProbability.Value = 0; // to guarantee that the old configuration results in the same behavior 220 else Mutator = optionalMutatorParameter.Value; 221 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 222 } 213 223 #endregion 214 224 … … 240 250 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 241 251 Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 242 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));252 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 243 253 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 244 254 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", new BoolValue(false)) { Hidden = true }); … … 551 561 IManipulator oldMutator = MutatorParameter.Value; 552 562 MutatorParameter.ValidValues.Clear(); 563 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 564 553 565 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) { 554 566 ParameterizeStochasticOperatorForIsland(mutator); … … 558 570 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 559 571 if (mutator != null) MutatorParameter.Value = mutator; 560 } 572 else oldMutator = null; 573 } 574 575 if (oldMutator == null && defaultMutator != null) 576 MutatorParameter.Value = defaultMutator; 561 577 } 562 578 private void UpdateAnalyzers() { -
stable/HeuristicLab.Algorithms.NSGA2/3.3/NSGA2.cs
r14186 r15238 176 176 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 177 177 Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 178 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));178 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 179 179 Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer())); 180 180 Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntValue(1000))); … … 326 326 if (!Parameters.ContainsKey("DominateOnEqualQualities")) 327 327 Parameters.Add(new FixedValueParameter<BoolValue>("DominateOnEqualQualities", "Flag which determines wether solutions with equal quality values should be treated as dominated.", new BoolValue(false))); 328 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 329 if (optionalMutatorParameter != null) { 330 Parameters.Remove(optionalMutatorParameter); 331 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 332 foreach (var m in optionalMutatorParameter.ValidValues) 333 MutatorParameter.ValidValues.Add(m); 334 if (optionalMutatorParameter.Value == null) MutationProbability.Value = 0; // to guarantee that the old configuration results in the same behavior 335 else Mutator = optionalMutatorParameter.Value; 336 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 337 } 328 338 #endregion 329 339 … … 397 407 IManipulator oldMutator = MutatorParameter.Value; 398 408 MutatorParameter.ValidValues.Clear(); 409 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 399 410 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) 400 411 MutatorParameter.ValidValues.Add(mutator); … … 402 413 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 403 414 if (mutator != null) MutatorParameter.Value = mutator; 404 } 415 else oldMutator = null; 416 } 417 if (oldMutator == null && defaultMutator != null) 418 MutatorParameter.Value = defaultMutator; 405 419 } 406 420 private void UpdateAnalyzers() { -
stable/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs
r14186 r15238 280 280 if (!Parameters.ContainsKey("FillPopulationWithParents")) 281 281 Parameters.Add(new FixedValueParameter<BoolValue>("FillPopulationWithParents", "True if the population should be filled with parent individual or false if worse children should be used when the maximum selection pressure is exceeded.", new BoolValue(false)) { Hidden = true }); 282 283 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 284 if (optionalMutatorParameter != null) { 285 Parameters.Remove(optionalMutatorParameter); 286 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 287 foreach (var m in optionalMutatorParameter.ValidValues) 288 MutatorParameter.ValidValues.Add(m); 289 if (optionalMutatorParameter.Value == null) MutationProbability.Value = 0; // to guarantee that the old configuration results in the same behavior 290 else Mutator = optionalMutatorParameter.Value; 291 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 292 } 282 293 #endregion 283 294 … … 311 322 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 312 323 Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 313 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));324 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 314 325 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 315 326 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", new BoolValue(false)) { Hidden = true }); … … 642 653 IManipulator oldMutator = MutatorParameter.Value; 643 654 MutatorParameter.ValidValues.Clear(); 655 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 656 644 657 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) 645 658 MutatorParameter.ValidValues.Add(mutator); 659 646 660 if (oldMutator != null) { 647 661 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 648 662 if (mutator != null) MutatorParameter.Value = mutator; 649 } 663 else oldMutator = null; 664 } 665 666 if (oldMutator == null && defaultMutator != null) 667 MutatorParameter.Value = defaultMutator; 650 668 } 651 669 private void UpdateAnalyzers() { -
stable/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
r14186 r15238 228 228 if (!Parameters.ContainsKey("FillPopulationWithParents")) 229 229 Parameters.Add(new FixedValueParameter<BoolValue>("FillPopulationWithParents", "True if the population should be filled with parent individual or false if worse children should be used when the maximum selection pressure is exceeded.", new BoolValue(false)) { Hidden = true }); 230 231 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 232 if (optionalMutatorParameter != null) { 233 Parameters.Remove(optionalMutatorParameter); 234 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 235 foreach (var m in optionalMutatorParameter.ValidValues) 236 MutatorParameter.ValidValues.Add(m); 237 if (optionalMutatorParameter.Value == null) MutationProbability.Value = 0; // to guarantee that the old configuration results in the same behavior 238 else Mutator = optionalMutatorParameter.Value; 239 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 240 } 230 241 #endregion 231 242 … … 250 261 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 251 262 Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 252 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));263 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 253 264 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 254 265 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", new BoolValue(false)) { Hidden = true }); … … 487 498 IManipulator oldMutator = MutatorParameter.Value; 488 499 MutatorParameter.ValidValues.Clear(); 500 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 501 489 502 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) 490 503 MutatorParameter.ValidValues.Add(mutator); 504 491 505 if (oldMutator != null) { 492 506 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 493 507 if (mutator != null) MutatorParameter.Value = mutator; 494 } 508 else oldMutator = null; 509 } 510 511 if (oldMutator == null && defaultMutator != null) 512 MutatorParameter.Value = defaultMutator; 495 513 } 496 514 private void UpdateAnalyzers() { -
stable/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs
r14186 r15238 256 256 if (!Parameters.ContainsKey("FillPopulationWithParents")) 257 257 Parameters.Add(new FixedValueParameter<BoolValue>("FillPopulationWithParents", "True if the population should be filled with parent individual or false if worse children should be used when the maximum selection pressure is exceeded.", new BoolValue(false)) { Hidden = true }); 258 259 var optionalMutatorParameter = MutatorParameter as OptionalConstrainedValueParameter<IManipulator>; 260 if (optionalMutatorParameter != null) { 261 Parameters.Remove(optionalMutatorParameter); 262 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 263 foreach (var m in optionalMutatorParameter.ValidValues) 264 MutatorParameter.ValidValues.Add(m); 265 if (optionalMutatorParameter.Value == null) MutationProbability.Value = 0; // to guarantee that the old configuration results in the same behavior 266 else Mutator = optionalMutatorParameter.Value; 267 optionalMutatorParameter.ValidValues.Clear(); // to avoid dangling references to the old parameter its valid values are cleared 268 } 258 269 #endregion 259 270 … … 282 293 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 283 294 Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05))); 284 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));295 Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.")); 285 296 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1))); 286 297 Parameters.Add(new FixedValueParameter<BoolValue>("ReevaluateElites", "Flag to determine if elite individuals should be reevaluated (i.e., if stochastic fitness functions are used.)", new BoolValue(false)) { Hidden = true }); … … 561 572 ICrossover oldCrossover = CrossoverParameter.Value; 562 573 CrossoverParameter.ValidValues.Clear(); 574 ICrossover defaultCrossover = Problem.Operators.OfType<ICrossover>().FirstOrDefault(); 575 563 576 foreach (ICrossover crossover in Problem.Operators.OfType<ICrossover>().OrderBy(x => x.Name)) 564 577 CrossoverParameter.ValidValues.Add(crossover); 578 565 579 if (oldCrossover != null) { 566 580 ICrossover crossover = CrossoverParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldCrossover.GetType()); 567 581 if (crossover != null) CrossoverParameter.Value = crossover; 568 } 582 else oldCrossover = null; 583 } 584 if (oldCrossover == null && defaultCrossover != null) 585 CrossoverParameter.Value = defaultCrossover; 569 586 } 570 587 private void UpdateMutators() { 571 588 IManipulator oldMutator = MutatorParameter.Value; 572 589 MutatorParameter.ValidValues.Clear(); 590 IManipulator defaultMutator = Problem.Operators.OfType<IManipulator>().FirstOrDefault(); 591 573 592 foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name)) 574 593 MutatorParameter.ValidValues.Add(mutator); 594 575 595 if (oldMutator != null) { 576 596 IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType()); 577 597 if (mutator != null) MutatorParameter.Value = mutator; 578 } 598 else oldMutator = null; 599 } 600 601 if (oldMutator == null && defaultMutator != null) 602 MutatorParameter.Value = defaultMutator; 579 603 } 580 604 private void UpdateAnalyzers() { -
stable/HeuristicLab.Problems.DataAnalysis.Symbolic
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic merged: 15047
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisProblem.cs
r15131 r15238 21 21 22 22 using System; 23 using System.Collections.Generic; 23 24 using System.Drawing; 24 25 using System.Linq; … … 241 242 242 243 private void InitializeOperators() { 243 Operators.AddRange(ApplicationManager.Manager.GetInstances<ISymbolicExpressionTreeOperator>()); 244 Operators.AddRange(ApplicationManager.Manager.GetInstances<ISymbolicDataAnalysisExpressionCrossover<T>>()); 245 Operators.Add(new SymbolicExpressionSymbolFrequencyAnalyzer()); 246 Operators.Add(new SymbolicDataAnalysisVariableFrequencyAnalyzer()); 247 Operators.Add(new MinAverageMaxSymbolicExpressionTreeLengthAnalyzer()); 248 Operators.Add(new SymbolicExpressionTreeLengthAnalyzer()); 249 Operators.Add(new SymbolicExpressionTreeBottomUpSimilarityCalculator()); 250 Operators.Add(new SymbolicDataAnalysisBottomUpDiversityAnalyzer(Operators.OfType<SymbolicExpressionTreeBottomUpSimilarityCalculator>().First())); 244 var operators = new HashSet<IItem>(new TypeEqualityComparer<IItem>()); 245 operators.Add(new SubtreeCrossover()); 246 operators.Add(new MultiSymbolicExpressionTreeManipulator()); 247 248 foreach (var op in ApplicationManager.Manager.GetInstances<ISymbolicExpressionTreeOperator>()) 249 operators.Add(op); 250 foreach (var op in ApplicationManager.Manager.GetInstances<ISymbolicDataAnalysisExpressionCrossover<T>>()) 251 operators.Add(op); 252 253 operators.Add(new SymbolicExpressionSymbolFrequencyAnalyzer()); 254 operators.Add(new SymbolicDataAnalysisVariableFrequencyAnalyzer()); 255 operators.Add(new MinAverageMaxSymbolicExpressionTreeLengthAnalyzer()); 256 operators.Add(new SymbolicExpressionTreeLengthAnalyzer()); 257 operators.Add(new SymbolicExpressionTreeBottomUpSimilarityCalculator()); 258 operators.Add(new SymbolicDataAnalysisBottomUpDiversityAnalyzer(operators.OfType<SymbolicExpressionTreeBottomUpSimilarityCalculator>().First())); 259 260 Operators.AddRange(operators); 251 261 ParameterizeOperators(); 252 262 }
Note: See TracChangeset
for help on using the changeset viewer.