Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/30/11 13:51:01 (11 years ago)
Author:
svonolfe
Message:

Added support for the multi depot pickup and delivery problem with time windows (#1177)

Location:
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeExhaustiveMoveGenerator.cs

    r6851 r6856  
    6767                  if (pdp == null || pdp.GetDemand(city2) >= 0) {
    6868                    bool valid = pdp == null ||
    69                       (pdp.PickupDeliveryLocation[city2] != pdp.PickupDeliveryLocation[city1] &&
    70                        pdp.PickupDeliveryLocation[city2] != city1 &&
    71                        pdp.PickupDeliveryLocation[city1] != city2);
     69                      (pdp.GetPickupDeliveryLocation(city2) != pdp.GetPickupDeliveryLocation(city1) &&
     70                       pdp.GetPickupDeliveryLocation(city2) != city1 &&
     71                       pdp.GetPickupDeliveryLocation(city1) != city2);
    7272
    7373                    if (valid) {
  • branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeMoveMaker.cs

    r6773 r6856  
    6868
    6969      if (problemInstance is IPickupAndDeliveryProblemInstance) {
    70         IntArray pickupLocation =
    71           (problemInstance as IPickupAndDeliveryProblemInstance).PickupDeliveryLocation;
     70        IPickupAndDeliveryProblemInstance pdp = problemInstance as IPickupAndDeliveryProblemInstance;
    7271
    73         int location = pickupLocation[move.City];
     72        int location = pdp.GetPickupDeliveryLocation(move.City);
    7473        Tour oldTour2 = solution.Tours.Find(t => t.Stops.Contains(location));
    7574        oldTour2.Stops.Remove(location);
    7675
    77         location = pickupLocation[move.Replaced];
     76        location = pdp.GetPickupDeliveryLocation(move.Replaced);
    7877        oldTour2 = solution.Tours.Find(t => t.Stops.Contains(location));
    7978
     
    8180        tour.Stops.Remove(move.Replaced);
    8281
    83         PotvinPDRearrangeMoveMaker.InsertPair(solution, tour, move.City, pickupLocation[move.City], problemInstance);
    84         PotvinPDRearrangeMoveMaker.InsertPair(solution, oldTour, move.Replaced, pickupLocation[move.Replaced], problemInstance);
     82        PotvinPDRearrangeMoveMaker.InsertPair(solution, tour, move.City, pdp.GetPickupDeliveryLocation(move.City), problemInstance);
     83        PotvinPDRearrangeMoveMaker.InsertPair(solution, oldTour, move.Replaced, pdp.GetPickupDeliveryLocation(move.Replaced), problemInstance);
    8584      } else {
    8685        tour.Stops.Remove(move.Replaced);
  • branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDExchange/PotvinPDExchangeSingleMoveGenerator.cs

    r6851 r6856  
    8585          if (pdp == null ||
    8686            (pdp.GetDemand(stop) >= 0 &&
    87              pdp.PickupDeliveryLocation[stop] != pdp.PickupDeliveryLocation[city] &&
    88              pdp.PickupDeliveryLocation[stop] != city &&
    89              pdp.PickupDeliveryLocation[city] != stop))
     87            pdp.GetPickupDeliveryLocation(stop) != pdp.GetPickupDeliveryLocation(city) &&
     88            pdp.GetPickupDeliveryLocation(stop) != city &&
     89            pdp.GetPickupDeliveryLocation(city) != stop))
    9090            tourCities.Add(stop);
    9191        }
  • branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDRearrange/PotvinPDRearrangeMoveMaker.cs

    r6851 r6856  
    9797      IPickupAndDeliveryProblemInstance pdp = problemInstance as IPickupAndDeliveryProblemInstance;
    9898      if (pdp != null) {
    99         int location = pdp.PickupDeliveryLocation[move.City];
     99        int location = pdp.GetPickupDeliveryLocation(move.City);
    100100        Tour tour2 = solution.Tours.Find(t => t.Stops.Contains(location));
    101101        int position2 = tour2.Stops.IndexOf(location);
  • branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDShift/PotvinPDShiftMoveMaker.cs

    r6773 r6856  
    6868
    6969      if (problemInstance is IPickupAndDeliveryProblemInstance) {
    70         IntArray pickupLocation =
    71           (problemInstance as IPickupAndDeliveryProblemInstance).PickupDeliveryLocation;
    72 
    73         int location = pickupLocation[move.City];
     70        IPickupAndDeliveryProblemInstance pdp = problemInstance as IPickupAndDeliveryProblemInstance;
     71       
     72        int location = pdp.GetPickupDeliveryLocation(move.City);
    7473        Tour oldTour2 = solution.Tours.Find(t => t.Stops.Contains(location));
    7574        oldTour2.Stops.Remove(location);
    7675
    77         PotvinPDRearrangeMoveMaker.InsertPair(solution, tour, move.City, pickupLocation[move.City], problemInstance);
     76        PotvinPDRearrangeMoveMaker.InsertPair(solution, tour, move.City, location, problemInstance);
    7877      } else {
    7978        int place = solution.FindBestInsertionPlace(tour, move.City);
Note: See TracChangeset for help on using the changeset viewer.