Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/02/14 15:52:33 (10 years ago)
Author:
pfleck
Message:

#2226 Merged r11280, r11282, r11292, r11294, r11295 and r11296 into stable.

Location:
stable
Files:
1 deleted
2 edited
2 copied

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/CordeauFormat/CordeauFormatInstanceProvider.cs

    r11333 r11334  
    2323
    2424namespace HeuristicLab.Problems.Instances.VehicleRouting {
    25   public abstract class CordeauFormatInstanceProvider : VRPInstanceProvider<MDCVRPTWData> {
    26     protected override MDCVRPTWData LoadData(Stream stream) {
     25  public abstract class CordeauFormatInstanceProvider<T> : VRPInstanceProvider<T> where T : MDCVRPData {
     26    protected override T LoadData(Stream stream) {
    2727      return LoadInstance(new CordeauParser(stream));
    2828    }
     
    3131      get { return true; }
    3232    }
    33     public override MDCVRPTWData ImportData(string path) {
     33    public override T ImportData(string path) {
    3434      return LoadInstance(new CordeauParser(path));
    3535    }
    3636
    37     private MDCVRPTWData LoadInstance(CordeauParser parser) {
    38       parser.Parse();
    39 
    40       var instance = new MDCVRPTWData();
    41       instance.Dimension = parser.Cities + 1;
    42       instance.Depots = parser.Depots;
    43       instance.Coordinates = parser.Coordinates;
    44       instance.Capacity = parser.Capacity;
    45       instance.Demands = parser.Demands;
    46       instance.DistanceMeasure = DistanceMeasure.Euclidean;
    47       instance.ReadyTimes = parser.Readytimes;
    48       instance.ServiceTimes = parser.Servicetimes;
    49       instance.DueTimes = parser.Duetimes;
    50       instance.MaximumVehicles = parser.Vehicles;
    51 
    52       int depots = parser.Depots;
    53       int vehicles = parser.Vehicles / parser.Depots;
    54       instance.VehicleDepotAssignment = new int[depots * vehicles];
    55       int index = 0;
    56 
    57       for (int i = 0; i < depots; i++)
    58         for (int j = 0; j < vehicles; j++) {
    59           instance.VehicleDepotAssignment[index] = i;
    60           index++;
    61         }
    62 
    63       instance.Name = parser.ProblemName;
    64 
    65       return instance;
    66     }
     37    internal abstract T LoadInstance(CordeauParser parser);
    6738  }
    6839}
Note: See TracChangeset for help on using the changeset viewer.