- Timestamp:
- 03/02/15 16:11:20 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.RAPGA/3.3/RAPGA.cs
r12069 r12102 103 103 get { return (ValueParameter<IntValue>)Parameters["MaximumGenerations"]; } 104 104 } 105 public IConstrainedValueParameter<IS ingleObjectiveSolutionSimilarityCalculator> SimilarityCalculatorParameter {106 get { return (IConstrainedValueParameter<IS ingleObjectiveSolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; }105 public IConstrainedValueParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter { 106 get { return (IConstrainedValueParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; } 107 107 } 108 108 #endregion … … 173 173 set { MaximumGenerationsParameter.Value = value; } 174 174 } 175 public IS ingleObjectiveSolutionSimilarityCalculator SimilarityCalculator {175 public ISolutionSimilarityCalculator SimilarityCalculator { 176 176 get { return SimilarityCalculatorParameter.Value; } 177 177 set { SimilarityCalculatorParameter.Value = value; } … … 204 204 if (!Parameters.ContainsKey("ReevaluateElites")) { 205 205 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 }); 206 } 207 if (Parameters.ContainsKey("SimilarityCalculator")) { 208 var oldParameter = (IConstrainedValueParameter<ISingleObjectiveSolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; 209 Parameters.Remove(oldParameter); 210 var newParameter = new ConstrainedValueParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions.", new ItemSet<ISolutionSimilarityCalculator>(oldParameter.ValidValues)); 211 var selectedSimilarityCalculator = newParameter.ValidValues.SingleOrDefault(x => x.GetType() == oldParameter.Value.GetType()); 212 newParameter.Value = selectedSimilarityCalculator; 213 Parameters.Add(newParameter); 206 214 } 207 215 #endregion … … 234 242 Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer())); 235 243 Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntValue(1000))); 236 Parameters.Add(new ConstrainedValueParameter<IS ingleObjectiveSolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions."));244 Parameters.Add(new ConstrainedValueParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions.")); 237 245 238 246 RandomCreator randomCreator = new RandomCreator(); … … 448 456 } 449 457 private void ParameterizeSimilarityCalculators() { 450 foreach (IS ingleObjectiveSolutionSimilarityCalculator calc in SimilarityCalculatorParameter.ValidValues) {458 foreach (ISolutionSimilarityCalculator calc in SimilarityCalculatorParameter.ValidValues) { 451 459 calc.QualityVariableName = Problem.Evaluator.QualityParameter.ActualName; 452 460 } … … 493 501 } 494 502 private void UpdateSimilarityCalculators() { 495 IS ingleObjectiveSolutionSimilarityCalculator oldSimilarityCalculator = SimilarityCalculatorParameter.Value;503 ISolutionSimilarityCalculator oldSimilarityCalculator = SimilarityCalculatorParameter.Value; 496 504 SimilarityCalculatorParameter.ValidValues.Clear(); 497 ISingleObjectiveSolutionSimilarityCalculator defaultSimilarityCalculator = Problem.Operators.OfType<ISingleObjectiveSolutionSimilarityCalculator>().FirstOrDefault(); 498 499 SimilarityCalculatorParameter.ValidValues.Add(new QualitySimilarityCalculator { QualityVariableName = Problem.Evaluator.QualityParameter.ActualName }); 500 SimilarityCalculatorParameter.ValidValues.Add(new NoSimilarityCalculator()); 501 502 foreach (ISingleObjectiveSolutionSimilarityCalculator similarityCalculator in Problem.Operators.OfType<ISingleObjectiveSolutionSimilarityCalculator>()) 505 ISolutionSimilarityCalculator defaultSimilarityCalculator = Problem.Operators.OfType<ISolutionSimilarityCalculator>().FirstOrDefault(); 506 507 foreach (ISolutionSimilarityCalculator similarityCalculator in Problem.Operators.OfType<ISolutionSimilarityCalculator>()) 503 508 SimilarityCalculatorParameter.ValidValues.Add(similarityCalculator); 504 509 505 510 if (oldSimilarityCalculator != null) { 506 IS ingleObjectiveSolutionSimilarityCalculator similarityCalculator = SimilarityCalculatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSimilarityCalculator.GetType());511 ISolutionSimilarityCalculator similarityCalculator = SimilarityCalculatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSimilarityCalculator.GetType()); 507 512 if (similarityCalculator != null) SimilarityCalculatorParameter.Value = similarityCalculator; 508 513 else oldSimilarityCalculator = null;
Note: See TracChangeset
for help on using the changeset viewer.