From c2c3062a43ea9225bd27f66896c077e7881ca077 Mon Sep 17 00:00:00 2001 From: oblonski Date: Sat, 9 Apr 2016 17:38:05 +0200 Subject: [PATCH] improve break scheduling --- .../com/graphhopper/jsprit/core/algorithm/box/Jsprit.java | 1 + .../jsprit/core/algorithm/recreate/BreakScheduling.java | 5 ----- .../jsprit/core/problem/VehicleRoutingProblem.java | 1 + 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java index 6c056e74..1b20a9da 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/box/Jsprit.java @@ -557,6 +557,7 @@ public class Jsprit { vra.addListener(noiseConfigurator); vra.addListener(noise); vra.addListener(clusters); + vra.addListener(new BreakScheduling(vrp,stateManager,constraintManager)); // vra.addListener(new RuinBreaks()); handleExecutorShutdown(vra); diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/BreakScheduling.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/BreakScheduling.java index c1f21907..a0fd66a4 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/BreakScheduling.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/BreakScheduling.java @@ -34,13 +34,11 @@ public class BreakScheduling implements JobInsertedListener, RuinListener { @Override public void informJobInserted(Job job2insert, VehicleRoute inRoute, double additionalCosts, double additionalTime) { Break aBreak = inRoute.getVehicle().getBreak(); -// if(job2insert == aBreak) return; if(aBreak != null){ boolean removed = inRoute.getTourActivities().removeJob(aBreak); if(removed){ stateManager.removed(aBreak,inRoute); stateManager.reCalculateStates(inRoute); - //updateRoute --> alles wichtiges states } if(inRoute.getEnd().getArrTime() > aBreak.getTimeWindow().getEnd()){ InsertionData iData = breakInsertionCalculator.getInsertionData(inRoute, aBreak, inRoute.getVehicle(), inRoute.getDepartureTime(), inRoute.getDriver(), Double.MAX_VALUE); @@ -48,12 +46,9 @@ public class BreakScheduling implements JobInsertedListener, RuinListener { for(Event e : iData.getEvents()){ eventListeners.inform(e); } - //inform job inserted stateManager.informJobInserted(aBreak,inRoute,0,0); } } - - } } diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/VehicleRoutingProblem.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/VehicleRoutingProblem.java index 645595dd..b39666db 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/VehicleRoutingProblem.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/VehicleRoutingProblem.java @@ -583,6 +583,7 @@ public class VehicleRoutingProblem { logger.info("setup problem: {}", this); } + @Override public String toString() { return "[fleetSize=" + fleetSize + "][#jobs=" + jobs.size() + "][#vehicles=" + vehicles.size() + "][#vehicleTypes=" + vehicleTypes.size() + "][" +