Changeset 8649
- Timestamp:
- 09/14/12 10:03:04 (12 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLab.Problems.VehicleRouting-3.4.csproj
r8600 r8649 142 142 <Compile Include="Improver\VRPImprovementOperator.cs" /> 143 143 <Compile Include="Interfaces\IVRPLocalSearchManipulator.cs" /> 144 <Compile Include="Interpreters\MDCVRPInterpreter.cs" /> 145 <Compile Include="Interpreters\VRPInterpreter.cs" /> 144 146 <Compile Include="Interpreters\MDCVRPTWInterpreter.cs" /> 145 147 <Compile Include="Interpreters\PDPTWInterpreter.cs" /> -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Interpreters/CVRPInterpreter.cs
r8053 r8649 24 24 using HeuristicLab.Problems.VehicleRouting.Encodings.Potvin; 25 25 using HeuristicLab.Problems.VehicleRouting.ProblemInstances; 26 using HeuristicLab.Problems.VehicleRouting.Interfaces; 27 using System; 26 28 27 29 namespace HeuristicLab.Problems.VehicleRouting.Interpreters { 28 public class CVRPInterpreter : IVRPDataInterpreter<CVRPData> { 29 public VRPInstanceDescription Interpret(IVRPData data) { 30 public class CVRPInterpreter : VRPInterpreter, IVRPDataInterpreter<CVRPData> { 31 public override Type GetDataType() { 32 return typeof(CVRPData); 33 } 34 35 protected override IVRPProblemInstance CreateProblemInstance() { 36 return new CVRPProblemInstance(); 37 } 38 39 protected override void Interpret(IVRPData data, IVRPProblemInstance problemInstance) { 30 40 CVRPData cvrpData = data as CVRPData; 31 32 VRPInstanceDescription result = new VRPInstanceDescription(); 33 result.Name = cvrpData.Name; 34 result.Description = cvrpData.Description; 35 36 CVRPProblemInstance problem = new CVRPProblemInstance(); 41 CVRPProblemInstance problem = problemInstance as CVRPProblemInstance; 42 37 43 if (cvrpData.Coordinates != null) 38 44 problem.Coordinates = new DoubleMatrix(cvrpData.Coordinates); … … 47 53 problem.DistanceMatrix = new DoubleMatrix(cvrpData.GetDistanceMatrix()); 48 54 } 49 result.ProblemInstance = problem;50 51 result.BestKnownQuality = cvrpData.BestKnownQuality;52 if (cvrpData.BestKnownTour != null) {53 PotvinEncoding solution = new PotvinEncoding(problem);54 55 for (int i = 0; i < cvrpData.BestKnownTour.GetLength(0); i++) {56 Tour tour = new Tour();57 solution.Tours.Add(tour);58 59 foreach (int stop in cvrpData.BestKnownTour[i]) {60 tour.Stops.Add(stop + 1);61 }62 }63 64 result.BestKnownSolution = solution;65 }66 67 return result;68 55 } 69 56 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Interpreters/CVRPTWInterpreter.cs
r8053 r8649 24 24 using HeuristicLab.Problems.VehicleRouting.Encodings.Potvin; 25 25 using HeuristicLab.Problems.VehicleRouting.ProblemInstances; 26 using HeuristicLab.Problems.VehicleRouting.Interfaces; 27 using System; 26 28 27 29 namespace HeuristicLab.Problems.VehicleRouting.Interpreters { 28 public class CVRPTWInterpreter : IVRPDataInterpreter<CVRPTWData> { 29 public VRPInstanceDescription Interpret(IVRPData data) { 30 CVRPTWData cvrpData = data as CVRPTWData; 30 public class CVRPTWInterpreter: CVRPInterpreter, IVRPDataInterpreter<CVRPTWData> { 31 public override Type GetDataType() { 32 return typeof(CVRPTWData); 33 } 34 35 protected override IVRPProblemInstance CreateProblemInstance() { 36 return new CVRPTWProblemInstance(); 37 } 31 38 32 VRPInstanceDescription result = new VRPInstanceDescription(); 33 result.Name = cvrpData.Name; 34 result.Description = cvrpData.Description; 39 protected override void Interpret(IVRPData data, IVRPProblemInstance problemInstance) { 40 base.Interpret(data, problemInstance); 35 41 36 CVRPTWProblemInstance problem = new CVRPTWProblemInstance(); 37 if (cvrpData.Coordinates != null) 38 problem.Coordinates = new DoubleMatrix(cvrpData.Coordinates); 39 if (cvrpData.MaximumVehicles != null) 40 problem.Vehicles.Value = (int)cvrpData.MaximumVehicles; 41 else 42 problem.Vehicles.Value = cvrpData.Dimension - 1; 43 problem.Capacity.Value = cvrpData.Capacity; 44 problem.Demand = new DoubleArray(cvrpData.Demands); 45 if (cvrpData.DistanceMeasure != DistanceMeasure.Euclidean) { 46 problem.UseDistanceMatrix.Value = true; 47 problem.DistanceMatrix = new DoubleMatrix(cvrpData.GetDistanceMatrix()); 48 } 49 problem.ReadyTime = new DoubleArray(cvrpData.ReadyTimes); 50 problem.ServiceTime = new DoubleArray(cvrpData.ServiceTimes); 51 problem.DueTime = new DoubleArray(cvrpData.DueTimes); 52 result.ProblemInstance = problem; 42 CVRPTWData cvrptwData = data as CVRPTWData; 43 CVRPTWProblemInstance problem = problemInstance as CVRPTWProblemInstance; 53 44 54 result.BestKnownQuality = cvrpData.BestKnownQuality; 55 if (cvrpData.BestKnownTour != null) { 56 PotvinEncoding solution = new PotvinEncoding(problem); 57 58 for (int i = 0; i < cvrpData.BestKnownTour.GetLength(0); i++) { 59 Tour tour = new Tour(); 60 solution.Tours.Add(tour); 61 62 foreach (int stop in cvrpData.BestKnownTour[i]) { 63 tour.Stops.Add(stop + 1); 64 } 65 } 66 67 result.BestKnownSolution = solution; 68 } 69 70 return result; 45 problem.ReadyTime = new DoubleArray(cvrptwData.ReadyTimes); 46 problem.ServiceTime = new DoubleArray(cvrptwData.ServiceTimes); 47 problem.DueTime = new DoubleArray(cvrptwData.DueTimes); 71 48 } 72 49 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Interpreters/IVRPDataInterpreter.cs
r8053 r8649 22 22 using HeuristicLab.Problems.Instances; 23 23 using HeuristicLab.Problems.VehicleRouting.Interfaces; 24 using System; 24 25 25 26 namespace HeuristicLab.Problems.VehicleRouting.Interpreters { … … 33 34 34 35 public interface IVRPDataInterpreter { 36 Type GetDataType(); 35 37 VRPInstanceDescription Interpret(IVRPData data); 36 38 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Interpreters/MDCVRPTWInterpreter.cs
r8053 r8649 24 24 using HeuristicLab.Problems.VehicleRouting.Encodings.Potvin; 25 25 using HeuristicLab.Problems.VehicleRouting.ProblemInstances; 26 using HeuristicLab.Problems.VehicleRouting.Interfaces; 27 using System; 26 28 27 29 namespace HeuristicLab.Problems.VehicleRouting.Interpreters { 28 public class MDCVRPTWInterpreter : IVRPDataInterpreter<MDCVRPTWData> { 29 public VRPInstanceDescription Interpret(IVRPData data) { 30 MDCVRPTWData cvrpData = data as MDCVRPTWData; 30 public class MDCVRPTWInterpreter : MDCVRPInterpreter, IVRPDataInterpreter<MDCVRPTWData> { 31 public override Type GetDataType() { 32 return typeof(MDCVRPTWData); 33 } 34 35 protected override IVRPProblemInstance CreateProblemInstance() { 36 return new MDCVRPTWProblemInstance(); 37 } 31 38 32 VRPInstanceDescription result = new VRPInstanceDescription(); 33 result.Name = cvrpData.Name; 34 result.Description = cvrpData.Description; 39 protected override void Interpret(IVRPData data, IVRPProblemInstance problemInstance) { 40 base.Interpret(data, problemInstance); 35 41 36 MDCVRPTWProblemInstance problem = new MDCVRPTWProblemInstance(); 37 if (cvrpData.Coordinates != null) 38 problem.Coordinates = new DoubleMatrix(cvrpData.Coordinates); 39 if (cvrpData.MaximumVehicles != null) 40 problem.Vehicles.Value = (int)cvrpData.MaximumVehicles; 41 else 42 problem.Vehicles.Value = cvrpData.Dimension - 1; 43 problem.Capacity = new DoubleArray(cvrpData.Capacity); 44 problem.Demand = new DoubleArray(cvrpData.Demands); 45 if (cvrpData.DistanceMeasure != DistanceMeasure.Euclidean) { 46 problem.UseDistanceMatrix.Value = true; 47 problem.DistanceMatrix = new DoubleMatrix(cvrpData.GetDistanceMatrix()); 48 } 42 MDCVRPTWData cvrptwData = data as MDCVRPTWData; 43 MDCVRPTWProblemInstance problem = problemInstance as MDCVRPTWProblemInstance; 49 44 50 problem.Depots.Value = cvrpData.Depots; 51 problem.VehicleDepotAssignment = new IntArray(cvrpData.VehicleDepotAssignment); 52 53 problem.ReadyTime = new DoubleArray(cvrpData.ReadyTimes); 54 problem.ServiceTime = new DoubleArray(cvrpData.ServiceTimes); 55 problem.DueTime = new DoubleArray(cvrpData.DueTimes); 56 result.ProblemInstance = problem; 57 58 result.BestKnownQuality = cvrpData.BestKnownQuality; 59 if (cvrpData.BestKnownTour != null) { 60 PotvinEncoding solution = new PotvinEncoding(problem); 61 62 for (int i = 0; i < cvrpData.BestKnownTour.GetLength(0); i++) { 63 Tour tour = new Tour(); 64 solution.Tours.Add(tour); 65 66 foreach (int stop in cvrpData.BestKnownTour[i]) { 67 tour.Stops.Add(stop + 1); 68 } 69 } 70 71 result.BestKnownSolution = solution; 72 } 73 74 return result; 45 problem.ReadyTime = new DoubleArray(cvrptwData.ReadyTimes); 46 problem.ServiceTime = new DoubleArray(cvrptwData.ServiceTimes); 47 problem.DueTime = new DoubleArray(cvrptwData.DueTimes); 75 48 } 76 49 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Interpreters/PDPTWInterpreter.cs
r8053 r8649 24 24 using HeuristicLab.Problems.VehicleRouting.Encodings.Potvin; 25 25 using HeuristicLab.Problems.VehicleRouting.ProblemInstances; 26 using HeuristicLab.Problems.VehicleRouting.Interfaces; 27 using System; 26 28 27 29 namespace HeuristicLab.Problems.VehicleRouting.Interpreters { 28 public class PDPTWInterpreter : IVRPDataInterpreter<PDPTWData> { 29 public VRPInstanceDescription Interpret(IVRPData data) { 30 PDPTWData cvrpData = data as PDPTWData; 30 public class PDPTWInterpreter : CVRPTWInterpreter, IVRPDataInterpreter<PDPTWData> { 31 public override Type GetDataType() { 32 return typeof(PDPTWData); 33 } 34 35 protected override IVRPProblemInstance CreateProblemInstance() { 36 return new CVRPPDTWProblemInstance(); 37 } 31 38 32 VRPInstanceDescription result = new VRPInstanceDescription(); 33 result.Name = cvrpData.Name; 34 result.Description = cvrpData.Description; 39 protected override void Interpret(IVRPData data, IVRPProblemInstance problemInstance) { 40 base.Interpret(data, problemInstance); 35 41 36 CVRPPDTWProblemInstance problem = new CVRPPDTWProblemInstance(); 37 if (cvrpData.Coordinates != null) 38 problem.Coordinates = new DoubleMatrix(cvrpData.Coordinates); 39 if (cvrpData.MaximumVehicles != null) 40 problem.Vehicles.Value = (int)cvrpData.MaximumVehicles; 41 else 42 problem.Vehicles.Value = cvrpData.Dimension - 1; 43 problem.Capacity.Value = cvrpData.Capacity; 44 problem.Demand = new DoubleArray(cvrpData.Demands); 45 if (cvrpData.DistanceMeasure != DistanceMeasure.Euclidean) { 46 problem.UseDistanceMatrix.Value = true; 47 problem.DistanceMatrix = new DoubleMatrix(cvrpData.GetDistanceMatrix()); 48 } 49 problem.ReadyTime = new DoubleArray(cvrpData.ReadyTimes); 50 problem.ServiceTime = new DoubleArray(cvrpData.ServiceTimes); 51 problem.DueTime = new DoubleArray(cvrpData.DueTimes); 52 problem.PickupDeliveryLocation = new IntArray(cvrpData.PickupDeliveryLocations); 53 result.ProblemInstance = problem; 42 PDPTWData pdpData = data as PDPTWData; 43 CVRPPDTWProblemInstance problem = problemInstance as CVRPPDTWProblemInstance; 54 44 55 result.BestKnownQuality = cvrpData.BestKnownQuality; 56 if (cvrpData.BestKnownTour != null) { 57 PotvinEncoding solution = new PotvinEncoding(problem); 58 59 for (int i = 0; i < cvrpData.BestKnownTour.GetLength(0); i++) { 60 Tour tour = new Tour(); 61 solution.Tours.Add(tour); 62 63 foreach (int stop in cvrpData.BestKnownTour[i]) { 64 tour.Stops.Add(stop + 1); 65 } 66 } 67 68 result.BestKnownSolution = solution; 69 } 70 71 return result; 45 problem.PickupDeliveryLocation = new IntArray(pdpData.PickupDeliveryLocations); 72 46 } 73 47 }
Note: See TracChangeset
for help on using the changeset viewer.