mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
Merge branch 'master' into vrpWithBackhauls
Conflicts: jsprit-examples/src/main/java/examples/SolomonExample.java
This commit is contained in:
commit
f4a7254036
99 changed files with 4371 additions and 2349 deletions
|
|
@ -22,10 +22,12 @@
|
|||
<algorithm xmlns="http://www.w3schools.com"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com algorithm_schema.xsd">
|
||||
|
||||
<iterations>10000</iterations>
|
||||
<iterations>2000</iterations>
|
||||
|
||||
<construction>
|
||||
<insertion name="bestInsertion"/>
|
||||
<insertion name="bestInsertion">
|
||||
<level forwardLooking="2" memory="1">route</level>
|
||||
</insertion>
|
||||
</construction>
|
||||
|
||||
<strategy>
|
||||
|
|
@ -33,10 +35,8 @@
|
|||
<searchStrategies>
|
||||
<searchStrategy name="radialRuinAndRecreate">
|
||||
<selector name="selectBest"/>
|
||||
<acceptor name="schrimpfAcceptance">
|
||||
<alpha>0.1</alpha>
|
||||
<warmup>100</warmup>
|
||||
</acceptor>
|
||||
<acceptor name="acceptNewRemoveWorst"/>
|
||||
|
||||
<modules>
|
||||
<module name="ruin_and_recreate">
|
||||
<ruin name="randomRuin">
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
<searchStrategy name="radialRuinAndRecreate">
|
||||
<selector name="selectBest"/>
|
||||
<acceptor name="schrimpfAcceptance"/>
|
||||
<acceptor name="acceptNewRemoveWorst"/>
|
||||
|
||||
<modules>
|
||||
<module name="ruin_and_recreate">
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
|
||||
<searchStrategy name="radialRuinAndRecreate">
|
||||
<selector name="selectBest"/>
|
||||
<acceptor name="schrimpfAcceptance"/>
|
||||
<acceptor name="acceptNewRemoveWorst"/>
|
||||
<modules>
|
||||
<module name="ruin_and_recreate">
|
||||
<ruin id="2" name="radialRuin">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
<iterations>2000</iterations>
|
||||
|
||||
<construction>
|
||||
<insertion name="bestInsertion"/>
|
||||
<insertion name="bestInsertion">
|
||||
|
||||
</insertion>
|
||||
</construction>
|
||||
|
||||
<strategy>
|
||||
|
|
|
|||
635
jsprit-examples/input/vrpnc1-jsprit.xml
Normal file
635
jsprit-examples/input/vrpnc1-jsprit.xml
Normal file
|
|
@ -0,0 +1,635 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<problem xmlns="http://www.w3schools.com"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com vrp_xml_schema.xsd">
|
||||
<problemType>
|
||||
<fleetSize>INFINITE</fleetSize>
|
||||
<fleetComposition>HOMOGENEOUS</fleetComposition>
|
||||
</problemType>
|
||||
<vehicles>
|
||||
<vehicle>
|
||||
<id>christophidesVehicle</id>
|
||||
<typeId>christophidesType</typeId>
|
||||
<location>
|
||||
<id>[x=30.0][y=40.0]</id>
|
||||
<coord x="30.0" y="40.0"/>
|
||||
</location>
|
||||
<timeSchedule>
|
||||
<start>0.0</start>
|
||||
<end>999999.0</end>
|
||||
</timeSchedule>
|
||||
</vehicle>
|
||||
</vehicles>
|
||||
<vehicleTypes>
|
||||
<type>
|
||||
<id>christophidesType</id>
|
||||
<capacity>160</capacity>
|
||||
<costs>
|
||||
<fixed>0.0</fixed>
|
||||
<distance>1.0</distance>
|
||||
<time>0.0</time>
|
||||
</costs>
|
||||
</type>
|
||||
</vehicleTypes>
|
||||
<services>
|
||||
<service id="35" type="service">
|
||||
<locationId>[x=62.0][y=63.0]</locationId>
|
||||
<coord x="62.0" y="63.0"/>
|
||||
<capacity-demand>17</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="36" type="service">
|
||||
<locationId>[x=63.0][y=69.0]</locationId>
|
||||
<coord x="63.0" y="69.0"/>
|
||||
<capacity-demand>6</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="33" type="service">
|
||||
<locationId>[x=46.0][y=10.0]</locationId>
|
||||
<coord x="46.0" y="10.0"/>
|
||||
<capacity-demand>23</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="34" type="service">
|
||||
<locationId>[x=61.0][y=33.0]</locationId>
|
||||
<coord x="61.0" y="33.0"/>
|
||||
<capacity-demand>26</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="39" type="service">
|
||||
<locationId>[x=59.0][y=15.0]</locationId>
|
||||
<coord x="59.0" y="15.0"/>
|
||||
<capacity-demand>14</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="37" type="service">
|
||||
<locationId>[x=32.0][y=22.0]</locationId>
|
||||
<coord x="32.0" y="22.0"/>
|
||||
<capacity-demand>9</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="38" type="service">
|
||||
<locationId>[x=45.0][y=35.0]</locationId>
|
||||
<coord x="45.0" y="35.0"/>
|
||||
<capacity-demand>15</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="43" type="service">
|
||||
<locationId>[x=5.0][y=64.0]</locationId>
|
||||
<coord x="5.0" y="64.0"/>
|
||||
<capacity-demand>11</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="42" type="service">
|
||||
<locationId>[x=21.0][y=10.0]</locationId>
|
||||
<coord x="21.0" y="10.0"/>
|
||||
<capacity-demand>13</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="41" type="service">
|
||||
<locationId>[x=10.0][y=17.0]</locationId>
|
||||
<coord x="10.0" y="17.0"/>
|
||||
<capacity-demand>27</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="40" type="service">
|
||||
<locationId>[x=5.0][y=6.0]</locationId>
|
||||
<coord x="5.0" y="6.0"/>
|
||||
<capacity-demand>7</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="22" type="service">
|
||||
<locationId>[x=42.0][y=57.0]</locationId>
|
||||
<coord x="42.0" y="57.0"/>
|
||||
<capacity-demand>8</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="23" type="service">
|
||||
<locationId>[x=16.0][y=57.0]</locationId>
|
||||
<coord x="16.0" y="57.0"/>
|
||||
<capacity-demand>16</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="24" type="service">
|
||||
<locationId>[x=8.0][y=52.0]</locationId>
|
||||
<coord x="8.0" y="52.0"/>
|
||||
<capacity-demand>10</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="25" type="service">
|
||||
<locationId>[x=7.0][y=38.0]</locationId>
|
||||
<coord x="7.0" y="38.0"/>
|
||||
<capacity-demand>28</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="26" type="service">
|
||||
<locationId>[x=27.0][y=68.0]</locationId>
|
||||
<coord x="27.0" y="68.0"/>
|
||||
<capacity-demand>7</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="27" type="service">
|
||||
<locationId>[x=30.0][y=48.0]</locationId>
|
||||
<coord x="30.0" y="48.0"/>
|
||||
<capacity-demand>15</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="28" type="service">
|
||||
<locationId>[x=43.0][y=67.0]</locationId>
|
||||
<coord x="43.0" y="67.0"/>
|
||||
<capacity-demand>14</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="29" type="service">
|
||||
<locationId>[x=58.0][y=48.0]</locationId>
|
||||
<coord x="58.0" y="48.0"/>
|
||||
<capacity-demand>6</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="3" type="service">
|
||||
<locationId>[x=52.0][y=64.0]</locationId>
|
||||
<coord x="52.0" y="64.0"/>
|
||||
<capacity-demand>16</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="2" type="service">
|
||||
<locationId>[x=49.0][y=49.0]</locationId>
|
||||
<coord x="49.0" y="49.0"/>
|
||||
<capacity-demand>30</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="1" type="service">
|
||||
<locationId>[x=37.0][y=52.0]</locationId>
|
||||
<coord x="37.0" y="52.0"/>
|
||||
<capacity-demand>7</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="7" type="service">
|
||||
<locationId>[x=17.0][y=63.0]</locationId>
|
||||
<coord x="17.0" y="63.0"/>
|
||||
<capacity-demand>19</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="30" type="service">
|
||||
<locationId>[x=58.0][y=27.0]</locationId>
|
||||
<coord x="58.0" y="27.0"/>
|
||||
<capacity-demand>19</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="6" type="service">
|
||||
<locationId>[x=21.0][y=47.0]</locationId>
|
||||
<coord x="21.0" y="47.0"/>
|
||||
<capacity-demand>15</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="5" type="service">
|
||||
<locationId>[x=40.0][y=30.0]</locationId>
|
||||
<coord x="40.0" y="30.0"/>
|
||||
<capacity-demand>21</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="32" type="service">
|
||||
<locationId>[x=38.0][y=46.0]</locationId>
|
||||
<coord x="38.0" y="46.0"/>
|
||||
<capacity-demand>12</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="4" type="service">
|
||||
<locationId>[x=20.0][y=26.0]</locationId>
|
||||
<coord x="20.0" y="26.0"/>
|
||||
<capacity-demand>9</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="31" type="service">
|
||||
<locationId>[x=37.0][y=69.0]</locationId>
|
||||
<coord x="37.0" y="69.0"/>
|
||||
<capacity-demand>11</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="9" type="service">
|
||||
<locationId>[x=52.0][y=33.0]</locationId>
|
||||
<coord x="52.0" y="33.0"/>
|
||||
<capacity-demand>11</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="8" type="service">
|
||||
<locationId>[x=31.0][y=62.0]</locationId>
|
||||
<coord x="31.0" y="62.0"/>
|
||||
<capacity-demand>23</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="19" type="service">
|
||||
<locationId>[x=13.0][y=13.0]</locationId>
|
||||
<coord x="13.0" y="13.0"/>
|
||||
<capacity-demand>9</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="17" type="service">
|
||||
<locationId>[x=27.0][y=23.0]</locationId>
|
||||
<coord x="27.0" y="23.0"/>
|
||||
<capacity-demand>3</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="18" type="service">
|
||||
<locationId>[x=17.0][y=33.0]</locationId>
|
||||
<coord x="17.0" y="33.0"/>
|
||||
<capacity-demand>41</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="15" type="service">
|
||||
<locationId>[x=36.0][y=16.0]</locationId>
|
||||
<coord x="36.0" y="16.0"/>
|
||||
<capacity-demand>10</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="16" type="service">
|
||||
<locationId>[x=52.0][y=41.0]</locationId>
|
||||
<coord x="52.0" y="41.0"/>
|
||||
<capacity-demand>15</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="13" type="service">
|
||||
<locationId>[x=5.0][y=25.0]</locationId>
|
||||
<coord x="5.0" y="25.0"/>
|
||||
<capacity-demand>23</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="14" type="service">
|
||||
<locationId>[x=12.0][y=42.0]</locationId>
|
||||
<coord x="12.0" y="42.0"/>
|
||||
<capacity-demand>21</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="11" type="service">
|
||||
<locationId>[x=42.0][y=41.0]</locationId>
|
||||
<coord x="42.0" y="41.0"/>
|
||||
<capacity-demand>19</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="12" type="service">
|
||||
<locationId>[x=31.0][y=32.0]</locationId>
|
||||
<coord x="31.0" y="32.0"/>
|
||||
<capacity-demand>29</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="21" type="service">
|
||||
<locationId>[x=62.0][y=42.0]</locationId>
|
||||
<coord x="62.0" y="42.0"/>
|
||||
<capacity-demand>8</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="20" type="service">
|
||||
<locationId>[x=57.0][y=58.0]</locationId>
|
||||
<coord x="57.0" y="58.0"/>
|
||||
<capacity-demand>28</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="49" type="service">
|
||||
<locationId>[x=48.0][y=28.0]</locationId>
|
||||
<coord x="48.0" y="28.0"/>
|
||||
<capacity-demand>18</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="48" type="service">
|
||||
<locationId>[x=25.0][y=55.0]</locationId>
|
||||
<coord x="25.0" y="55.0"/>
|
||||
<capacity-demand>17</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="45" type="service">
|
||||
<locationId>[x=39.0][y=10.0]</locationId>
|
||||
<coord x="39.0" y="10.0"/>
|
||||
<capacity-demand>10</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="44" type="service">
|
||||
<locationId>[x=30.0][y=15.0]</locationId>
|
||||
<coord x="30.0" y="15.0"/>
|
||||
<capacity-demand>16</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="47" type="service">
|
||||
<locationId>[x=25.0][y=32.0]</locationId>
|
||||
<coord x="25.0" y="32.0"/>
|
||||
<capacity-demand>25</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="46" type="service">
|
||||
<locationId>[x=32.0][y=39.0]</locationId>
|
||||
<coord x="32.0" y="39.0"/>
|
||||
<capacity-demand>5</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="10" type="service">
|
||||
<locationId>[x=51.0][y=21.0]</locationId>
|
||||
<coord x="51.0" y="21.0"/>
|
||||
<capacity-demand>5</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
<service id="50" type="service">
|
||||
<locationId>[x=56.0][y=37.0]</locationId>
|
||||
<coord x="56.0" y="37.0"/>
|
||||
<capacity-demand>10</capacity-demand>
|
||||
<duration>0.0</duration>
|
||||
<timeWindows>
|
||||
<timeWindow>
|
||||
<start>0.0</start>
|
||||
<end>1.7976931348623157E308</end>
|
||||
</timeWindow>
|
||||
</timeWindows>
|
||||
</service>
|
||||
</services>
|
||||
</problem>
|
||||
52
jsprit-examples/input/vrpnc1.txt
Normal file
52
jsprit-examples/input/vrpnc1.txt
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
50 160 999999 0
|
||||
30 40
|
||||
37 52 7
|
||||
49 49 30
|
||||
52 64 16
|
||||
20 26 9
|
||||
40 30 21
|
||||
21 47 15
|
||||
17 63 19
|
||||
31 62 23
|
||||
52 33 11
|
||||
51 21 5
|
||||
42 41 19
|
||||
31 32 29
|
||||
5 25 23
|
||||
12 42 21
|
||||
36 16 10
|
||||
52 41 15
|
||||
27 23 3
|
||||
17 33 41
|
||||
13 13 9
|
||||
57 58 28
|
||||
62 42 8
|
||||
42 57 8
|
||||
16 57 16
|
||||
8 52 10
|
||||
7 38 28
|
||||
27 68 7
|
||||
30 48 15
|
||||
43 67 14
|
||||
58 48 6
|
||||
58 27 19
|
||||
37 69 11
|
||||
38 46 12
|
||||
46 10 23
|
||||
61 33 26
|
||||
62 63 17
|
||||
63 69 6
|
||||
32 22 9
|
||||
45 35 15
|
||||
59 15 14
|
||||
5 6 7
|
||||
10 17 27
|
||||
21 10 13
|
||||
5 64 11
|
||||
30 15 16
|
||||
39 10 10
|
||||
32 39 5
|
||||
25 32 25
|
||||
25 55 17
|
||||
48 28 18
|
||||
56 37 10
|
||||
16
jsprit-examples/src/main/java/examples/CVRPExample.java
Normal file
16
jsprit-examples/src/main/java/examples/CVRPExample.java
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
package examples;
|
||||
|
||||
import readers.ChristofidesReader;
|
||||
import basics.VehicleRoutingProblem;
|
||||
import basics.io.VrpXMLWriter;
|
||||
|
||||
public class CVRPExample {
|
||||
|
||||
public static void main(String[] args) {
|
||||
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
||||
new ChristofidesReader(builder).read("input/vrpnc1.txt");
|
||||
VehicleRoutingProblem vrp = builder.build();
|
||||
new VrpXMLWriter(vrp).write("input/vrpnc1-jsprit.xml");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -20,6 +20,8 @@
|
|||
******************************************************************************/
|
||||
package examples;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import readers.SolomonReader;
|
||||
import algorithms.GreedySchrimpfFactory;
|
||||
import algorithms.SchrimpfFactory;
|
||||
|
|
@ -35,7 +37,16 @@ public class CompareAlgorithmExample {
|
|||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
|
||||
/*
|
||||
* some preparation - create output folder
|
||||
*/
|
||||
File dir = new File("output");
|
||||
// if the directory does not exist, create it
|
||||
if (!dir.exists()){
|
||||
System.out.println("creating directory ./output");
|
||||
boolean result = dir.mkdir();
|
||||
if(result) System.out.println("./output created");
|
||||
}
|
||||
/*
|
||||
* Build the problem.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package examples;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
|
||||
import util.Solutions;
|
||||
|
|
@ -32,7 +33,16 @@ public class CostMatrixExample {
|
|||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
|
||||
/*
|
||||
* some preparation - create output folder
|
||||
*/
|
||||
File dir = new File("output");
|
||||
// if the directory does not exist, create it
|
||||
if (!dir.exists()){
|
||||
System.out.println("creating directory ./output");
|
||||
boolean result = dir.mkdir();
|
||||
if(result) System.out.println("./output created");
|
||||
}
|
||||
VehicleType type = VehicleTypeImpl.Builder.newInstance("type", 2).setCostPerDistance(1).setCostPerTime(2).build();
|
||||
Vehicle vehicle = VehicleImpl.Builder.newInstance("vehicle").setLocationId("0").setType(type).build();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package examples;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
|
|
@ -18,7 +19,6 @@ import basics.algo.VehicleRoutingAlgorithmListeners.Priority;
|
|||
import basics.io.VrpXMLReader;
|
||||
import basics.route.Vehicle;
|
||||
import basics.route.VehicleImpl;
|
||||
import basics.route.VehicleType;
|
||||
import basics.route.VehicleTypeImpl;
|
||||
|
||||
public class MultipleDepotExample {
|
||||
|
|
@ -27,7 +27,16 @@ public class MultipleDepotExample {
|
|||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
|
||||
/*
|
||||
* some preparation - create output folder
|
||||
*/
|
||||
File dir = new File("output");
|
||||
// if the directory does not exist, create it
|
||||
if (!dir.exists()){
|
||||
System.out.println("creating directory ./output");
|
||||
boolean result = dir.mkdir();
|
||||
if(result) System.out.println("./output created");
|
||||
}
|
||||
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
|
||||
/*
|
||||
* Read cordeau-instance p01, BUT only its services without any vehicles
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package examples;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
|
|
@ -29,6 +30,16 @@ public class MultipleDepotExampleWithPenaltyVehicles {
|
|||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
/*
|
||||
* some preparation - create output folder
|
||||
*/
|
||||
File dir = new File("output");
|
||||
// if the directory does not exist, create it
|
||||
if (!dir.exists()){
|
||||
System.out.println("creating directory ./output");
|
||||
boolean result = dir.mkdir();
|
||||
if(result) System.out.println("./output created");
|
||||
}
|
||||
|
||||
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -155,6 +155,16 @@ public class RefuseCollectionExample {
|
|||
* @throws IOException
|
||||
*/
|
||||
public static void main(String[] args) throws IOException {
|
||||
/*
|
||||
* some preparation - create output folder
|
||||
*/
|
||||
File dir = new File("output");
|
||||
// if the directory does not exist, create it
|
||||
if (!dir.exists()){
|
||||
System.out.println("creating directory ./output");
|
||||
boolean result = dir.mkdir();
|
||||
if(result) System.out.println("./output created");
|
||||
}
|
||||
|
||||
/*
|
||||
* create vehicle-type and vehicle
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
******************************************************************************/
|
||||
package examples;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
|
||||
import util.Coordinate;
|
||||
|
|
@ -42,6 +43,16 @@ import basics.route.VehicleTypeImpl;
|
|||
public class SimpleExample {
|
||||
|
||||
public static void main(String[] args) {
|
||||
/*
|
||||
* some preparation - create output folder
|
||||
*/
|
||||
File dir = new File("output");
|
||||
// if the directory does not exist, create it
|
||||
if (!dir.exists()){
|
||||
System.out.println("creating directory ./output");
|
||||
boolean result = dir.mkdir();
|
||||
if(result) System.out.println("./output created");
|
||||
}
|
||||
|
||||
/*
|
||||
* get a vehicle type-builder and build a type with the typeId "vehicleType" and a capacity of 2
|
||||
|
|
|
|||
|
|
@ -20,12 +20,12 @@
|
|||
******************************************************************************/
|
||||
package examples;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
|
||||
import readers.SolomonReader;
|
||||
import algorithms.SchrimpfFactory;
|
||||
import algorithms.VehicleRoutingAlgorithms;
|
||||
import algorithms.selectors.SelectBest;
|
||||
import analysis.AlgorithmSearchProgressChartListener;
|
||||
import analysis.SolutionPlotter;
|
||||
import analysis.SolutionPrinter;
|
||||
import analysis.SolutionPrinter.Print;
|
||||
|
|
@ -36,7 +36,16 @@ import basics.VehicleRoutingProblemSolution;
|
|||
public class SolomonExample {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
/*
|
||||
* some preparation - create output folder
|
||||
*/
|
||||
File dir = new File("output");
|
||||
// if the directory does not exist, create it
|
||||
if (!dir.exists()){
|
||||
System.out.println("creating directory ./output");
|
||||
boolean result = dir.mkdir();
|
||||
if(result) System.out.println("./output created");
|
||||
}
|
||||
|
||||
/*
|
||||
* Build the problem.
|
||||
|
|
@ -62,8 +71,10 @@ public class SolomonExample {
|
|||
*
|
||||
* The algorithm can be defined and configured in an xml-file.
|
||||
*/
|
||||
VehicleRoutingAlgorithm vra = new SchrimpfFactory().createAlgorithm(vrp);
|
||||
vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png"));
|
||||
// VehicleRoutingAlgorithm vra = new SchrimpfFactory().createAlgorithm(vrp);
|
||||
VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "input/algorithmConfig_solomon.xml");
|
||||
vra.setPrematureBreak(100);
|
||||
// vra.getAlgorithmListeners().addListener(new AlgorithmSearchProgressChartListener("output/sol_progress.png"));
|
||||
/*
|
||||
* Solve the problem.
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue