From 036b235d9c0ea0594537993d4305dcb870f3b08c Mon Sep 17 00:00:00 2001 From: oblonski Date: Sat, 29 Aug 2015 13:01:13 +0200 Subject: [PATCH] fix #177 --- .../jsprit/core/algorithm/ruin/RuinClusters.java | 1 + .../jsprit/core/algorithm/InitialRoutesTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/RuinClusters.java b/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/RuinClusters.java index 2d58a3ed..313fbf5b 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/RuinClusters.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/ruin/RuinClusters.java @@ -116,6 +116,7 @@ public final class RuinClusters extends AbstractRuinStrategy implements Iteratio } private void ruin(Collection vehicleRoutes, int nOfJobs2BeRemoved, List unassignedJobs) { + if(vrp.getJobs().values().size() == 0) return; Map mappedRoutes = map(vehicleRoutes); int toRemove = nOfJobs2BeRemoved; diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/InitialRoutesTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/InitialRoutesTest.java index 8599dec7..4da27af3 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/InitialRoutesTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/InitialRoutesTest.java @@ -383,4 +383,16 @@ public class InitialRoutesTest { TourActivity secondAct = solution.getRoutes().iterator().next().getActivities().get(1); return secondAct instanceof PickupShipment; } + + @Test + public void whenAllJobsInInitialRoute_itShouldWork(){ + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance(0,10)).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0,0)).build(); + VehicleRoute iniRoute = VehicleRoute.Builder.newInstance(v).addService(s).build(); + VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addInitialVehicleRoute(iniRoute).build(); + VehicleRoutingAlgorithm vra = Jsprit.createAlgorithm(vrp); + vra.setMaxIterations(100); + vra.searchSolutions(); + assertTrue(true); + } }