From 4c9b7b8e006ff3e42cd59ef27e4bf72c7513e967 Mon Sep 17 00:00:00 2001 From: Stefan Schroeder <4sschroeder@gmail.com> Date: Wed, 4 Dec 2013 15:08:30 +0100 Subject: [PATCH] play with b-messenger --- jsprit-examples/input/algorithmConfig_open.xml | 11 +++++------ .../java/jsprit/examples/BicycleMessenger.java | 15 ++++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/jsprit-examples/input/algorithmConfig_open.xml b/jsprit-examples/input/algorithmConfig_open.xml index afabe389..ac8ca99d 100755 --- a/jsprit-examples/input/algorithmConfig_open.xml +++ b/jsprit-examples/input/algorithmConfig_open.xml @@ -22,7 +22,7 @@ - 2000 + 10000 @@ -36,13 +36,13 @@ - 0.01 + 0.1 40 - 0.3 + 0.5 @@ -53,12 +53,11 @@ - - + - 0.2 + 0.3 diff --git a/jsprit-examples/src/main/java/jsprit/examples/BicycleMessenger.java b/jsprit-examples/src/main/java/jsprit/examples/BicycleMessenger.java index b7283578..3d883a3a 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/BicycleMessenger.java +++ b/jsprit-examples/src/main/java/jsprit/examples/BicycleMessenger.java @@ -186,8 +186,9 @@ public class BicycleMessenger { stateManager.addStateUpdater(new UpdateLatestActivityStartTimes(stateManager, routingCosts, nearestMessengers)); VehicleRoutingAlgorithm algorithm = VehicleRoutingAlgorithms.readAndCreateAlgorithm(bicycleMessengerProblem,"input/algorithmConfig_open.xml", stateManager); -// algorithm.setPrematureAlgorithmTermination(new IterationWithoutImprovementTermination(500)); + algorithm.setPrematureAlgorithmTermination(new IterationWithoutImprovementTermination(1000)); algorithm.addListener(new AlgorithmSearchProgressChartListener("output/progress.png")); +// algorithm.setNuOfIterations(5000); Collection solutions = algorithm.searchSolutions(); SolutionPrinter.print(Solutions.bestOf(solutions)); @@ -198,9 +199,9 @@ public class BicycleMessenger { Plotter plotter1 = new Plotter(bicycleMessengerProblem, Solutions.bestOf(solutions)); - plotter1.plotShipments(false); + plotter1.plotShipments(true); plotter1.setShowFirstActivity(true); -// plotter1.setBoundingBox(10000, 47500, 20000, 67500); + plotter1.setBoundingBox(5000, 45500, 25000, 66500); plotter1.plot("output/bicycleMessengerSolution.png", "bicycleMessenger"); new VrpXMLWriter(bicycleMessengerProblem, solutions).write("output/bicycleMessenger.xml"); @@ -249,16 +250,16 @@ public class BicycleMessenger { String line = null; boolean firstLine = true; VehicleType messengerType = VehicleTypeImpl.Builder.newInstance("messengerType", 15).setCostPerDistance(1).build(); - VehicleType penaltyType = VehicleTypeImpl.Builder.newInstance("messengerType", 15).setFixedCost(200).setCostPerDistance(4).build(); - PenaltyVehicleType penaltyVehicleType = new PenaltyVehicleType(penaltyType); + VehicleType penaltyType = VehicleTypeImpl.Builder.newInstance("messengerType", 15).setFixedCost(50000).setCostPerDistance(4).build(); + PenaltyVehicleType penaltyVehicleType = new PenaltyVehicleType(penaltyType,4); while((line = reader.readLine()) != null){ if(firstLine) { firstLine = false; continue; } String[] tokens = line.split("\\s+"); Vehicle vehicle = VehicleImpl.Builder.newInstance(tokens[1]).setLocationCoord(Coordinate.newInstance(Double.parseDouble(tokens[2]), Double.parseDouble(tokens[3]))) - .setReturnToDepot(true).setType(messengerType).build(); + .setReturnToDepot(false).setType(messengerType).build(); problemBuilder.addVehicle(vehicle); - Vehicle penaltyVehicle = VehicleImpl.Builder.newInstance(tokens[1]).setLocationCoord(Coordinate.newInstance(Double.parseDouble(tokens[2]), Double.parseDouble(tokens[3]))) + Vehicle penaltyVehicle = VehicleImpl.Builder.newInstance(tokens[1]+"_penalty").setLocationCoord(Coordinate.newInstance(Double.parseDouble(tokens[2]), Double.parseDouble(tokens[3]))) .setReturnToDepot(true).setType(penaltyVehicleType).build(); problemBuilder.addVehicle(penaltyVehicle); }