Changeset 12969 for branches/gteufl/HeuristicLab.Algorithms.ScatterSearch
- Timestamp:
- 09/25/15 14:39:59 (9 years ago)
- Location:
- branches/gteufl
- Files:
-
- 10 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/HeuristicLab.Algorithms.ScatterSearch-3.3.csproj
r8806 r12969 11 11 <RootNamespace>HeuristicLab.Algorithms.ScatterSearch</RootNamespace> 12 12 <AssemblyName>HeuristicLab.Algorithms.ScatterSearch-3.3</AssemblyName> 13 <TargetFrameworkVersion>v4. 0</TargetFrameworkVersion>13 <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> 14 14 <FileAlignment>512</FileAlignment> 15 <TargetFrameworkProfile /> 15 16 </PropertyGroup> 16 17 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> … … 23 24 <WarningLevel>4</WarningLevel> 24 25 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 26 <Prefer32Bit>false</Prefer32Bit> 25 27 </PropertyGroup> 26 28 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> … … 32 34 <WarningLevel>4</WarningLevel> 33 35 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 36 <Prefer32Bit>false</Prefer32Bit> 34 37 </PropertyGroup> 35 38 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> … … 41 44 <ErrorReport>prompt</ErrorReport> 42 45 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 46 <Prefer32Bit>false</Prefer32Bit> 43 47 </PropertyGroup> 44 48 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> … … 50 54 <ErrorReport>prompt</ErrorReport> 51 55 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 56 <Prefer32Bit>false</Prefer32Bit> 52 57 </PropertyGroup> 53 58 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> … … 59 64 <ErrorReport>prompt</ErrorReport> 60 65 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 66 <Prefer32Bit>false</Prefer32Bit> 61 67 </PropertyGroup> 62 68 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> … … 68 74 <ErrorReport>prompt</ErrorReport> 69 75 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 76 <Prefer32Bit>false</Prefer32Bit> 70 77 </PropertyGroup> 71 78 <PropertyGroup> -
branches/gteufl/HeuristicLab.Algorithms.ScatterSearch/3.3/OffspringProcessor.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. -
branches/gteufl/HeuristicLab.Algorithms.ScatterSearch/3.3/Plugin.cs.frame
r10037 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. … … 26 26 /// Plugin class for HeuristicLab.Algorithms.ScatterSearch plugin. 27 27 /// </summary> 28 [Plugin("HeuristicLab.Algorithms.ScatterSearch", "3.3. 9.$WCREV$")]28 [Plugin("HeuristicLab.Algorithms.ScatterSearch", "3.3.12.$WCREV$")] 29 29 [PluginFile("HeuristicLab.Algorithms.ScatterSearch-3.3.dll", PluginFileType.Assembly)] 30 30 [PluginDependency("HeuristicLab.Analysis", "3.3")] -
branches/gteufl/HeuristicLab.Algorithms.ScatterSearch/3.3/PopulationRebuildMethod.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. … … 25 25 using HeuristicLab.Data; 26 26 using HeuristicLab.Operators; 27 using HeuristicLab.Optimization; 27 28 using HeuristicLab.Parameters; 28 29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 34 35 [Item("PopulationRebuildMethod", "An operator that updates the reference set and rebuilds the population.")] 35 36 [StorableClass] 36 public sealed class PopulationRebuildMethod : SingleSuccessorOperator {37 public sealed class PopulationRebuildMethod : SingleSuccessorOperator, ISingleObjectiveOperator { 37 38 #region Parameter properties 38 39 public ScopeParameter CurrentScopeParameter { -
branches/gteufl/HeuristicLab.Algorithms.ScatterSearch/3.3/Properties/AssemblyInfo.cs.frame
r10037 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. … … 31 31 [assembly: AssemblyCompany("")] 32 32 [assembly: AssemblyProduct("HeuristicLab")] 33 [assembly: AssemblyCopyright("(c) 2002-201 3HEAL")]33 [assembly: AssemblyCopyright("(c) 2002-2015 HEAL")] 34 34 [assembly: AssemblyTrademark("")] 35 35 [assembly: AssemblyCulture("")] … … 53 53 // by using the '*' as shown below: 54 54 [assembly: AssemblyVersion("3.3.0.0")] 55 [assembly: AssemblyFileVersion("3.3. 9.$WCREV$")]55 [assembly: AssemblyFileVersion("3.3.12.$WCREV$")] -
branches/gteufl/HeuristicLab.Algorithms.ScatterSearch/3.3/ReferenceSetUpdateMethod.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. … … 36 36 [Item("ReferenceSetUpdateMethod", "An operator that updates the reference set.")] 37 37 [StorableClass] 38 public sealed class ReferenceSetUpdateMethod : SingleSuccessorOperator, ISimilarityBasedOperator { 39 #region ISimilarityBasedOperator Members 40 [Storable] 41 public ISolutionSimilarityCalculator SimilarityCalculator { get; set; } 42 #endregion 43 38 public sealed class ReferenceSetUpdateMethod : SingleSuccessorOperator { 44 39 #region Parameter properties 45 40 public ScopeParameter CurrentScopeParameter { … … 48 43 public IValueLookupParameter<IntValue> ReferenceSetSizeParameter { 49 44 get { return (IValueLookupParameter<IntValue>)Parameters["ReferenceSetSize"]; } 45 } 46 public IValueLookupParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter { 47 get { return (IValueLookupParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; } 50 48 } 51 49 #endregion … … 62 60 [StorableConstructor] 63 61 private ReferenceSetUpdateMethod(bool deserializing) : base(deserializing) { } 64 private ReferenceSetUpdateMethod(ReferenceSetUpdateMethod original, Cloner cloner) 65 : base(original, cloner) { 66 this.SimilarityCalculator = cloner.Clone(original.SimilarityCalculator); 67 } 62 private ReferenceSetUpdateMethod(ReferenceSetUpdateMethod original, Cloner cloner) : base(original, cloner) { } 68 63 public ReferenceSetUpdateMethod() 69 64 : base() { … … 71 66 Parameters.Add(new ScopeParameter("CurrentScope", "The current scope that contains the population and the reference set.")); 72 67 Parameters.Add(new ValueLookupParameter<IntValue>("ReferenceSetSize", "The size of the reference set.")); 68 Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity.")); 73 69 #endregion 74 70 } … … 78 74 } 79 75 76 [StorableHook(HookType.AfterDeserialization)] 77 private void AfterDeserialization() { 78 // BackwardsCompatibility3.3 79 #region Backwards compatible code, remove with 3.4 80 if (!Parameters.ContainsKey("SimilarityCalculator")) 81 Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity.")); 82 #endregion 83 } 84 80 85 public override IOperation Apply() { 81 86 var populationSimilarity = new Dictionary<IScope, double>(); 82 87 var populationScope = CurrentScope.SubScopes[0]; 83 88 var refSetScope = CurrentScope.SubScopes[1]; 84 var similarityMatrix = SimilarityCalculator .CalculateSolutionCrowdSimilarity(populationScope, refSetScope);89 var similarityMatrix = SimilarityCalculatorParameter.ActualValue.CalculateSolutionCrowdSimilarity(populationScope, refSetScope); 85 90 for (int i = 0; i < populationScope.SubScopes.Count; i++) { 86 91 populationSimilarity[populationScope.SubScopes[i]] = similarityMatrix[i].Sum(); -
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 } -
branches/gteufl/HeuristicLab.Algorithms.ScatterSearch/3.3/ScatterSearchMainLoop.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. -
branches/gteufl/HeuristicLab.Algorithms.ScatterSearch/3.3/SolutionPoolUpdateMethod.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. … … 36 36 [Item("SolutionPoolUpdateMethod", "An operator that updates the solution pool.")] 37 37 [StorableClass] 38 public sealed class SolutionPoolUpdateMethod : SingleSuccessorOperator, ISimilarityBasedOperator { 39 #region ISimilarityBasedOperator Members 40 [Storable] 41 public ISolutionSimilarityCalculator SimilarityCalculator { get; set; } 42 #endregion 43 38 public sealed class SolutionPoolUpdateMethod : SingleSuccessorOperator, ISingleObjectiveOperator { 44 39 #region Parameter properties 45 40 public ScopeParameter CurrentScopeParameter { … … 57 52 public IValueLookupParameter<IntValue> ReferenceSetSizeParameter { 58 53 get { return (IValueLookupParameter<IntValue>)Parameters["ReferenceSetSize"]; } 54 } 55 public IValueLookupParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter { 56 get { return (IValueLookupParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; } 59 57 } 60 58 #endregion … … 82 80 [StorableConstructor] 83 81 private SolutionPoolUpdateMethod(bool deserializing) : base(deserializing) { } 84 private SolutionPoolUpdateMethod(SolutionPoolUpdateMethod original, Cloner cloner) 85 : base(original, cloner) { 86 this.SimilarityCalculator = cloner.Clone(original.SimilarityCalculator); 87 } 88 public SolutionPoolUpdateMethod() : base() { Initialize(); } 89 90 public override IDeepCloneable Clone(Cloner cloner) { 91 return new SolutionPoolUpdateMethod(this, cloner); 92 } 93 94 private void Initialize() { 82 private SolutionPoolUpdateMethod(SolutionPoolUpdateMethod original, Cloner cloner) : base(original, cloner) { } 83 public SolutionPoolUpdateMethod() 84 : base() { 95 85 #region Create parameters 96 86 Parameters.Add(new ScopeParameter("CurrentScope", "The current scope that is the reference set.")); … … 99 89 Parameters.Add(new ValueLookupParameter<IItem>("Quality", "This parameter is used for name translation only.")); 100 90 Parameters.Add(new ValueLookupParameter<IntValue>("ReferenceSetSize", "The size of the reference set.")); 91 Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity.")); 92 #endregion 93 } 94 95 public override IDeepCloneable Clone(Cloner cloner) { 96 return new SolutionPoolUpdateMethod(this, cloner); 97 } 98 99 [StorableHook(HookType.AfterDeserialization)] 100 private void AfterDeserialization() { 101 // BackwardsCompatibility3.3 102 #region Backwards compatible code, remove with 3.4 103 if (!Parameters.ContainsKey("SimilarityCalculator")) 104 Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity.")); 101 105 #endregion 102 106 } … … 132 136 if (orderedOffspring.Any(hasBetterQuality)) { 133 137 // produce the set union 134 var union = orderedParents.Union(orderedOffspring.Where(hasBetterQuality), SimilarityCalculator );138 var union = orderedParents.Union(orderedOffspring.Where(hasBetterQuality), SimilarityCalculatorParameter.ActualValue); 135 139 if (union.Count() > orderedParents.Count()) { 136 140 var orderedUnion = Maximization.Value ? union.OrderByDescending(x => x.Variables[QualityParameter.ActualName].Value) :
Note: See TracChangeset
for help on using the changeset viewer.