- Timestamp:
- 09/25/15 14:39:59 (9 years ago)
- Location:
- branches/gteufl
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/gteufl
- Property svn:ignore
-
old new 8 8 FxCopResults.txt 9 9 Google.ProtocolBuffers-0.9.1.dll 10 Google.ProtocolBuffers-2.4.1.473.dll 10 11 HeuristicLab 3.3.5.1.ReSharper.user 11 12 HeuristicLab 3.3.6.0.ReSharper.user 12 13 HeuristicLab.4.5.resharper.user 13 14 HeuristicLab.ExtLibs.6.0.ReSharper.user 15 HeuristicLab.Scripting.Development 14 16 HeuristicLab.resharper.user 15 17 ProtoGen.exe … … 17 19 _ReSharper.HeuristicLab 18 20 _ReSharper.HeuristicLab 3.3 21 _ReSharper.HeuristicLab 3.3 Tests 19 22 _ReSharper.HeuristicLab.ExtLibs 20 23 bin 21 24 protoc.exe 22 _ReSharper.HeuristicLab 3.3 Tests 23 Google.ProtocolBuffers-2.4.1.473.dll 25 obj
-
- Property svn:mergeinfo changed
-
Property
svn:global-ignores
set to
*.nuget
packages
- Property svn:ignore
-
branches/gteufl/HeuristicLab.Algorithms.ScatterSearch/3.3/ScatterSearch.cs
r9456 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 39 39 /// </summary> 40 40 [Item("Scatter Search", "A scatter search algorithm.")] 41 [Creatable( "Algorithms")]41 [Creatable(CreatableAttribute.Categories.PopulationBasedAlgorithms, Priority = 500)] 42 42 [StorableClass] 43 43 public sealed class ScatterSearch : HeuristicOptimizationEngineAlgorithm, IStorableContent { … … 62 62 } 63 63 public IValueParameter<BoolValue> ExecutePathRelinkingParameter { 64 get { return (IValue LookupParameter<BoolValue>)Parameters["ExecutePathRelinking"]; }64 get { return (IValueParameter<BoolValue>)Parameters["ExecutePathRelinking"]; } 65 65 } 66 66 public IConstrainedValueParameter<IImprovementOperator> ImproverParameter { … … 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") && Parameters["SimilarityCalculator"] is IConstrainedValueParameter<ISingleObjectiveSolutionSimilarityCalculator>) { 165 #pragma warning disable 0618 166 var oldParameter = (IConstrainedValueParameter<ISingleObjectiveSolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; 167 #pragma warning restore 0618 168 Parameters.Remove(oldParameter); 169 var newParameter = new ConstrainedValueParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions.", new ItemSet<ISolutionSimilarityCalculator>(oldParameter.ValidValues)); 170 var selectedSimilarityCalculator = newParameter.ValidValues.SingleOrDefault(x => x.GetType() == oldParameter.Value.GetType()); 171 newParameter.Value = selectedSimilarityCalculator; 172 Parameters.Add(newParameter); 173 } 174 #endregion 162 175 Initialize(); 163 176 } … … 175 188 Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The analyzer used to analyze each iteration.", new MultiAnalyzer())); 176 189 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); 177 Parameters.Add(new ValueParameter<BoolValue>("ExecutePathRelinking", "True if path relinking should be executed instead of crossover, otherwise false.", new BoolValue( true)));190 Parameters.Add(new ValueParameter<BoolValue>("ExecutePathRelinking", "True if path relinking should be executed instead of crossover, otherwise false.", new BoolValue(false))); 178 191 Parameters.Add(new ConstrainedValueParameter<IImprovementOperator>("Improver", "The operator used to improve solutions.")); 179 192 Parameters.Add(new ValueParameter<IntValue>("MaximumIterations", "The maximum number of iterations which should be processed.", new IntValue(100))); … … 184 197 Parameters.Add(new ValueParameter<IntValue>("Seed", "The random seed used to initialize the new pseudo random number generator.", new IntValue(0))); 185 198 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."));199 Parameters.Add(new ConstrainedValueParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions.")); 187 200 #endregion 188 201 … … 309 322 base.Problem_OperatorsChanged(sender, e); 310 323 } 324 private void PathRelinkerParameter_ValueChanged(object sender, EventArgs e) { 325 ExecutePathRelinking.Value = PathRelinkerParameter.Value != null; 326 } 311 327 private void SimilarityCalculatorParameter_ValueChanged(object sender, EventArgs e) { 312 328 ParameterizeMainLoop(); … … 322 338 #region Helpers 323 339 private void Initialize() { 340 PathRelinkerParameter.ValueChanged += new EventHandler(PathRelinkerParameter_ValueChanged); 324 341 SimilarityCalculatorParameter.ValueChanged += new EventHandler(SimilarityCalculatorParameter_ValueChanged); 325 342 if (Problem != null) … … 386 403 } 387 404 private void UpdateSimilarityCalculators() { 388 IS ingleObjectiveSolutionSimilarityCalculator oldSimilarityCalculator = SimilarityCalculatorParameter.Value;405 ISolutionSimilarityCalculator oldSimilarityCalculator = SimilarityCalculatorParameter.Value; 389 406 SimilarityCalculatorParameter.ValidValues.Clear(); 390 ISingleObjectiveSolutionSimilarityCalculator defaultSimilarityCalculator = Problem.Operators.OfType<ISingleObjectiveSolutionSimilarityCalculator>().FirstOrDefault(); 391 392 SimilarityCalculatorParameter.ValidValues.Add(new QualitySimilarityCalculator { QualityVariableName = Problem.Evaluator.QualityParameter.ActualName }); 393 SimilarityCalculatorParameter.ValidValues.Add(new NoSimilarityCalculator { QualityVariableName = Problem.Evaluator.QualityParameter.ActualName }); 394 395 foreach (ISingleObjectiveSolutionSimilarityCalculator similarityCalculator in Problem.Operators.OfType<ISingleObjectiveSolutionSimilarityCalculator>()) 407 ISolutionSimilarityCalculator defaultSimilarityCalculator = Problem.Operators.OfType<ISolutionSimilarityCalculator>().FirstOrDefault(); 408 409 foreach (ISolutionSimilarityCalculator similarityCalculator in Problem.Operators.OfType<ISolutionSimilarityCalculator>()) 396 410 SimilarityCalculatorParameter.ValidValues.Add(similarityCalculator); 397 411 412 if (!SimilarityCalculatorParameter.ValidValues.OfType<QualitySimilarityCalculator>().Any()) 413 SimilarityCalculatorParameter.ValidValues.Add(new QualitySimilarityCalculator { 414 QualityVariableName = Problem.Evaluator.QualityParameter.ActualName 415 }); 416 if (!SimilarityCalculatorParameter.ValidValues.OfType<NoSimilarityCalculator>().Any()) 417 SimilarityCalculatorParameter.ValidValues.Add(new NoSimilarityCalculator()); 418 398 419 if (oldSimilarityCalculator != null) { 399 IS ingleObjectiveSolutionSimilarityCalculator similarityCalculator = SimilarityCalculatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSimilarityCalculator.GetType());420 ISolutionSimilarityCalculator similarityCalculator = SimilarityCalculatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSimilarityCalculator.GetType()); 400 421 if (similarityCalculator != null) SimilarityCalculatorParameter.Value = similarityCalculator; 401 422 else oldSimilarityCalculator = null; … … 419 440 MainLoop.OperatorGraph.Operators.OfType<PopulationRebuildMethod>().Single().QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName; 420 441 MainLoop.OperatorGraph.Operators.OfType<SolutionPoolUpdateMethod>().Single().QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName; 421 foreach (ISimilarityBasedOperator op in MainLoop.OperatorGraph.Operators.OfType<ISimilarityBasedOperator>())422 op.SimilarityCalculator = SimilarityCalculator;423 442 } 424 443 } … … 445 464 } 446 465 private void ParameterizeSimilarityCalculators() { 447 foreach (IS ingleObjectiveSolutionSimilarityCalculator calc in SimilarityCalculatorParameter.ValidValues) {466 foreach (ISolutionSimilarityCalculator calc in SimilarityCalculatorParameter.ValidValues) { 448 467 calc.QualityVariableName = Problem.Evaluator.QualityParameter.ActualName; 449 468 }
Note: See TracChangeset
for help on using the changeset viewer.