Changeset 6796 for branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Manipulators/PotvinOneLevelExchangeManipulator.cs
- Timestamp:
- 09/19/11 14:24:19 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Manipulators/PotvinOneLevelExchangeManipulator.cs
r6607 r6796 52 52 individual.Tours[selectedIndex]; 53 53 54 List<int> replaced = new List<int>(); 55 for (int i = 0; i < route1.Stops.Count; i++) { 54 int count = route1.Stops.Count; 55 int i = 0; 56 while(i < count) { 56 57 int insertedRoute, insertedPlace; 57 58 58 if (FindInsertionPlace(individual, route1.Stops[i], selectedIndex, allowInfeasible, out insertedRoute, out insertedPlace)) { 59 individual.Tours[insertedRoute].Stops.Insert(insertedPlace, route1.Stops[i]); 60 replaced.Add(route1.Stops[i]); 59 int city = route1.Stops[i]; 60 route1.Stops.Remove(city); 61 62 if (FindInsertionPlace(individual, city, selectedIndex, allowInfeasible, out insertedRoute, out insertedPlace)) { 63 individual.Tours[insertedRoute].Stops.Insert(insertedPlace, city); 64 } else { 65 route1.Stops.Insert(i, city); 66 i++; 61 67 } 68 69 count = route1.Stops.Count; 62 70 } 63 71 64 route1.Stops.RemoveAll(65 new System.Predicate<int>(66 delegate(int val) {67 return (replaced.Contains(val));68 }69 )70 );71 72 if (route1.Stops.Count == 0)73 individual.Tours.Remove(route1);74 72 } 75 73 }
Note: See TracChangeset
for help on using the changeset viewer.