Changeset 5642 for branches/VNS/HeuristicLab.Algorithms.VariableNeighborhoodSearch/3.3/ShakingOperator.cs
- Timestamp:
- 03/09/11 11:17:48 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/VNS/HeuristicLab.Algorithms.VariableNeighborhoodSearch/3.3/ShakingOperator.cs
r5609 r5642 38 38 [Item("ShakingOperator", "A shaking operator for VNS.")] 39 39 [StorableClass] 40 public class ShakingOperator : CheckedMultiOperator<IManipulator>{40 public class ShakingOperator<T> : CheckedMultiOperator<T>, IShakingOperator where T : class, IManipulator { 41 41 public IValueLookupParameter<IntValue> IndexParameter { 42 42 get { return (ValueLookupParameter<IntValue>)Parameters["Index"]; } … … 49 49 [StorableConstructor] 50 50 protected ShakingOperator(bool deserializing) : base(deserializing) { } 51 protected ShakingOperator(ShakingOperator original, Cloner cloner) : base(original, cloner) { }51 protected ShakingOperator(ShakingOperator<T> original, Cloner cloner) : base(original, cloner) { } 52 52 public override IDeepCloneable Clone(Cloner cloner) { 53 return new ShakingOperator (this, cloner);53 return new ShakingOperator<T>(this, cloner); 54 54 } 55 55 public ShakingOperator() … … 57 57 Parameters.Add(new ValueLookupParameter<IntValue>("Index", "The index of the operator that should be applied (k).")); 58 58 Parameters.Add(new LookupParameter<BoolValue>("Continue", "True if k <= available operators.")); 59 } 60 61 public void Parameterize(IProblem problem) { 62 Operators.Clear(); 63 64 if (problem != null) { 65 foreach (T manipulator in problem.Operators.OfType<T>().OrderBy(x => x.Name)) 66 Operators.Add(manipulator); 67 } 59 68 } 60 69
Note: See TracChangeset
for help on using the changeset viewer.