Changeset 6909 for branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDRearrange
- Timestamp:
- 10/12/11 15:45:48 (13 years ago)
- Location:
- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDRearrange
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDRearrange/PotvinPDRearrangeMultiMoveGenerator.cs
r6773 r6909 64 64 65 65 for (int i = 0; i < SampleSizeParameter.ActualValue.Value; i++) { 66 result.Add(PotvinPDRearrangeSingleMoveGenerator.Apply(individual, ProblemInstance, RandomParameter.ActualValue)); 66 var move = PotvinPDRearrangeSingleMoveGenerator.Apply(individual, ProblemInstance, RandomParameter.ActualValue); 67 if (move != null) 68 result.Add(move); 67 69 } 68 70 -
branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/PickupDelivery/PDRearrange/PotvinPDRearrangeSingleMoveGenerator.cs
r6851 r6909 62 62 IPickupAndDeliveryProblemInstance pdp = problemInstance as IPickupAndDeliveryProblemInstance; 63 63 for (int i = 1; i <= individual.Cities; i++) { 64 if (pdp == null || pdp.GetDemand(i) >= 0)64 if (pdp == null || pdp.GetDemand(i) >= 0) 65 65 cities.Add(i); 66 66 } 67 67 68 int city = cities[rand.Next(cities.Count)]; 69 int tour = individual.Tours.FindIndex(t => t.Stops.Contains(city)); 70 return new PotvinPDRearrangeMove(city, tour, individual); 68 if (cities.Count > 0) { 69 int city = cities[rand.Next(cities.Count)]; 70 int tour = individual.Tours.FindIndex(t => t.Stops.Contains(city)); 71 return new PotvinPDRearrangeMove(city, tour, individual); 72 } else { 73 return null; 74 } 71 75 } 72 76
Note: See TracChangeset
for help on using the changeset viewer.