Changeset 12694 for branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Algorithms.ScatterSearch/3.3/SolutionPoolUpdateMethod.cs
- Timestamp:
- 07/09/15 13:07:30 (9 years ago)
- Location:
- branches/HeuristicLab.Problems.Orienteering
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.Orienteering
- Property svn:mergeinfo changed
-
Property
svn:global-ignores
set to
*.nuget
packages
-
branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Algorithms.ScatterSearch/3.3/SolutionPoolUpdateMethod.cs
r11185 r12694 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 4Heuristic 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.