Changeset 12102 for trunk/sources/HeuristicLab.Algorithms.ScatterSearch
- Timestamp:
- 03/02/15 16:11:20 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/sources/HeuristicLab.Algorithms.ScatterSearch/3.3/ScatterSearch.cs ¶
r12069 r12102 88 88 get { return (IValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; } 89 89 } 90 public IConstrainedValueParameter<IS ingleObjectiveSolutionSimilarityCalculator> SimilarityCalculatorParameter {91 get { return (IConstrainedValueParameter<IS ingleObjectiveSolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; }90 public IConstrainedValueParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter { 91 get { return (IConstrainedValueParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; } 92 92 } 93 93 #endregion … … 138 138 set { SetSeedRandomlyParameter.Value = value; } 139 139 } 140 public IS ingleObjectiveSolutionSimilarityCalculator SimilarityCalculator {140 public ISolutionSimilarityCalculator SimilarityCalculator { 141 141 get { return SimilarityCalculatorParameter.Value; } 142 142 set { SimilarityCalculatorParameter.Value = value; } … … 160 160 [StorableHook(HookType.AfterDeserialization)] 161 161 private void AfterDeserialization() { 162 // BackwardsCompatibility3.3 163 #region Backwards compatible code, remove with 3.4 164 if (Parameters.ContainsKey("SimilarityCalculator")) { 165 var oldParameter = (IConstrainedValueParameter<ISingleObjectiveSolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; 166 Parameters.Remove(oldParameter); 167 var newParameter = new ConstrainedValueParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions.", new ItemSet<ISolutionSimilarityCalculator>(oldParameter.ValidValues)); 168 var selectedSimilarityCalculator = newParameter.ValidValues.SingleOrDefault(x => x.GetType() == oldParameter.Value.GetType()); 169 newParameter.Value = selectedSimilarityCalculator; 170 Parameters.Add(newParameter); 171 } 172 #endregion 162 173 Initialize(); 163 174 } … … 184 195 Parameters.Add(new ValueParameter<IntValue>("Seed", "The random seed used to initialize the new pseudo random number generator.", new IntValue(0))); 185 196 Parameters.Add(new ValueParameter<BoolValue>("SetSeedRandomly", "True if the random seed should be set to a random value, otherwise false.", new BoolValue(true))); 186 Parameters.Add(new ConstrainedValueParameter<IS ingleObjectiveSolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions."));197 Parameters.Add(new ConstrainedValueParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions.")); 187 198 #endregion 188 199 … … 390 401 } 391 402 private void UpdateSimilarityCalculators() { 392 IS ingleObjectiveSolutionSimilarityCalculator oldSimilarityCalculator = SimilarityCalculatorParameter.Value;403 ISolutionSimilarityCalculator oldSimilarityCalculator = SimilarityCalculatorParameter.Value; 393 404 SimilarityCalculatorParameter.ValidValues.Clear(); 394 ISingleObjectiveSolutionSimilarityCalculator defaultSimilarityCalculator = Problem.Operators.OfType<ISingleObjectiveSolutionSimilarityCalculator>().FirstOrDefault(); 395 396 SimilarityCalculatorParameter.ValidValues.Add(new QualitySimilarityCalculator { QualityVariableName = Problem.Evaluator.QualityParameter.ActualName }); 397 SimilarityCalculatorParameter.ValidValues.Add(new NoSimilarityCalculator { QualityVariableName = Problem.Evaluator.QualityParameter.ActualName }); 398 399 foreach (ISingleObjectiveSolutionSimilarityCalculator similarityCalculator in Problem.Operators.OfType<ISingleObjectiveSolutionSimilarityCalculator>()) 405 ISolutionSimilarityCalculator defaultSimilarityCalculator = Problem.Operators.OfType<ISolutionSimilarityCalculator>().FirstOrDefault(); 406 407 foreach (ISolutionSimilarityCalculator similarityCalculator in Problem.Operators.OfType<ISolutionSimilarityCalculator>()) 400 408 SimilarityCalculatorParameter.ValidValues.Add(similarityCalculator); 401 409 402 410 if (oldSimilarityCalculator != null) { 403 IS ingleObjectiveSolutionSimilarityCalculator similarityCalculator = SimilarityCalculatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSimilarityCalculator.GetType());411 ISolutionSimilarityCalculator similarityCalculator = SimilarityCalculatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSimilarityCalculator.GetType()); 404 412 if (similarityCalculator != null) SimilarityCalculatorParameter.Value = similarityCalculator; 405 413 else oldSimilarityCalculator = null; … … 447 455 } 448 456 private void ParameterizeSimilarityCalculators() { 449 foreach (IS ingleObjectiveSolutionSimilarityCalculator calc in SimilarityCalculatorParameter.ValidValues) {457 foreach (ISolutionSimilarityCalculator calc in SimilarityCalculatorParameter.ValidValues) { 450 458 calc.QualityVariableName = Problem.Evaluator.QualityParameter.ActualName; 451 459 }
Note: See TracChangeset
for help on using the changeset viewer.