- Timestamp:
- 08/31/10 14:03:12 (14 years ago)
- Location:
- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3
- Files:
-
- 13 edited
- 37 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item(" PermutationCrossover", "An operator which crosses two VRP representations using a standard permutation operator.")]29 [Item("AlbaPermutationCrossover", "An operator which crosses two VRP representations using a standard permutation operator. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class PermutationCrossover : AlbaCrossover {31 public sealed class AlbaPermutationCrossover : AlbaCrossover { 32 32 public IValueLookupParameter<IPermutationCrossover> InnerCrossoverParameter { 33 33 get { return (IValueLookupParameter<IPermutationCrossover>)Parameters["InnerCrossover"]; } … … 35 35 36 36 [StorableConstructor] 37 private PermutationCrossover(bool deserializing) : base(deserializing) { }37 private AlbaPermutationCrossover(bool deserializing) : base(deserializing) { } 38 38 39 public PermutationCrossover()39 public AlbaPermutationCrossover() 40 40 : base() { 41 41 Parameters.Add(new ValueLookupParameter<IPermutationCrossover>("InnerCrossover", "The permutation crossover.", new EdgeRecombinationCrossover())); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaCustomerInsertionManipulator.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item(" CustomerInsertionManipulator", "An operator which manipulates a VRP representation by inserting a customer in another place. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]29 [Item("AlbaCustomerInsertionManipulator", "An operator which manipulates a VRP representation by inserting a customer in another place. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class CustomerInsertionManipulator : AlbaManipulator {31 public sealed class AlbaCustomerInsertionManipulator : AlbaManipulator { 32 32 [StorableConstructor] 33 private CustomerInsertionManipulator(bool deserializing) : base(deserializing) { }33 private AlbaCustomerInsertionManipulator(bool deserializing) : base(deserializing) { } 34 34 35 public CustomerInsertionManipulator()35 public AlbaCustomerInsertionManipulator() 36 36 : base() { 37 37 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaCustomerInversionManipulator.cs
r4341 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 30 [Item(" CustomerInversionManipulator", "An operator which manipulates a VRP representation by inverting the order the customers are visited. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]30 [Item("AlbaCustomerInversionManipulator", "An operator which manipulates a VRP representation by inverting the order the customers are visited. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 31 31 [StorableClass] 32 public sealed class CustomerInversionManipulator : AlbaManipulator {32 public sealed class AlbaCustomerInversionManipulator : AlbaManipulator { 33 33 [StorableConstructor] 34 private CustomerInversionManipulator(bool deserializing) : base(deserializing) { }34 private AlbaCustomerInversionManipulator(bool deserializing) : base(deserializing) { } 35 35 36 public CustomerInversionManipulator()36 public AlbaCustomerInversionManipulator() 37 37 : base() { 38 38 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaCustomerSwapManipulator.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item(" CustomerSwapManipulator", "An operator which manipulates a VRP representation by swapping two customers. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]29 [Item("AlbaCustomerSwapManipulator", "An operator which manipulates a VRP representation by swapping two customers. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class CustomerSwapManipulator : AlbaManipulator {31 public sealed class AlbaCustomerSwapManipulator : AlbaManipulator { 32 32 [StorableConstructor] 33 private CustomerSwapManipulator(bool deserializing) : base(deserializing) { }33 private AlbaCustomerSwapManipulator(bool deserializing) : base(deserializing) { } 34 34 35 public CustomerSwapManipulator()35 public AlbaCustomerSwapManipulator() 36 36 : base() { 37 37 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaIntraRouteInversionManipulator.cs
r4341 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item(" IntraRouteInversionManipulator", "An operator which applies the SLS operation to a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]31 [Item("AlbaIntraRouteInversionManipulator", "An operator which applies the SLS operation to a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 32 32 [StorableClass] 33 public sealed class IntraRouteInversionManipulator : AlbaManipulator {33 public sealed class AlbaIntraRouteInversionManipulator : AlbaManipulator { 34 34 [StorableConstructor] 35 private IntraRouteInversionManipulator(bool deserializing) : base(deserializing) { }35 private AlbaIntraRouteInversionManipulator(bool deserializing) : base(deserializing) { } 36 36 37 public IntraRouteInversionManipulator()37 public AlbaIntraRouteInversionManipulator() 38 38 : base() { 39 39 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaLambdaInterchangeManipulator.cs
r4341 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item(" LambdaInterchangeManipulator", "An operator which applies the lambda interchange operation to a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]31 [Item("AlbaLambdaInterchangeManipulator", "An operator which applies the lambda interchange operation to a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 32 32 [StorableClass] 33 public sealed class LambdaInterchangeManipulator : AlbaManipulator {33 public sealed class AlbaLambdaInterchangeManipulator : AlbaManipulator { 34 34 public IValueParameter<IntValue> LambdaParameter { 35 35 get { return (IValueParameter<IntValue>)Parameters["Lambda"]; } … … 37 37 38 38 [StorableConstructor] 39 private LambdaInterchangeManipulator(bool deserializing) : base(deserializing) { }39 private AlbaLambdaInterchangeManipulator(bool deserializing) : base(deserializing) { } 40 40 41 public LambdaInterchangeManipulator()41 public AlbaLambdaInterchangeManipulator() 42 42 : base() { 43 43 Parameters.Add(new ValueParameter<IntValue>("Lambda", "The lambda value.", new IntValue(1))); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaPermutationManipulator.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item("PermutationManipulator", "An operator which manipulates a VRP representation by using a standard permutation manipulator. ")]29 [Item("PermutationManipulator", "An operator which manipulates a VRP representation by using a standard permutation manipulator. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class PermutationManipualtor : AlbaManipulator {31 public sealed class AlbaPermutationManipualtor : AlbaManipulator { 32 32 public IValueLookupParameter<IPermutationManipulator> InnerManipulatorParameter { 33 33 get { return (IValueLookupParameter<IPermutationManipulator>)Parameters["InnerManipulator"]; } … … 35 35 36 36 [StorableConstructor] 37 private PermutationManipualtor(bool deserializing) : base(deserializing) { }37 private AlbaPermutationManipualtor(bool deserializing) : base(deserializing) { } 38 38 39 public PermutationManipualtor()39 public AlbaPermutationManipualtor() 40 40 : base() { 41 41 Parameters.Add(new ValueLookupParameter<IPermutationManipulator>("InnerManipulator", "The permutation manipulator.", new TranslocationManipulator())); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveMaker.cs
r4208 r4346 26 26 27 27 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 28 [Item(" PermutationTranslocationMoveMaker", "An operator which makes translocation moves for the Alba representation.")]28 [Item("AlbaTranslocationMoveMaker", "An operator which makes translocation moves for the Alba representation.")] 29 29 [StorableClass] 30 30 public abstract class AlbaMoveMaker : AlbaMoveOperator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaPermutationMoveOperator.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item(" PermutationMoveOperator", "A move operator for an Alba VRP representation using an inner permutation move operator.")]29 [Item("AlbaPermutationMoveOperator", "A move operator for an Alba VRP representation using an inner permutation move operator.")] 30 30 [StorableClass] 31 public abstract class PermutationMoveOperator : AlbaMoveOperator {31 public abstract class AlbaPermutationMoveOperator : AlbaMoveOperator { 32 32 [Storable] 33 33 protected abstract IPermutationMoveOperator PermutationMoveOperatorParameter { get; set; } 34 34 35 35 [StorableConstructor] 36 protected PermutationMoveOperator(bool deserializing) : base(deserializing) { }36 protected AlbaPermutationMoveOperator(bool deserializing) : base(deserializing) { } 37 37 38 public PermutationMoveOperator()38 public AlbaPermutationMoveOperator() 39 39 : base() 40 40 { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/Interfaces/IAlbaIntraRouteInversionMoveOperator.cs
r4206 r4346 26 26 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 27 27 public interface IAlbaIntraRouteInversionMoveOperator : IVRPMoveOperator { 28 ILookupParameter< IntraRouteInversionMove> IntraRouteInversionMoveParameter { get; }28 ILookupParameter<AlbaIntraRouteInversionMove> IntraRouteInversionMoveParameter { get; } 29 29 } 30 30 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/Interfaces/IAlbaLambdaInterchangeMoveOperator.cs
r4204 r4346 26 26 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 27 27 public interface IAlbaLambdaInterchangeMoveOperator : IVRPMoveOperator { 28 ILookupParameter< LambdaInterchangeMove> LambdaInterchangeMoveParameter { get; }28 ILookupParameter<AlbaLambdaInterchangeMove> LambdaInterchangeMoveParameter { get; } 29 29 } 30 30 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/AlbaExhaustiveIntraRouteInversionMoveGenerator.cs
r4341 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item(" ExhaustiveIntraRouteInversionGenerator", "Generates all possible intra route inversion moves from a given VRP encoding.")]31 [Item("AlbaExhaustiveIntraRouteInversionGenerator", "Generates all possible intra route inversion moves from a given VRP encoding. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 32 32 [StorableClass] 33 public sealed class ExhaustiveIntraRouteInversionGenerator :IntraRouteInversionMoveGenerator, IExhaustiveMoveGenerator, IAlbaIntraRouteInversionMoveOperator {33 public sealed class AlbaExhaustiveIntraRouteInversionGenerator : AlbaIntraRouteInversionMoveGenerator, IExhaustiveMoveGenerator, IAlbaIntraRouteInversionMoveOperator { 34 34 [StorableConstructor] 35 private ExhaustiveIntraRouteInversionGenerator(bool deserializing) : base(deserializing) { }35 private AlbaExhaustiveIntraRouteInversionGenerator(bool deserializing) : base(deserializing) { } 36 36 37 public ExhaustiveIntraRouteInversionGenerator()37 public AlbaExhaustiveIntraRouteInversionGenerator() 38 38 : base() { 39 39 } 40 40 41 protected override IntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual) {42 List< IntraRouteInversionMove> moves = new List<IntraRouteInversionMove>();41 protected override AlbaIntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual) { 42 List<AlbaIntraRouteInversionMove> moves = new List<AlbaIntraRouteInversionMove>(); 43 43 44 44 int currentTourStart = 0; … … 55 55 for (int i = 0; i <= tourLength - 4; i++ ) { 56 56 for (int j = i + 2; j <= tourLength - 2; j++) { 57 IntraRouteInversionMove move = newIntraRouteInversionMove(57 AlbaIntraRouteInversionMove move = new AlbaIntraRouteInversionMove( 58 58 currentTourStart + i, 59 59 currentTourStart + j, -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/AlbaIntraRouteInversionEvaluator.cs
r4341 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting { 30 [Item(" IntraRouteInversionMoveEvaluator", "Evaluates a intra route inversion move for a VRP representation.")]30 [Item("AlbaIntraRouteInversionMoveEvaluator", "Evaluates a intra route inversion move for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 31 31 [StorableClass] 32 public sealed class IntraRouteInversionMoveEvaluator : VRPMoveEvaluator, IAlbaIntraRouteInversionMoveOperator {33 public ILookupParameter< IntraRouteInversionMove> IntraRouteInversionMoveParameter {34 get { return (ILookupParameter< IntraRouteInversionMove>)Parameters["IntraRouteInversionMove"]; }32 public sealed class AlbaIntraRouteInversionMoveEvaluator : VRPMoveEvaluator, IAlbaIntraRouteInversionMoveOperator { 33 public ILookupParameter<AlbaIntraRouteInversionMove> IntraRouteInversionMoveParameter { 34 get { return (ILookupParameter<AlbaIntraRouteInversionMove>)Parameters["AlbaIntraRouteInversionMove"]; } 35 35 } 36 36 37 37 [StorableConstructor] 38 private IntraRouteInversionMoveEvaluator(bool deserializing) : base(deserializing) { }38 private AlbaIntraRouteInversionMoveEvaluator(bool deserializing) : base(deserializing) { } 39 39 40 public IntraRouteInversionMoveEvaluator()40 public AlbaIntraRouteInversionMoveEvaluator() 41 41 : base() { 42 Parameters.Add(new LookupParameter< IntraRouteInversionMove>("IntraRouteInversionMove", "The move to evaluate."));42 Parameters.Add(new LookupParameter<AlbaIntraRouteInversionMove>("AlbaIntraRouteInversionMove", "The move to evaluate.")); 43 43 } 44 44 45 public static TourEvaluation GetMoveQuality(AlbaEncoding individual, IntraRouteInversionMove move,45 public static TourEvaluation GetMoveQuality(AlbaEncoding individual, AlbaIntraRouteInversionMove move, 46 46 IntValue vehicles, 47 47 DoubleArray dueTimeArray, DoubleArray serviceTimeArray, DoubleArray readyTimeArray, … … 51 51 ILookupParameter<DoubleMatrix> distanceMatrix, Data.BoolValue useDistanceMatrix) { 52 52 AlbaEncoding newSolution = individual.Clone() as AlbaEncoding; 53 IntraRouteInversionMoveMaker.Apply(newSolution, move);53 AlbaIntraRouteInversionMoveMaker.Apply(newSolution, move); 54 54 55 55 return VRPEvaluator.Evaluate( -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/AlbaIntraRouteInversionMove.cs
r4341 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 30 [Item("InversionMove", "Item that describes an intra route inversion move on a VRP representation. ")]30 [Item("InversionMove", "Item that describes an intra route inversion move on a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 31 31 [StorableClass] 32 public class IntraRouteInversionMove : TwoIndexMove, IVRPMove {32 public class AlbaIntraRouteInversionMove : TwoIndexMove, IVRPMove { 33 33 public IVRPEncoding Individual { get { return Permutation as AlbaEncoding; } } 34 34 35 public IntraRouteInversionMove()35 public AlbaIntraRouteInversionMove() 36 36 : base() { 37 37 } 38 38 39 public IntraRouteInversionMove(int index1, int index2)39 public AlbaIntraRouteInversionMove(int index1, int index2) 40 40 : base(index1, index2, null) { 41 41 } 42 42 43 public IntraRouteInversionMove(int index1, int index2, AlbaEncoding permutation)43 public AlbaIntraRouteInversionMove(int index1, int index2, AlbaEncoding permutation) 44 44 : base(index1, index2, permutation) { 45 45 this.Permutation = permutation.Clone() as AlbaEncoding; … … 47 47 48 48 public override IDeepCloneable Clone(HeuristicLab.Common.Cloner cloner) { 49 IntraRouteInversionMove clone = newIntraRouteInversionMove(49 AlbaIntraRouteInversionMove clone = new AlbaIntraRouteInversionMove( 50 50 Index1, Index2); 51 51 … … 66 66 DoubleValue overloadPenalty, DoubleValue tardinessPenalty, 67 67 ILookupParameter<DoubleMatrix> distanceMatrix, Data.BoolValue useDistanceMatrix) { 68 return IntraRouteInversionMoveEvaluator.GetMoveQuality(Permutation as AlbaEncoding, this, vehicles,68 return AlbaIntraRouteInversionMoveEvaluator.GetMoveQuality(Permutation as AlbaEncoding, this, vehicles, 69 69 dueTimeArray, serviceTimeArray, readyTimeArray, demandArray, capacity, 70 70 coordinates, fleetUsageFactor, timeFactor, distanceFactor, … … 73 73 74 74 public IVRPEncoding MakeMove() { 75 IntraRouteInversionMoveMaker.Apply(Individual as AlbaEncoding, this);75 AlbaIntraRouteInversionMoveMaker.Apply(Individual as AlbaEncoding, this); 76 76 77 77 return Individual; -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/AlbaIntraRouteInversionMoveGenerator.cs
r4341 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item(" IntraRouteInversionMoveGenerator", "Generates intra route inversion moves from a given VRP encoding.")]31 [Item("AlbaIntraRouteInversionMoveGenerator", "Generates intra route inversion moves from a given VRP encoding. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 32 32 [StorableClass] 33 public abstract class IntraRouteInversionMoveGenerator : AlbaMoveOperator, IExhaustiveMoveGenerator, IAlbaIntraRouteInversionMoveOperator {34 public ILookupParameter< IntraRouteInversionMove> IntraRouteInversionMoveParameter {35 get { return (ILookupParameter< IntraRouteInversionMove>)Parameters["IntraRouteInversionMove"]; }33 public abstract class AlbaIntraRouteInversionMoveGenerator : AlbaMoveOperator, IExhaustiveMoveGenerator, IAlbaIntraRouteInversionMoveOperator { 34 public ILookupParameter<AlbaIntraRouteInversionMove> IntraRouteInversionMoveParameter { 35 get { return (ILookupParameter<AlbaIntraRouteInversionMove>)Parameters["AlbaIntraRouteInversionMove"]; } 36 36 } 37 37 … … 41 41 42 42 [StorableConstructor] 43 protected IntraRouteInversionMoveGenerator(bool deserializing) : base(deserializing) { }43 protected AlbaIntraRouteInversionMoveGenerator(bool deserializing) : base(deserializing) { } 44 44 45 public IntraRouteInversionMoveGenerator()45 public AlbaIntraRouteInversionMoveGenerator() 46 46 : base() { 47 Parameters.Add(new LookupParameter< IntraRouteInversionMove>("IntraRouteInversionMove", "The moves that should be generated in subscopes."));47 Parameters.Add(new LookupParameter<AlbaIntraRouteInversionMove>("AlbaIntraRouteInversionMove", "The moves that should be generated in subscopes.")); 48 48 Parameters.Add(new ScopeParameter("CurrentScope", "The current scope where the moves should be added as subscopes.")); 49 49 } 50 50 51 protected abstract IntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual);51 protected abstract AlbaIntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual); 52 52 53 53 public override IOperation Apply() { … … 55 55 56 56 AlbaEncoding individual = VRPToursParameter.ActualValue as AlbaEncoding; 57 IntraRouteInversionMove[] moves = GenerateMoves(individual);57 AlbaIntraRouteInversionMove[] moves = GenerateMoves(individual); 58 58 Scope[] moveScopes = new Scope[moves.Length]; 59 59 for (int i = 0; i < moveScopes.Length; i++) { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/AlbaIntraRouteInversionMoveMaker.cs
r4341 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 30 [Item(" IntraRouteInversionMoveMaker", "Peforms the SLS move on a given VRP encoding and updates the quality. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]30 [Item("AlbaIntraRouteInversionMoveMaker", "Peforms the SLS move on a given VRP encoding and updates the quality. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 31 31 [StorableClass] 32 public class IntraRouteInversionMoveMaker : AlbaMoveMaker, IAlbaIntraRouteInversionMoveOperator, IMoveMaker {32 public class AlbaIntraRouteInversionMoveMaker : AlbaMoveMaker, IAlbaIntraRouteInversionMoveOperator, IMoveMaker { 33 33 public override bool CanChangeName { 34 34 get { return false; } … … 40 40 get { return (ILookupParameter<DoubleValue>)Parameters["MoveQuality"]; } 41 41 } 42 public ILookupParameter< IntraRouteInversionMove> IntraRouteInversionMoveParameter {43 get { return (ILookupParameter< IntraRouteInversionMove>)Parameters["IntraRouteInversionMove"]; }42 public ILookupParameter<AlbaIntraRouteInversionMove> IntraRouteInversionMoveParameter { 43 get { return (ILookupParameter<AlbaIntraRouteInversionMove>)Parameters["AlbaIntraRouteInversionMove"]; } 44 44 } 45 45 46 46 [StorableConstructor] 47 private IntraRouteInversionMoveMaker(bool deserializing) : base(deserializing) { }47 private AlbaIntraRouteInversionMoveMaker(bool deserializing) : base(deserializing) { } 48 48 49 public IntraRouteInversionMoveMaker()49 public AlbaIntraRouteInversionMoveMaker() 50 50 : base() { 51 51 Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality of the solution.")); 52 Parameters.Add(new LookupParameter< IntraRouteInversionMove>("IntraRouteInversionMove", "The move to make."));52 Parameters.Add(new LookupParameter<AlbaIntraRouteInversionMove>("AlbaIntraRouteInversionMove", "The move to make.")); 53 53 Parameters.Add(new LookupParameter<DoubleValue>("MoveQuality", "The relative quality of the move.")); 54 54 } 55 55 56 public static void Apply(AlbaEncoding solution, IntraRouteInversionMove move) {57 IntraRouteInversionManipulator.Apply(solution, move.Index1, move.Index2);56 public static void Apply(AlbaEncoding solution, AlbaIntraRouteInversionMove move) { 57 AlbaIntraRouteInversionManipulator.Apply(solution, move.Index1, move.Index2); 58 58 } 59 59 … … 61 61 IOperation next = base.Apply(); 62 62 63 IntraRouteInversionMove move = IntraRouteInversionMoveParameter.ActualValue;63 AlbaIntraRouteInversionMove move = IntraRouteInversionMoveParameter.ActualValue; 64 64 DoubleValue moveQuality = MoveQualityParameter.ActualValue; 65 65 DoubleValue quality = QualityParameter.ActualValue; -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/AlbaStochasticIntraRouteInversionMutliMoveGenerator.cs
r4341 r4346 30 30 31 31 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 32 [Item(" StochasticIntraRouteInversionMultiMoveGenerator", "Generates multiple random intra route inversion moves from a given VRP encoding.")]32 [Item("AlbaStochasticIntraRouteInversionMultiMoveGenerator", "Generates multiple random intra route inversion moves from a given VRP encoding. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 33 33 [StorableClass] 34 public sealed class StochasticIntraRouteInversionMultiMoveGenerator :IntraRouteInversionMoveGenerator, IStochasticOperator, IMultiMoveGenerator, IAlbaIntraRouteInversionMoveOperator {34 public sealed class AlbaStochasticIntraRouteInversionMultiMoveGenerator : AlbaIntraRouteInversionMoveGenerator, IStochasticOperator, IMultiMoveGenerator, IAlbaIntraRouteInversionMoveOperator { 35 35 public ILookupParameter<IRandom> RandomParameter { 36 36 get { return (ILookupParameter<IRandom>)Parameters["Random"]; } … … 42 42 43 43 [StorableConstructor] 44 private StochasticIntraRouteInversionMultiMoveGenerator(bool deserializing) : base(deserializing) { }44 private AlbaStochasticIntraRouteInversionMultiMoveGenerator(bool deserializing) : base(deserializing) { } 45 45 46 public StochasticIntraRouteInversionMultiMoveGenerator()46 public AlbaStochasticIntraRouteInversionMultiMoveGenerator() 47 47 : base() { 48 48 Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator.")); … … 50 50 } 51 51 52 protected override IntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual) {52 protected override AlbaIntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual) { 53 53 int sampleSize = SampleSizeParameter.ActualValue.Value; 54 54 55 IntraRouteInversionMove[] moves = newIntraRouteInversionMove[sampleSize];55 AlbaIntraRouteInversionMove[] moves = new AlbaIntraRouteInversionMove[sampleSize]; 56 56 for (int i = 0; i < sampleSize; i++) { 57 moves[i] = StochasticIntraRouteInversionSingleMoveGenerator.Apply(57 moves[i] = AlbaStochasticIntraRouteInversionSingleMoveGenerator.Apply( 58 58 individual, Cities, RandomParameter.ActualValue); 59 59 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/AlbaStochasticIntraRouteInversionSingleMoveGenerator.cs
r4341 r4346 30 30 31 31 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 32 [Item(" StochasticIntraRouteInversionSingleMoveGenerator", "Generates one random intra route inversion move from a given VRP encoding.")]32 [Item("AlbaStochasticIntraRouteInversionSingleMoveGenerator", "Generates one random intra route inversion move from a given VRP encoding. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 33 33 [StorableClass] 34 public sealed class StochasticIntraRouteInversionSingleMoveGenerator :IntraRouteInversionMoveGenerator,34 public sealed class AlbaStochasticIntraRouteInversionSingleMoveGenerator : AlbaIntraRouteInversionMoveGenerator, 35 35 IStochasticOperator, ISingleMoveGenerator, IAlbaIntraRouteInversionMoveOperator, IMultiVRPMoveGenerator { 36 36 #region IMultiVRPMoveOperator Members 37 37 38 38 public ILookupParameter VRPMoveParameter { 39 get { return (ILookupParameter)Parameters[" IntraRouteInversionMove"]; }39 get { return (ILookupParameter)Parameters["AlbaIntraRouteInversionMove"]; } 40 40 } 41 41 … … 47 47 48 48 [StorableConstructor] 49 private StochasticIntraRouteInversionSingleMoveGenerator(bool deserializing) : base(deserializing) { }49 private AlbaStochasticIntraRouteInversionSingleMoveGenerator(bool deserializing) : base(deserializing) { } 50 50 51 public StochasticIntraRouteInversionSingleMoveGenerator()51 public AlbaStochasticIntraRouteInversionSingleMoveGenerator() 52 52 : base() { 53 53 Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator.")); 54 54 } 55 55 56 public static IntraRouteInversionMove Apply(AlbaEncoding individual, int cities, IRandom rand) {56 public static AlbaIntraRouteInversionMove Apply(AlbaEncoding individual, int cities, IRandom rand) { 57 57 int index1 = -1; 58 58 int index2 = -1; … … 86 86 } 87 87 88 return new IntraRouteInversionMove(index1, index2, individual);88 return new AlbaIntraRouteInversionMove(index1, index2, individual); 89 89 } 90 90 91 protected override IntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual) {92 List< IntraRouteInversionMove> moves = new List<IntraRouteInversionMove>();91 protected override AlbaIntraRouteInversionMove[] GenerateMoves(AlbaEncoding individual) { 92 List<AlbaIntraRouteInversionMove> moves = new List<AlbaIntraRouteInversionMove>(); 93 93 94 IntraRouteInversionMove move = Apply(individual, Cities, RandomParameter.ActualValue);94 AlbaIntraRouteInversionMove move = Apply(individual, Cities, RandomParameter.ActualValue); 95 95 if(move != null) 96 96 moves.Add(move); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/AlbaExhaustiveLambdaInterchangeMoveGenerator.cs
r4341 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item(" ExhaustiveLambdaInterchangeMoveGenerator", "Generates all possible lambda interchange moves from a given VRP encoding.")]31 [Item("AlbaExhaustiveLambdaInterchangeMoveGenerator", "Generates all possible lambda interchange moves from a given VRP encoding. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 32 32 [StorableClass] 33 public sealed class ExhaustiveLambdaInterchangeMoveGenerator :LambdaInterchangeMoveGenerator, IExhaustiveMoveGenerator, IAlbaLambdaInterchangeMoveOperator {33 public sealed class AlbaExhaustiveLambdaInterchangeMoveGenerator : AlbaLambdaInterchangeMoveGenerator, IExhaustiveMoveGenerator, IAlbaLambdaInterchangeMoveOperator { 34 34 [StorableConstructor] 35 private ExhaustiveLambdaInterchangeMoveGenerator(bool deserializing) : base(deserializing) { }35 private AlbaExhaustiveLambdaInterchangeMoveGenerator(bool deserializing) : base(deserializing) { } 36 36 37 public ExhaustiveLambdaInterchangeMoveGenerator()37 public AlbaExhaustiveLambdaInterchangeMoveGenerator() 38 38 : base() { 39 39 } 40 40 41 protected override LambdaInterchangeMove[] GenerateMoves(AlbaEncoding individual, int lambda) {42 List< LambdaInterchangeMove> moves = new List<LambdaInterchangeMove>();41 protected override AlbaLambdaInterchangeMove[] GenerateMoves(AlbaEncoding individual, int lambda) { 42 List<AlbaLambdaInterchangeMove> moves = new List<AlbaLambdaInterchangeMove>(); 43 43 44 44 List<Tour> tours = individual.GetTours(); … … 54 54 for(int index1 = 0; index1 < tour1.Cities.Count - length1 + 1; index1++) { 55 55 for(int index2 = 0; index2 < tour2.Cities.Count - length2 + 1; index2++) { 56 moves.Add(new LambdaInterchangeMove(tour1Index, index1, length1,56 moves.Add(new AlbaLambdaInterchangeMove(tour1Index, index1, length1, 57 57 tour2Index, index2, length2, individual)); 58 58 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/AlbaLambdaInterchangeMove.cs
r4341 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item("InversionMove", "Item that describes a lambda move on a VRP representation. ")]31 [Item("InversionMove", "Item that describes a lambda move on a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 32 32 [StorableClass] 33 public class LambdaInterchangeMove: Item, IVRPMove {33 public class AlbaLambdaInterchangeMove: Item, IVRPMove { 34 34 [Storable] 35 35 public IVRPEncoding Individual { get; protected set; } … … 53 53 public int Length2 { get; protected set; } 54 54 55 public LambdaInterchangeMove(): base() {55 public AlbaLambdaInterchangeMove(): base() { 56 56 Tour1 = -1; 57 57 Position1 = -1; … … 65 65 } 66 66 67 public LambdaInterchangeMove(int tour1, int position1, int length1,67 public AlbaLambdaInterchangeMove(int tour1, int position1, int length1, 68 68 int tour2, int position2, int length2, AlbaEncoding permutation) { 69 69 Tour1 = tour1; … … 79 79 80 80 public override IDeepCloneable Clone(HeuristicLab.Common.Cloner cloner) { 81 LambdaInterchangeMove clone = newLambdaInterchangeMove();81 AlbaLambdaInterchangeMove clone = new AlbaLambdaInterchangeMove(); 82 82 83 83 clone.Tour1 = Tour1; … … 105 105 DoubleValue overloadPenalty, DoubleValue tardinessPenalty, 106 106 ILookupParameter<DoubleMatrix> distanceMatrix, Data.BoolValue useDistanceMatrix) { 107 return LambdaInterchangeMoveEvaluator.GetMoveQuality(Individual as AlbaEncoding, this, vehicles,107 return AlbaLambdaInterchangeMoveEvaluator.GetMoveQuality(Individual as AlbaEncoding, this, vehicles, 108 108 dueTimeArray, serviceTimeArray, readyTimeArray, demandArray, capacity, 109 109 coordinates, fleetUsageFactor, timeFactor, distanceFactor, … … 112 112 113 113 public IVRPEncoding MakeMove() { 114 LambdaInterchangeMoveMaker.Apply(Individual as AlbaEncoding, this);114 AlbaLambdaInterchangeMoveMaker.Apply(Individual as AlbaEncoding, this); 115 115 116 116 return Individual; -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/AlbaLambdaInterchangeMoveEvaluator.cs
r4341 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting { 30 [Item(" LambdaInterchangeMoveEvaluator", "Evaluates a lamnbda interchange move for a VRP representation.")]30 [Item("AlbaLambdaInterchangeMoveEvaluator", "Evaluates a lamnbda interchange move for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 31 31 [StorableClass] 32 public sealed class LambdaInterchangeMoveEvaluator : VRPMoveEvaluator, IAlbaLambdaInterchangeMoveOperator {33 public ILookupParameter< LambdaInterchangeMove> LambdaInterchangeMoveParameter {34 get { return (ILookupParameter< LambdaInterchangeMove>)Parameters["LambdaInterchangeMove"]; }32 public sealed class AlbaLambdaInterchangeMoveEvaluator : VRPMoveEvaluator, IAlbaLambdaInterchangeMoveOperator { 33 public ILookupParameter<AlbaLambdaInterchangeMove> LambdaInterchangeMoveParameter { 34 get { return (ILookupParameter<AlbaLambdaInterchangeMove>)Parameters["AlbaLambdaInterchangeMove"]; } 35 35 } 36 36 37 37 [StorableConstructor] 38 private LambdaInterchangeMoveEvaluator(bool deserializing) : base(deserializing) { }38 private AlbaLambdaInterchangeMoveEvaluator(bool deserializing) : base(deserializing) { } 39 39 40 public LambdaInterchangeMoveEvaluator()40 public AlbaLambdaInterchangeMoveEvaluator() 41 41 : base() { 42 Parameters.Add(new LookupParameter< LambdaInterchangeMove>("LambdaInterchangeMove", "The move to evaluate."));42 Parameters.Add(new LookupParameter<AlbaLambdaInterchangeMove>("AlbaLambdaInterchangeMove", "The move to evaluate.")); 43 43 } 44 44 45 public static TourEvaluation GetMoveQuality(AlbaEncoding individual, LambdaInterchangeMove move,45 public static TourEvaluation GetMoveQuality(AlbaEncoding individual, AlbaLambdaInterchangeMove move, 46 46 IntValue vehicles, 47 47 DoubleArray dueTimeArray, DoubleArray serviceTimeArray, DoubleArray readyTimeArray, … … 51 51 ILookupParameter<DoubleMatrix> distanceMatrix, Data.BoolValue useDistanceMatrix) { 52 52 AlbaEncoding newSolution = individual.Clone() as AlbaEncoding; 53 LambdaInterchangeMoveMaker.Apply(newSolution, move);53 AlbaLambdaInterchangeMoveMaker.Apply(newSolution, move); 54 54 55 55 return VRPEvaluator.Evaluate( -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/AlbaLambdaInterchangeMoveGenerator.cs
r4341 r4346 30 30 31 31 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 32 [Item(" LambdaInterchangeMoveGenerator", "Generates lambda interchange moves from a given VRP encoding.")]32 [Item("AlbaLambdaInterchangeMoveGenerator", "Generates lambda interchange moves from a given VRP encoding. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 33 33 [StorableClass] 34 public abstract class LambdaInterchangeMoveGenerator : AlbaMoveOperator, IExhaustiveMoveGenerator, IAlbaLambdaInterchangeMoveOperator {34 public abstract class AlbaLambdaInterchangeMoveGenerator : AlbaMoveOperator, IExhaustiveMoveGenerator, IAlbaLambdaInterchangeMoveOperator { 35 35 #region IAlbaLambdaInterchangeMoveOperator Members 36 36 37 public ILookupParameter< LambdaInterchangeMove> LambdaInterchangeMoveParameter {38 get { return (ILookupParameter< LambdaInterchangeMove>)Parameters["LambdaInterchangeMove"]; }37 public ILookupParameter<AlbaLambdaInterchangeMove> LambdaInterchangeMoveParameter { 38 get { return (ILookupParameter<AlbaLambdaInterchangeMove>)Parameters["AlbaLambdaInterchangeMove"]; } 39 39 } 40 40 … … 50 50 51 51 [StorableConstructor] 52 protected LambdaInterchangeMoveGenerator(bool deserializing) : base(deserializing) { }52 protected AlbaLambdaInterchangeMoveGenerator(bool deserializing) : base(deserializing) { } 53 53 54 public LambdaInterchangeMoveGenerator()54 public AlbaLambdaInterchangeMoveGenerator() 55 55 : base() { 56 Parameters.Add(new LookupParameter< LambdaInterchangeMove>("LambdaInterchangeMove", "The moves that should be generated in subscopes."));56 Parameters.Add(new LookupParameter<AlbaLambdaInterchangeMove>("AlbaLambdaInterchangeMove", "The moves that should be generated in subscopes.")); 57 57 Parameters.Add(new ScopeParameter("CurrentScope", "The current scope where the moves should be added as subscopes.")); 58 58 Parameters.Add(new ValueParameter<IntValue>("Lambda", "The lambda value.", new IntValue(1))); 59 59 } 60 60 61 protected abstract LambdaInterchangeMove[] GenerateMoves(AlbaEncoding individual, int lambda);61 protected abstract AlbaLambdaInterchangeMove[] GenerateMoves(AlbaEncoding individual, int lambda); 62 62 63 63 public override IOperation Apply() { … … 65 65 66 66 AlbaEncoding individual = VRPToursParameter.ActualValue as AlbaEncoding; 67 LambdaInterchangeMove[] moves = GenerateMoves(individual, LambdaParameter.Value.Value);67 AlbaLambdaInterchangeMove[] moves = GenerateMoves(individual, LambdaParameter.Value.Value); 68 68 Scope[] moveScopes = new Scope[moves.Length]; 69 69 for (int i = 0; i < moveScopes.Length; i++) { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/AlbaLambdaInterchangeMoveMaker.cs
r4341 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item(" LambdaInterchangeMoveMaker", "Peforms a lambda interchange moves on a given VRP encoding and updates the quality. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]31 [Item("AlbaLambdaInterchangeMoveMaker", "Peforms a lambda interchange moves on a given VRP encoding and updates the quality. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 32 32 [StorableClass] 33 public class LambdaInterchangeMoveMaker : AlbaMoveMaker, IAlbaLambdaInterchangeMoveOperator, IMoveMaker {33 public class AlbaLambdaInterchangeMoveMaker : AlbaMoveMaker, IAlbaLambdaInterchangeMoveOperator, IMoveMaker { 34 34 public override bool CanChangeName { 35 35 get { return false; } … … 41 41 get { return (ILookupParameter<DoubleValue>)Parameters["MoveQuality"]; } 42 42 } 43 public ILookupParameter< LambdaInterchangeMove> LambdaInterchangeMoveParameter {44 get { return (ILookupParameter< LambdaInterchangeMove>)Parameters["LambdaInterchangeMove"]; }43 public ILookupParameter<AlbaLambdaInterchangeMove> LambdaInterchangeMoveParameter { 44 get { return (ILookupParameter<AlbaLambdaInterchangeMove>)Parameters["AlbaLambdaInterchangeMove"]; } 45 45 } 46 46 47 47 [StorableConstructor] 48 private LambdaInterchangeMoveMaker(bool deserializing) : base(deserializing) { }48 private AlbaLambdaInterchangeMoveMaker(bool deserializing) : base(deserializing) { } 49 49 50 public LambdaInterchangeMoveMaker()50 public AlbaLambdaInterchangeMoveMaker() 51 51 : base() { 52 52 Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality of the solution.")); 53 Parameters.Add(new LookupParameter< LambdaInterchangeMove>("LambdaInterchangeMove", "The move to make."));53 Parameters.Add(new LookupParameter<AlbaLambdaInterchangeMove>("AlbaLambdaInterchangeMove", "The move to make.")); 54 54 Parameters.Add(new LookupParameter<DoubleValue>("MoveQuality", "The relative quality of the move.")); 55 55 } 56 56 57 public static void Apply(AlbaEncoding solution, LambdaInterchangeMove move) {58 LambdaInterchangeManipulator.Apply(57 public static void Apply(AlbaEncoding solution, AlbaLambdaInterchangeMove move) { 58 AlbaLambdaInterchangeManipulator.Apply( 59 59 solution, 60 60 move.Tour1, move.Position1, move.Length1, … … 65 65 IOperation next = base.Apply(); 66 66 67 LambdaInterchangeMove move = LambdaInterchangeMoveParameter.ActualValue;67 AlbaLambdaInterchangeMove move = LambdaInterchangeMoveParameter.ActualValue; 68 68 DoubleValue moveQuality = MoveQualityParameter.ActualValue; 69 69 DoubleValue quality = QualityParameter.ActualValue; -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/AlbaStochasticLambdaInterchangeMutliMoveGenerator.cs
r4341 r4346 30 30 31 31 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 32 [Item(" StochasticLambdaInterchangeMultiMoveGenerator", "Generates multiple random lambda interchange moves from a given VRP encoding.")]32 [Item("AlbaStochasticLambdaInterchangeMultiMoveGenerator", "Generates multiple random lambda interchange moves from a given VRP encoding. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 33 33 [StorableClass] 34 public sealed class StochasticLambdaInterchangeMultiMoveGenerator :LambdaInterchangeMoveGenerator, IStochasticOperator, IMultiMoveGenerator, IAlbaLambdaInterchangeMoveOperator {34 public sealed class AlbaStochasticLambdaInterchangeMultiMoveGenerator : AlbaLambdaInterchangeMoveGenerator, IStochasticOperator, IMultiMoveGenerator, IAlbaLambdaInterchangeMoveOperator { 35 35 public ILookupParameter<IRandom> RandomParameter { 36 36 get { return (ILookupParameter<IRandom>)Parameters["Random"]; } … … 42 42 43 43 [StorableConstructor] 44 private StochasticLambdaInterchangeMultiMoveGenerator(bool deserializing) : base(deserializing) { }44 private AlbaStochasticLambdaInterchangeMultiMoveGenerator(bool deserializing) : base(deserializing) { } 45 45 46 public StochasticLambdaInterchangeMultiMoveGenerator()46 public AlbaStochasticLambdaInterchangeMultiMoveGenerator() 47 47 : base() { 48 48 Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator.")); … … 50 50 } 51 51 52 protected override LambdaInterchangeMove[] GenerateMoves(AlbaEncoding individual, int lambda) {52 protected override AlbaLambdaInterchangeMove[] GenerateMoves(AlbaEncoding individual, int lambda) { 53 53 int sampleSize = SampleSizeParameter.ActualValue.Value; 54 54 55 LambdaInterchangeMove[] moves = newLambdaInterchangeMove[sampleSize];55 AlbaLambdaInterchangeMove[] moves = new AlbaLambdaInterchangeMove[sampleSize]; 56 56 for (int i = 0; i < sampleSize; i++) { 57 moves[i] = StochasticLambdaInterchangeSingleMoveGenerator.Apply(57 moves[i] = AlbaStochasticLambdaInterchangeSingleMoveGenerator.Apply( 58 58 individual, Cities, lambda, RandomParameter.ActualValue); 59 59 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/AlbaStochasticLambdaInterchangeSingleMoveGenerator.cs
r4341 r4346 30 30 31 31 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 32 [Item(" StochasticLambdaInterchangeSingleMoveGenerator", "Generates one random lambda interchange move from a given VRP encoding.")]32 [Item("AlbaStochasticLambdaInterchangeSingleMoveGenerator", "Generates one random lambda interchange move from a given VRP encoding. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 33 33 [StorableClass] 34 public sealed class StochasticLambdaInterchangeSingleMoveGenerator :LambdaInterchangeMoveGenerator,34 public sealed class AlbaStochasticLambdaInterchangeSingleMoveGenerator : AlbaLambdaInterchangeMoveGenerator, 35 35 IStochasticOperator, ISingleMoveGenerator, IAlbaLambdaInterchangeMoveOperator, IMultiVRPMoveGenerator { 36 36 #region IMultiVRPMoveOperator Members 37 37 38 38 public ILookupParameter VRPMoveParameter { 39 get { return (ILookupParameter)Parameters[" LambdaInterchangeMove"]; }39 get { return (ILookupParameter)Parameters["AlbaLambdaInterchangeMove"]; } 40 40 } 41 41 … … 47 47 48 48 [StorableConstructor] 49 private StochasticLambdaInterchangeSingleMoveGenerator(bool deserializing) : base(deserializing) { }49 private AlbaStochasticLambdaInterchangeSingleMoveGenerator(bool deserializing) : base(deserializing) { } 50 50 51 public StochasticLambdaInterchangeSingleMoveGenerator()51 public AlbaStochasticLambdaInterchangeSingleMoveGenerator() 52 52 : base() { 53 53 Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator.")); 54 54 } 55 55 56 public static LambdaInterchangeMove Apply(AlbaEncoding individual, int cities, int lambda, IRandom rand) {56 public static AlbaLambdaInterchangeMove Apply(AlbaEncoding individual, int cities, int lambda, IRandom rand) { 57 57 List<Tour> tours = individual.GetTours(); 58 58 … … 74 74 int index2 = rand.Next(route2.Cities.Count - length2 + 1); 75 75 76 return new LambdaInterchangeMove(route1Index, index1, length1, route2Index, index2, length2, individual);76 return new AlbaLambdaInterchangeMove(route1Index, index1, length1, route2Index, index2, length2, individual); 77 77 } 78 78 79 protected override LambdaInterchangeMove[] GenerateMoves(AlbaEncoding individual, int lambda) {80 List< LambdaInterchangeMove> moves = new List<LambdaInterchangeMove>();79 protected override AlbaLambdaInterchangeMove[] GenerateMoves(AlbaEncoding individual, int lambda) { 80 List<AlbaLambdaInterchangeMove> moves = new List<AlbaLambdaInterchangeMove>(); 81 81 82 LambdaInterchangeMove move = Apply(individual, Cities, lambda, RandomParameter.ActualValue);82 AlbaLambdaInterchangeMove move = Apply(individual, Cities, lambda, RandomParameter.ActualValue); 83 83 if(move != null) 84 84 moves.Add(move); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveEvaluator.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting { 29 [Item(" PermutationTranslocationMoveEvaluator", "Evaluates a translocation or insertion move (3-opt) for a VRP representation.")]29 [Item("AlbaTranslocationMoveEvaluator", "Evaluates a translocation or insertion move (3-opt) for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class PermutationTranslocationMoveEvaluator : VRPMoveEvaluator, IAlbaTranslocationMoveOperator {31 public sealed class AlbaTranslocationMoveEvaluator : VRPMoveEvaluator, IAlbaTranslocationMoveOperator { 32 32 public ILookupParameter<TranslocationMove> TranslocationMoveParameter { 33 33 get { return (ILookupParameter<TranslocationMove>)Parameters["TranslocationMove"]; } … … 36 36 37 37 [StorableConstructor] 38 private PermutationTranslocationMoveEvaluator(bool deserializing) : base(deserializing) { }38 private AlbaTranslocationMoveEvaluator(bool deserializing) : base(deserializing) { } 39 39 40 public PermutationTranslocationMoveEvaluator()40 public AlbaTranslocationMoveEvaluator() 41 41 : base() { 42 42 Parameters.Add(new LookupParameter<TranslocationMove>("TranslocationMove", "The move to evaluate.")); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs
r4341 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 31 [Item(" PermutationTranslocationMoveGenerator", "An operator which generates translocation moves for a VRP representation.")]31 [Item("AlbaTranslocationMoveGenerator", "An operator which generates translocation moves for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 32 32 [StorableClass] 33 public sealed class PermutationTranslocationMoveGenerator :PermutationMoveOperator, IAlbaTranslocationMoveOperator, IMultiMoveGenerator {33 public sealed class AlbaTranslocationMoveGenerator : AlbaPermutationMoveOperator, IAlbaTranslocationMoveOperator, IMultiMoveGenerator { 34 34 public IValueLookupParameter<TranslocationMoveGenerator> TranslocationMoveGeneratorParameter { 35 35 get { return (IValueLookupParameter<TranslocationMoveGenerator>)Parameters["TranslocationMoveGenerator"]; } … … 69 69 70 70 [StorableConstructor] 71 private PermutationTranslocationMoveGenerator(bool deserializing) : base(deserializing) { }71 private AlbaTranslocationMoveGenerator(bool deserializing) : base(deserializing) { } 72 72 73 public PermutationTranslocationMoveGenerator()73 public AlbaTranslocationMoveGenerator() 74 74 : base() { 75 75 Parameters.Add(new ValueLookupParameter<TranslocationMoveGenerator>("TranslocationMoveGenerator", "The move generator.", -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveHardTabuCriterion.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item(" PermutationTranslocationMoveHardTabuCriterion", "An operator which checks if translocation moves are tabu using a hard criterion for a VRP representation.")]29 [Item("AlbaTranslocationMoveHardTabuCriterion", "An operator which checks if translocation moves are tabu using a hard criterion for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class PermutationTranslocationMoveHardTabuCriterion :PermutationMoveOperator, IAlbaTranslocationMoveOperator, ITabuChecker {31 public sealed class AlbaTranslocationMoveHardTabuCriterion : AlbaPermutationMoveOperator, IAlbaTranslocationMoveOperator, ITabuChecker { 32 32 private TranslocationMoveHardTabuCriterion tabuChecker; 33 33 protected override IPermutationMoveOperator PermutationMoveOperatorParameter { … … 57 57 58 58 [StorableConstructor] 59 private PermutationTranslocationMoveHardTabuCriterion(bool deserializing) : base(deserializing) { }59 private AlbaTranslocationMoveHardTabuCriterion(bool deserializing) : base(deserializing) { } 60 60 61 public PermutationTranslocationMoveHardTabuCriterion()61 public AlbaTranslocationMoveHardTabuCriterion() 62 62 : base() { 63 63 tabuChecker = new TranslocationMoveHardTabuCriterion(); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveMaker.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item(" PermutationTranslocationMoveMaker", "An operator which makes translocation moves for a VRP representation.")]29 [Item("AlbaTranslocationMoveMaker", "An operator which makes translocation moves for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class PermutationTranslocationMoveMaker : AlbaMoveMaker, IAlbaTranslocationMoveOperator, IVRPMoveMaker {31 public sealed class AlbaTranslocationMoveMaker : AlbaMoveMaker, IAlbaTranslocationMoveOperator, IVRPMoveMaker { 32 32 private TranslocationMoveMaker moveMaker; 33 33 … … 49 49 50 50 [StorableConstructor] 51 private PermutationTranslocationMoveMaker(bool deserializing) : base(deserializing) { }51 private AlbaTranslocationMoveMaker(bool deserializing) : base(deserializing) { } 52 52 53 public PermutationTranslocationMoveMaker()53 public AlbaTranslocationMoveMaker() 54 54 : base() { 55 55 moveMaker = new TranslocationMoveMaker(); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveSoftTabuCriterion.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item(" PermutationTranslocationMoveSoftTabuCriterion", "An operator which checks if translocation moves are tabu using a soft criterion for a VRP representation.")]29 [Item("AlbaTranslocationMoveSoftTabuCriterion", "An operator which checks if translocation moves are tabu using a soft criterion for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class PermutationTranslocationMoveSoftTabuCriterion :PermutationMoveOperator, IAlbaTranslocationMoveOperator, ITabuChecker {31 public sealed class AlbaTranslocationMoveSoftTabuCriterion : AlbaPermutationMoveOperator, IAlbaTranslocationMoveOperator, ITabuChecker { 32 32 private TranslocationMoveSoftTabuCriterion tabuChecker; 33 33 protected override IPermutationMoveOperator PermutationMoveOperatorParameter { … … 57 57 58 58 [StorableConstructor] 59 private PermutationTranslocationMoveSoftTabuCriterion(bool deserializing) : base(deserializing) { }59 private AlbaTranslocationMoveSoftTabuCriterion(bool deserializing) : base(deserializing) { } 60 60 61 public PermutationTranslocationMoveSoftTabuCriterion()61 public AlbaTranslocationMoveSoftTabuCriterion() 62 62 : base() { 63 63 tabuChecker = new TranslocationMoveSoftTabuCriterion(); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveTabuMaker.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item(" PermutationTranslocationMoveTabuMaker", "An operator which makes translocation moves tabu for a VRP representation.")]29 [Item("AlbaTranslocationMoveTabuMaker", "An operator which makes translocation moves tabu for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")] 30 30 [StorableClass] 31 public sealed class PermutationTranslocationMoveTabuMaker :PermutationMoveOperator, IAlbaTranslocationMoveOperator, ITabuMaker {31 public sealed class AlbaTranslocationMoveTabuMaker : AlbaPermutationMoveOperator, IAlbaTranslocationMoveOperator, ITabuMaker { 32 32 private TranslocationMoveTabuMaker moveTabuMaker; 33 33 protected override IPermutationMoveOperator PermutationMoveOperatorParameter { … … 57 57 58 58 [StorableConstructor] 59 private PermutationTranslocationMoveTabuMaker(bool deserializing) : base(deserializing) { }59 private AlbaTranslocationMoveTabuMaker(bool deserializing) : base(deserializing) { } 60 60 61 public PermutationTranslocationMoveTabuMaker()61 public AlbaTranslocationMoveTabuMaker() 62 62 : base() { 63 63 moveTabuMaker = new TranslocationMoveTabuMaker(); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/GVR/Crossovers/GVRCrossover.cs
r4268 r4346 29 29 30 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.GVR { 31 [Item("GVRCrossover", "The GVR crossover operation. ")]31 [Item("GVRCrossover", "The GVR crossover operation. It is implemented as described in Pereira, F.B. et al (2002). GVR: a New Genetic Representation for the Vehicle Routing Problem. AICS 2002, LNAI 2464, pp. 95-102.")] 32 32 [StorableClass] 33 33 public sealed class GVRCrossover : VRPCrossover, IStochasticOperator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/GVR/Manipulators/GVRDisplacementManipulator.cs
r4231 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting.Encodings.GVR { 30 [Item("GVRDisplacementManipulator", "An operator which manipulates a GVR representation by applying a displacement operation. ")]30 [Item("GVRDisplacementManipulator", "An operator which manipulates a GVR representation by applying a displacement operation. It is implemented as described in Pereira, F.B. et al (2002). GVR: a New Genetic Representation for the Vehicle Routing Problem. AICS 2002, LNAI 2464, pp. 95-102.")] 31 31 [StorableClass] 32 32 public sealed class GVRDisplacementManipulator : GVRManipulator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/GVR/Manipulators/GVRInsertionManipulator.cs
r4270 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.GVR { 29 [Item("GVRInsertionManipulator", "An operator which manipulates a GVR representation by inserting a customer at another location. ")]29 [Item("GVRInsertionManipulator", "An operator which manipulates a GVR representation by inserting a customer at another location. It is implemented as described in Pereira, F.B. et al (2002). GVR: a New Genetic Representation for the Vehicle Routing Problem. AICS 2002, LNAI 2464, pp. 95-102.")] 30 30 [StorableClass] 31 31 public sealed class GVRInsertionManipulator : GVRManipulator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/GVR/Manipulators/GVRInversionManipulator.cs
r4230 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.GVR { 29 [Item("GVRInversionManipulator", "An operator which manipulates a GVR representation by inverting a subroute. ")]29 [Item("GVRInversionManipulator", "An operator which manipulates a GVR representation by inverting a subroute. It is implemented as described in Pereira, F.B. et al (2002). GVR: a New Genetic Representation for the Vehicle Routing Problem. AICS 2002, LNAI 2464, pp. 95-102.")] 30 30 [StorableClass] 31 31 public sealed class GVRInversionManipulator : GVRManipulator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/GVR/Manipulators/GVRSwapManipulator.cs
r4230 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.GVR { 29 [Item("GVRSwapManipulator", "An operator which manipulates a GVR representation by swapping two customers. ")]29 [Item("GVRSwapManipulator", "An operator which manipulates a GVR representation by swapping two customers. It is implemented as described in Pereira, F.B. et al (2002). GVR: a New Genetic Representation for the Vehicle Routing Problem. AICS 2002, LNAI 2464, pp. 95-102.")] 30 30 [StorableClass] 31 31 public sealed class GVRSwapManipulator : GVRManipulator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/MultiVRPSolutionCreator.cs
r4341 r4346 32 32 33 33 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General { 34 [Item("MultiVRP Creator", "Randomly selects and applies one of its creator every time it is called.")]34 [Item("MultiVRPSolutionCreator", "Randomly selects and applies one of its creator every time it is called.")] 35 35 [StorableClass] 36 public class MultiVRP Creator : StochasticMultiBranch<IVRPCreator>, IVRPCreator, IStochasticOperator {36 public class MultiVRPSolutionCreator : StochasticMultiBranch<IVRPCreator>, IVRPCreator, IStochasticOperator { 37 37 public override bool CanChangeName { 38 38 get { return false; } … … 78 78 79 79 [StorableConstructor] 80 private MultiVRP Creator(bool deserializing) : base(deserializing) { }81 public MultiVRP Creator()80 private MultiVRPSolutionCreator(bool deserializing) : base(deserializing) { } 81 public MultiVRPSolutionCreator() 82 82 : base() { 83 83 Parameters.Add(new LookupParameter<IVRPEncoding>("VRPTours", "The new VRP tours.")); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/MultiVRPSolutionCrossover.cs
r4341 r4346 32 32 33 33 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General { 34 [Item("MultiVRP Crossover", "Randomly selects and applies one of its crossovers every time it is called.")]34 [Item("MultiVRPSolutionCrossover", "Randomly selects and applies one of its crossovers every time it is called.")] 35 35 [StorableClass] 36 public class MultiVRP Crossover : StochasticMultiBranch<IVRPCrossover>, IVRPCrossover, IStochasticOperator {36 public class MultiVRPSolutionCrossover : StochasticMultiBranch<IVRPCrossover>, IVRPCrossover, IStochasticOperator { 37 37 public override bool CanChangeName { 38 38 get { return false; } … … 82 82 83 83 [StorableConstructor] 84 private MultiVRP Crossover(bool deserializing) : base(deserializing) { }85 public MultiVRP Crossover()84 private MultiVRPSolutionCrossover(bool deserializing) : base(deserializing) { } 85 public MultiVRPSolutionCrossover() 86 86 : base() { 87 87 Parameters.Add(new ScopeTreeLookupParameter<IVRPEncoding>("Parents", "The parent permutations which should be crossed.")); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/RandomParentCloneCrossover.cs
r4341 r4346 30 30 31 31 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General.Crossovers { 32 [Item(" EmptyVRPCrossover", "An operator which randomly chooses one parent and returns a clone.")]32 [Item("RandomParentCloneCrossover", "An operator which randomly chooses one parent and returns a clone.")] 33 33 [StorableClass] 34 public sealed class EmptyVRPCrossover : VRPCrossover, IStochasticOperator {34 public sealed class RandomParentCloneCrossover : VRPCrossover, IStochasticOperator { 35 35 public ILookupParameter<IRandom> RandomParameter { 36 36 get { return (LookupParameter<IRandom>)Parameters["Random"]; } … … 38 38 39 39 [StorableConstructor] 40 private EmptyVRPCrossover(bool deserializing) : base(deserializing) { }40 private RandomParentCloneCrossover(bool deserializing) : base(deserializing) { } 41 41 42 public EmptyVRPCrossover()42 public RandomParentCloneCrossover() 43 43 : base() { 44 44 Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic manipulation operators.")); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Manipulators/MultiVRPSolutionManipulator.cs
r4341 r4346 32 32 33 33 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General { 34 [Item("MultiVRP Manipulator", "Randomly selects and applies one of its manipulators every time it is called.")]34 [Item("MultiVRPSolutionManipulator", "Randomly selects and applies one of its manipulators every time it is called.")] 35 35 [StorableClass] 36 public class MultiVRP Manipulator : StochasticMultiBranch<IVRPManipulator>, IVRPManipulator, IStochasticOperator {36 public class MultiVRPSolutionManipulator : StochasticMultiBranch<IVRPManipulator>, IVRPManipulator, IStochasticOperator { 37 37 public override bool CanChangeName { 38 38 get { return false; } … … 78 78 79 79 [StorableConstructor] 80 private MultiVRP Manipulator(bool deserializing) : base(deserializing) { }81 public MultiVRP Manipulator()80 private MultiVRPSolutionManipulator(bool deserializing) : base(deserializing) { } 81 public MultiVRPSolutionManipulator() 82 82 : base() { 83 83 Parameters.Add(new LookupParameter<IVRPEncoding>("VRPTours", "The VRP tours to be manipulated.")); -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Crossovers/PotvinRouteBasedCrossover.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin { 29 [Item(" RouteBasedCrossover", "The RBX crossover for a VRP representations. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")]29 [Item("PotvinRouteBasedCrossover", "The RBX crossover for a VRP representations. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")] 30 30 [StorableClass] 31 public sealed class RouteBasedCrossover : PotvinCrossover {31 public sealed class PotvinRouteBasedCrossover : PotvinCrossover { 32 32 [StorableConstructor] 33 private RouteBasedCrossover(bool deserializing) : base(deserializing) { }33 private PotvinRouteBasedCrossover(bool deserializing) : base(deserializing) { } 34 34 35 public RouteBasedCrossover()35 public PotvinRouteBasedCrossover() 36 36 : base() { } 37 37 -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Crossovers/PotvinSequenceBasedCrossover.cs
r4341 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin { 29 [Item(" SequenceBasedCrossover", "The SBX crossover for a VRP representations. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")]29 [Item("PotvinSequenceBasedCrossover", "The SBX crossover for a VRP representations. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")] 30 30 [StorableClass] 31 public sealed class SequenceBasedCrossover : PotvinCrossover {31 public sealed class PotvinSequenceBasedCrossover : PotvinCrossover { 32 32 [StorableConstructor] 33 private SequenceBasedCrossover(bool deserializing) : base(deserializing) { }33 private PotvinSequenceBasedCrossover(bool deserializing) : base(deserializing) { } 34 34 35 public SequenceBasedCrossover()35 public PotvinSequenceBasedCrossover() 36 36 : base() { } 37 37 -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Manipulators/PotvinLocalSearchManipulator.cs
r4341 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin { 30 [Item(" LocalSearchManipulator", "The LSM operator which manipulates a VRP representation. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")]30 [Item("PotvinLocalSearchManipulator", "The LSM operator which manipulates a VRP representation. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")] 31 31 [StorableClass] 32 public sealed class LocalSearchManipulator : PotvinManipulator {32 public sealed class PotvinLocalSearchManipulator : PotvinManipulator { 33 33 public IValueParameter<IntValue> Iterations { 34 34 get { return (IValueParameter<IntValue>)Parameters["Iterations"]; } … … 36 36 37 37 [StorableConstructor] 38 private LocalSearchManipulator(bool deserializing) : base(deserializing) { }38 private PotvinLocalSearchManipulator(bool deserializing) : base(deserializing) { } 39 39 40 public LocalSearchManipulator() : base() {40 public PotvinLocalSearchManipulator() : base() { 41 41 Parameters.Add(new ValueParameter<IntValue>("Iterations", "The number of max iterations.", new IntValue(100))); 42 42 } -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Manipulators/PotvinOneLevelExchangeManipulator.cs
r4341 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin { 30 [Item(" OneLevelExchangeMainpulator", "The 1M operator which manipulates a VRP representation. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")]30 [Item("PotvinOneLevelExchangeMainpulator", "The 1M operator which manipulates a VRP representation. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")] 31 31 [StorableClass] 32 public sealed class OneLevelExchangeMainpulator : PotvinManipulator {32 public sealed class PotvinOneLevelExchangeMainpulator : PotvinManipulator { 33 33 [StorableConstructor] 34 private OneLevelExchangeMainpulator(bool deserializing) : base(deserializing) { }34 private PotvinOneLevelExchangeMainpulator(bool deserializing) : base(deserializing) { } 35 35 36 public OneLevelExchangeMainpulator() : base() { }36 public PotvinOneLevelExchangeMainpulator() : base() { } 37 37 38 38 protected override void Manipulate(IRandom random, PotvinEncoding individual) { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Manipulators/PotvinTwoLevelExchangeManipulator.cs
r4341 r4346 28 28 29 29 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin { 30 [Item(" TwoLevelExchangeManipulator", "The 2M operator which manipulates a VRP representation. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")]30 [Item("PotvinTwoLevelExchangeManipulator", "The 2M operator which manipulates a VRP representation. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")] 31 31 [StorableClass] 32 public sealed class TwoLevelExchangeManipulator : PotvinManipulator {32 public sealed class PotvinTwoLevelExchangeManipulator : PotvinManipulator { 33 33 [StorableConstructor] 34 private TwoLevelExchangeManipulator(bool deserializing) : base(deserializing) { }34 private PotvinTwoLevelExchangeManipulator(bool deserializing) : base(deserializing) { } 35 35 36 public TwoLevelExchangeManipulator() : base() { }36 public PotvinTwoLevelExchangeManipulator() : base() { } 37 37 38 38 protected override void Manipulate(IRandom random, PotvinEncoding individual) { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Prins/Crossovers/PrinsPermutationCrossover.cs
r4268 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Prins { 29 [Item("PrinsPermutationCrossover", "An operator which crosses two VRP representations using a standard permutation operator. ")]29 [Item("PrinsPermutationCrossover", "An operator which crosses two VRP representations using a standard permutation operator. It is implemented as described in Prins, C. (2004). A simple and effective evolutionary algorithm for the vehicle routing problem. Computers & Operations Research, 12:1985-2002.")] 30 30 [StorableClass] 31 31 public sealed class PrinsPermutationCrossover : PrinsCrossover, IPrinsOperator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Prins/Manipulators/PrinsPermutationManipulator.cs
r4268 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Prins { 29 [Item("PrinsPermutationManipulator", "An operator which manipulates a VRP representation by using a standard permutation manipulator. ")]29 [Item("PrinsPermutationManipulator", "An operator which manipulates a VRP representation by using a standard permutation manipulator. It is implemented as described in Prins, C. (2004). A simple and effective evolutionary algorithm for the vehicle routing problem. Computers & Operations Research, 12:1985-2002.")] 30 30 [StorableClass] 31 31 public sealed class PrinsPermutationManipulator : PrinsManipulator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Zhu/Crossovers/ZhuPermutationCrossover.cs
r4293 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Zhu { 29 [Item("ZhuPermutationCrossover", "An operator which crosses two VRP representations using a standard permutation operator. ")]29 [Item("ZhuPermutationCrossover", "An operator which crosses two VRP representations using a standard permutation operator. It is implemented as described in Zhu, K.Q. (2000). A New Genetic Algorithm For VRPTW. Proceedings of the International Conference on Artificial Intelligence.")] 30 30 [StorableClass] 31 31 public sealed class PrinsPermutationCrossover : ZhuCrossover { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Zhu/Manipulators/ZhuPermutationManipulator.cs
r4293 r4346 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Zhu { 29 [Item("ZhuPermutationManipulator", "An operator which manipulates a VRP representation by using a standard permutation manipulator. ")]29 [Item("ZhuPermutationManipulator", "An operator which manipulates a VRP representation by using a standard permutation manipulator. It is implemented as described in Zhu, K.Q. (2000). A New Genetic Algorithm For VRPTW. Proceedings of the International Conference on Artificial Intelligence.")] 30 30 [StorableClass] 31 31 public sealed class ZhuPermutationManipulator : ZhuManipulator { -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/HeuristicLab.Problems.VehicleRouting-3.3.csproj
r4319 r4346 110 110 <Compile Include="Analyzers\BestVRPToursMemorizer.cs" /> 111 111 <Compile Include="Analyzers\BestVRPSolutionAnalyzer.cs" /> 112 <Compile Include="Encodings\Alba\Crossovers\ PermutationCrossover.cs" />113 <Compile Include="Encodings\Alba\Manipulators\ IntraRouteInversionManipulator.cs" />114 <Compile Include="Encodings\Alba\Manipulators\ LambdaInterchangeManipulator.cs" />112 <Compile Include="Encodings\Alba\Crossovers\AlbaPermutationCrossover.cs" /> 113 <Compile Include="Encodings\Alba\Manipulators\AlbaIntraRouteInversionManipulator.cs" /> 114 <Compile Include="Encodings\Alba\Manipulators\AlbaLambdaInterchangeManipulator.cs" /> 115 115 <Compile Include="Encodings\Alba\Moves\Interfaces\IAlbaLambdaInterchangeMoveOperator.cs" /> 116 116 <Compile Include="Encodings\Alba\Moves\Interfaces\IAlbaIntraRouteInversionMoveOperator.cs" /> 117 <Compile Include="Encodings\Alba\Manipulators\ CustomerInversionManipulator.cs" />118 <Compile Include="Encodings\Alba\Manipulators\ CustomerSwapManipulator.cs" />119 <Compile Include="Encodings\Alba\Manipulators\ CustomerInsertionManipulator.cs" />120 <Compile Include="Encodings\Alba\Manipulators\ PermutationManipulator.cs" />121 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\ ExhaustiveLambdaInterchangeMoveGenerator.cs" />122 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\ LambdaInterchangeMove.cs" />123 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\ LambdaInterchangeMoveGenerator.cs" />124 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\ LambdaInterchangeMoveEvaluator.cs" />125 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\ LambdaInterchangeMoveMaker.cs" />126 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\ StochasticLambdaInterchangeSingleMoveGenerator.cs" />127 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\ StochasticLambdaInterchangeMutliMoveGenerator.cs" />128 <Compile Include="Encodings\Alba\Moves\ PermutationMoveOperator.cs" />129 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\ StochasticIntraRouteInversionMutliMoveGenerator.cs" />130 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\ StochasticIntraRouteInversionSingleMoveGenerator.cs" />131 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\ IntraRouteInversionMoveGenerator.cs" />132 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\ IntraRouteInversionEvaluator.cs" />133 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\ ExhaustiveIntraRouteInversionMoveGenerator.cs" />134 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\ IntraRouteInversionMoveMaker.cs" />135 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\ IntraRouteInversionMove.cs" />136 <Compile Include="Encodings\General\Crossovers\ EmptyVRPCrossover.cs" />117 <Compile Include="Encodings\Alba\Manipulators\AlbaCustomerInversionManipulator.cs" /> 118 <Compile Include="Encodings\Alba\Manipulators\AlbaCustomerSwapManipulator.cs" /> 119 <Compile Include="Encodings\Alba\Manipulators\AlbaCustomerInsertionManipulator.cs" /> 120 <Compile Include="Encodings\Alba\Manipulators\AlbaPermutationManipulator.cs" /> 121 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\AlbaExhaustiveLambdaInterchangeMoveGenerator.cs" /> 122 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\AlbaLambdaInterchangeMove.cs" /> 123 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\AlbaLambdaInterchangeMoveGenerator.cs" /> 124 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\AlbaLambdaInterchangeMoveEvaluator.cs" /> 125 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\AlbaLambdaInterchangeMoveMaker.cs" /> 126 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\AlbaStochasticLambdaInterchangeSingleMoveGenerator.cs" /> 127 <Compile Include="Encodings\Alba\Moves\LambdaInterchange\AlbaStochasticLambdaInterchangeMutliMoveGenerator.cs" /> 128 <Compile Include="Encodings\Alba\Moves\AlbaPermutationMoveOperator.cs" /> 129 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\AlbaStochasticIntraRouteInversionMutliMoveGenerator.cs" /> 130 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\AlbaStochasticIntraRouteInversionSingleMoveGenerator.cs" /> 131 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\AlbaIntraRouteInversionMoveGenerator.cs" /> 132 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\AlbaIntraRouteInversionEvaluator.cs" /> 133 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\AlbaExhaustiveIntraRouteInversionMoveGenerator.cs" /> 134 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\AlbaIntraRouteInversionMoveMaker.cs" /> 135 <Compile Include="Encodings\Alba\Moves\IntraRouteInversion\AlbaIntraRouteInversionMove.cs" /> 136 <Compile Include="Encodings\General\Crossovers\RandomParentCloneCrossover.cs" /> 137 137 <Compile Include="Encodings\General\PermutationEncoding.cs" /> 138 <Compile Include="Encodings\General\Creators\MultiVRP Creator.cs" />139 <Compile Include="Encodings\General\Manipulators\MultiVRP Manipulator.cs" />140 <Compile Include="Encodings\General\Crossovers\MultiVRP Crossover.cs" />138 <Compile Include="Encodings\General\Creators\MultiVRPSolutionCreator.cs" /> 139 <Compile Include="Encodings\General\Manipulators\MultiVRPSolutionManipulator.cs" /> 140 <Compile Include="Encodings\General\Crossovers\MultiVRPSolutionCrossover.cs" /> 141 141 <Compile Include="Encodings\General\Creators\RandomCreator.cs" /> 142 142 <Compile Include="Encodings\General\Moves\Interfaces\IMultiVRPMoveGenerator.cs" /> … … 154 154 <Compile Include="Encodings\GVR\Manipulators\GVRSwapManipulator.cs" /> 155 155 <Compile Include="Encodings\GVR\Manipulators\GVRManipulator.cs" /> 156 <Compile Include="Encodings\Potvin\Crossovers\ RouteBasedCrossover.cs" />157 <Compile Include="Encodings\Potvin\Crossovers\ SequenceBasedCrossover.cs" />156 <Compile Include="Encodings\Potvin\Crossovers\PotvinRouteBasedCrossover.cs" /> 157 <Compile Include="Encodings\Potvin\Crossovers\PotvinSequenceBasedCrossover.cs" /> 158 158 <Compile Include="Encodings\Potvin\Crossovers\PotvinCrossover.cs" /> 159 <Compile Include="Encodings\Potvin\Manipulators\ LocalSearchManipulator.cs" />160 <Compile Include="Encodings\Potvin\Manipulators\ TwoLevelExchangeManipulator.cs" />161 <Compile Include="Encodings\Potvin\Manipulators\ OneLevelExchangeManipulator.cs" />159 <Compile Include="Encodings\Potvin\Manipulators\PotvinLocalSearchManipulator.cs" /> 160 <Compile Include="Encodings\Potvin\Manipulators\PotvinTwoLevelExchangeManipulator.cs" /> 161 <Compile Include="Encodings\Potvin\Manipulators\PotvinOneLevelExchangeManipulator.cs" /> 162 162 <Compile Include="Encodings\Potvin\Manipulators\PotvinManipulator.cs" /> 163 163 <Compile Include="Encodings\Prins\Crossovers\PrinsCrossover.cs" /> … … 191 191 <Compile Include="Encodings\Alba\Moves\AlbaMoveOperator.cs" /> 192 192 <Compile Include="Encodings\Alba\Moves\AlbaMoveMaker.cs" /> 193 <Compile Include="Encodings\Alba\Moves\ThreeOpt\ PermutationTranslocationMoveGenerator.cs" />194 <Compile Include="Encodings\Alba\Moves\ThreeOpt\ PermutationTranslocationMoveMaker.cs" />195 <Compile Include="Encodings\Alba\Moves\ThreeOpt\ PermutationTranslocationMoveTabuMaker.cs" />196 <Compile Include="Encodings\Alba\Moves\ThreeOpt\ PermutationTranslocationMoveSoftTabuCriterion.cs" />197 <Compile Include="Encodings\Alba\Moves\ThreeOpt\ PermutationTranslocationMoveHardTabuCriterion.cs" />193 <Compile Include="Encodings\Alba\Moves\ThreeOpt\AlbaTranslocationMoveGenerator.cs" /> 194 <Compile Include="Encodings\Alba\Moves\ThreeOpt\AlbaTranslocationMoveMaker.cs" /> 195 <Compile Include="Encodings\Alba\Moves\ThreeOpt\AlbaTranslocationMoveTabuMaker.cs" /> 196 <Compile Include="Encodings\Alba\Moves\ThreeOpt\AlbaTranslocationMoveSoftTabuCriterion.cs" /> 197 <Compile Include="Encodings\Alba\Moves\ThreeOpt\AlbaTranslocationMoveHardTabuCriterion.cs" /> 198 198 <Compile Include="Encodings\Potvin\PotvinEncoding.cs" /> 199 199 <Compile Include="Encodings\VRPMoveOperator.cs" /> … … 213 213 <Compile Include="Interfaces\IVRPCreator.cs" /> 214 214 <Compile Include="Interfaces\IVRPOperator.cs" /> 215 <Compile Include="Encodings\Alba\Moves\ThreeOpt\ PermutationTranslocationMoveEvaluator.cs" />215 <Compile Include="Encodings\Alba\Moves\ThreeOpt\AlbaTranslocationMoveEvaluator.cs" /> 216 216 <Compile Include="MoveEvaluators\VRPMoveEvaluator.cs" /> 217 217 <Compile Include="VRPSolution.cs" />
Note: See TracChangeset
for help on using the changeset viewer.