Changeset 4206 for trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/IntraRouteInversionMoveGenerator.cs
- Timestamp:
- 08/13/10 10:28:15 (14 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion
- Files:
-
- 1 added
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/IntraRouteInversionMoveGenerator.cs
r4204 r4206 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item(" SimpleLocalSearchMoveGenerator", "Generates local search moves from a given AlbaVRP encoding.")]31 [Item("IntraRouteInversionMoveGenerator", "Generates intra route inversion moves from a given VRP encoding.")] 32 32 [StorableClass] 33 public abstract class SimpleLocalSearchMoveGenerator : AlbaMoveOperator, IExhaustiveMoveGenerator, IAlbaSimpleLocalSearchMoveOperator { 34 #region IAlbaSimpleLocalSearchMoveOperator Members 35 36 public ILookupParameter<SimpleLocalSearchMove> SimpleLocalSearchMoveParameter { 37 get { return (ILookupParameter<SimpleLocalSearchMove>)Parameters["SimpleLocalSearchMove"]; } 33 public abstract class IntraRouteInversionMoveGenerator : AlbaMoveOperator, IExhaustiveMoveGenerator, IAlbaIntraRouteInversionMoveOperator { 34 public ILookupParameter<IntraRouteInversionMove> IntraRouteInversionMoveParameter { 35 get { return (ILookupParameter<IntraRouteInversionMove>)Parameters["IntraRouteInversionMove"]; } 38 36 } 39 37 … … 42 40 } 43 41 44 #endregion 42 [StorableConstructor] 43 protected IntraRouteInversionMoveGenerator(bool deserializing) : base(deserializing) { } 45 44 46 [StorableConstructor] 47 protected SimpleLocalSearchMoveGenerator(bool deserializing) : base(deserializing) { } 48 49 public SimpleLocalSearchMoveGenerator() 45 public IntraRouteInversionMoveGenerator() 50 46 : base() { 51 Parameters.Add(new LookupParameter< SimpleLocalSearchMove>("SimpleLocalSearchMove", "The moves that should be generated in subscopes."));47 Parameters.Add(new LookupParameter<IntraRouteInversionMove>("IntraRouteInversionMove", "The moves that should be generated in subscopes.")); 52 48 Parameters.Add(new ScopeParameter("CurrentScope", "The current scope where the moves should be added as subscopes.")); 53 49 } 54 50 55 protected abstract SimpleLocalSearchMove[] GenerateMoves(AlbaEncoding individual);51 protected abstract IntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual); 56 52 57 53 public override IOperation Apply() { … … 59 55 60 56 AlbaEncoding individual = VRPToursParameter.ActualValue as AlbaEncoding; 61 SimpleLocalSearchMove[] moves = GenerateMoves(individual);57 IntraRouteInversionMove[] moves = GenerateMoves(individual); 62 58 Scope[] moveScopes = new Scope[moves.Length]; 63 59 for (int i = 0; i < moveScopes.Length; i++) { 64 60 moveScopes[i] = new Scope(i.ToString()); 65 moveScopes[i].Variables.Add(new Variable( SimpleLocalSearchMoveParameter.ActualName, moves[i]));61 moveScopes[i].Variables.Add(new Variable(IntraRouteInversionMoveParameter.ActualName, moves[i])); 66 62 } 67 63 CurrentScopeParameter.ActualValue.SubScopes.AddRange(moveScopes);
Note: See TracChangeset
for help on using the changeset viewer.