Changeset 9363 for branches/OaaS/HeuristicLab.Problems.VehicleRouting/3.4/Interpreters/PDPTWInterpreter.cs
- Timestamp:
- 04/16/13 13:13:41 (12 years ago)
- Location:
- branches/OaaS
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OaaS
- Property svn:ignore
-
old new 21 21 protoc.exe 22 22 _ReSharper.HeuristicLab 3.3 Tests 23 Google.ProtocolBuffers-2.4.1.473.dll 23 24 packages
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
branches/OaaS/HeuristicLab.Problems.VehicleRouting
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.VehicleRouting (added) merged: 8231,8246,8346,8455,8497,8600,8649,8651-8653,8720,8763,8894,8899,8905,8922,9010,9321
- Property svn:mergeinfo changed
-
branches/OaaS/HeuristicLab.Problems.VehicleRouting/3.4/Interpreters/PDPTWInterpreter.cs
r8053 r9363 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 protected override IVRPProblemInstance CreateProblemInstance() { 32 return new CVRPPDTWProblemInstance(); 33 } 31 34 32 VRPInstanceDescription result = new VRPInstanceDescription(); 33 result.Name = cvrpData.Name; 34 result.Description = cvrpData.Description; 35 protected override void Interpret(IVRPData data, IVRPProblemInstance problemInstance) { 36 base.Interpret(data, problemInstance); 35 37 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; 38 PDPTWData pdpData = (PDPTWData)data; 39 CVRPPDTWProblemInstance problem = (CVRPPDTWProblemInstance)problemInstance; 54 40 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; 41 problem.PickupDeliveryLocation = new IntArray(pdpData.PickupDeliveryLocations); 72 42 } 73 43 }
Note: See TracChangeset
for help on using the changeset viewer.