diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/recreate/ServiceInsertionOnRouteLevelCalculator.java b/jsprit-core/src/main/java/jsprit/core/algorithm/recreate/ServiceInsertionOnRouteLevelCalculator.java index ef98c37a..e943e7f9 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/recreate/ServiceInsertionOnRouteLevelCalculator.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/recreate/ServiceInsertionOnRouteLevelCalculator.java @@ -303,7 +303,9 @@ final class ServiceInsertionOnRouteLevelCalculator implements JobInsertionCostsC } } if(best_insertion_index == InsertionData.NO_INDEX) return InsertionData.createEmptyInsertionData(); - return new InsertionData(best_insertion_costs, InsertionData.NO_INDEX, best_insertion_index, newVehicle, newDriver); + InsertionData insertionData = new InsertionData(best_insertion_costs, InsertionData.NO_INDEX, best_insertion_index, newVehicle, newDriver); + insertionData.setVehicleDepartureTime(start.getEndTime()); + return insertionData; } /** diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/recreate/VehicleTypeDependentJobInsertionCalculator.java b/jsprit-core/src/main/java/jsprit/core/algorithm/recreate/VehicleTypeDependentJobInsertionCalculator.java index 3d4413fe..7257607e 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/recreate/VehicleTypeDependentJobInsertionCalculator.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/recreate/VehicleTypeDependentJobInsertionCalculator.java @@ -107,7 +107,9 @@ final class VehicleTypeDependentJobInsertionCalculator implements JobInsertionCo relevantVehicles.addAll(fleetManager.getAvailableVehicles()); } for(Vehicle v : relevantVehicles){ - double depTime = v.getEarliestDeparture(); + double depTime; + if(v == selectedVehicle) depTime = currentRoute.getDepartureTime(); + else depTime = v.getEarliestDeparture(); InsertionData iData = insertionCalculator.getInsertionData(currentRoute, jobToInsert, v, depTime, selectedDriver, bestKnownCost_); if(iData instanceof NoInsertionFound) { if(bestIData instanceof NoInsertionFound) bestIData = iData;