internal override MDCVRPData LoadInstance(CordeauParser parser) { parser.Parse(); var instance = new MDCVRPData(); instance.Dimension = parser.Cities + 1; instance.Depots = parser.Depots; instance.Coordinates = parser.Coordinates; instance.Capacity = parser.Capacity; instance.Demands = parser.Demands; instance.DistanceMeasure = DistanceMeasure.Euclidean; instance.MaximumVehicles = parser.Vehicles; int depots = parser.Depots; int vehicles = parser.Vehicles / parser.Depots; instance.VehicleDepotAssignment = new int[depots * vehicles]; int index = 0; for (int i = 0; i < depots; i++) { for (int j = 0; j < vehicles; j++) { instance.VehicleDepotAssignment[index] = i; index++; } } instance.Name = parser.ProblemName; return(instance); }
internal abstract TData LoadInstance(CordeauParser parser);