Changeset 6851 for branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Crossovers/PotvinRouteBasedCrossover.cs
- Timestamp:
- 09/29/11 15:51:56 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Crossovers/PotvinRouteBasedCrossover.cs
r6607 r6851 26 26 using HeuristicLab.Data; 27 27 using HeuristicLab.Common; 28 using HeuristicLab.Problems.VehicleRouting.Encodings.ExtendedPotvin; 28 29 29 30 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin { … … 57 58 58 59 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 } 60 76 61 77 foreach (int city in replaced.Stops)
Note: See TracChangeset
for help on using the changeset viewer.