Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/29/11 15:51:56 (13 years ago)
Author:
svonolfe
Message:

Added support for multi depot CVRP instances (#1177)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Crossovers/PotvinRouteBasedCrossover.cs

    r6607 r6851  
    2626using HeuristicLab.Data;
    2727using HeuristicLab.Common;
     28using HeuristicLab.Problems.VehicleRouting.Encodings.ExtendedPotvin;
    2829
    2930namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
     
    5758
    5859      child.Tours.Remove(replaced);
    59       child.Tours.Add(replacing);
     60      child.Tours.Insert(tourParent2, replacing);
     61
     62      if (parent1 is ExtendedPotvinEncoding && child is ExtendedPotvinEncoding) {
     63        Permutation vehicleAssignment = (child as ExtendedPotvinEncoding).VehicleAssignment;
     64
     65        int vehicle = vehicleAssignment[tourParent2];
     66        int vehicle2 = (parent1 as ExtendedPotvinEncoding).VehicleAssignment[tourParent1];
     67        vehicleAssignment[tourParent2] = vehicle2;
     68
     69        for (int i = 0; i < vehicleAssignment.Length; i++) {
     70          if (vehicleAssignment[i] == vehicle2 && i != tourParent2) {
     71            vehicleAssignment[i] = vehicle;
     72            break;
     73          }
     74        }       
     75      }
    6076
    6177      foreach (int city in replaced.Stops)
Note: See TracChangeset for help on using the changeset viewer.