diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/PickupsAndDeliveries_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/PickupsAndDeliveries_IT.java new file mode 100644 index 00000000..cc2c90fd --- /dev/null +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/PickupsAndDeliveries_IT.java @@ -0,0 +1,28 @@ +package jsprit.core.algorithm; + +import static org.junit.Assert.*; + +import java.util.Collection; + +import jsprit.core.algorithm.io.VehicleRoutingAlgorithms; +import jsprit.core.problem.VehicleRoutingProblem; +import jsprit.core.problem.io.VrpXMLReader; +import jsprit.core.problem.solution.VehicleRoutingProblemSolution; +import jsprit.core.util.Solutions; + +import org.junit.Test; + +public class PickupsAndDeliveries_IT { + + @Test + public void whenSolvingLR101InstanceOfLiLim_solutionsMustNoBeWorseThan5PercentOfBestKnownSolution(){ + VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); + new VrpXMLReader(vrpBuilder).read("src/test/resources/lilim_lr101.xml"); + VehicleRoutingProblem vrp = vrpBuilder.build(); + VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "src/test/resources/lilim_algorithmConfig.xml"); + Collection solutions = vra.searchSolutions(); + assertEquals(1650.8,Solutions.bestOf(solutions).getCost(),80.); + assertEquals(19,Solutions.bestOf(solutions).getRoutes().size(),1); + } + +} diff --git a/jsprit-core/src/test/resources/lilim_algorithmConfig.xml b/jsprit-core/src/test/resources/lilim_algorithmConfig.xml new file mode 100644 index 00000000..73bb6609 --- /dev/null +++ b/jsprit-core/src/test/resources/lilim_algorithmConfig.xml @@ -0,0 +1,73 @@ + + + + + 2000 + + + + + + + + 1 + + + + + 0.1 + 20 + + + + + 0.4 + + + + + + 0.5 + + + + + + + + + + 0.3 + + + + + + .5 + + + + + + + \ No newline at end of file diff --git a/jsprit-core/src/test/resources/lilim_lr101.xml b/jsprit-core/src/test/resources/lilim_lr101.xml new file mode 100644 index 00000000..a375627c --- /dev/null +++ b/jsprit-core/src/test/resources/lilim_lr101.xml @@ -0,0 +1,1473 @@ + + + + INFINITE + HOMOGENEOUS + + + + vehicle + type + + [x=35.0][y=35.0] + + + + [x=35.0][y=35.0] + + + + 0.0 + 230.0 + + true + + + + + type + + 200 + + + 0.0 + 1.0 + + + + + + + + [x=27.0][y=69.0] + + 10.0 + + + 34.0 + 44.0 + + + + + [x=6.0][y=68.0] + + 10.0 + + + 108.0 + 118.0 + + + + + 10 + + + + + [x=15.0][y=77.0] + + 10.0 + + + 73.0 + 83.0 + + + + + [x=13.0][y=52.0] + + 10.0 + + + 165.0 + 175.0 + + + + + 9 + + + + + [x=12.0][y=24.0] + + 10.0 + + + 76.0 + 86.0 + + + + + [x=18.0][y=24.0] + + 10.0 + + + 188.0 + 198.0 + + + + + 13 + + + + + [x=24.0][y=58.0] + + 10.0 + + + 58.0 + 68.0 + + + + + [x=37.0][y=56.0] + + 10.0 + + + 182.0 + 192.0 + + + + + 19 + + + + + [x=56.0][y=39.0] + + 0.0 + + + 142.0 + 152.0 + + + + + [x=56.0][y=39.0] + + 10.0 + + + 142.0 + 152.0 + + + + + 36 + + + + + [x=62.0][y=77.0] + + 10.0 + + + 51.0 + 61.0 + + + + + [x=55.0][y=54.0] + + 10.0 + + + 94.0 + 104.0 + + + + + 20 + + + + + [x=49.0][y=73.0] + + 10.0 + + + 127.0 + 137.0 + + + + + [x=41.0][y=49.0] + + 10.0 + + + 161.0 + 171.0 + + + + + 25 + + + + + [x=46.0][y=13.0] + + 0.0 + + + 149.0 + 159.0 + + + + + [x=46.0][y=13.0] + + 10.0 + + + 149.0 + 159.0 + + + + + 8 + + + + + [x=47.0][y=16.0] + + 10.0 + + + 35.0 + 45.0 + + + + + [x=36.0][y=26.0] + + 10.0 + + + 200.0 + 210.0 + + + + + 25 + + + + + [x=57.0][y=68.0] + + 10.0 + + + 77.0 + 87.0 + + + + + [x=47.0][y=47.0] + + 10.0 + + + 124.0 + 134.0 + + + + + 15 + + + + + [x=37.0][y=47.0] + + 10.0 + + + 50.0 + 60.0 + + + + + [x=55.0][y=45.0] + + 10.0 + + + 116.0 + 126.0 + + + + + 6 + + + + + [x=24.0][y=12.0] + + 10.0 + + + 31.0 + 41.0 + + + + + [x=28.0][y=18.0] + + 10.0 + + + 93.0 + 103.0 + + + + + 5 + + + + + [x=23.0][y=3.0] + + 10.0 + + + 132.0 + 142.0 + + + + + [x=30.0][y=25.0] + + 10.0 + + + 159.0 + 169.0 + + + + + 7 + + + + + [x=11.0][y=14.0] + + 0.0 + + + 69.0 + 79.0 + + + + + [x=11.0][y=14.0] + + 10.0 + + + 69.0 + 79.0 + + + + + 18 + + + + + [x=6.0][y=38.0] + + 10.0 + + + 32.0 + 42.0 + + + + + [x=11.0][y=31.0] + + 10.0 + + + 101.0 + 111.0 + + + + + 16 + + + + + [x=8.0][y=56.0] + + 10.0 + + + 51.0 + 61.0 + + + + + [x=2.0][y=48.0] + + 10.0 + + + 117.0 + 127.0 + + + + + 27 + + + + + [x=49.0][y=58.0] + + 0.0 + + + 88.0 + 98.0 + + + + + [x=49.0][y=58.0] + + 10.0 + + + 88.0 + 98.0 + + + + + 10 + + + + + [x=27.0][y=43.0] + + 10.0 + + + 52.0 + 62.0 + + + + + [x=25.0][y=30.0] + + 10.0 + + + 99.0 + 109.0 + + + + + 9 + + + + + [x=37.0][y=31.0] + + 0.0 + + + 95.0 + 105.0 + + + + + [x=37.0][y=31.0] + + 10.0 + + + 95.0 + 105.0 + + + + + 14 + + + + + [x=10.0][y=43.0] + + 10.0 + + + 95.0 + 105.0 + + + + + [x=5.0][y=30.0] + + 10.0 + + + 157.0 + 167.0 + + + + + 9 + + + + + [x=15.0][y=30.0] + + 10.0 + + + 34.0 + 44.0 + + + + + [x=16.0][y=22.0] + + 10.0 + + + 91.0 + 101.0 + + + + + 26 + + + + + [x=35.0][y=17.0] + + 10.0 + + + 50.0 + 60.0 + + + + + [x=44.0][y=17.0] + + 10.0 + + + 78.0 + 88.0 + + + + + 7 + + + + + [x=63.0][y=23.0] + + 10.0 + + + 136.0 + 146.0 + + + + + [x=65.0][y=20.0] + + 10.0 + + + 172.0 + 182.0 + + + + + 2 + + + + + [x=10.0][y=20.0] + + 10.0 + + + 75.0 + 85.0 + + + + + [x=15.0][y=19.0] + + 10.0 + + + 160.0 + 170.0 + + + + + 19 + + + + + [x=30.0][y=5.0] + + 10.0 + + + 61.0 + 71.0 + + + + + [x=25.0][y=21.0] + + 10.0 + + + 133.0 + 143.0 + + + + + 8 + + + + + [x=15.0][y=10.0] + + 10.0 + + + 32.0 + 42.0 + + + + + [x=5.0][y=5.0] + + 10.0 + + + 83.0 + 93.0 + + + + + 20 + + + + + [x=21.0][y=24.0] + + 10.0 + + + 18.0 + 28.0 + + + + + [x=22.0][y=27.0] + + 10.0 + + + 135.0 + 145.0 + + + + + 28 + + + + + [x=20.0][y=65.0] + + 10.0 + + + 67.0 + 77.0 + + + + + [x=45.0][y=65.0] + + 10.0 + + + 126.0 + 136.0 + + + + + 12 + + + + + [x=53.0][y=12.0] + + 10.0 + + + 130.0 + 140.0 + + + + + [x=55.0][y=20.0] + + 10.0 + + + 149.0 + 159.0 + + + + + 6 + + + + + [x=45.0][y=20.0] + + 10.0 + + + 62.0 + 72.0 + + + + + [x=42.0][y=7.0] + + 10.0 + + + 97.0 + 107.0 + + + + + 11 + + + + + [x=20.0][y=40.0] + + 10.0 + + + 87.0 + 97.0 + + + + + [x=26.0][y=35.0] + + 10.0 + + + 176.0 + 186.0 + + + + + 12 + + + + + [x=2.0][y=60.0] + + 10.0 + + + 41.0 + 51.0 + + + + + [x=15.0][y=60.0] + + 10.0 + + + 76.0 + 86.0 + + + + + 5 + + + + + [x=53.0][y=52.0] + + 10.0 + + + 37.0 + 47.0 + + + + + [x=65.0][y=55.0] + + 10.0 + + + 117.0 + 127.0 + + + + + 11 + + + + + [x=63.0][y=65.0] + + 10.0 + + + 143.0 + 153.0 + + + + + [x=53.0][y=43.0] + + 10.0 + + + 179.0 + 189.0 + + + + + 8 + + + + + [x=40.0][y=60.0] + + 10.0 + + + 71.0 + 81.0 + + + + + [x=55.0][y=60.0] + + 10.0 + + + 97.0 + 107.0 + + + + + 21 + + + + + [x=31.0][y=52.0] + + 10.0 + + + 50.0 + 60.0 + + + + + [x=30.0][y=60.0] + + 10.0 + + + 124.0 + 134.0 + + + + + 27 + + + + + [x=41.0][y=37.0] + + 10.0 + + + 39.0 + 49.0 + + + + + [x=50.0][y=35.0] + + 10.0 + + + 63.0 + 73.0 + + + + + 16 + + + + + [x=64.0][y=42.0] + + 10.0 + + + 63.0 + 73.0 + + + + + [x=61.0][y=52.0] + + 10.0 + + + 96.0 + 106.0 + + + + + 9 + + + + + [x=65.0][y=35.0] + + 10.0 + + + 153.0 + 163.0 + + + + + [x=56.0][y=37.0] + + 10.0 + + + 182.0 + 192.0 + + + + + 3 + + + + + [x=35.0][y=40.0] + + 10.0 + + + 37.0 + 47.0 + + + + + [x=57.0][y=48.0] + + 10.0 + + + 92.0 + 102.0 + + + + + 16 + + + + + [x=40.0][y=25.0] + + 10.0 + + + 85.0 + 95.0 + + + + + [x=45.0][y=30.0] + + 10.0 + + + 132.0 + 142.0 + + + + + 9 + + + + + [x=60.0][y=12.0] + + 10.0 + + + 44.0 + 54.0 + + + + + [x=67.0][y=5.0] + + 10.0 + + + 83.0 + 93.0 + + + + + 31 + + + + + [x=31.0][y=67.0] + + 10.0 + + + 95.0 + 105.0 + + + + + [x=35.0][y=69.0] + + 10.0 + + + 141.0 + 151.0 + + + + + 3 + + + + + [x=26.0][y=52.0] + + 10.0 + + + 74.0 + 84.0 + + + + + [x=20.0][y=50.0] + + 10.0 + + + 81.0 + 91.0 + + + + + 9 + + + + + [x=49.0][y=42.0] + + 10.0 + + + 73.0 + 83.0 + + + + + [x=57.0][y=29.0] + + 10.0 + + + 140.0 + 150.0 + + + + + 13 + + + + + [x=49.0][y=11.0] + + 10.0 + + + 69.0 + 79.0 + + + + + [x=45.0][y=10.0] + + 10.0 + + + 97.0 + 107.0 + + + + + 18 + + + + + [x=14.0][y=37.0] + + 10.0 + + + 44.0 + 54.0 + + + + + [x=20.0][y=20.0] + + 10.0 + + + 134.0 + 144.0 + + + + + 11 + + + + + [x=15.0][y=47.0] + + 10.0 + + + 55.0 + 65.0 + + + + + [x=17.0][y=34.0] + + 10.0 + + + 162.0 + 172.0 + + + + + 16 + + + + + [x=55.0][y=5.0] + + 0.0 + + + 68.0 + 78.0 + + + + + [x=55.0][y=5.0] + + 10.0 + + + 68.0 + 78.0 + + + + + 29 + + + + + [x=25.0][y=24.0] + + 10.0 + + + 39.0 + 49.0 + + + + + [x=18.0][y=18.0] + + 10.0 + + + 185.0 + 195.0 + + + + + 20 + + + + + [x=19.0][y=21.0] + + 10.0 + + + 58.0 + 68.0 + + + + + [x=4.0][y=18.0] + + 10.0 + + + 94.0 + 104.0 + + + + + 10 + + + + + [x=20.0][y=26.0] + + 10.0 + + + 83.0 + 93.0 + + + + + [x=26.0][y=27.0] + + 10.0 + + + 100.0 + 110.0 + + + + + 9 + + + + + [x=22.0][y=22.0] + + 10.0 + + + 18.0 + 28.0 + + + + + [x=32.0][y=12.0] + + 10.0 + + + 101.0 + 111.0 + + + + + 2 + + + +