├── .github └── workflows │ └── vrplib.yml ├── .gitignore ├── .pre-commit-config.yaml ├── LICENSE ├── README.md ├── poetry.lock ├── pyproject.toml ├── tests ├── __init__.py ├── data │ ├── A-n32-k5.sol │ ├── A-n32-k5.vrp │ ├── B-n31-k5.sol │ ├── B-n31-k5.vrp │ ├── C101.sol │ ├── C101.txt │ ├── C1_2_1.sol │ ├── C1_2_1.txt │ ├── CMT6.sol │ ├── CMT6.vrp │ ├── E-n13-k4.sol │ ├── E-n13-k4.vrp │ ├── F-n72-k4.sol │ ├── F-n72-k4.vrp │ ├── Golden_1.sol │ ├── Golden_1.vrp │ ├── Li_21.sol │ ├── Li_21.vrp │ ├── M-n101-k10.sol │ ├── M-n101-k10.vrp │ ├── NoColonSpecification.txt │ ├── ORTEC-n242-k12.sol │ ├── ORTEC-n242-k12.vrp │ ├── P-n16-k8.sol │ ├── P-n16-k8.vrp │ ├── X-n101-k25.sol │ ├── X-n101-k25.vrp │ ├── cvrplib │ │ ├── A-n32-k5.sol │ │ ├── A-n32-k5.vrp │ │ ├── B-n31-k5.sol │ │ ├── B-n31-k5.vrp │ │ ├── C101.sol │ │ ├── C101.txt │ │ ├── C1_2_1.sol │ │ ├── C1_2_1.txt │ │ ├── CMT6.sol │ │ ├── CMT6.vrp │ │ ├── E-n13-k4.sol │ │ ├── E-n13-k4.vrp │ │ ├── F-n72-k4.sol │ │ ├── F-n72-k4.vrp │ │ ├── Golden_1.sol │ │ ├── Golden_1.vrp │ │ ├── Li_21.sol │ │ ├── Li_21.vrp │ │ ├── M-n101-k10.sol │ │ ├── M-n101-k10.vrp │ │ ├── ORTEC-n242-k12.sol │ │ ├── ORTEC-n242-k12.vrp │ │ ├── P-n16-k8.sol │ │ ├── P-n16-k8.vrp │ │ ├── Vrp-Set-Solomon │ │ │ ├── C101.sol │ │ │ ├── C101.txt │ │ │ ├── C102.sol │ │ │ ├── C102.txt │ │ │ ├── C103.sol │ │ │ ├── C103.txt │ │ │ ├── C104.sol │ │ │ ├── C104.txt │ │ │ ├── C105.sol │ │ │ ├── C105.txt │ │ │ ├── C106.sol │ │ │ ├── C106.txt │ │ │ ├── C107.sol │ │ │ ├── C107.txt │ │ │ ├── C108.sol │ │ │ ├── C108.txt │ │ │ ├── C109.sol │ │ │ ├── C109.txt │ │ │ ├── C201.sol │ │ │ ├── C201.txt │ │ │ ├── C202.sol │ │ │ ├── C202.txt │ │ │ ├── C203.sol │ │ │ ├── C203.txt │ │ │ ├── C204.sol │ │ │ ├── C204.txt │ │ │ ├── C205.sol │ │ │ ├── C205.txt │ │ │ ├── C206.sol │ │ │ ├── C206.txt │ │ │ ├── C207.sol │ │ │ ├── C207.txt │ │ │ ├── C208.sol │ │ │ ├── C208.txt │ │ │ ├── R101.sol │ │ │ ├── R101.txt │ │ │ ├── R102.sol │ │ │ ├── R102.txt │ │ │ ├── R103.sol │ │ │ ├── R103.txt │ │ │ ├── R104.sol │ │ │ ├── R104.txt │ │ │ ├── R105.sol │ │ │ ├── R105.txt │ │ │ ├── R106.sol │ │ │ ├── R106.txt │ │ │ ├── R107.sol │ │ │ ├── R107.txt │ │ │ ├── R108.sol │ │ │ ├── R108.txt │ │ │ ├── R109.sol │ │ │ ├── R109.txt │ │ │ ├── R110.sol │ │ │ ├── R110.txt │ │ │ ├── R111.sol │ │ │ ├── R111.txt │ │ │ ├── R112.sol │ │ │ ├── R112.txt │ │ │ ├── R201.sol │ │ │ ├── R201.txt │ │ │ ├── R202.sol │ │ │ ├── R202.txt │ │ │ ├── R203.sol │ │ │ ├── R203.txt │ │ │ ├── R204.sol │ │ │ ├── R204.txt │ │ │ ├── R205.sol │ │ │ ├── R205.txt │ │ │ ├── R206.sol │ │ │ ├── R206.txt │ │ │ ├── R207.sol │ │ │ ├── R207.txt │ │ │ ├── R208.sol │ │ │ ├── R208.txt │ │ │ ├── R209.sol │ │ │ ├── R209.txt │ │ │ ├── R210.sol │ │ │ ├── R210.txt │ │ │ ├── R211.sol │ │ │ ├── R211.txt │ │ │ ├── RC101.sol │ │ │ ├── RC101.txt │ │ │ ├── RC102.sol │ │ │ ├── RC102.txt │ │ │ ├── RC103.sol │ │ │ ├── RC103.txt │ │ │ ├── RC104.sol │ │ │ ├── RC104.txt │ │ │ ├── RC105.sol │ │ │ ├── RC105.txt │ │ │ ├── RC106.sol │ │ │ ├── RC106.txt │ │ │ ├── RC107.sol │ │ │ ├── RC107.txt │ │ │ ├── RC108.sol │ │ │ ├── RC108.txt │ │ │ ├── RC201.sol │ │ │ ├── RC201.txt │ │ │ ├── RC202.sol │ │ │ ├── RC202.txt │ │ │ ├── RC203.sol │ │ │ ├── RC203.txt │ │ │ ├── RC204.sol │ │ │ ├── RC204.txt │ │ │ ├── RC205.sol │ │ │ ├── RC205.txt │ │ │ ├── RC206.sol │ │ │ ├── RC206.txt │ │ │ ├── RC207.sol │ │ │ ├── RC207.txt │ │ │ ├── RC208.sol │ │ │ └── RC208.txt │ │ ├── Vrp-Set-X │ │ │ └── X │ │ │ │ ├── X-n1001-k43.sol │ │ │ │ ├── X-n1001-k43.vrp │ │ │ │ ├── X-n101-k25.sol │ │ │ │ ├── X-n101-k25.vrp │ │ │ │ ├── X-n106-k14.sol │ │ │ │ ├── X-n106-k14.vrp │ │ │ │ ├── X-n110-k13.sol │ │ │ │ ├── X-n110-k13.vrp │ │ │ │ ├── X-n115-k10.sol │ │ │ │ ├── X-n115-k10.vrp │ │ │ │ ├── X-n120-k6.sol │ │ │ │ ├── X-n120-k6.vrp │ │ │ │ ├── X-n125-k30.sol │ │ │ │ ├── X-n125-k30.vrp │ │ │ │ ├── X-n129-k18.sol │ │ │ │ ├── X-n129-k18.vrp │ │ │ │ ├── X-n134-k13.sol │ │ │ │ ├── X-n134-k13.vrp │ │ │ │ ├── X-n139-k10.sol │ │ │ │ ├── X-n139-k10.vrp │ │ │ │ ├── X-n143-k7.sol │ │ │ │ ├── X-n143-k7.vrp │ │ │ │ ├── X-n148-k46.sol │ │ │ │ ├── X-n148-k46.vrp │ │ │ │ ├── X-n153-k22.sol │ │ │ │ ├── X-n153-k22.vrp │ │ │ │ ├── X-n157-k13.sol │ │ │ │ ├── X-n157-k13.vrp │ │ │ │ ├── X-n162-k11.sol │ │ │ │ ├── X-n162-k11.vrp │ │ │ │ ├── X-n167-k10.sol │ │ │ │ ├── X-n167-k10.vrp │ │ │ │ ├── X-n172-k51.sol │ │ │ │ ├── X-n172-k51.vrp │ │ │ │ ├── X-n176-k26.sol │ │ │ │ ├── X-n176-k26.vrp │ │ │ │ ├── X-n181-k23.sol │ │ │ │ ├── X-n181-k23.vrp │ │ │ │ ├── X-n186-k15.sol │ │ │ │ ├── X-n186-k15.vrp │ │ │ │ ├── X-n190-k8.sol │ │ │ │ ├── X-n190-k8.vrp │ │ │ │ ├── X-n195-k51.sol │ │ │ │ ├── X-n195-k51.vrp │ │ │ │ ├── X-n200-k36.sol │ │ │ │ ├── X-n200-k36.vrp │ │ │ │ ├── X-n204-k19.sol │ │ │ │ ├── X-n204-k19.vrp │ │ │ │ ├── X-n209-k16.sol │ │ │ │ ├── X-n209-k16.vrp │ │ │ │ ├── X-n214-k11.sol │ │ │ │ ├── X-n214-k11.vrp │ │ │ │ ├── X-n219-k73.sol │ │ │ │ ├── X-n219-k73.vrp │ │ │ │ ├── X-n223-k34.sol │ │ │ │ ├── X-n223-k34.vrp │ │ │ │ ├── X-n228-k23.sol │ │ │ │ ├── X-n228-k23.vrp │ │ │ │ ├── X-n233-k16.sol │ │ │ │ ├── X-n233-k16.vrp │ │ │ │ ├── X-n237-k14.sol │ │ │ │ ├── X-n237-k14.vrp │ │ │ │ ├── X-n242-k48.sol │ │ │ │ ├── X-n242-k48.vrp │ │ │ │ ├── X-n247-k50.sol │ │ │ │ ├── X-n247-k50.vrp │ │ │ │ ├── X-n251-k28.sol │ │ │ │ ├── X-n251-k28.vrp │ │ │ │ ├── X-n256-k16.sol │ │ │ │ ├── X-n256-k16.vrp │ │ │ │ ├── X-n261-k13.sol │ │ │ │ ├── X-n261-k13.vrp │ │ │ │ ├── X-n266-k58.sol │ │ │ │ ├── X-n266-k58.vrp │ │ │ │ ├── X-n270-k35.sol │ │ │ │ ├── X-n270-k35.vrp │ │ │ │ ├── X-n275-k28.sol │ │ │ │ ├── X-n275-k28.vrp │ │ │ │ ├── X-n280-k17.sol │ │ │ │ ├── X-n280-k17.vrp │ │ │ │ ├── X-n284-k15.sol │ │ │ │ ├── X-n284-k15.vrp │ │ │ │ ├── X-n289-k60.sol │ │ │ │ ├── X-n289-k60.vrp │ │ │ │ ├── X-n294-k50.sol │ │ │ │ ├── X-n294-k50.vrp │ │ │ │ ├── X-n298-k31.sol │ │ │ │ ├── X-n298-k31.vrp │ │ │ │ ├── X-n303-k21.sol │ │ │ │ ├── X-n303-k21.vrp │ │ │ │ ├── X-n308-k13.sol │ │ │ │ ├── X-n308-k13.vrp │ │ │ │ ├── X-n313-k71.sol │ │ │ │ ├── X-n313-k71.vrp │ │ │ │ ├── X-n317-k53.sol │ │ │ │ ├── X-n317-k53.vrp │ │ │ │ ├── X-n322-k28.sol │ │ │ │ ├── X-n322-k28.vrp │ │ │ │ ├── X-n327-k20.sol │ │ │ │ ├── X-n327-k20.vrp │ │ │ │ ├── X-n331-k15.sol │ │ │ │ ├── X-n331-k15.vrp │ │ │ │ ├── X-n336-k84.sol │ │ │ │ ├── X-n336-k84.vrp │ │ │ │ ├── X-n344-k43.sol │ │ │ │ ├── X-n344-k43.vrp │ │ │ │ ├── X-n351-k40.sol │ │ │ │ ├── X-n351-k40.vrp │ │ │ │ ├── X-n359-k29.sol │ │ │ │ ├── X-n359-k29.vrp │ │ │ │ ├── X-n367-k17.sol │ │ │ │ ├── X-n367-k17.vrp │ │ │ │ ├── X-n376-k94.sol │ │ │ │ ├── X-n376-k94.vrp │ │ │ │ ├── X-n384-k52.sol │ │ │ │ ├── X-n384-k52.vrp │ │ │ │ ├── X-n393-k38.sol │ │ │ │ ├── X-n393-k38.vrp │ │ │ │ ├── X-n401-k29.sol │ │ │ │ ├── X-n401-k29.vrp │ │ │ │ ├── X-n411-k19.sol │ │ │ │ ├── X-n411-k19.vrp │ │ │ │ ├── X-n420-k130.sol │ │ │ │ ├── X-n420-k130.vrp │ │ │ │ ├── X-n429-k61.sol │ │ │ │ ├── X-n429-k61.vrp │ │ │ │ ├── X-n439-k37.sol │ │ │ │ ├── X-n439-k37.vrp │ │ │ │ ├── X-n449-k29.sol │ │ │ │ ├── X-n449-k29.vrp │ │ │ │ ├── X-n459-k26.sol │ │ │ │ ├── X-n459-k26.vrp │ │ │ │ ├── X-n469-k138.sol │ │ │ │ ├── X-n469-k138.vrp │ │ │ │ ├── X-n480-k70.sol │ │ │ │ ├── X-n480-k70.vrp │ │ │ │ ├── X-n491-k59.sol │ │ │ │ ├── X-n491-k59.vrp │ │ │ │ ├── X-n502-k39.sol │ │ │ │ ├── X-n502-k39.vrp │ │ │ │ ├── X-n513-k21.sol │ │ │ │ ├── X-n513-k21.vrp │ │ │ │ ├── X-n524-k153.sol │ │ │ │ ├── X-n524-k153.vrp │ │ │ │ ├── X-n536-k96.sol │ │ │ │ ├── X-n536-k96.vrp │ │ │ │ ├── X-n548-k50.sol │ │ │ │ ├── X-n548-k50.vrp │ │ │ │ ├── X-n561-k42.sol │ │ │ │ ├── X-n561-k42.vrp │ │ │ │ ├── X-n573-k30.sol │ │ │ │ ├── X-n573-k30.vrp │ │ │ │ ├── X-n586-k159.sol │ │ │ │ ├── X-n586-k159.vrp │ │ │ │ ├── X-n599-k92.sol │ │ │ │ ├── X-n599-k92.vrp │ │ │ │ ├── X-n613-k62.sol │ │ │ │ ├── X-n613-k62.vrp │ │ │ │ ├── X-n627-k43.sol │ │ │ │ ├── X-n627-k43.vrp │ │ │ │ ├── X-n641-k35.sol │ │ │ │ ├── X-n641-k35.vrp │ │ │ │ ├── X-n655-k131.sol │ │ │ │ ├── X-n655-k131.vrp │ │ │ │ ├── X-n670-k130.sol │ │ │ │ ├── X-n670-k130.vrp │ │ │ │ ├── X-n685-k75.sol │ │ │ │ ├── X-n685-k75.vrp │ │ │ │ ├── X-n701-k44.sol │ │ │ │ ├── X-n701-k44.vrp │ │ │ │ ├── X-n716-k35.sol │ │ │ │ ├── X-n716-k35.vrp │ │ │ │ ├── X-n733-k159.sol │ │ │ │ ├── X-n733-k159.vrp │ │ │ │ ├── X-n749-k98.sol │ │ │ │ ├── X-n749-k98.vrp │ │ │ │ ├── X-n766-k71.sol │ │ │ │ ├── X-n766-k71.vrp │ │ │ │ ├── X-n783-k48.sol │ │ │ │ ├── X-n783-k48.vrp │ │ │ │ ├── X-n801-k40.sol │ │ │ │ ├── X-n801-k40.vrp │ │ │ │ ├── X-n819-k171.sol │ │ │ │ ├── X-n819-k171.vrp │ │ │ │ ├── X-n837-k142.sol │ │ │ │ ├── X-n837-k142.vrp │ │ │ │ ├── X-n856-k95.sol │ │ │ │ ├── X-n856-k95.vrp │ │ │ │ ├── X-n876-k59.sol │ │ │ │ ├── X-n876-k59.vrp │ │ │ │ ├── X-n895-k37.sol │ │ │ │ ├── X-n895-k37.vrp │ │ │ │ ├── X-n916-k207.sol │ │ │ │ ├── X-n916-k207.vrp │ │ │ │ ├── X-n936-k151.sol │ │ │ │ ├── X-n936-k151.vrp │ │ │ │ ├── X-n957-k87.sol │ │ │ │ ├── X-n957-k87.vrp │ │ │ │ ├── X-n979-k58.sol │ │ │ │ └── X-n979-k58.vrp │ │ ├── X-n101-k25.sol │ │ ├── X-n101-k25.vrp │ │ ├── tai75a.sol │ │ └── tai75a.vrp │ ├── empty.txt │ ├── euro-neurips │ │ └── ORTEC-VRPTW-ASYM-00c5356f-d1-n258-k12.txt │ ├── lkh-3 │ │ ├── CVRP │ │ │ ├── INSTANCES │ │ │ │ ├── A-n32-k5.vrp │ │ │ │ ├── B-n31-k5.vrp │ │ │ │ ├── Bre-1.vrp │ │ │ │ ├── CMT1.vrp │ │ │ │ ├── P-n16-k8.vrp │ │ │ │ ├── R-E016-03m.vrp │ │ │ │ ├── S-E016-03m.vrp │ │ │ │ ├── U-A-n32-k5.vrp │ │ │ │ └── att-n48-k4.vrp │ │ │ └── SOLUTIONS │ │ │ │ ├── X-n1001-k43.72403.sol │ │ │ │ ├── X-n524-k153.154593.sol │ │ │ │ ├── X-n573-k30.50718.sol │ │ │ │ ├── X-n599-k92.108489.sol │ │ │ │ ├── X-n819-k171.158265.sol │ │ │ │ ├── X-n837-k142.193810.sol │ │ │ │ ├── X-n856-k95.89002.sol │ │ │ │ ├── X-n936-k151.132923.sol │ │ │ │ └── X-n957-k87.85478.sol │ │ ├── CVRPTW │ │ │ └── INSTANCES │ │ │ │ ├── C101.100.10.vrptw │ │ │ │ ├── C101.25.3.vrptw │ │ │ │ ├── C101.50.5.vrptw │ │ │ │ ├── C102.100.10.vrptw │ │ │ │ ├── C1_10_1.1000.100.vrptw │ │ │ │ ├── C1_2_1.200.20.vrptw │ │ │ │ ├── C1_4_1.400.40.vrptw │ │ │ │ ├── C1_6_1.600.60.vrptw │ │ │ │ └── C1_8_1.800.80.vrptw │ │ ├── DCVRP │ │ │ └── INSTANCES │ │ │ │ └── D022-04g.vrp │ │ ├── VRPBTW │ │ │ └── INSTANCES │ │ │ │ └── BHR101A.vrpbtw │ │ └── VRPSPDTW │ │ │ └── INSTANCES │ │ │ └── cdp101.vrpspdtw │ ├── tai75a.sol │ └── tai75a.vrp ├── download │ ├── __init__.py │ ├── test_download_instance.py │ ├── test_download_solution.py │ ├── test_download_utils.py │ └── test_list_names.py ├── parse │ ├── __init__.py │ ├── test_parse_distances.py │ ├── test_parse_solomon.py │ ├── test_parse_solution.py │ ├── test_parse_utils.py │ └── test_parse_vrplib.py ├── read │ ├── __init__.py │ ├── test_read_instance.py │ └── test_read_solution.py ├── utils.py └── write │ ├── __init__.py │ ├── test_write_instance.py │ └── test_write_solution.py └── vrplib ├── __init__.py ├── download ├── __init__.py ├── constants.py ├── download_instance.py ├── download_solution.py ├── download_utils.py ├── instance_data.csv └── list_names.py ├── parse ├── __init__.py ├── distances │ └── __init__.py ├── parse_distances.py ├── parse_solomon.py ├── parse_solution.py ├── parse_utils.py └── parse_vrplib.py ├── read ├── __init__.py ├── read_instance.py └── read_solution.py └── write ├── __init__.py ├── write_instance.py └── write_solution.py /.github/workflows/vrplib.yml: -------------------------------------------------------------------------------- 1 | name: VRPLIB 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | release: 9 | types: [created] 10 | 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | strategy: 16 | matrix: 17 | python-version: [ '3.9', '3.10', '3.11', '3.12' ] 18 | steps: 19 | - uses: actions/checkout@v4 20 | - name: Set up Python 21 | uses: actions/setup-python@v5 22 | with: 23 | python-version: ${{ matrix.python-version }} 24 | - name: Update pip and poetry 25 | run: | 26 | python -m pip install --upgrade pip 27 | pip install poetry 28 | - name: Cache Python dependencies 29 | uses: actions/cache@v4 30 | id: cache-python 31 | with: 32 | path: ~/.cache/pypoetry 33 | key: python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }} 34 | - name: Install Python dependencies 35 | if: steps.cache-python.outputs.cache-hit != 'true' 36 | run: poetry install 37 | - name: Cache pre-commit 38 | uses: actions/cache@v4 39 | id: cache-pre-commit 40 | with: 41 | path: ~/.cache/pre-commit/ 42 | key: pre-commit-${{ env.pythonLocation }}-${{ hashFiles('.pre-commit-config.yaml') }} 43 | - name: Install pre-commit 44 | if: steps.cache-pre-commit.outputs.cache-hit != 'true' 45 | run: poetry run pre-commit install --install-hooks 46 | - name: Run pre-commit 47 | run: poetry run pre-commit run --all-files 48 | - name: Run pytest 49 | run: poetry run pytest 50 | - uses: codecov/codecov-action@v3 51 | env: 52 | CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 53 | 54 | deploy: 55 | needs: build 56 | if: github.event_name == 'release' && github.event.action == 'created' 57 | runs-on: ubuntu-latest 58 | steps: 59 | - uses: actions/checkout@v4 60 | - name: Set up Python 61 | uses: actions/setup-python@v5 62 | with: 63 | python-version: 3.9 64 | - name: Install dependencies 65 | run: | 66 | python -m pip install --upgrade pip 67 | pip install poetry 68 | - name: Deploy to PyPI 69 | run: | 70 | poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }} 71 | poetry build 72 | poetry publish 73 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | fail_fast: true 2 | 3 | repos: 4 | - repo: https://github.com/pre-commit/pre-commit-hooks 5 | rev: v4.4.0 6 | hooks: 7 | - id: debug-statements 8 | id: trailing-whitespace 9 | id: end-of-file-fixer 10 | 11 | - repo: https://github.com/psf/black 12 | rev: 23.3.0 13 | hooks: 14 | - id: black 15 | 16 | - repo: https://github.com/charliermarsh/ruff-pre-commit 17 | rev: 'v0.0.261' 18 | hooks: 19 | - id: ruff 20 | args: [--fix] 21 | 22 | - repo: https://github.com/pre-commit/mirrors-mypy 23 | rev: v1.2.0 24 | hooks: 25 | - id: mypy 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Leon Lan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "vrplib" 3 | version = "1.5.1" 4 | description = "Python library for reading and writing VRP instances." 5 | authors = ["Leon Lan "] 6 | license = "MIT" 7 | readme = "README.md" 8 | repository = "https://github.com/PyVRP/VRPLIB" 9 | 10 | [tool.poetry.dependencies] 11 | python = "^3.9" 12 | numpy = ">=1.19.3" 13 | 14 | [tool.poetry.group.dev.dependencies] 15 | pytest = "^7.1.2" 16 | codecov = "^2.1.13" 17 | pytest-cov = "^4.0.0" 18 | pre-commit = "^2.19.0" 19 | 20 | [build-system] 21 | requires = ["poetry-core>=1.0.0"] 22 | build-backend = "poetry.core.masonry.api" 23 | 24 | [tool.black] 25 | line-length = 79 26 | 27 | [tool.mypy] 28 | ignore_missing_imports = true 29 | 30 | [tool.ruff] 31 | select = [ 32 | "E", # pycodestyle errors 33 | "W", # pycodestyle warnings 34 | "F", # pyflakes 35 | "I", # isort 36 | "C", # flake8-comprehensions 37 | ] 38 | ignore = [ 39 | "E501", # line too long, handled by black 40 | "C901", # too complex 41 | ] 42 | 43 | [tool.ruff.per-file-ignores] 44 | "__init__.py" = ["F401"] 45 | 46 | [tool.pytest.ini_options] 47 | addopts = "--cov=. --cov-report=xml" 48 | pythonpath = [".", "vrplib"] 49 | 50 | [tool.coverage.run] 51 | omit = [ 52 | "tests/*", 53 | ] 54 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyVRP/VRPLIB/8d6e015788359b610f83abafb7238577f21e9a8d/tests/__init__.py -------------------------------------------------------------------------------- /tests/data/A-n32-k5.sol: -------------------------------------------------------------------------------- 1 | Route #1: 21 31 19 17 13 7 26 2 | Route #2: 12 1 16 30 3 | Route #3: 27 24 4 | Route #4: 29 18 8 9 22 15 10 25 5 20 5 | Route #5: 14 28 11 4 23 3 2 6 6 | Cost 784 7 | -------------------------------------------------------------------------------- /tests/data/A-n32-k5.vrp: -------------------------------------------------------------------------------- 1 | NAME : A-n32-k5 2 | COMMENT : (Augerat et al, No of trucks: 5, Optimal value: 784) 3 | TYPE : CVRP 4 | DIMENSION : 32 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 100 7 | NODE_COORD_SECTION 8 | 1 82 76 9 | 2 96 44 10 | 3 50 5 11 | 4 49 8 12 | 5 13 7 13 | 6 29 89 14 | 7 58 30 15 | 8 84 39 16 | 9 14 24 17 | 10 2 39 18 | 11 3 82 19 | 12 5 10 20 | 13 98 52 21 | 14 84 25 22 | 15 61 59 23 | 16 1 65 24 | 17 88 51 25 | 18 91 2 26 | 19 19 32 27 | 20 93 3 28 | 21 50 93 29 | 22 98 14 30 | 23 5 42 31 | 24 42 9 32 | 25 61 62 33 | 26 9 97 34 | 27 80 55 35 | 28 57 69 36 | 29 23 15 37 | 30 20 70 38 | 31 85 60 39 | 32 98 5 40 | DEMAND_SECTION 41 | 1 0 42 | 2 19 43 | 3 21 44 | 4 6 45 | 5 19 46 | 6 7 47 | 7 12 48 | 8 16 49 | 9 6 50 | 10 16 51 | 11 8 52 | 12 14 53 | 13 21 54 | 14 16 55 | 15 3 56 | 16 22 57 | 17 18 58 | 18 19 59 | 19 1 60 | 20 24 61 | 21 8 62 | 22 12 63 | 23 4 64 | 24 8 65 | 25 24 66 | 26 24 67 | 27 2 68 | 28 20 69 | 29 15 70 | 30 2 71 | 31 14 72 | 32 9 73 | DEPOT_SECTION 74 | 1 75 | -1 76 | EOF 77 | -------------------------------------------------------------------------------- /tests/data/B-n31-k5.sol: -------------------------------------------------------------------------------- 1 | Route #1: 30 23 8 12 28 26 2 | Route #2: 21 16 18 25 5 4 29 3 | Route #3: 7 17 13 6 9 22 4 | Route #4: 20 27 10 2 5 | Route #5: 14 15 11 24 19 1 3 6 | Cost 672 7 | -------------------------------------------------------------------------------- /tests/data/B-n31-k5.vrp: -------------------------------------------------------------------------------- 1 | NAME : B-n31-k5 2 | COMMENT : (Augerat et al, No of trucks: 5, Optimal value: 672) 3 | TYPE : CVRP 4 | DIMENSION : 31 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 100 7 | NODE_COORD_SECTION 8 | 1 17 76 9 | 2 24 6 10 | 3 96 29 11 | 4 14 19 12 | 5 14 32 13 | 6 0 34 14 | 7 16 22 15 | 8 20 26 16 | 9 22 28 17 | 10 17 23 18 | 11 98 30 19 | 12 30 8 20 | 13 23 27 21 | 14 19 23 22 | 15 34 7 23 | 16 31 7 24 | 17 0 37 25 | 18 19 23 26 | 19 0 36 27 | 20 26 7 28 | 21 98 32 29 | 22 5 40 30 | 23 17 26 31 | 24 21 26 32 | 25 28 8 33 | 26 1 35 34 | 27 27 28 35 | 28 99 30 36 | 29 26 28 37 | 30 17 29 38 | 31 20 26 39 | DEMAND_SECTION 40 | 1 0 41 | 2 25 42 | 3 3 43 | 4 13 44 | 5 17 45 | 6 16 46 | 7 9 47 | 8 22 48 | 9 10 49 | 10 16 50 | 11 8 51 | 12 3 52 | 13 16 53 | 14 16 54 | 15 10 55 | 16 24 56 | 17 16 57 | 18 15 58 | 19 14 59 | 20 5 60 | 21 12 61 | 22 2 62 | 23 18 63 | 24 20 64 | 25 15 65 | 26 8 66 | 27 22 67 | 28 15 68 | 29 10 69 | 30 13 70 | 31 19 71 | DEPOT_SECTION 72 | 1 73 | -1 74 | EOF 75 | -------------------------------------------------------------------------------- /tests/data/C101.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/C1_2_1.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 41 85 80 31 25 172 77 110 162 2 | Route #2: 21 23 182 75 163 194 145 195 52 92 3 | Route #3: 30 120 19 192 196 97 14 96 130 28 74 149 4 | Route #4: 32 171 65 86 115 94 51 174 136 189 5 | Route #5: 45 178 27 173 154 24 61 100 64 179 109 6 | Route #6: 57 118 83 143 176 36 33 121 165 188 108 7 | Route #7: 60 82 180 84 191 125 4 72 17 8 | Route #8: 62 131 44 102 146 68 76 9 | Route #9: 73 116 12 129 11 6 122 139 10 | Route #10: 93 55 135 58 184 199 37 81 138 11 | Route #11: 101 144 119 166 35 126 71 9 1 99 53 12 | Route #12: 113 155 78 175 13 43 2 90 67 39 107 13 | Route #13: 114 159 38 150 22 151 16 140 187 142 111 63 56 14 | Route #14: 133 48 26 152 40 153 169 89 105 15 59 198 15 | Route #15: 148 103 197 124 141 69 200 16 | Route #16: 161 104 18 54 185 132 7 181 117 49 17 | Route #17: 164 66 147 160 47 91 70 18 | Route #18: 170 134 50 156 112 168 79 29 87 42 123 19 | Route #19: 177 3 88 8 186 127 98 157 137 183 20 | Route #20: 190 5 10 193 46 128 106 167 34 95 158 21 | Cost 2698.6 22 | -------------------------------------------------------------------------------- /tests/data/CMT6.sol: -------------------------------------------------------------------------------- 1 | Route #1: 32 11 16 29 21 50 34 30 9 38 2 | Route #2: 1 22 31 28 3 36 35 20 2 3 | Route #3: 14 25 13 41 40 19 42 17 4 | Route #4: 12 37 44 15 45 33 39 10 49 5 5 | Route #5: 27 48 8 26 7 43 24 23 6 6 | Route #6: 18 4 47 46 7 | Cost 555.43 8 | -------------------------------------------------------------------------------- /tests/data/CMT6.vrp: -------------------------------------------------------------------------------- 1 | NAME : CMT6 2 | COMMENT : 555.43 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 160 7 | DISTANCE : 200.00000 8 | SERVICE_TIME : 10.0 9 | NODE_COORD_SECTION 10 | 1 30.00000 40.00000 11 | 2 37.00000 52.00000 12 | 3 49.00000 49.00000 13 | 4 52.00000 64.00000 14 | 5 20.00000 26.00000 15 | 6 40.00000 30.00000 16 | 7 21.00000 47.00000 17 | 8 17.00000 63.00000 18 | 9 31.00000 62.00000 19 | 10 52.00000 33.00000 20 | 11 51.00000 21.00000 21 | 12 42.00000 41.00000 22 | 13 31.00000 32.00000 23 | 14 5.00000 25.00000 24 | 15 12.00000 42.00000 25 | 16 36.00000 16.00000 26 | 17 52.00000 41.00000 27 | 18 27.00000 23.00000 28 | 19 17.00000 33.00000 29 | 20 13.00000 13.00000 30 | 21 57.00000 58.00000 31 | 22 62.00000 42.00000 32 | 23 42.00000 57.00000 33 | 24 16.00000 57.00000 34 | 25 8.00000 52.00000 35 | 26 7.00000 38.00000 36 | 27 27.00000 68.00000 37 | 28 30.00000 48.00000 38 | 29 43.00000 67.00000 39 | 30 58.00000 48.00000 40 | 31 58.00000 27.00000 41 | 32 37.00000 69.00000 42 | 33 38.00000 46.00000 43 | 34 46.00000 10.00000 44 | 35 61.00000 33.00000 45 | 36 62.00000 63.00000 46 | 37 63.00000 69.00000 47 | 38 32.00000 22.00000 48 | 39 45.00000 35.00000 49 | 40 59.00000 15.00000 50 | 41 5.00000 6.00000 51 | 42 10.00000 17.00000 52 | 43 21.00000 10.00000 53 | 44 5.00000 64.00000 54 | 45 30.00000 15.00000 55 | 46 39.00000 10.00000 56 | 47 32.00000 39.00000 57 | 48 25.00000 32.00000 58 | 49 25.00000 55.00000 59 | 50 48.00000 28.00000 60 | 51 56.00000 37.00000 61 | DEMAND_SECTION 62 | 1 0 63 | 2 7 64 | 3 30 65 | 4 16 66 | 5 9 67 | 6 21 68 | 7 15 69 | 8 19 70 | 9 23 71 | 10 11 72 | 11 5 73 | 12 19 74 | 13 29 75 | 14 23 76 | 15 21 77 | 16 10 78 | 17 15 79 | 18 3 80 | 19 41 81 | 20 9 82 | 21 28 83 | 22 8 84 | 23 8 85 | 24 16 86 | 25 10 87 | 26 28 88 | 27 7 89 | 28 15 90 | 29 14 91 | 30 6 92 | 31 19 93 | 32 11 94 | 33 12 95 | 34 23 96 | 35 26 97 | 36 17 98 | 37 6 99 | 38 9 100 | 39 15 101 | 40 14 102 | 41 7 103 | 42 27 104 | 43 13 105 | 44 11 106 | 45 16 107 | 46 10 108 | 47 5 109 | 48 25 110 | 49 17 111 | 50 18 112 | 51 10 113 | DEPOT_SECTION 114 | 1 115 | -1 116 | EOF 117 | -------------------------------------------------------------------------------- /tests/data/E-n13-k4.sol: -------------------------------------------------------------------------------- 1 | Route #1: 1 2 | Route #2: 8 5 3 3 | Route #3: 9 12 10 6 4 | Route #4: 11 4 7 2 5 | Cost 247 6 | -------------------------------------------------------------------------------- /tests/data/E-n13-k4.vrp: -------------------------------------------------------------------------------- 1 | NAME : E-n13-k4 2 | COMMENT : (Eilon et al, Min no of trucks: 4, Optimal value: 247) 3 | TYPE : CVRP 4 | DIMENSION : 13 5 | EDGE_WEIGHT_TYPE : EXPLICIT 6 | EDGE_WEIGHT_FORMAT: LOWER_ROW 7 | DISPLAY_DATA_TYPE: NO_DISPLAY 8 | CAPACITY : 6000 9 | EDGE_WEIGHT_SECTION 10 | 9 14 21 23 22 25 32 36 38 42 11 | 50 52 5 12 22 21 24 31 35 37 12 | 41 49 51 7 17 16 23 26 30 36 13 | 36 44 46 10 21 30 27 37 43 31 14 | 37 39 19 28 25 35 41 29 31 29 15 | 9 10 16 22 20 28 30 7 11 13 16 | 17 25 27 10 16 10 18 20 6 6 17 | 14 16 12 12 20 8 10 10 18 | DEMAND_SECTION 19 | 1 0 20 | 2 1200 21 | 3 1700 22 | 4 1500 23 | 5 1400 24 | 6 1700 25 | 7 1400 26 | 8 1200 27 | 9 1900 28 | 10 1800 29 | 11 1600 30 | 12 1700 31 | 13 1100 32 | DEPOT_SECTION 33 | 1 34 | -1 35 | EOF 36 | -------------------------------------------------------------------------------- /tests/data/F-n72-k4.sol: -------------------------------------------------------------------------------- 1 | Route #1: 54 55 41 57 56 39 68 40 38 37 69 67 66 65 64 62 63 59 58 61 60 34 31 32 2 | Route #2: 36 11 1 15 14 3 | Route #3: 35 33 18 19 2 17 13 16 12 71 6 10 8 7 9 4 3 5 4 | Route #4: 23 24 26 25 49 70 51 50 47 48 52 45 53 43 44 46 42 27 28 22 21 30 29 20 5 | Cost 237 6 | -------------------------------------------------------------------------------- /tests/data/F-n72-k4.vrp: -------------------------------------------------------------------------------- 1 | NAME : F-n72-k4 2 | COMMENT : (Fisher: problem 11, No of trucks: 4, Optimal value: 237) 3 | TYPE : CVRP 4 | DIMENSION : 72 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 30000 7 | NODE_COORD_SECTION 8 | 1 0 0 9 | 2 -12 -6 10 | 3 -15 -5 11 | 4 -1 -18 12 | 5 2 -21 13 | 6 -1 -17 14 | 7 -9 -12 15 | 8 2 -22 16 | 9 1 -21 17 | 10 7 -25 18 | 11 -7 -17 19 | 12 -11 -5 20 | 13 -14 -9 21 | 14 -14 -8 22 | 15 -11 -2 23 | 16 -14 -5 24 | 17 -15 -9 25 | 18 -15 -8 26 | 19 -9 -6 27 | 20 -14 -4 28 | 21 3 6 29 | 22 5 9 30 | 23 5 10 31 | 24 2 8 32 | 25 1 9 33 | 26 1 10 34 | 27 2 9 35 | 28 6 14 36 | 29 5 12 37 | 30 3 7 38 | 31 4 8 39 | 32 -6 1 40 | 33 -6 2 41 | 34 -8 -2 42 | 35 -7 2 43 | 36 -7 -3 44 | 37 -7 -2 45 | 38 -20 12 46 | 39 -20 13 47 | 40 -12 10 48 | 41 -20 15 49 | 42 -6 8 50 | 43 2 21 51 | 44 2 22 52 | 45 1 21 53 | 46 -1 24 54 | 47 1 22 55 | 48 -2 20 56 | 49 -2 21 57 | 50 -4 18 58 | 51 -4 19 59 | 52 -5 18 60 | 53 -5 26 61 | 54 1 23 62 | 55 -6 5 63 | 56 -6 6 64 | 57 -9 6 65 | 58 -9 7 66 | 59 -12 5 67 | 60 -12 6 68 | 61 -11 3 69 | 62 -11 4 70 | 63 -14 4 71 | 64 -14 5 72 | 65 -15 4 73 | 66 -15 5 74 | 67 -16 7 75 | 68 -16 8 76 | 69 -15 10 77 | 70 -20 10 78 | 71 -5 19 79 | 72 -9 -11 80 | DEMAND_SECTION 81 | 1 0 82 | 2 7063 83 | 3 51 84 | 4 23 85 | 5 3074 86 | 6 349 87 | 7 1047 88 | 8 698 89 | 9 3001 90 | 10 31 91 | 11 1135 92 | 12 21611 93 | 13 57 94 | 14 51 95 | 15 551 96 | 16 179 97 | 17 6 98 | 18 528 99 | 19 2832 100 | 20 1514 101 | 21 889 102 | 22 2554 103 | 23 1215 104 | 24 1810 105 | 25 3050 106 | 26 4 107 | 27 1563 108 | 28 741 109 | 29 1532 110 | 30 709 111 | 31 1022 112 | 32 883 113 | 33 1689 114 | 34 10235 115 | 35 29 116 | 36 2894 117 | 37 450 118 | 38 411 119 | 39 207 120 | 40 496 121 | 41 1021 122 | 42 117 123 | 43 46 124 | 44 8 125 | 45 18 126 | 46 561 127 | 47 1877 128 | 48 3542 129 | 49 801 130 | 50 967 131 | 51 62 132 | 52 1366 133 | 53 230 134 | 54 4 135 | 55 12 136 | 56 145 137 | 57 7149 138 | 58 2250 139 | 59 383 140 | 60 134 141 | 61 1947 142 | 62 182 143 | 63 3934 144 | 64 468 145 | 65 18 146 | 66 133 147 | 67 2340 148 | 68 754 149 | 69 1264 150 | 70 806 151 | 71 3665 152 | 72 2452 153 | DEPOT_SECTION 154 | 1 155 | -1 156 | EOF 157 | -------------------------------------------------------------------------------- /tests/data/Golden_1.sol: -------------------------------------------------------------------------------- 1 | Route #1: 26 25 65 66 67 68 69 109 108 148 149 150 151 191 190 189 188 187 186 185 145 146 147 107 106 105 104 64 24 2 | Route #2: 27 28 29 30 70 110 111 112 152 192 232 231 230 229 228 227 226 225 224 184 144 143 103 63 23 3 | Route #3: 33 34 35 75 74 114 154 194 195 196 197 198 238 237 236 235 234 233 193 153 113 73 72 71 31 32 4 | Route #4: 37 36 76 77 117 116 115 155 156 157 158 159 160 121 122 82 81 120 119 118 78 79 80 41 1 40 39 38 5 | Route #5: 3 4 5 6 46 45 44 84 124 164 204 203 202 201 240 239 199 200 161 162 163 123 83 43 42 2 6 | Route #6: 10 9 8 7 47 87 86 85 125 165 205 206 207 208 209 210 211 212 213 173 133 93 94 54 14 15 7 | Route #7: 13 53 52 92 91 90 130 131 132 172 171 170 169 168 167 166 126 127 128 129 89 88 48 49 50 51 11 12 8 | Route #8: 17 57 56 96 97 137 136 135 175 176 177 178 179 180 181 141 140 139 138 98 99 100 101 61 60 59 58 18 19 20 21 9 | Route #9: 22 62 102 142 182 183 223 222 221 220 219 218 217 216 215 214 174 134 95 55 16 10 | Cost 5623.47 11 | -------------------------------------------------------------------------------- /tests/data/Li_21.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 21 61 101 102 142 141 181 182 183 223 263 303 343 383 423 463 503 543 542 502 462 422 382 342 302 262 222 221 261 301 341 381 421 461 501 541 540 500 460 420 380 340 300 260 220 180 140 100 60 59 19 2 | Route #2: 25 26 66 65 105 106 146 145 185 186 187 227 267 307 347 387 427 467 507 547 546 506 466 426 386 346 306 266 226 225 265 305 345 385 425 465 505 545 544 504 464 424 384 344 304 264 224 184 144 143 103 104 64 63 62 22 23 24 3 | Route #3: 27 67 107 147 148 188 228 268 308 348 388 428 468 508 548 549 509 469 429 389 349 309 269 229 230 270 310 350 390 430 470 510 550 551 511 471 431 391 351 311 271 231 191 190 189 149 150 151 152 112 111 110 109 108 68 69 70 30 29 28 4 | Route #4: 34 33 32 31 71 72 73 74 114 113 153 193 192 232 272 312 352 392 432 472 512 552 553 513 473 433 393 353 313 273 233 234 274 314 354 394 434 474 514 554 555 515 475 435 395 355 315 275 235 195 194 154 155 115 75 35 5 | Route #5: 38 39 40 80 79 78 118 119 159 199 239 279 319 359 399 439 479 519 559 558 518 478 438 398 358 318 278 238 237 277 317 357 397 437 477 517 557 556 516 476 436 396 356 316 276 236 196 197 198 158 157 156 116 117 77 76 36 37 6 | Route #6: 2 1 41 81 120 160 200 240 280 320 360 400 440 480 520 560 521 481 441 401 361 321 281 241 201 202 242 282 322 362 402 442 482 522 523 483 443 403 363 323 283 243 203 163 162 161 121 122 82 42 43 3 7 | Route #7: 5 6 7 47 46 45 85 86 87 127 126 125 165 166 167 207 247 287 327 367 407 447 487 527 526 486 446 406 366 326 286 246 206 205 245 285 325 365 405 445 485 525 524 484 444 404 364 324 284 244 204 164 124 123 83 84 44 4 8 | Route #8: 9 10 11 51 91 92 132 131 130 129 169 170 171 211 251 291 331 371 411 451 491 531 530 490 450 410 370 330 290 250 210 209 249 289 329 369 409 449 489 529 528 488 448 408 368 328 288 248 208 168 128 88 89 90 50 49 48 8 9 | Route #9: 14 54 94 134 174 175 215 255 295 335 375 415 455 495 535 534 494 454 414 374 334 294 254 214 213 253 293 333 373 413 453 493 533 532 492 452 412 372 332 292 252 212 172 173 133 93 53 52 12 13 10 | Route #10: 17 16 15 55 56 57 97 96 95 135 136 137 138 178 177 176 216 256 296 336 376 416 456 496 536 537 497 457 417 377 337 297 257 217 218 258 298 338 378 418 458 498 538 539 499 459 419 379 339 299 259 219 179 139 99 98 58 18 11 | Cost 16212.82548 12 | -------------------------------------------------------------------------------- /tests/data/M-n101-k10.sol: -------------------------------------------------------------------------------- 1 | Route #1: 10 12 14 16 15 19 18 17 13 2 | Route #2: 43 42 41 40 44 45 46 48 51 50 52 49 47 3 | Route #3: 98 96 95 94 92 93 97 100 99 4 | Route #4: 91 89 88 85 84 82 83 86 87 90 5 | Route #5: 75 1 2 4 6 9 11 8 7 3 5 6 | Route #6: 69 68 64 61 72 80 79 77 73 70 71 76 78 81 7 | Route #7: 59 60 58 56 53 54 55 57 8 | Route #8: 21 22 23 26 28 30 29 27 25 24 20 9 | Route #9: 32 33 31 35 37 38 39 36 34 10 | Route #10: 67 66 62 74 63 65 11 | Cost 820 12 | -------------------------------------------------------------------------------- /tests/data/NoColonSpecification.txt: -------------------------------------------------------------------------------- 1 | NAME : Invalid VRPLIB 2 | COMMENT There's no colon on this line. 3 | NODE_COORD_SECTION 4 | 1 365 689 5 | DEMAND_SECTION 6 | 1 0 7 | DEPOT_SECTION 8 | 1 9 | -1 10 | EOF 11 | -------------------------------------------------------------------------------- /tests/data/ORTEC-n242-k12.sol: -------------------------------------------------------------------------------- 1 | Route #1: 187 161 162 143 135 95 67 109 115 206 175 169 172 174 181 176 215 2 | Route #2: 26 230 68 64 178 182 183 184 214 211 231 207 158 159 136 108 23 60 72 30 3 | Route #3: 2 91 132 121 125 47 74 99 226 110 222 12 186 196 189 221 228 137 218 4 | Route #4: 139 171 128 157 142 97 92 201 63 7 46 83 122 44 229 77 177 112 197 5 | Route #5: 57 188 118 205 131 191 25 212 203 209 134 193 195 17 208 39 8 14 35 66 6 | Route #6: 234 232 81 179 185 225 223 233 240 19 27 21 61 65 114 33 198 238 160 129 146 7 | Route #7: 204 37 73 93 87 89 94 101 106 100 105 103 107 150 151 130 123 138 111 127 88 124 8 | Route #8: 29 36 86 48 199 126 24 4 173 5 117 104 220 78 84 34 56 38 10 31 210 96 90 9 | Route #9: 190 165 141 144 168 167 153 194 154 156 217 149 147 133 170 120 152 155 148 10 | Route #10: 119 20 200 28 98 85 51 50 52 58 59 102 70 69 224 80 237 76 75 145 40 11 | Route #11: 202 192 22 216 180 163 164 32 140 18 6 166 15 16 13 213 235 236 241 12 | Route #12: 82 227 3 41 49 55 11 219 113 42 71 1 45 43 79 239 116 9 54 53 62 13 | Cost 123750 14 | -------------------------------------------------------------------------------- /tests/data/P-n16-k8.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 2 | Route #2: 6 3 | Route #3: 8 4 | Route #4: 15 12 10 5 | Route #5: 14 5 6 | Route #6: 13 9 7 7 | Route #7: 11 4 8 | Route #8: 3 1 9 | Cost 450 10 | -------------------------------------------------------------------------------- /tests/data/P-n16-k8.vrp: -------------------------------------------------------------------------------- 1 | NAME : P-n16-k8 2 | COMMENT : (Augerat et al, No of trucks: 8, Optimal value: 450) 3 | TYPE : CVRP 4 | DIMENSION : 16 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 35 7 | NODE_COORD_SECTION 8 | 1 30 40 9 | 2 37 52 10 | 3 49 49 11 | 4 52 64 12 | 5 31 62 13 | 6 52 33 14 | 7 42 41 15 | 8 52 41 16 | 9 57 58 17 | 10 62 42 18 | 11 42 57 19 | 12 27 68 20 | 13 43 67 21 | 14 58 48 22 | 15 58 27 23 | 16 37 69 24 | DEMAND_SECTION 25 | 1 0 26 | 2 19 27 | 3 30 28 | 4 16 29 | 5 23 30 | 6 11 31 | 7 31 32 | 8 15 33 | 9 28 34 | 10 8 35 | 11 8 36 | 12 7 37 | 13 14 38 | 14 6 39 | 15 19 40 | 16 11 41 | DEPOT_SECTION 42 | 1 43 | -1 44 | EOF 45 | -------------------------------------------------------------------------------- /tests/data/X-n101-k25.sol: -------------------------------------------------------------------------------- 1 | Route #1: 31 46 35 2 | Route #2: 15 22 41 20 3 | Route #3: 1 70 54 4 | Route #4: 92 9 86 5 | Route #5: 68 90 84 66 6 | Route #6: 76 55 16 69 7 | Route #7: 4 13 74 8 | Route #8: 58 12 5 9 | Route #9: 18 10 39 10 | Route #10: 25 65 78 42 28 11 | Route #11: 7 2 45 43 29 36 72 57 12 | Route #12: 87 37 6 49 14 13 | Route #13: 3 77 63 14 | Route #14: 44 67 88 40 15 | Route #15: 82 60 59 16 | Route #16: 8 17 17 | Route #17: 34 64 96 48 26 47 38 18 | Route #18: 80 94 56 21 19 | Route #19: 71 62 99 98 89 20 | Route #20: 100 61 23 21 | Route #21: 19 97 27 22 | Route #22: 81 51 83 23 | Route #23: 50 91 52 24 | Route #24: 30 85 11 79 25 | Route #25: 75 93 26 | Route #26: 24 95 73 53 33 32 27 | Cost 27591 28 | -------------------------------------------------------------------------------- /tests/data/cvrplib/A-n32-k5.sol: -------------------------------------------------------------------------------- 1 | Route #1: 21 31 19 17 13 7 26 2 | Route #2: 12 1 16 30 3 | Route #3: 27 24 4 | Route #4: 29 18 8 9 22 15 10 25 5 20 5 | Route #5: 14 28 11 4 23 3 2 6 6 | Cost 784 7 | -------------------------------------------------------------------------------- /tests/data/cvrplib/A-n32-k5.vrp: -------------------------------------------------------------------------------- 1 | NAME : A-n32-k5 2 | COMMENT : (Augerat et al, No of trucks: 5, Optimal value: 784) 3 | TYPE : CVRP 4 | DIMENSION : 32 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 100 7 | NODE_COORD_SECTION 8 | 1 82 76 9 | 2 96 44 10 | 3 50 5 11 | 4 49 8 12 | 5 13 7 13 | 6 29 89 14 | 7 58 30 15 | 8 84 39 16 | 9 14 24 17 | 10 2 39 18 | 11 3 82 19 | 12 5 10 20 | 13 98 52 21 | 14 84 25 22 | 15 61 59 23 | 16 1 65 24 | 17 88 51 25 | 18 91 2 26 | 19 19 32 27 | 20 93 3 28 | 21 50 93 29 | 22 98 14 30 | 23 5 42 31 | 24 42 9 32 | 25 61 62 33 | 26 9 97 34 | 27 80 55 35 | 28 57 69 36 | 29 23 15 37 | 30 20 70 38 | 31 85 60 39 | 32 98 5 40 | DEMAND_SECTION 41 | 1 0 42 | 2 19 43 | 3 21 44 | 4 6 45 | 5 19 46 | 6 7 47 | 7 12 48 | 8 16 49 | 9 6 50 | 10 16 51 | 11 8 52 | 12 14 53 | 13 21 54 | 14 16 55 | 15 3 56 | 16 22 57 | 17 18 58 | 18 19 59 | 19 1 60 | 20 24 61 | 21 8 62 | 22 12 63 | 23 4 64 | 24 8 65 | 25 24 66 | 26 24 67 | 27 2 68 | 28 20 69 | 29 15 70 | 30 2 71 | 31 14 72 | 32 9 73 | DEPOT_SECTION 74 | 1 75 | -1 76 | EOF 77 | -------------------------------------------------------------------------------- /tests/data/cvrplib/B-n31-k5.sol: -------------------------------------------------------------------------------- 1 | Route #1: 30 23 8 12 28 26 2 | Route #2: 21 16 18 25 5 4 29 3 | Route #3: 7 17 13 6 9 22 4 | Route #4: 20 27 10 2 5 | Route #5: 14 15 11 24 19 1 3 6 | Cost 672 7 | -------------------------------------------------------------------------------- /tests/data/cvrplib/B-n31-k5.vrp: -------------------------------------------------------------------------------- 1 | NAME : B-n31-k5 2 | COMMENT : (Augerat et al, No of trucks: 5, Optimal value: 672) 3 | TYPE : CVRP 4 | DIMENSION : 31 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 100 7 | NODE_COORD_SECTION 8 | 1 17 76 9 | 2 24 6 10 | 3 96 29 11 | 4 14 19 12 | 5 14 32 13 | 6 0 34 14 | 7 16 22 15 | 8 20 26 16 | 9 22 28 17 | 10 17 23 18 | 11 98 30 19 | 12 30 8 20 | 13 23 27 21 | 14 19 23 22 | 15 34 7 23 | 16 31 7 24 | 17 0 37 25 | 18 19 23 26 | 19 0 36 27 | 20 26 7 28 | 21 98 32 29 | 22 5 40 30 | 23 17 26 31 | 24 21 26 32 | 25 28 8 33 | 26 1 35 34 | 27 27 28 35 | 28 99 30 36 | 29 26 28 37 | 30 17 29 38 | 31 20 26 39 | DEMAND_SECTION 40 | 1 0 41 | 2 25 42 | 3 3 43 | 4 13 44 | 5 17 45 | 6 16 46 | 7 9 47 | 8 22 48 | 9 10 49 | 10 16 50 | 11 8 51 | 12 3 52 | 13 16 53 | 14 16 54 | 15 10 55 | 16 24 56 | 17 16 57 | 18 15 58 | 19 14 59 | 20 5 60 | 21 12 61 | 22 2 62 | 23 18 63 | 24 20 64 | 25 15 65 | 26 8 66 | 27 22 67 | 28 15 68 | 29 10 69 | 30 13 70 | 31 19 71 | DEPOT_SECTION 72 | 1 73 | -1 74 | EOF 75 | -------------------------------------------------------------------------------- /tests/data/cvrplib/C101.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/C1_2_1.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 41 85 80 31 25 172 77 110 162 2 | Route #2: 21 23 182 75 163 194 145 195 52 92 3 | Route #3: 30 120 19 192 196 97 14 96 130 28 74 149 4 | Route #4: 32 171 65 86 115 94 51 174 136 189 5 | Route #5: 45 178 27 173 154 24 61 100 64 179 109 6 | Route #6: 57 118 83 143 176 36 33 121 165 188 108 7 | Route #7: 60 82 180 84 191 125 4 72 17 8 | Route #8: 62 131 44 102 146 68 76 9 | Route #9: 73 116 12 129 11 6 122 139 10 | Route #10: 93 55 135 58 184 199 37 81 138 11 | Route #11: 101 144 119 166 35 126 71 9 1 99 53 12 | Route #12: 113 155 78 175 13 43 2 90 67 39 107 13 | Route #13: 114 159 38 150 22 151 16 140 187 142 111 63 56 14 | Route #14: 133 48 26 152 40 153 169 89 105 15 59 198 15 | Route #15: 148 103 197 124 141 69 200 16 | Route #16: 161 104 18 54 185 132 7 181 117 49 17 | Route #17: 164 66 147 160 47 91 70 18 | Route #18: 170 134 50 156 112 168 79 29 87 42 123 19 | Route #19: 177 3 88 8 186 127 98 157 137 183 20 | Route #20: 190 5 10 193 46 128 106 167 34 95 158 21 | Cost 2698.6 22 | -------------------------------------------------------------------------------- /tests/data/cvrplib/CMT6.sol: -------------------------------------------------------------------------------- 1 | Route #1: 32 11 16 29 21 50 34 30 9 38 2 | Route #2: 1 22 31 28 3 36 35 20 2 3 | Route #3: 14 25 13 41 40 19 42 17 4 | Route #4: 12 37 44 15 45 33 39 10 49 5 5 | Route #5: 27 48 8 26 7 43 24 23 6 6 | Route #6: 18 4 47 46 7 | Cost 555.43 8 | -------------------------------------------------------------------------------- /tests/data/cvrplib/CMT6.vrp: -------------------------------------------------------------------------------- 1 | NAME : CMT6 2 | COMMENT : 555.43 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 160 7 | DISTANCE : 200.00000 8 | SERVICE_TIME : 10.0 9 | NODE_COORD_SECTION 10 | 1 30.00000 40.00000 11 | 2 37.00000 52.00000 12 | 3 49.00000 49.00000 13 | 4 52.00000 64.00000 14 | 5 20.00000 26.00000 15 | 6 40.00000 30.00000 16 | 7 21.00000 47.00000 17 | 8 17.00000 63.00000 18 | 9 31.00000 62.00000 19 | 10 52.00000 33.00000 20 | 11 51.00000 21.00000 21 | 12 42.00000 41.00000 22 | 13 31.00000 32.00000 23 | 14 5.00000 25.00000 24 | 15 12.00000 42.00000 25 | 16 36.00000 16.00000 26 | 17 52.00000 41.00000 27 | 18 27.00000 23.00000 28 | 19 17.00000 33.00000 29 | 20 13.00000 13.00000 30 | 21 57.00000 58.00000 31 | 22 62.00000 42.00000 32 | 23 42.00000 57.00000 33 | 24 16.00000 57.00000 34 | 25 8.00000 52.00000 35 | 26 7.00000 38.00000 36 | 27 27.00000 68.00000 37 | 28 30.00000 48.00000 38 | 29 43.00000 67.00000 39 | 30 58.00000 48.00000 40 | 31 58.00000 27.00000 41 | 32 37.00000 69.00000 42 | 33 38.00000 46.00000 43 | 34 46.00000 10.00000 44 | 35 61.00000 33.00000 45 | 36 62.00000 63.00000 46 | 37 63.00000 69.00000 47 | 38 32.00000 22.00000 48 | 39 45.00000 35.00000 49 | 40 59.00000 15.00000 50 | 41 5.00000 6.00000 51 | 42 10.00000 17.00000 52 | 43 21.00000 10.00000 53 | 44 5.00000 64.00000 54 | 45 30.00000 15.00000 55 | 46 39.00000 10.00000 56 | 47 32.00000 39.00000 57 | 48 25.00000 32.00000 58 | 49 25.00000 55.00000 59 | 50 48.00000 28.00000 60 | 51 56.00000 37.00000 61 | DEMAND_SECTION 62 | 1 0 63 | 2 7 64 | 3 30 65 | 4 16 66 | 5 9 67 | 6 21 68 | 7 15 69 | 8 19 70 | 9 23 71 | 10 11 72 | 11 5 73 | 12 19 74 | 13 29 75 | 14 23 76 | 15 21 77 | 16 10 78 | 17 15 79 | 18 3 80 | 19 41 81 | 20 9 82 | 21 28 83 | 22 8 84 | 23 8 85 | 24 16 86 | 25 10 87 | 26 28 88 | 27 7 89 | 28 15 90 | 29 14 91 | 30 6 92 | 31 19 93 | 32 11 94 | 33 12 95 | 34 23 96 | 35 26 97 | 36 17 98 | 37 6 99 | 38 9 100 | 39 15 101 | 40 14 102 | 41 7 103 | 42 27 104 | 43 13 105 | 44 11 106 | 45 16 107 | 46 10 108 | 47 5 109 | 48 25 110 | 49 17 111 | 50 18 112 | 51 10 113 | DEPOT_SECTION 114 | 1 115 | -1 116 | EOF 117 | -------------------------------------------------------------------------------- /tests/data/cvrplib/E-n13-k4.sol: -------------------------------------------------------------------------------- 1 | Route #1: 1 2 | Route #2: 8 5 3 3 | Route #3: 9 12 10 6 4 | Route #4: 11 4 7 2 5 | Cost 247 6 | -------------------------------------------------------------------------------- /tests/data/cvrplib/E-n13-k4.vrp: -------------------------------------------------------------------------------- 1 | NAME : E-n13-k4 2 | COMMENT : (Eilon et al, Min no of trucks: 4, Optimal value: 247) 3 | TYPE : CVRP 4 | DIMENSION : 13 5 | EDGE_WEIGHT_TYPE : EXPLICIT 6 | EDGE_WEIGHT_FORMAT: LOWER_ROW 7 | DISPLAY_DATA_TYPE: NO_DISPLAY 8 | CAPACITY : 6000 9 | EDGE_WEIGHT_SECTION 10 | 9 14 21 23 22 25 32 36 38 42 11 | 50 52 5 12 22 21 24 31 35 37 12 | 41 49 51 7 17 16 23 26 30 36 13 | 36 44 46 10 21 30 27 37 43 31 14 | 37 39 19 28 25 35 41 29 31 29 15 | 9 10 16 22 20 28 30 7 11 13 16 | 17 25 27 10 16 10 18 20 6 6 17 | 14 16 12 12 20 8 10 10 18 | DEMAND_SECTION 19 | 1 0 20 | 2 1200 21 | 3 1700 22 | 4 1500 23 | 5 1400 24 | 6 1700 25 | 7 1400 26 | 8 1200 27 | 9 1900 28 | 10 1800 29 | 11 1600 30 | 12 1700 31 | 13 1100 32 | DEPOT_SECTION 33 | 1 34 | -1 35 | EOF 36 | -------------------------------------------------------------------------------- /tests/data/cvrplib/F-n72-k4.sol: -------------------------------------------------------------------------------- 1 | Route #1: 54 55 41 57 56 39 68 40 38 37 69 67 66 65 64 62 63 59 58 61 60 34 31 32 2 | Route #2: 36 11 1 15 14 3 | Route #3: 35 33 18 19 2 17 13 16 12 71 6 10 8 7 9 4 3 5 4 | Route #4: 23 24 26 25 49 70 51 50 47 48 52 45 53 43 44 46 42 27 28 22 21 30 29 20 5 | Cost 237 6 | -------------------------------------------------------------------------------- /tests/data/cvrplib/F-n72-k4.vrp: -------------------------------------------------------------------------------- 1 | NAME : F-n72-k4 2 | COMMENT : (Fisher: problem 11, No of trucks: 4, Optimal value: 237) 3 | TYPE : CVRP 4 | DIMENSION : 72 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 30000 7 | NODE_COORD_SECTION 8 | 1 0 0 9 | 2 -12 -6 10 | 3 -15 -5 11 | 4 -1 -18 12 | 5 2 -21 13 | 6 -1 -17 14 | 7 -9 -12 15 | 8 2 -22 16 | 9 1 -21 17 | 10 7 -25 18 | 11 -7 -17 19 | 12 -11 -5 20 | 13 -14 -9 21 | 14 -14 -8 22 | 15 -11 -2 23 | 16 -14 -5 24 | 17 -15 -9 25 | 18 -15 -8 26 | 19 -9 -6 27 | 20 -14 -4 28 | 21 3 6 29 | 22 5 9 30 | 23 5 10 31 | 24 2 8 32 | 25 1 9 33 | 26 1 10 34 | 27 2 9 35 | 28 6 14 36 | 29 5 12 37 | 30 3 7 38 | 31 4 8 39 | 32 -6 1 40 | 33 -6 2 41 | 34 -8 -2 42 | 35 -7 2 43 | 36 -7 -3 44 | 37 -7 -2 45 | 38 -20 12 46 | 39 -20 13 47 | 40 -12 10 48 | 41 -20 15 49 | 42 -6 8 50 | 43 2 21 51 | 44 2 22 52 | 45 1 21 53 | 46 -1 24 54 | 47 1 22 55 | 48 -2 20 56 | 49 -2 21 57 | 50 -4 18 58 | 51 -4 19 59 | 52 -5 18 60 | 53 -5 26 61 | 54 1 23 62 | 55 -6 5 63 | 56 -6 6 64 | 57 -9 6 65 | 58 -9 7 66 | 59 -12 5 67 | 60 -12 6 68 | 61 -11 3 69 | 62 -11 4 70 | 63 -14 4 71 | 64 -14 5 72 | 65 -15 4 73 | 66 -15 5 74 | 67 -16 7 75 | 68 -16 8 76 | 69 -15 10 77 | 70 -20 10 78 | 71 -5 19 79 | 72 -9 -11 80 | DEMAND_SECTION 81 | 1 0 82 | 2 7063 83 | 3 51 84 | 4 23 85 | 5 3074 86 | 6 349 87 | 7 1047 88 | 8 698 89 | 9 3001 90 | 10 31 91 | 11 1135 92 | 12 21611 93 | 13 57 94 | 14 51 95 | 15 551 96 | 16 179 97 | 17 6 98 | 18 528 99 | 19 2832 100 | 20 1514 101 | 21 889 102 | 22 2554 103 | 23 1215 104 | 24 1810 105 | 25 3050 106 | 26 4 107 | 27 1563 108 | 28 741 109 | 29 1532 110 | 30 709 111 | 31 1022 112 | 32 883 113 | 33 1689 114 | 34 10235 115 | 35 29 116 | 36 2894 117 | 37 450 118 | 38 411 119 | 39 207 120 | 40 496 121 | 41 1021 122 | 42 117 123 | 43 46 124 | 44 8 125 | 45 18 126 | 46 561 127 | 47 1877 128 | 48 3542 129 | 49 801 130 | 50 967 131 | 51 62 132 | 52 1366 133 | 53 230 134 | 54 4 135 | 55 12 136 | 56 145 137 | 57 7149 138 | 58 2250 139 | 59 383 140 | 60 134 141 | 61 1947 142 | 62 182 143 | 63 3934 144 | 64 468 145 | 65 18 146 | 66 133 147 | 67 2340 148 | 68 754 149 | 69 1264 150 | 70 806 151 | 71 3665 152 | 72 2452 153 | DEPOT_SECTION 154 | 1 155 | -1 156 | EOF 157 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Golden_1.sol: -------------------------------------------------------------------------------- 1 | Route #1: 26 25 65 66 67 68 69 109 108 148 149 150 151 191 190 189 188 187 186 185 145 146 147 107 106 105 104 64 24 2 | Route #2: 27 28 29 30 70 110 111 112 152 192 232 231 230 229 228 227 226 225 224 184 144 143 103 63 23 3 | Route #3: 33 34 35 75 74 114 154 194 195 196 197 198 238 237 236 235 234 233 193 153 113 73 72 71 31 32 4 | Route #4: 37 36 76 77 117 116 115 155 156 157 158 159 160 121 122 82 81 120 119 118 78 79 80 41 1 40 39 38 5 | Route #5: 3 4 5 6 46 45 44 84 124 164 204 203 202 201 240 239 199 200 161 162 163 123 83 43 42 2 6 | Route #6: 10 9 8 7 47 87 86 85 125 165 205 206 207 208 209 210 211 212 213 173 133 93 94 54 14 15 7 | Route #7: 13 53 52 92 91 90 130 131 132 172 171 170 169 168 167 166 126 127 128 129 89 88 48 49 50 51 11 12 8 | Route #8: 17 57 56 96 97 137 136 135 175 176 177 178 179 180 181 141 140 139 138 98 99 100 101 61 60 59 58 18 19 20 21 9 | Route #9: 22 62 102 142 182 183 223 222 221 220 219 218 217 216 215 214 174 134 95 55 16 10 | Cost 5623.47 11 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Li_21.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 21 61 101 102 142 141 181 182 183 223 263 303 343 383 423 463 503 543 542 502 462 422 382 342 302 262 222 221 261 301 341 381 421 461 501 541 540 500 460 420 380 340 300 260 220 180 140 100 60 59 19 2 | Route #2: 25 26 66 65 105 106 146 145 185 186 187 227 267 307 347 387 427 467 507 547 546 506 466 426 386 346 306 266 226 225 265 305 345 385 425 465 505 545 544 504 464 424 384 344 304 264 224 184 144 143 103 104 64 63 62 22 23 24 3 | Route #3: 27 67 107 147 148 188 228 268 308 348 388 428 468 508 548 549 509 469 429 389 349 309 269 229 230 270 310 350 390 430 470 510 550 551 511 471 431 391 351 311 271 231 191 190 189 149 150 151 152 112 111 110 109 108 68 69 70 30 29 28 4 | Route #4: 34 33 32 31 71 72 73 74 114 113 153 193 192 232 272 312 352 392 432 472 512 552 553 513 473 433 393 353 313 273 233 234 274 314 354 394 434 474 514 554 555 515 475 435 395 355 315 275 235 195 194 154 155 115 75 35 5 | Route #5: 38 39 40 80 79 78 118 119 159 199 239 279 319 359 399 439 479 519 559 558 518 478 438 398 358 318 278 238 237 277 317 357 397 437 477 517 557 556 516 476 436 396 356 316 276 236 196 197 198 158 157 156 116 117 77 76 36 37 6 | Route #6: 2 1 41 81 120 160 200 240 280 320 360 400 440 480 520 560 521 481 441 401 361 321 281 241 201 202 242 282 322 362 402 442 482 522 523 483 443 403 363 323 283 243 203 163 162 161 121 122 82 42 43 3 7 | Route #7: 5 6 7 47 46 45 85 86 87 127 126 125 165 166 167 207 247 287 327 367 407 447 487 527 526 486 446 406 366 326 286 246 206 205 245 285 325 365 405 445 485 525 524 484 444 404 364 324 284 244 204 164 124 123 83 84 44 4 8 | Route #8: 9 10 11 51 91 92 132 131 130 129 169 170 171 211 251 291 331 371 411 451 491 531 530 490 450 410 370 330 290 250 210 209 249 289 329 369 409 449 489 529 528 488 448 408 368 328 288 248 208 168 128 88 89 90 50 49 48 8 9 | Route #9: 14 54 94 134 174 175 215 255 295 335 375 415 455 495 535 534 494 454 414 374 334 294 254 214 213 253 293 333 373 413 453 493 533 532 492 452 412 372 332 292 252 212 172 173 133 93 53 52 12 13 10 | Route #10: 17 16 15 55 56 57 97 96 95 135 136 137 138 178 177 176 216 256 296 336 376 416 456 496 536 537 497 457 417 377 337 297 257 217 218 258 298 338 378 418 458 498 538 539 499 459 419 379 339 299 259 219 179 139 99 98 58 18 11 | Cost 16212.82548 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/M-n101-k10.sol: -------------------------------------------------------------------------------- 1 | Route #1: 10 12 14 16 15 19 18 17 13 2 | Route #2: 43 42 41 40 44 45 46 48 51 50 52 49 47 3 | Route #3: 98 96 95 94 92 93 97 100 99 4 | Route #4: 91 89 88 85 84 82 83 86 87 90 5 | Route #5: 75 1 2 4 6 9 11 8 7 3 5 6 | Route #6: 69 68 64 61 72 80 79 77 73 70 71 76 78 81 7 | Route #7: 59 60 58 56 53 54 55 57 8 | Route #8: 21 22 23 26 28 30 29 27 25 24 20 9 | Route #9: 32 33 31 35 37 38 39 36 34 10 | Route #10: 67 66 62 74 63 65 11 | Cost 820 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/ORTEC-n242-k12.sol: -------------------------------------------------------------------------------- 1 | Route #1: 187 161 162 143 135 95 67 109 115 206 175 169 172 174 181 176 215 2 | Route #2: 26 230 68 64 178 182 183 184 214 211 231 207 158 159 136 108 23 60 72 30 3 | Route #3: 2 91 132 121 125 47 74 99 226 110 222 12 186 196 189 221 228 137 218 4 | Route #4: 139 171 128 157 142 97 92 201 63 7 46 83 122 44 229 77 177 112 197 5 | Route #5: 57 188 118 205 131 191 25 212 203 209 134 193 195 17 208 39 8 14 35 66 6 | Route #6: 234 232 81 179 185 225 223 233 240 19 27 21 61 65 114 33 198 238 160 129 146 7 | Route #7: 204 37 73 93 87 89 94 101 106 100 105 103 107 150 151 130 123 138 111 127 88 124 8 | Route #8: 29 36 86 48 199 126 24 4 173 5 117 104 220 78 84 34 56 38 10 31 210 96 90 9 | Route #9: 190 165 141 144 168 167 153 194 154 156 217 149 147 133 170 120 152 155 148 10 | Route #10: 119 20 200 28 98 85 51 50 52 58 59 102 70 69 224 80 237 76 75 145 40 11 | Route #11: 202 192 22 216 180 163 164 32 140 18 6 166 15 16 13 213 235 236 241 12 | Route #12: 82 227 3 41 49 55 11 219 113 42 71 1 45 43 79 239 116 9 54 53 62 13 | Cost 123750 14 | -------------------------------------------------------------------------------- /tests/data/cvrplib/P-n16-k8.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 2 | Route #2: 6 3 | Route #3: 8 4 | Route #4: 15 12 10 5 | Route #5: 14 5 6 | Route #6: 13 9 7 7 | Route #7: 11 4 8 | Route #8: 3 1 9 | Cost 450 10 | -------------------------------------------------------------------------------- /tests/data/cvrplib/P-n16-k8.vrp: -------------------------------------------------------------------------------- 1 | NAME : P-n16-k8 2 | COMMENT : (Augerat et al, No of trucks: 8, Optimal value: 450) 3 | TYPE : CVRP 4 | DIMENSION : 16 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 35 7 | NODE_COORD_SECTION 8 | 1 30 40 9 | 2 37 52 10 | 3 49 49 11 | 4 52 64 12 | 5 31 62 13 | 6 52 33 14 | 7 42 41 15 | 8 52 41 16 | 9 57 58 17 | 10 62 42 18 | 11 42 57 19 | 12 27 68 20 | 13 43 67 21 | 14 58 48 22 | 15 58 27 23 | 16 37 69 24 | DEMAND_SECTION 25 | 1 0 26 | 2 19 27 | 3 30 28 | 4 16 29 | 5 23 30 | 6 11 31 | 7 31 32 | 8 15 33 | 9 28 34 | 10 8 35 | 11 8 36 | 12 7 37 | 13 14 38 | 14 6 39 | 15 19 40 | 16 11 41 | DEPOT_SECTION 42 | 1 43 | -1 44 | EOF 45 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C101.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C102.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C103.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 63 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 826.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C104.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 10 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 45 46 48 51 50 52 49 47 6 | Route #6: 55 54 53 56 58 60 59 57 7 | Route #7: 67 65 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 63 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 822.9 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C105.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C106.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C107.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C108.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C109.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 3 7 8 10 11 9 6 4 2 1 75 2 | Route #2: 13 17 18 19 15 16 14 12 3 | Route #3: 20 24 25 27 29 30 28 26 23 22 21 4 | Route #4: 32 33 31 35 37 38 39 36 34 5 | Route #5: 43 42 41 40 44 46 45 48 51 50 52 49 47 6 | Route #6: 57 55 54 53 56 58 60 59 7 | Route #7: 67 65 63 62 74 72 61 64 68 66 69 8 | Route #8: 81 78 76 71 70 73 77 79 80 9 | Route #9: 90 87 86 83 82 84 85 88 89 91 10 | Route #10: 98 96 95 94 92 93 97 100 99 11 | Cost 827.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C201.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 22 24 27 30 29 6 32 33 31 35 37 38 39 36 34 28 26 23 18 19 16 14 12 15 17 13 25 9 11 10 8 21 2 | Route #2: 67 63 62 74 72 61 64 66 69 68 65 49 55 54 53 56 58 60 59 57 40 44 46 45 51 50 52 47 43 42 41 48 3 | Route #3: 93 5 75 2 1 99 100 97 92 94 95 98 7 3 4 89 91 88 84 86 83 82 85 76 71 70 73 80 79 81 78 77 96 87 90 4 | Cost 589.1 5 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C202.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 22 24 27 30 29 6 32 33 31 35 37 38 39 36 34 28 26 23 18 19 16 14 12 15 17 13 25 9 11 10 8 21 2 | Route #2: 67 63 62 74 72 61 64 66 69 68 65 49 55 54 53 56 58 60 59 57 40 44 46 45 51 50 52 47 43 42 41 48 3 | Route #3: 93 5 75 2 1 99 100 97 92 94 95 98 7 3 4 89 91 88 84 86 83 82 85 76 71 70 73 80 79 81 78 77 96 87 90 4 | Cost 589.1 5 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C203.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 22 24 27 30 29 6 32 33 31 35 37 38 39 36 34 28 26 23 18 19 16 14 12 15 17 13 25 9 11 10 8 21 2 | Route #2: 67 63 62 74 72 61 64 66 69 68 65 49 55 54 53 56 58 60 59 57 40 44 46 45 51 50 52 47 42 41 43 48 3 | Route #3: 93 5 75 2 1 99 100 97 92 94 95 98 7 3 4 89 91 88 84 86 83 82 85 76 71 70 73 80 79 81 78 77 96 87 90 4 | Cost 588.7 5 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C204.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 22 24 27 30 29 6 32 33 31 35 37 38 39 36 34 28 26 23 18 19 16 14 12 15 17 13 25 9 11 10 8 21 2 | Route #2: 67 63 62 74 72 61 64 66 69 68 65 49 55 54 53 56 58 60 59 57 40 44 46 41 42 45 51 50 52 47 43 48 3 | Route #3: 93 5 75 2 1 99 100 97 92 94 95 98 7 3 4 89 91 88 84 86 83 82 85 76 71 70 73 80 79 81 78 77 96 87 90 4 | Cost 588.1 5 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C205.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 22 24 27 30 29 6 32 33 31 35 37 38 39 36 34 28 26 23 18 19 16 14 12 15 17 13 25 9 11 10 8 21 2 | Route #2: 67 63 62 74 72 61 64 66 69 68 65 49 55 54 53 56 58 60 59 57 40 44 46 45 51 50 52 47 43 42 41 48 3 | Route #3: 93 5 75 2 1 99 100 97 92 94 95 98 7 3 4 89 91 88 86 84 83 82 85 76 71 70 73 80 79 81 78 77 96 87 90 4 | Cost 586.4 5 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C206.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 22 24 27 30 29 6 32 33 31 35 37 38 39 36 34 28 26 23 18 19 16 14 12 15 17 13 25 9 11 10 8 21 2 | Route #2: 67 63 62 74 72 61 64 66 69 68 65 49 55 54 53 56 58 60 59 57 40 44 46 45 51 50 52 47 42 41 43 48 3 | Route #3: 93 5 75 2 1 99 100 97 92 94 95 98 7 3 4 89 91 88 86 84 83 82 85 76 71 70 73 80 79 81 78 77 96 87 90 4 | Cost 586.0 5 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C207.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 22 24 27 30 29 6 32 33 31 35 37 38 39 36 34 28 26 23 17 18 19 16 14 12 15 13 25 9 11 10 8 21 2 | Route #2: 67 63 62 74 72 61 64 66 69 68 65 49 55 54 53 56 58 60 59 57 40 44 46 45 51 50 52 47 42 41 43 48 3 | Route #3: 93 5 75 2 1 99 100 97 92 94 95 98 7 3 4 89 91 88 86 84 83 82 85 76 71 70 73 80 79 81 78 77 96 87 90 4 | Cost 585.8 5 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/C208.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 22 24 27 30 29 6 32 33 31 35 37 38 39 36 34 28 26 23 18 17 19 16 14 12 15 13 25 9 11 10 8 21 2 | Route #2: 67 63 62 74 72 61 64 66 69 68 65 49 55 54 53 56 58 60 59 57 40 44 46 45 51 50 52 47 42 41 43 48 3 | Route #3: 93 5 75 2 1 99 100 97 92 94 95 98 7 3 4 89 91 88 86 84 83 82 85 76 71 70 73 80 79 81 78 77 96 87 90 4 | Cost 585.8 5 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R101.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 21 73 41 56 4 2 | Route #2: 5 83 61 85 37 93 3 | Route #3: 12 76 79 3 54 24 80 4 | Route #4: 14 44 38 43 13 5 | Route #5: 27 69 30 51 20 32 70 6 | Route #6: 28 29 78 34 35 77 7 | Route #7: 31 88 7 8 | Route #8: 33 81 50 68 9 | Route #9: 36 47 19 8 46 17 10 | Route #10: 39 23 67 55 25 11 | Route #11: 40 53 26 12 | Route #12: 45 82 18 84 60 89 13 | Route #13: 52 6 14 | Route #14: 59 99 94 96 15 | Route #15: 62 11 90 10 16 | Route #16: 63 64 49 48 17 | Route #17: 65 71 9 66 1 18 | Route #18: 72 75 22 74 58 19 | Route #19: 92 42 15 87 57 97 20 | Route #20: 95 98 16 86 91 100 21 | Cost 1637.7 22 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R102.sol: -------------------------------------------------------------------------------- 1 | Route #1: 18 2 | Route #2: 27 69 88 10 31 3 | Route #3: 28 76 79 54 24 80 12 4 | Route #4: 30 51 9 66 1 5 | Route #5: 36 47 19 8 46 17 93 59 6 | Route #6: 39 23 67 55 25 26 7 | Route #7: 40 53 8 | Route #8: 42 15 41 75 56 4 9 | Route #9: 50 33 29 78 34 35 77 10 | Route #10: 62 11 90 20 32 70 11 | Route #11: 63 64 49 48 82 7 52 12 | Route #12: 65 71 81 3 68 13 | Route #13: 73 22 74 72 21 14 | Route #14: 83 45 61 84 5 60 89 15 | Route #15: 87 57 2 58 16 | Route #16: 92 98 85 16 86 91 97 13 17 | Route #17: 94 96 99 6 18 | Route #18: 95 14 44 38 43 100 37 19 | Cost 1466.6 20 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R103.sol: -------------------------------------------------------------------------------- 1 | Route #1: 1 30 78 34 35 81 77 28 2 | Route #2: 2 22 74 72 73 58 3 | Route #3: 21 39 23 67 55 25 54 4 | Route #4: 27 69 88 8 46 17 5 60 89 5 | Route #5: 36 64 49 19 47 48 82 18 6 | Route #6: 40 53 7 | Route #7: 42 43 15 57 41 75 56 4 26 8 | Route #8: 50 33 3 76 79 29 24 68 80 12 9 | Route #9: 51 65 71 9 66 20 32 70 10 | Route #10: 52 7 62 11 63 90 10 31 11 | Route #11: 83 45 84 61 85 93 59 12 | Route #12: 92 98 14 44 38 86 16 91 100 37 13 | Route #13: 94 95 97 87 13 14 | Route #14: 96 99 6 15 | Cost 1208.7 16 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R104.sol: -------------------------------------------------------------------------------- 1 | Route #1: 6 96 59 93 99 84 17 45 83 5 60 89 2 | Route #2: 18 82 48 46 8 47 36 49 19 7 3 | Route #3: 27 69 1 51 9 81 33 3 77 28 4 | Route #4: 42 43 15 57 2 41 22 74 73 21 40 58 5 | Route #5: 52 88 62 11 64 63 90 32 10 31 6 | Route #6: 53 7 | Route #7: 70 30 20 66 65 71 35 34 78 50 8 | Route #8: 72 75 56 23 67 39 55 4 25 54 9 | Route #9: 76 79 29 24 68 80 12 26 10 | Route #10: 92 98 14 44 38 86 16 61 85 91 100 37 11 | Route #11: 94 95 97 87 13 12 | Cost 971.5 13 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R105.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 15 57 87 97 13 2 | Route #2: 5 45 83 99 94 6 3 | Route #3: 21 73 75 22 41 56 74 58 4 | Route #4: 27 69 76 50 1 5 | Route #5: 28 12 29 79 78 34 35 77 6 | Route #6: 31 30 51 9 81 3 68 24 80 7 | Route #7: 33 65 71 66 20 32 70 8 | Route #8: 42 14 44 38 86 43 100 91 93 9 | Route #9: 47 36 19 49 46 48 10 | Route #10: 52 82 8 84 17 60 89 11 | Route #11: 53 40 26 12 | Route #12: 59 95 92 98 16 61 85 37 96 13 | Route #13: 62 88 7 18 14 | Route #14: 63 64 11 90 10 15 | Route #15: 72 39 23 67 55 54 4 25 16 | Cost 1355.3 17 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R106.sol: -------------------------------------------------------------------------------- 1 | Route #1: 12 29 78 79 68 54 24 80 2 | Route #2: 21 72 39 23 67 55 4 25 26 3 | Route #3: 27 62 88 18 89 4 | Route #4: 28 76 40 53 5 | Route #5: 48 47 36 19 49 46 82 7 52 6 | Route #6: 50 33 65 71 66 20 32 70 1 7 | Route #7: 59 37 14 44 38 86 43 100 98 93 8 | Route #8: 63 64 11 90 10 31 9 | Route #9: 69 30 51 81 9 35 34 3 77 10 | Route #10: 73 41 22 75 56 74 2 58 11 | Route #11: 83 45 8 84 17 5 60 12 | Route #12: 94 92 42 15 57 87 97 95 13 13 | Route #13: 96 85 91 16 61 99 6 14 | Cost 1234.6 15 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R107.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 57 15 41 22 75 56 4 74 73 58 2 | Route #2: 21 72 39 23 67 55 25 54 26 3 | Route #3: 27 69 30 88 31 10 70 1 4 | Route #4: 28 76 79 78 29 24 68 80 12 5 | Route #5: 33 81 65 71 9 35 34 3 77 6 | Route #6: 42 43 14 44 38 86 16 91 100 37 98 7 | Route #7: 48 47 36 64 49 19 82 18 89 8 | Route #8: 52 7 62 11 63 90 32 66 20 51 50 9 | Route #9: 53 40 10 | Route #10: 60 83 45 46 8 84 5 17 61 85 93 11 | Route #11: 94 96 92 59 99 6 87 97 95 13 12 | Cost 1064.6 13 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R108.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 57 15 43 42 87 97 95 94 13 58 2 | Route #2: 6 96 59 99 93 5 84 17 45 83 60 89 3 | Route #3: 18 7 82 8 46 36 49 47 48 4 | Route #4: 26 12 80 68 29 24 55 4 25 54 5 | Route #5: 27 69 76 3 79 9 51 81 33 50 1 6 | Route #6: 52 88 62 19 11 64 63 90 32 10 31 7 | Route #7: 53 8 | Route #8: 70 30 20 66 65 71 35 34 78 77 28 9 | Route #9: 73 22 41 23 67 39 56 75 74 72 21 40 10 | Route #10: 92 98 91 44 14 38 86 16 61 85 100 37 11 | Cost 932.1 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R109.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 42 15 57 87 94 6 96 2 | Route #2: 5 83 8 45 84 17 60 89 3 | Route #3: 12 29 78 79 3 50 26 4 | Route #4: 27 69 30 51 71 65 66 20 1 5 | Route #5: 28 76 33 81 9 35 34 68 77 6 | Route #6: 31 19 47 49 36 46 48 7 | Route #7: 40 21 73 22 41 74 56 4 58 8 | Route #8: 52 88 7 82 18 9 | Route #9: 53 10 | Route #10: 59 99 85 61 16 86 91 37 100 93 11 | Route #11: 62 11 64 63 90 32 10 70 12 | Route #12: 72 75 23 67 39 25 55 54 24 80 13 | Route #13: 95 92 98 44 38 14 43 97 13 14 | Cost 1146.9 15 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R110.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 57 87 94 96 6 2 | Route #2: 21 72 75 56 23 67 39 25 55 4 3 | Route #3: 27 31 88 7 62 63 90 32 10 4 | Route #4: 28 12 76 29 34 78 24 54 80 68 5 | Route #5: 33 9 35 71 65 66 20 1 6 | Route #6: 40 73 74 22 41 15 43 42 58 7 | Route #7: 52 18 83 8 46 45 17 60 89 8 | Route #8: 53 26 9 | Route #9: 59 99 5 84 61 16 85 37 97 13 10 | Route #10: 69 70 30 51 81 79 3 77 50 11 | Route #11: 82 47 19 11 64 49 36 48 12 | Route #12: 95 92 98 100 14 38 86 44 91 93 13 | Cost 1068.0 14 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R111.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 57 15 43 41 22 74 56 72 21 58 2 | Route #2: 6 99 84 61 85 93 96 3 | Route #3: 7 19 64 49 36 47 48 82 52 4 | Route #4: 18 83 45 8 46 17 5 60 89 5 | Route #5: 27 69 30 20 65 66 32 70 1 6 | Route #6: 28 76 79 78 29 24 68 80 12 26 7 | Route #7: 40 87 97 95 94 13 8 | Route #8: 50 33 81 51 9 71 35 34 3 77 9 | Route #9: 53 10 | Route #10: 73 75 23 67 39 55 4 25 54 11 | Route #11: 88 62 11 63 90 10 31 12 | Route #12: 92 42 14 44 38 86 16 91 100 37 98 59 13 | Cost 1048.7 14 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R112.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 41 22 75 56 23 67 39 25 55 54 2 | Route #2: 6 94 95 87 42 43 15 57 58 3 | Route #3: 12 80 68 24 29 3 77 50 4 | Route #4: 18 83 60 99 93 85 98 92 59 96 5 | Route #5: 27 69 33 81 9 51 30 32 90 10 70 6 | Route #6: 28 76 79 78 34 35 71 65 66 20 1 7 | Route #7: 31 62 19 11 63 64 49 36 47 48 8 | Route #8: 52 88 7 82 8 46 45 17 84 5 89 9 | Route #9: 53 40 21 73 74 72 4 26 10 | Route #10: 61 16 86 38 14 44 91 100 37 97 13 11 | Cost 948.6 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R201.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 83 45 82 47 36 49 46 48 2 | Route #2: 27 31 63 64 11 19 62 88 7 18 8 84 17 91 100 93 60 89 3 | Route #3: 28 12 29 76 50 3 54 26 4 | Route #4: 33 65 71 9 51 81 79 78 34 35 68 77 5 | Route #5: 42 15 2 73 21 40 87 57 43 37 97 96 13 58 6 | Route #6: 52 69 30 90 10 20 66 32 70 1 7 | Route #7: 72 39 67 23 75 22 41 56 74 4 55 25 24 80 8 | Route #8: 95 59 92 98 14 38 44 16 61 86 85 99 94 6 53 9 | Cost 1143.2 10 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R202.sol: -------------------------------------------------------------------------------- 1 | Route #1: 27 69 1 30 31 88 7 18 8 84 86 91 100 37 98 93 59 94 2 | Route #2: 28 26 21 72 75 39 67 23 56 4 54 55 25 24 80 12 3 | Route #3: 40 73 41 22 74 2 58 4 | Route #4: 50 33 65 71 29 76 3 79 78 81 9 51 20 66 35 34 68 77 5 | Route #5: 52 62 63 90 10 32 70 6 | Route #6: 53 7 | Route #7: 83 45 82 48 47 36 19 11 64 49 46 17 5 60 89 8 | Route #8: 95 92 42 15 14 38 44 16 61 85 99 96 6 87 57 43 97 13 9 | Cost 1029.6 10 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R203.sol: -------------------------------------------------------------------------------- 1 | Route #1: 26 21 72 75 39 67 23 56 4 55 25 54 24 80 12 2 | Route #2: 27 69 1 76 3 79 78 81 9 66 71 35 34 29 68 77 28 3 | Route #3: 50 33 51 65 20 30 32 90 63 64 49 10 70 31 52 4 | Route #4: 53 40 58 5 | Route #5: 89 18 45 46 36 47 48 19 11 62 88 7 82 8 83 60 5 84 17 61 91 100 37 98 93 59 94 6 | Route #6: 95 92 97 42 15 43 14 44 38 86 16 85 99 96 6 87 57 41 22 74 73 2 13 7 | Cost 870.8 8 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R204.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 57 42 43 15 41 22 75 56 23 67 39 4 72 74 73 21 40 58 2 | Route #2: 6 94 96 59 92 98 91 44 14 38 86 16 61 85 93 99 95 97 87 37 100 13 3 | Route #3: 27 69 1 50 76 3 79 33 81 9 51 20 66 65 71 35 34 78 29 24 55 25 54 80 68 77 12 26 28 4 | Route #4: 52 31 88 7 82 48 19 11 62 10 70 30 32 90 63 64 49 36 47 46 8 45 17 84 5 60 83 18 89 5 | Route #5: 53 6 | Cost 731.3 7 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R205.sol: -------------------------------------------------------------------------------- 1 | Route #1: 27 69 31 88 62 11 63 90 64 49 19 7 18 8 46 48 17 60 89 2 | Route #2: 28 12 29 33 65 71 9 81 51 30 76 50 3 79 78 34 35 66 20 32 10 70 1 3 | Route #3: 52 82 47 36 45 83 5 84 61 16 44 38 86 85 99 6 94 97 87 57 43 91 100 37 93 96 13 58 4 | Route #4: 53 40 21 26 5 | Route #5: 95 59 92 98 14 42 15 2 73 72 39 67 23 75 41 22 74 56 4 25 55 54 24 80 68 77 6 | Cost 949.8 7 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R206.sol: -------------------------------------------------------------------------------- 1 | Route #1: 21 73 72 39 67 23 41 22 74 75 56 4 25 55 54 24 80 68 77 2 | Route #2: 27 69 31 88 62 63 90 30 51 9 81 78 79 76 12 26 40 53 3 | Route #3: 28 50 33 3 29 34 71 65 35 66 20 32 10 70 1 4 | Route #4: 52 7 82 45 48 47 36 19 11 64 49 46 8 18 83 84 17 5 60 89 5 | Route #5: 94 92 98 37 42 15 14 44 38 86 16 61 99 96 6 95 97 87 2 57 43 100 91 85 93 59 13 58 6 | Cost 875.9 7 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R207.sol: -------------------------------------------------------------------------------- 1 | Route #1: 27 69 1 50 33 51 30 20 65 9 81 79 78 34 35 71 66 32 90 10 70 31 52 2 | Route #2: 28 76 54 39 67 23 56 75 41 22 74 72 73 21 4 55 25 24 29 3 77 68 80 12 26 3 | Route #3: 89 18 45 46 36 47 48 7 88 62 11 63 64 49 19 82 8 83 60 5 84 17 61 91 100 37 98 93 59 13 58 4 | Route #4: 94 92 42 57 15 43 14 44 38 86 16 85 99 96 6 95 97 87 2 40 53 5 | Cost 794.0 6 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R208.sol: -------------------------------------------------------------------------------- 1 | Route #1: 27 69 1 50 76 33 81 9 51 20 66 65 71 35 34 78 79 3 77 68 80 29 24 54 12 26 28 2 | Route #2: 52 18 82 48 7 88 31 70 30 32 90 63 10 62 19 11 64 49 36 47 46 8 45 17 84 83 60 5 99 96 97 87 37 98 91 100 42 57 2 13 3 | Route #3: 53 4 | Route #4: 89 6 94 95 92 59 93 85 61 16 86 44 38 14 43 15 41 22 75 56 23 67 39 25 55 4 72 74 73 21 40 58 5 | Cost 701.0 6 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R209.sol: -------------------------------------------------------------------------------- 1 | Route #1: 27 69 31 88 62 47 19 11 64 63 90 30 51 71 9 81 33 79 3 77 68 80 24 54 26 2 | Route #2: 28 12 76 29 78 34 35 65 66 20 32 10 70 1 50 3 | Route #3: 40 2 73 21 72 75 23 67 39 25 55 4 56 74 22 41 58 53 4 | Route #4: 52 7 82 83 18 6 94 13 87 57 15 43 42 97 92 37 100 91 93 96 5 | Route #5: 95 99 59 98 85 5 84 61 16 44 14 38 86 17 45 8 46 36 49 48 60 89 6 | Cost 854.8 7 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R210.sol: -------------------------------------------------------------------------------- 1 | Route #1: 6 94 96 99 59 87 97 13 58 2 | Route #2: 18 83 45 61 16 86 44 38 14 43 57 2 41 22 74 56 4 55 25 54 26 3 | Route #3: 27 69 1 30 51 33 71 65 66 20 32 90 10 70 31 4 | Route #4: 28 12 76 3 79 29 78 81 9 35 34 24 80 68 77 50 5 | Route #5: 52 7 82 48 47 36 19 88 62 11 63 64 49 46 8 84 17 85 98 37 100 91 93 5 60 89 6 | Route #6: 95 92 42 15 23 67 39 75 72 73 21 40 53 7 | Cost 900.5 8 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/R211.sol: -------------------------------------------------------------------------------- 1 | Route #1: 27 69 31 88 7 82 46 47 36 49 64 63 90 32 66 71 65 35 34 78 79 3 77 50 1 2 | Route #2: 28 12 76 33 81 9 51 20 30 70 10 62 11 19 48 8 45 17 84 60 6 89 3 | Route #3: 52 18 83 5 99 95 92 98 85 61 16 86 38 44 14 42 43 15 57 2 87 97 37 100 91 93 59 96 94 13 58 4 | Route #4: 53 40 21 73 41 22 75 23 67 39 25 55 24 29 68 80 54 4 56 74 72 26 5 | Cost 746.7 6 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC101.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 45 2 7 6 8 3 1 70 2 | Route #2: 23 21 18 49 22 20 25 24 3 | Route #3: 39 42 44 61 81 68 55 4 | Route #4: 47 14 12 73 79 46 4 100 5 | Route #5: 59 75 87 97 58 77 6 | Route #6: 63 33 28 30 34 50 91 80 7 | Route #7: 64 51 85 84 56 66 8 | Route #8: 65 52 99 57 86 74 9 | Route #9: 69 98 88 53 78 60 10 | Route #10: 72 36 38 41 40 43 37 35 11 | Route #11: 82 11 15 16 9 10 13 17 12 | Route #12: 83 19 76 89 48 13 | Route #13: 90 14 | Route #14: 92 31 29 27 26 32 93 15 | Route #15: 95 62 67 71 94 96 54 16 | Cost 1619.8 17 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC102.sol: -------------------------------------------------------------------------------- 1 | Route #1: 1 3 45 5 8 7 6 46 4 2 2 | Route #2: 14 47 11 15 16 9 10 13 17 12 3 | Route #3: 19 23 18 48 21 25 77 4 | Route #4: 33 28 27 26 31 34 50 93 94 80 5 | Route #5: 39 36 40 38 41 43 35 37 72 6 | Route #6: 42 44 61 81 54 7 | Route #7: 65 99 87 59 97 75 58 8 | Route #8: 69 88 53 55 68 9 | Route #9: 85 63 76 51 22 49 20 24 83 10 | Route #10: 90 11 | Route #11: 91 64 57 86 74 52 82 12 | Route #12: 92 95 62 29 30 32 89 13 | Route #13: 96 71 67 84 56 66 14 | Route #14: 98 73 79 78 60 100 70 15 | Cost 1457.4 16 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC103.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 45 1 3 5 8 6 55 68 2 | Route #2: 12 14 15 11 9 87 59 74 86 52 82 90 3 | Route #3: 33 27 30 32 28 26 29 31 34 4 | Route #4: 61 42 43 44 40 38 41 72 71 93 94 80 5 | Route #5: 64 20 22 49 19 18 48 21 25 57 6 | Route #6: 65 99 97 75 58 77 7 | Route #7: 69 88 53 10 13 16 17 47 8 | Route #8: 81 39 36 35 37 54 96 9 | Route #9: 83 24 23 76 89 63 85 51 91 10 | Route #10: 92 95 62 50 67 84 56 66 11 | Route #11: 98 60 73 78 79 7 46 4 100 70 12 | Cost 1258.0 13 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC104.sol: -------------------------------------------------------------------------------- 1 | Route #1: 14 47 15 11 9 87 59 74 86 57 52 2 | Route #2: 20 49 19 23 21 48 18 25 24 22 3 | Route #3: 42 44 43 38 37 35 36 40 39 41 4 | Route #4: 61 70 1 3 5 45 8 46 4 100 68 5 | Route #5: 69 98 53 12 17 16 13 10 82 6 | Route #6: 80 91 56 95 62 67 94 93 71 72 54 96 81 7 | Route #7: 85 63 89 76 84 51 64 83 66 8 | Route #8: 88 60 78 73 79 7 6 2 55 9 | Route #9: 90 65 99 97 75 58 77 10 | Route #10: 92 50 33 32 30 28 26 27 29 31 34 11 | Cost 1132.3 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC105.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 45 5 3 1 8 6 55 2 | Route #2: 12 14 47 15 16 9 10 13 17 3 | Route #3: 31 29 27 30 28 26 32 34 50 91 4 | Route #4: 33 63 85 84 56 66 5 | Route #5: 39 36 37 38 41 72 54 94 80 6 | Route #6: 42 44 40 35 43 7 | Route #7: 51 76 89 48 21 25 24 8 | Route #8: 64 86 87 59 97 75 58 9 | Route #9: 65 99 52 57 74 10 | Route #10: 69 88 79 7 46 4 70 100 11 | Route #11: 81 61 68 12 | Route #12: 82 11 73 78 60 13 | Route #13: 83 19 23 18 22 49 20 77 14 | Route #14: 90 53 98 15 | Route #15: 92 95 62 67 71 93 96 16 | Cost 1513.7 17 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC106.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 45 5 8 7 6 46 4 3 1 100 2 | Route #2: 11 12 14 47 15 16 9 10 13 17 3 | Route #3: 42 44 39 40 36 38 41 43 37 35 4 | Route #4: 61 81 94 67 93 96 54 5 | Route #5: 62 33 28 26 27 34 50 91 80 6 | Route #6: 65 52 87 59 75 97 58 74 7 | Route #7: 69 98 88 78 73 79 60 8 | Route #8: 72 71 31 29 30 32 89 9 | Route #9: 82 99 86 57 22 49 20 24 10 | Route #10: 83 64 19 23 21 18 48 25 77 11 | Route #11: 90 53 55 70 68 12 | Route #12: 92 95 63 85 76 51 84 56 66 13 | Cost 1372.7 14 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC107.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 6 7 8 5 3 1 45 46 4 100 2 | Route #2: 11 12 14 47 17 16 15 13 9 10 3 | Route #3: 31 29 27 28 26 34 30 32 33 4 | Route #4: 41 38 39 42 44 43 40 37 35 36 5 | Route #5: 61 81 54 96 6 | Route #6: 64 22 19 23 21 18 48 49 20 24 7 | Route #7: 65 83 25 77 75 97 58 74 8 | Route #8: 69 98 88 53 78 73 79 60 55 70 68 9 | Route #9: 72 71 93 94 67 50 62 91 80 10 | Route #10: 82 99 52 87 59 86 57 66 11 | Route #11: 90 12 | Route #12: 92 95 84 85 63 51 76 89 56 13 | Cost 1207.8 14 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC108.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 6 7 8 46 4 45 5 3 1 100 2 | Route #2: 12 14 47 17 16 15 13 9 11 10 3 | Route #3: 33 32 30 28 26 27 29 31 34 93 4 | Route #4: 41 42 44 43 40 38 37 35 36 39 5 | Route #5: 61 81 94 71 72 54 96 6 | Route #6: 64 51 76 89 18 48 19 20 66 7 | Route #7: 65 83 57 24 22 49 21 23 25 77 8 | Route #8: 69 98 88 53 78 73 79 60 55 70 68 9 | Route #9: 82 99 52 86 87 59 97 75 58 74 10 | Route #10: 90 11 | Route #11: 92 95 67 62 50 63 85 84 56 91 80 12 | Cost 1114.2 13 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC201.sol: -------------------------------------------------------------------------------- 1 | Route #1: 5 45 2 6 7 8 46 3 1 4 100 70 2 | Route #2: 14 47 16 15 12 11 9 99 57 86 87 97 10 17 13 74 58 77 25 3 | Route #3: 65 59 75 23 21 18 19 49 22 20 56 66 4 | Route #4: 69 98 88 53 73 79 78 60 55 5 | Route #5: 72 36 39 42 44 41 38 40 43 35 37 54 6 | Route #6: 81 61 68 7 | Route #7: 82 52 83 64 51 76 85 84 50 34 32 26 89 48 24 91 80 8 | Route #8: 90 9 | Route #9: 92 95 63 33 28 27 29 31 30 62 67 71 94 96 93 10 | Cost 1261.8 11 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC202.sol: -------------------------------------------------------------------------------- 1 | Route #1: 45 5 3 1 42 39 36 44 41 38 40 43 35 37 72 54 2 | Route #2: 65 64 23 21 48 18 19 49 22 20 24 74 58 75 77 25 83 3 | Route #3: 69 98 88 53 73 78 79 7 8 6 46 4 2 55 4 | Route #4: 81 61 68 5 | Route #5: 82 12 14 47 16 15 11 9 99 52 57 86 87 59 97 10 13 17 60 100 70 6 | Route #6: 90 7 | Route #7: 91 92 95 85 63 33 34 31 29 27 26 28 30 32 89 50 93 94 80 8 | Route #8: 96 71 67 62 76 51 84 56 66 9 | Cost 1092.3 10 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC203.sol: -------------------------------------------------------------------------------- 1 | Route #1: 1 3 5 45 60 12 11 15 16 47 78 73 79 7 6 8 46 4 2 55 100 70 2 | Route #2: 69 98 88 53 82 99 52 86 87 9 10 14 17 13 74 59 97 75 58 77 25 24 57 3 | Route #3: 81 54 72 37 36 39 42 44 41 38 40 35 43 61 68 4 | Route #4: 90 65 83 64 85 63 89 76 23 21 48 18 19 49 22 20 51 84 56 66 5 | Route #5: 91 92 95 62 33 32 30 27 26 28 29 31 34 50 67 94 93 71 96 80 6 | Cost 923.7 7 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC204.sol: -------------------------------------------------------------------------------- 1 | Route #1: 66 64 20 49 19 18 48 21 23 57 52 99 82 53 60 78 73 79 7 8 46 45 5 3 1 4 6 2 88 55 100 70 61 68 2 | Route #2: 69 98 12 14 47 17 16 15 11 10 9 87 13 86 74 59 97 75 58 77 25 24 22 83 65 90 3 | Route #3: 80 92 95 62 50 34 31 29 27 26 28 30 32 33 89 76 63 85 51 84 56 91 4 | Route #4: 81 54 41 39 42 44 43 40 36 35 37 38 72 71 93 67 94 96 5 | Cost 783.5 6 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC205.sol: -------------------------------------------------------------------------------- 1 | Route #1: 2 45 5 42 39 36 44 40 38 41 43 35 37 54 93 96 2 | Route #2: 65 83 64 19 23 21 18 76 85 84 51 49 22 20 24 25 48 89 91 80 3 | Route #3: 69 98 88 53 9 10 13 17 60 4 | Route #4: 82 11 15 16 47 14 12 78 73 79 7 6 8 46 4 3 1 70 100 5 | Route #5: 90 99 52 57 86 87 59 75 97 74 77 58 6 | Route #6: 92 95 63 33 30 27 28 26 29 31 32 34 50 56 66 7 | Route #7: 94 62 67 71 72 81 61 68 55 8 | Cost 1154.0 9 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC206.sol: -------------------------------------------------------------------------------- 1 | Route #1: 61 2 45 5 8 7 79 73 78 53 88 6 46 4 3 1 100 70 68 2 | Route #2: 65 83 64 95 62 63 33 30 31 29 27 28 26 32 34 50 56 91 80 3 | Route #3: 69 98 12 14 47 16 15 11 59 75 97 87 9 10 13 17 60 55 4 | Route #4: 81 94 67 84 85 51 76 89 48 25 77 58 74 5 | Route #5: 82 99 52 86 57 23 21 18 19 49 20 22 24 66 6 | Route #6: 90 7 | Route #7: 92 71 72 42 39 38 36 40 44 43 41 35 37 54 93 96 8 | Cost 1051.1 9 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC207.sol: -------------------------------------------------------------------------------- 1 | Route #1: 61 72 71 93 94 81 42 44 40 36 35 37 38 39 43 41 54 96 2 | Route #2: 65 83 64 84 85 63 51 49 18 76 89 48 20 24 66 3 | Route #3: 69 98 53 12 14 47 17 16 15 11 9 87 59 97 13 10 60 55 4 | Route #4: 82 99 52 22 19 21 23 25 77 75 58 74 86 57 90 5 | Route #5: 88 78 73 79 7 6 2 8 5 3 1 45 46 4 100 70 68 6 | Route #6: 92 95 67 62 33 30 31 29 27 28 26 32 34 50 56 91 80 7 | Cost 962.9 8 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-Solomon/RC208.sol: -------------------------------------------------------------------------------- 1 | Route #1: 61 42 44 39 38 36 35 37 40 43 41 72 71 93 96 54 81 2 | Route #2: 69 98 88 2 6 7 79 73 78 12 14 47 17 16 15 13 9 11 10 53 60 8 46 4 45 5 3 1 70 100 55 68 3 | Route #3: 90 65 82 99 52 83 64 49 19 18 48 21 23 25 77 58 75 97 59 87 74 86 57 24 22 20 66 4 | Route #4: 94 92 95 67 62 50 34 31 29 27 26 28 30 32 33 76 89 63 85 51 84 56 91 80 5 | Cost 776.1 6 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n101-k25.sol: -------------------------------------------------------------------------------- 1 | Route #1: 31 46 35 2 | Route #2: 15 22 41 20 3 | Route #3: 1 70 54 4 | Route #4: 92 9 86 5 | Route #5: 68 90 84 66 6 | Route #6: 76 55 16 69 7 | Route #7: 4 13 74 8 | Route #8: 58 12 5 9 | Route #9: 18 10 39 10 | Route #10: 25 65 78 42 28 11 | Route #11: 7 2 45 43 29 36 72 57 12 | Route #12: 87 37 6 49 14 13 | Route #13: 3 77 63 14 | Route #14: 44 67 88 40 15 | Route #15: 82 60 59 16 | Route #16: 8 17 17 | Route #17: 34 64 96 48 26 47 38 18 | Route #18: 80 94 56 21 19 | Route #19: 71 62 99 98 89 20 | Route #20: 100 61 23 21 | Route #21: 19 97 27 22 | Route #22: 81 51 83 23 | Route #23: 50 91 52 24 | Route #24: 30 85 11 79 25 | Route #25: 75 93 26 | Route #26: 24 95 73 53 33 32 27 | Cost 27591 28 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n106-k14.sol: -------------------------------------------------------------------------------- 1 | Route #1: 54 77 83 2 17 69 105 64 94 82 2 | Route #2: 57 63 31 40 13 85 21 74 3 | Route #3: 5 44 15 76 51 100 45 96 4 | Route #4: 71 49 99 11 34 72 29 5 | Route #5: 53 103 101 93 97 43 87 60 6 | Route #6: 67 48 8 36 91 88 58 14 7 | Route #7: 1 104 12 9 84 75 7 8 | Route #8: 62 26 90 24 102 92 52 9 | Route #9: 28 66 46 79 37 27 19 78 10 | Route #10: 22 33 11 | Route #11: 56 20 16 10 41 18 86 12 | Route #12: 59 89 30 42 23 3 32 73 35 13 | Route #13: 39 50 81 6 70 4 98 55 14 | Route #14: 68 95 38 65 80 61 47 25 15 | Cost 26362 16 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n110-k13.sol: -------------------------------------------------------------------------------- 1 | Route #1: 27 59 95 17 31 28 39 50 52 2 | Route #2: 58 12 41 21 75 88 96 54 68 3 | Route #3: 19 63 72 10 86 100 62 8 49 4 | Route #4: 23 13 57 107 82 48 47 40 5 | Route #5: 70 44 81 94 37 7 35 73 6 | Route #6: 79 32 74 78 29 16 90 1 7 | Route #7: 91 38 108 3 14 8 | Route #8: 105 20 92 97 42 106 67 34 45 9 | Route #9: 5 46 89 51 85 11 77 6 10 | Route #10: 98 66 53 15 26 87 84 18 109 11 | Route #11: 56 102 33 9 101 4 24 103 25 69 12 | Route #12: 71 93 104 60 61 22 83 76 55 30 13 | Route #13: 99 65 36 64 43 2 80 14 | Cost 14971 15 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n115-k10.sol: -------------------------------------------------------------------------------- 1 | Route #1: 10 2 | Route #2: 59 42 35 99 49 79 47 109 18 93 3 32 15 3 | Route #3: 16 5 6 4 | Route #4: 89 17 66 106 73 87 86 60 48 108 19 51 25 2 91 41 104 5 | Route #5: 72 102 24 71 76 55 80 97 38 77 58 113 12 45 96 22 23 65 36 6 | Route #6: 13 70 56 31 11 81 33 61 103 69 7 | Route #7: 85 74 1 7 63 64 8 | Route #8: 46 26 34 98 37 90 39 67 40 43 68 14 8 83 75 84 112 110 111 9 | Route #9: 52 21 82 88 105 27 44 30 114 54 9 78 53 29 50 10 | Route #10: 95 107 57 92 4 101 20 94 62 100 28 11 | Cost 12747 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n120-k6.sol: -------------------------------------------------------------------------------- 1 | Route #1: 20 54 62 87 72 102 111 40 6 92 35 90 114 3 45 112 71 96 107 116 2 | Route #2: 34 27 11 56 1 24 37 57 77 100 59 22 4 95 60 68 69 81 53 8 78 3 | Route #3: 98 13 41 85 89 51 63 104 105 101 47 5 26 117 108 66 46 75 17 103 99 4 | Route #4: 61 119 84 16 93 55 70 39 42 109 82 64 113 76 43 2 49 12 29 38 88 5 | Route #5: 10 94 80 32 91 21 79 118 30 67 25 73 31 52 50 6 | Route #6: 23 14 58 83 15 9 44 18 28 19 97 7 106 110 74 65 86 48 115 36 33 7 | Cost 13332 8 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n125-k30.sol: -------------------------------------------------------------------------------- 1 | Route #1: 108 27 1 46 63 79 117 2 | Route #2: 62 85 30 55 36 109 118 94 95 3 | Route #3: 25 68 47 22 40 65 80 58 101 64 4 | Route #4: 26 93 5 | Route #5: 4 107 41 7 77 6 | Route #6: 119 71 104 29 20 7 | Route #7: 72 98 69 8 | Route #8: 67 32 10 9 | Route #9: 121 54 91 21 10 | Route #10: 84 53 39 8 11 | Route #11: 45 18 12 | Route #12: 113 33 5 13 | Route #13: 75 120 14 | Route #14: 12 37 15 | Route #15: 103 35 16 | Route #16: 48 57 100 17 | Route #17: 86 111 18 | Route #18: 122 83 61 19 | Route #19: 73 110 76 20 | Route #20: 99 112 21 | Route #21: 96 38 22 | Route #22: 60 90 102 23 | Route #23: 31 3 24 | Route #24: 106 43 16 81 42 123 25 | Route #25: 74 92 87 114 11 19 9 26 | Route #26: 24 49 14 97 44 52 27 | Route #27: 78 124 2 34 6 70 59 28 13 28 | Route #28: 17 15 50 116 66 23 29 | Route #29: 56 82 30 | Route #30: 115 88 89 105 51 31 | Cost 55539 32 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n129-k18.sol: -------------------------------------------------------------------------------- 1 | Route #1: 3 2 | Route #2: 83 109 51 120 69 31 125 3 | Route #3: 47 127 28 118 38 4 | Route #4: 74 14 99 42 16 12 37 8 97 24 5 | Route #5: 32 114 73 96 95 116 92 49 100 6 | Route #6: 102 112 72 26 36 107 7 | Route #7: 70 117 115 122 106 5 123 8 | Route #8: 108 104 10 79 76 105 65 71 9 | Route #9: 126 11 85 61 41 55 40 58 101 17 110 10 | Route #10: 53 80 68 98 4 111 94 121 11 | Route #11: 54 6 45 29 81 128 87 12 | Route #12: 78 119 63 9 124 82 13 | Route #13: 50 20 52 27 113 88 86 14 | Route #14: 7 22 46 33 21 34 2 48 19 15 | Route #15: 93 39 25 84 43 30 67 16 | Route #16: 62 56 13 57 35 77 60 17 | Route #17: 91 75 103 89 66 15 18 | Route #18: 90 44 1 23 59 18 64 19 | Cost 28940 20 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n134-k13.sol: -------------------------------------------------------------------------------- 1 | Route #1: 118 91 51 16 14 60 95 2 | Route #2: 47 9 2 39 73 18 96 59 3 | Route #3: 58 34 41 105 25 113 89 116 129 4 | Route #4: 108 6 97 5 121 7 68 30 8 44 67 20 126 55 22 27 4 70 107 84 81 15 63 13 5 | Route #5: 100 122 11 114 131 101 52 40 6 | Route #6: 24 37 88 102 94 93 42 65 28 75 98 23 77 53 66 90 7 | Route #7: 31 92 1 69 49 117 64 48 127 8 | Route #8: 29 61 71 120 111 36 43 79 112 9 | Route #9: 85 106 45 21 46 99 104 57 119 10 | Route #10: 132 109 17 19 130 80 115 125 128 11 | Route #11: 76 82 133 12 124 33 86 72 3 12 | Route #12: 83 38 50 35 26 74 87 78 13 | Route #13: 56 123 110 54 32 62 10 103 14 | Cost 10916 15 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n139-k10.sol: -------------------------------------------------------------------------------- 1 | Route #1: 109 10 13 97 31 58 35 110 45 20 121 79 2 | Route #2: 73 120 78 80 41 92 107 132 93 130 127 64 133 75 54 3 | Route #3: 98 122 138 55 46 43 77 106 82 105 111 76 56 4 | Route #4: 104 136 83 68 116 128 47 119 1 18 21 103 28 63 5 | Route #5: 3 81 102 134 40 37 17 11 101 14 135 33 86 89 6 | Route #6: 7 30 84 51 39 8 15 60 59 42 67 100 71 91 7 | Route #7: 95 126 52 87 117 72 66 19 61 48 65 44 57 29 8 | Route #8: 99 2 49 12 90 113 6 5 96 53 129 36 24 85 118 9 | Route #9: 16 32 114 137 125 25 112 22 26 23 4 62 124 10 | Route #10: 88 70 74 50 123 27 115 34 131 38 69 94 108 9 11 | Cost 13590 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n143-k7.sol: -------------------------------------------------------------------------------- 1 | Route #1: 128 118 54 12 89 45 90 18 133 28 83 56 91 85 120 97 19 7 32 16 36 2 | Route #2: 65 61 64 44 74 11 100 81 47 96 62 104 132 23 21 33 125 123 137 55 139 95 57 73 3 | Route #3: 126 13 127 84 68 4 | Route #4: 25 35 142 82 14 37 122 77 22 119 80 39 29 42 131 69 140 141 15 27 106 24 99 71 130 5 | Route #5: 109 9 50 49 51 88 52 20 66 101 46 67 58 135 59 40 70 124 115 6 | Route #6: 4 48 87 30 121 34 138 105 129 76 3 94 75 26 112 63 113 10 103 38 134 92 108 117 7 | Route #7: 136 116 17 93 5 107 1 111 72 60 79 98 31 6 102 53 110 114 43 8 86 41 2 78 8 | Cost 15700 9 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n148-k46.sol: -------------------------------------------------------------------------------- 1 | Route #1: 99 2 | Route #2: 23 47 46 3 | Route #3: 64 138 102 114 4 | Route #4: 39 89 5 | Route #5: 65 144 131 6 | Route #6: 94 41 78 7 | Route #7: 4 60 51 8 | Route #8: 19 133 141 147 9 | Route #9: 30 56 10 | Route #10: 45 50 9 24 63 11 11 | Route #11: 97 132 12 | Route #12: 124 121 140 13 | Route #13: 38 69 29 25 14 | Route #14: 21 93 15 | Route #15: 43 58 72 16 | Route #16: 143 76 83 17 | Route #17: 87 95 18 | Route #18: 71 5 28 19 | Route #19: 1 59 20 | Route #20: 27 55 22 21 | Route #21: 96 33 36 13 66 145 49 22 | Route #22: 86 122 2 23 | Route #23: 128 146 111 24 | Route #24: 34 139 25 | Route #25: 123 91 79 92 26 | Route #26: 42 134 84 27 | Route #27: 118 107 28 | Route #28: 17 112 70 142 29 | Route #29: 35 113 30 | Route #30: 127 77 109 62 31 | Route #31: 85 110 137 32 | Route #32: 104 32 82 33 | Route #33: 18 75 34 | Route #34: 106 136 35 | Route #35: 88 44 36 | Route #36: 129 10 54 68 37 | Route #37: 14 61 67 98 38 | Route #38: 120 81 7 39 | Route #39: 57 130 26 40 | Route #40: 20 80 119 48 52 41 | Route #41: 105 40 42 | Route #42: 37 125 6 103 101 43 | Route #43: 100 115 135 31 44 | Route #44: 126 53 73 45 | Route #45: 116 90 15 46 | Route #46: 8 3 12 117 47 | Route #47: 16 74 108 48 | Cost 43448 49 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n153-k22.sol: -------------------------------------------------------------------------------- 1 | Route #1: 101 62 27 32 35 106 125 111 131 65 147 2 | Route #2: 39 60 86 99 92 150 67 24 80 61 78 120 3 | Route #3: 145 109 28 79 30 4 | Route #4: 129 49 113 123 136 1 89 66 144 41 88 5 | Route #5: 74 14 110 105 6 | Route #6: 139 9 29 7 | Route #7: 102 87 40 23 47 8 | Route #8: 141 5 15 149 9 | Route #9: 83 8 10 | Route #10: 117 45 148 98 50 85 76 114 18 97 118 151 43 127 81 37 11 | Route #11: 48 77 135 20 103 44 54 142 73 128 12 | Route #12: 90 33 63 68 138 16 146 130 13 | Route #13: 3 22 96 132 56 14 | Route #14: 52 72 10 51 122 59 70 100 137 91 119 126 116 15 | Route #15: 4 6 16 | Route #16: 26 12 121 17 | Route #17: 71 84 69 58 75 38 112 55 2 143 18 | Route #18: 93 152 19 133 46 108 94 134 115 19 | Route #19: 17 140 31 20 | Route #20: 11 7 36 21 | Route #21: 21 22 | Route #22: 95 25 82 64 104 124 57 53 42 23 | Route #23: 34 13 107 24 | Cost 21220 25 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n157-k13.sol: -------------------------------------------------------------------------------- 1 | Route #1: 34 138 25 155 22 30 74 79 84 33 48 72 2 | Route #2: 75 16 65 87 97 62 142 128 26 120 14 49 3 | Route #3: 38 122 69 99 93 103 36 68 20 118 147 15 4 | Route #4: 41 110 54 121 21 135 73 106 3 42 32 143 5 | Route #5: 23 31 140 85 144 53 123 98 154 50 133 131 6 | Route #6: 17 67 4 35 6 115 55 95 105 152 56 61 7 | Route #7: 37 116 19 46 145 127 104 130 124 44 27 101 8 | Route #8: 59 96 102 111 132 86 94 66 28 7 137 92 9 | Route #9: 148 13 63 64 141 43 24 156 150 8 149 71 10 | Route #10: 70 139 125 78 146 80 40 108 9 117 1 126 11 | Route #11: 47 5 153 76 136 112 89 81 119 2 57 88 12 | Route #12: 151 113 82 11 77 45 83 90 51 100 91 129 13 | Route #13: 12 60 109 114 29 58 39 10 134 52 107 18 14 | Cost 16876 15 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n162-k11.sol: -------------------------------------------------------------------------------- 1 | Route #1: 127 17 149 89 14 1 55 60 21 9 27 117 97 77 161 2 | Route #2: 72 135 159 147 121 85 160 84 122 107 133 138 126 139 15 3 | Route #3: 29 10 105 144 119 141 115 156 59 4 | Route #4: 143 153 110 128 124 134 148 109 2 82 118 30 157 112 40 103 5 | Route #5: 155 92 125 93 132 87 4 101 151 146 39 137 108 158 91 136 6 | Route #6: 74 81 120 5 16 32 57 131 37 71 13 6 49 24 23 7 | Route #7: 50 45 152 28 26 48 11 73 38 58 68 145 90 150 8 | Route #8: 52 116 102 142 43 123 56 66 100 94 36 35 99 130 86 53 9 | Route #9: 80 111 154 140 31 106 88 96 129 95 114 62 67 20 78 54 10 | Route #10: 34 7 44 75 33 3 51 42 65 69 46 61 41 76 8 11 | Route #11: 25 47 98 83 104 63 113 70 12 64 18 19 22 79 12 | Cost 14138 13 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n167-k10.sol: -------------------------------------------------------------------------------- 1 | Route #1: 144 18 101 27 108 102 100 135 150 98 45 81 164 34 65 110 36 105 80 2 | Route #2: 76 142 19 50 40 31 24 133 70 141 39 11 82 120 112 95 75 160 21 3 | Route #3: 124 87 42 54 23 139 154 132 60 113 71 143 130 3 79 121 152 4 | Route #4: 99 63 103 86 5 5 | Route #5: 158 59 53 32 72 10 51 146 84 37 136 114 2 29 28 16 109 6 | Route #6: 46 52 85 156 115 97 148 116 153 4 149 131 151 38 55 92 30 44 7 | Route #7: 138 20 49 64 107 104 12 57 77 13 1 122 111 88 163 145 129 8 8 | Route #8: 134 119 140 15 159 17 96 14 128 123 62 162 68 48 9 157 6 9 | Route #9: 35 26 165 78 41 74 33 106 166 94 90 161 91 147 117 43 66 125 10 | Route #10: 67 89 7 25 93 118 47 126 127 61 58 56 155 69 83 22 73 137 11 | Cost 20557 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n172-k51.sol: -------------------------------------------------------------------------------- 1 | Route #1: 124 2 | Route #2: 147 101 80 3 | Route #3: 74 59 151 4 | Route #4: 24 38 5 | Route #5: 40 115 6 | Route #6: 109 2 7 | Route #7: 113 49 8 | Route #8: 75 52 9 | Route #9: 117 118 10 | Route #10: 71 148 11 | Route #11: 58 97 12 | Route #12: 150 143 13 | Route #13: 157 47 14 | Route #14: 95 90 15 | Route #15: 125 36 16 | Route #16: 27 162 17 | Route #17: 163 50 18 | Route #18: 100 153 19 | Route #19: 126 133 111 20 | Route #20: 160 46 21 | Route #21: 12 34 22 | Route #22: 84 85 23 | Route #23: 65 137 24 | Route #24: 106 16 32 41 25 | Route #25: 112 122 127 121 26 | Route #26: 91 7 108 164 99 142 107 37 119 105 27 | Route #27: 94 96 89 98 93 158 28 | Route #28: 61 132 161 18 51 29 | Route #29: 152 87 103 155 149 114 30 | Route #30: 22 62 92 110 70 131 31 | Route #31: 60 69 13 171 67 32 | Route #32: 145 146 53 11 68 33 | Route #33: 48 141 138 34 | Route #34: 102 88 35 | Route #35: 28 25 36 | Route #36: 123 144 120 37 | Route #37: 165 168 38 | Route #38: 129 130 39 | Route #39: 159 116 40 | Route #40: 167 35 41 | Route #41: 83 21 42 | Route #42: 26 139 43 | Route #43: 76 55 44 | Route #44: 166 3 45 | Route #45: 57 20 14 46 | Route #46: 54 4 33 17 135 47 | Route #47: 134 156 86 48 | Route #48: 154 1 140 19 104 42 49 | Route #49: 23 10 5 9 29 8 64 31 50 | Route #50: 45 56 39 81 78 82 128 51 | Route #51: 169 77 170 136 52 | Route #52: 66 30 79 44 72 53 | Route #53: 63 73 15 43 6 54 | Cost 45607 55 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n176-k26.sol: -------------------------------------------------------------------------------- 1 | Route #1: 165 75 70 54 109 1 100 163 2 | Route #2: 13 170 33 69 3 | Route #3: 103 96 95 164 168 85 125 128 52 4 4 | Route #4: 135 74 41 24 173 131 65 151 154 5 | Route #5: 156 148 99 118 22 71 104 92 6 | Route #6: 144 44 158 7 77 64 86 91 57 7 | Route #7: 81 117 38 83 48 119 45 35 142 133 8 | Route #8: 162 29 134 21 9 | Route #9: 11 169 9 10 | Route #10: 30 53 34 42 11 | Route #11: 40 23 28 110 12 | Route #12: 174 49 107 126 5 68 152 105 87 61 13 | Route #13: 51 55 80 129 37 112 146 108 141 50 94 59 46 14 | Route #14: 88 27 32 160 15 | Route #15: 149 132 150 18 130 76 115 16 | Route #16: 114 106 63 6 66 138 56 17 | Route #17: 67 20 17 18 | Route #18: 136 137 89 82 116 43 78 16 19 | Route #19: 153 167 25 73 2 140 20 | Route #20: 139 97 124 47 72 12 58 157 93 21 | Route #21: 39 62 159 15 172 90 171 22 | Route #22: 111 3 31 23 | Route #23: 127 155 8 113 84 121 145 123 102 24 | Route #24: 122 60 98 143 10 175 25 | Route #25: 14 36 101 161 26 | Route #26: 19 166 147 79 26 120 27 | Cost 47812 28 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n181-k23.sol: -------------------------------------------------------------------------------- 1 | Route #1: 114 67 130 73 124 144 165 104 2 | Route #2: 8 76 18 159 171 96 80 58 3 | Route #3: 88 78 93 3 102 21 98 176 4 | Route #4: 49 137 107 20 161 109 68 19 5 | Route #5: 14 36 158 79 30 9 128 60 6 | Route #6: 52 51 29 27 122 157 47 143 7 | Route #7: 142 11 42 84 26 90 163 95 8 | Route #8: 132 140 63 85 89 2 149 152 9 | Route #9: 116 92 131 169 61 65 32 44 10 | Route #10: 45 148 180 145 11 | Route #11: 59 106 154 38 129 136 77 13 12 | Route #12: 133 173 119 28 69 100 56 99 13 | Route #13: 139 160 172 141 81 66 25 72 14 | Route #14: 1 16 50 94 146 166 74 46 15 | Route #15: 123 174 48 6 126 120 101 112 16 | Route #16: 153 82 103 125 83 134 7 91 17 | Route #17: 31 57 110 175 162 168 41 22 18 | Route #18: 75 113 4 53 33 151 35 117 19 | Route #19: 39 167 87 147 37 164 15 127 20 | Route #20: 178 156 177 40 150 97 34 118 21 | Route #21: 17 71 24 179 115 138 155 170 22 | Route #22: 55 135 5 105 64 86 62 23 23 | Route #23: 10 43 111 54 70 121 12 108 24 | Cost 25569 25 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n186-k15.sol: -------------------------------------------------------------------------------- 1 | Route #1: 14 73 8 119 33 104 140 49 126 173 85 171 2 | Route #2: 152 166 143 123 120 165 34 132 117 64 177 4 24 3 | Route #3: 65 50 92 44 138 21 147 55 48 179 70 63 148 158 4 | Route #4: 47 125 137 169 146 76 46 57 62 56 167 141 127 5 | Route #5: 31 32 23 105 109 25 160 133 6 10 131 130 153 6 | Route #6: 88 59 37 15 185 7 90 1 144 163 103 116 18 121 72 7 | Route #7: 101 100 114 142 156 79 113 178 174 96 40 22 8 | Route #8: 52 115 118 36 61 157 17 80 110 149 3 161 9 | Route #9: 164 87 136 51 83 134 78 75 81 106 150 29 39 10 | Route #10: 124 42 86 53 181 170 108 43 41 38 111 67 11 | Route #11: 154 5 162 168 145 95 91 45 128 74 12 129 12 | Route #12: 175 82 97 102 139 122 151 98 89 27 84 99 13 | Route #13: 28 2 30 93 182 183 9 77 159 69 107 26 60 14 | Route #14: 184 71 135 66 20 112 54 94 11 180 35 19 16 15 | Route #15: 172 68 155 58 176 13 16 | Cost 24145 17 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n190-k8.sol: -------------------------------------------------------------------------------- 1 | Route #1: 95 97 143 176 5 47 101 146 186 87 152 41 181 70 141 98 148 177 71 52 123 167 136 183 25 64 2 | Route #2: 168 73 112 80 150 147 24 12 86 125 77 22 38 2 36 39 30 85 138 28 58 43 102 3 | Route #3: 131 118 99 45 149 139 72 133 156 129 108 103 34 128 163 4 110 171 120 13 66 63 57 188 19 105 4 | Route #4: 169 78 137 151 174 48 54 126 76 185 18 84 153 180 61 32 40 124 187 27 15 90 42 62 100 8 56 130 6 5 | Route #5: 46 135 92 81 145 115 144 94 50 178 179 21 68 35 109 89 104 142 159 10 6 | Route #6: 172 127 44 88 165 1 184 160 182 83 29 37 7 | Route #7: 31 16 51 93 75 158 164 23 111 113 91 9 114 65 20 162 33 107 74 161 134 132 173 157 166 170 8 | Route #8: 106 119 49 26 117 175 11 122 82 116 60 79 17 155 7 154 189 140 53 3 96 59 55 69 121 67 14 9 | Cost 16980 10 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n195-k51.sol: -------------------------------------------------------------------------------- 1 | Route #1: 159 2 | Route #2: 55 38 18 23 47 3 | Route #3: 50 3 4 | Route #4: 57 9 72 26 14 5 | Route #5: 21 89 170 92 6 | Route #6: 58 35 44 7 | Route #7: 36 78 107 11 167 161 98 8 | Route #8: 117 131 189 67 9 | Route #9: 86 106 160 10 | Route #10: 31 54 29 104 11 | Route #11: 42 164 115 91 108 180 12 | Route #12: 64 52 13 | Route #13: 12 39 20 90 14 | Route #14: 17 155 120 24 15 | Route #15: 66 152 85 71 188 16 | Route #16: 48 13 118 17 | Route #17: 33 168 143 18 | Route #18: 88 61 53 74 19 | Route #19: 10 135 20 | Route #20: 122 8 114 46 21 | Route #21: 147 163 191 22 | Route #22: 130 99 150 183 23 | Route #23: 174 158 142 103 134 24 | Route #24: 110 113 176 25 | Route #25: 100 186 187 105 136 26 | Route #26: 4 156 119 27 | Route #27: 144 157 166 28 | Route #28: 178 77 49 29 | Route #29: 2 87 37 123 149 30 | Route #30: 95 28 177 31 | Route #31: 68 80 32 | Route #32: 69 171 109 111 102 33 | Route #33: 6 1 34 | Route #34: 25 22 35 | Route #35: 127 94 141 140 36 | Route #36: 128 133 175 97 153 121 37 | Route #37: 27 51 65 30 38 | Route #38: 60 79 39 | Route #39: 62 162 116 40 | Route #40: 73 41 41 | Route #41: 34 193 96 83 138 42 | Route #42: 132 63 43 | Route #43: 125 148 165 44 | Route #44: 32 139 154 179 45 | Route #45: 101 137 46 | Route #46: 185 16 129 126 47 | Route #47: 59 56 145 48 | Route #48: 190 172 82 192 49 | Route #49: 146 124 184 112 45 50 | Route #50: 173 151 70 169 51 | Route #51: 181 194 81 7 52 | Route #52: 84 76 15 40 19 182 53 | Route #53: 5 43 75 93 54 | Cost 44225 55 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n200-k36.sol: -------------------------------------------------------------------------------- 1 | Route #1: 47 36 60 157 16 2 | Route #2: 29 44 110 108 23 3 | Route #3: 69 81 133 170 102 4 | Route #4: 181 138 100 168 99 5 | Route #5: 59 171 169 119 196 6 | Route #6: 75 6 117 61 49 172 7 | Route #7: 79 162 11 84 178 8 | Route #8: 31 32 12 20 10 9 | Route #9: 45 113 48 58 63 10 | Route #10: 28 179 185 77 5 11 | Route #11: 18 121 154 78 125 40 12 | Route #12: 74 70 188 163 46 57 13 | Route #13: 150 65 88 106 85 27 14 | Route #14: 194 68 67 62 151 15 | Route #15: 76 4 129 109 142 26 92 16 | Route #16: 55 17 14 145 72 190 167 186 17 | Route #17: 52 187 39 182 193 87 140 98 18 | Route #18: 115 130 147 97 83 111 19 | Route #19: 152 131 7 134 123 53 20 | Route #20: 120 73 156 94 180 21 | Route #21: 103 38 89 19 191 22 | Route #22: 159 132 82 42 101 23 | Route #23: 153 173 195 54 183 135 24 | Route #24: 3 50 35 105 155 25 | Route #25: 93 8 166 66 198 26 | Route #26: 175 122 114 146 30 149 27 | Route #27: 13 176 25 43 24 41 28 | Route #28: 189 95 104 116 177 29 | Route #29: 33 22 51 15 71 34 30 | Route #30: 118 136 91 161 158 31 | Route #31: 199 184 37 56 128 32 | Route #32: 141 143 137 96 127 33 | Route #33: 90 64 21 164 174 34 | Route #34: 86 1 112 144 9 35 | Route #35: 197 148 192 107 2 126 36 | Route #36: 160 124 165 139 80 37 | Cost 58578 38 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n204-k19.sol: -------------------------------------------------------------------------------- 1 | Route #1: 145 142 194 90 2 | Route #2: 5 176 2 104 190 114 193 159 98 118 3 | Route #3: 8 166 121 112 9 187 111 203 144 116 148 4 | Route #4: 188 172 133 127 154 195 132 62 70 124 151 5 | Route #5: 109 152 18 182 200 12 136 135 202 150 106 6 | Route #6: 199 119 48 36 101 53 34 15 100 78 32 7 | Route #7: 177 167 131 169 164 16 198 181 155 123 170 8 | Route #8: 173 65 143 128 72 30 174 52 27 49 75 83 9 | Route #9: 160 113 122 157 105 162 71 179 99 120 186 79 10 | Route #10: 63 50 45 38 189 26 183 153 77 96 11 | Route #11: 19 80 46 20 82 35 37 60 64 88 12 | Route #12: 58 29 95 67 7 84 39 33 43 17 13 | Route #13: 42 21 73 69 23 24 28 6 86 92 85 14 | Route #14: 41 31 59 4 25 91 54 13 87 3 74 15 | Route #15: 201 137 55 156 110 66 40 94 56 11 51 61 16 | Route #16: 197 139 89 93 165 180 158 146 103 184 163 57 17 | Route #17: 22 125 117 81 44 10 102 14 147 185 140 141 18 | Route #18: 191 138 115 168 175 130 161 171 47 129 68 19 | Route #19: 76 97 196 108 178 107 149 192 126 134 1 20 | Cost 19565 21 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n209-k16.sol: -------------------------------------------------------------------------------- 1 | Route #1: 169 105 78 136 53 58 187 77 111 97 75 178 40 119 2 | Route #2: 20 149 188 122 181 142 147 106 15 35 25 81 39 112 3 | Route #3: 65 18 132 68 177 128 50 175 45 183 131 16 4 | Route #4: 14 33 148 206 155 95 5 57 82 207 71 63 5 | Route #5: 110 84 98 152 44 49 26 156 70 100 205 42 6 | Route #6: 34 38 56 173 203 103 29 54 72 47 199 161 88 190 7 | Route #7: 200 176 130 101 108 74 96 172 37 166 7 129 31 102 8 | Route #8: 87 163 104 114 135 123 73 170 192 67 99 27 17 165 91 9 | Route #9: 64 134 153 11 28 115 36 202 185 179 154 150 140 89 10 | Route #10: 160 168 52 133 59 137 79 146 55 164 76 19 21 194 11 | Route #11: 145 13 62 117 139 184 41 195 66 1 83 2 113 12 | Route #12: 93 30 197 85 171 158 32 109 189 24 157 182 61 120 51 13 | Route #13: 198 69 186 180 22 138 121 167 3 151 86 10 118 14 | Route #14: 208 127 43 60 9 4 124 162 8 90 126 174 48 15 | Route #15: 159 144 143 204 80 201 16 | Route #16: 196 6 125 12 193 92 107 141 46 94 23 191 116 17 | Cost 30656 18 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n214-k11.sol: -------------------------------------------------------------------------------- 1 | Route #1: 33 78 76 166 180 175 97 136 182 115 59 173 50 201 46 149 10 206 191 2 | Route #2: 189 133 87 77 139 141 130 188 192 43 88 29 74 94 22 81 56 195 159 125 73 38 39 49 47 3 | Route #3: 13 181 168 144 48 62 91 147 2 212 156 177 204 104 157 41 5 129 11 40 167 135 124 4 | Route #4: 80 120 93 82 27 117 53 45 132 68 63 17 187 186 200 64 5 | Route #5: 55 36 162 160 30 196 3 199 60 142 18 110 176 108 42 79 197 131 101 6 | Route #6: 155 21 126 198 9 134 146 90 86 54 119 171 178 194 19 15 98 34 163 99 7 | Route #7: 96 137 172 7 83 210 92 179 123 158 105 23 70 116 6 169 8 | Route #8: 4 72 203 35 1 111 57 128 165 67 154 112 202 211 174 140 143 9 | Route #9: 31 107 32 121 12 127 52 25 170 8 89 69 61 85 100 28 75 10 | Route #10: 58 103 207 44 145 150 184 95 113 122 114 16 14 66 37 164 51 183 109 205 20 161 190 153 11 | Route #11: 193 106 65 71 138 152 209 26 213 148 102 185 118 208 24 84 151 12 | Cost 10856 13 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n219-k73.sol: -------------------------------------------------------------------------------- 1 | Route #1: 53 96 128 2 | Route #2: 153 165 172 3 | Route #3: 112 3 93 4 | Route #4: 217 31 152 5 | Route #5: 159 175 37 6 | Route #6: 88 116 83 7 | Route #7: 57 102 25 8 | Route #8: 12 137 74 9 | Route #9: 205 36 76 10 | Route #10: 38 40 150 11 | Route #11: 209 15 22 12 | Route #12: 70 20 41 13 | Route #13: 212 69 136 14 | Route #14: 99 78 18 15 | Route #15: 171 58 156 16 | Route #16: 56 218 13 17 | Route #17: 2 65 72 18 | Route #18: 178 190 71 19 | Route #19: 144 200 148 20 | Route #20: 48 7 91 21 | Route #21: 33 29 23 22 | Route #22: 43 169 161 23 | Route #23: 34 133 130 24 | Route #24: 168 92 59 25 | Route #25: 134 89 211 26 | Route #26: 210 201 207 27 | Route #27: 104 118 154 28 | Route #28: 11 14 80 29 | Route #29: 155 181 125 30 | Route #30: 185 166 31 | Route #31: 174 73 17 32 | Route #32: 19 213 184 33 | Route #33: 182 199 195 34 | Route #34: 129 158 198 35 | Route #35: 131 138 183 36 | Route #36: 63 42 187 37 | Route #37: 21 44 203 38 | Route #38: 28 100 126 39 | Route #39: 147 85 162 40 | Route #40: 94 186 145 41 | Route #41: 196 120 194 42 | Route #42: 119 8 215 43 | Route #43: 189 179 139 44 | Route #44: 111 45 10 45 | Route #45: 143 68 105 46 | Route #46: 170 123 47 47 | Route #47: 30 173 146 48 | Route #48: 50 103 216 49 | Route #49: 132 62 108 50 | Route #50: 55 54 151 51 | Route #51: 141 98 82 52 | Route #52: 27 122 26 53 | Route #53: 142 163 101 54 | Route #54: 117 49 24 55 | Route #55: 9 5 176 56 | Route #56: 149 77 177 57 | Route #57: 106 197 86 58 | Route #58: 188 32 39 59 | Route #59: 60 140 35 60 | Route #60: 110 107 109 61 | Route #61: 192 167 16 62 | Route #62: 67 206 6 63 | Route #63: 81 204 113 64 | Route #64: 180 4 191 65 | Route #65: 95 52 61 66 | Route #66: 66 160 84 67 | Route #67: 214 79 202 68 | Route #68: 114 46 75 69 | Route #69: 121 135 90 70 | Route #70: 157 124 193 71 | Route #71: 127 64 51 72 | Route #72: 97 1 208 73 | Route #73: 164 115 87 74 | Cost 117595 75 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n223-k34.sol: -------------------------------------------------------------------------------- 1 | Route #1: 66 120 123 94 135 162 153 78 2 | Route #2: 24 31 130 181 69 3 | Route #3: 132 52 5 38 121 216 4 | Route #4: 12 96 63 48 64 5 | Route #5: 194 151 142 219 139 178 169 6 | Route #6: 208 217 183 190 188 70 7 | Route #7: 199 113 128 147 89 165 212 8 | Route #8: 21 37 80 4 152 192 26 9 | Route #9: 174 163 122 186 77 10 | Route #10: 221 118 205 46 182 11 | Route #11: 144 127 155 14 47 214 116 12 | Route #12: 156 138 198 67 60 179 13 | Route #13: 140 206 161 172 19 14 | Route #14: 99 13 28 146 134 53 210 15 | Route #15: 211 97 50 110 33 83 40 16 | Route #16: 41 84 62 76 45 17 | Route #17: 98 91 29 72 2 16 61 10 18 | Route #18: 51 103 23 36 30 73 101 57 86 7 104 56 19 | Route #19: 65 59 55 85 213 54 20 | Route #20: 79 93 18 75 81 109 25 21 | Route #21: 6 11 34 3 90 17 22 | Route #22: 20 35 82 74 23 | Route #23: 136 95 100 24 | Route #24: 68 167 49 106 58 180 187 168 189 42 126 117 25 | Route #25: 131 129 222 218 164 22 26 | Route #26: 200 141 170 87 27 158 204 27 | Route #27: 119 220 114 143 137 171 203 28 | Route #28: 108 44 43 148 29 | Route #29: 92 154 1 105 32 111 30 | Route #30: 112 176 149 173 202 31 | Route #31: 197 88 125 150 107 184 133 71 196 8 9 32 | Route #32: 177 193 166 209 102 33 | Route #33: 185 39 124 15 207 215 157 175 34 | Route #34: 195 160 201 191 115 145 159 35 | Cost 40437 36 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n228-k23.sol: -------------------------------------------------------------------------------- 1 | Route #1: 129 227 140 27 184 176 118 106 42 2 | Route #2: 155 28 26 192 218 3 | Route #3: 69 124 114 51 32 104 173 133 74 158 62 146 222 80 170 156 4 | Route #4: 90 35 58 2 103 29 142 5 | Route #5: 193 191 207 18 189 186 78 128 86 70 6 | Route #6: 101 225 77 30 202 68 44 195 38 7 | Route #7: 220 61 1 40 57 100 83 159 172 206 110 76 47 203 8 | Route #8: 117 151 212 137 36 14 4 148 9 | Route #9: 182 72 167 50 88 208 20 13 177 67 145 98 10 | Route #10: 52 116 82 92 144 162 33 39 112 164 171 11 | Route #11: 217 12 37 65 75 134 15 12 | Route #12: 181 201 190 152 64 6 108 139 165 97 122 196 13 | Route #13: 71 194 200 213 25 59 109 141 198 91 205 14 | Route #14: 119 56 5 163 138 99 221 136 111 121 127 79 224 15 | Route #15: 16 19 16 | Route #16: 216 84 126 169 48 214 3 54 149 17 | Route #17: 160 153 161 10 180 46 188 199 63 130 135 94 209 95 166 34 178 41 18 | Route #18: 24 9 107 89 123 19 | Route #19: 113 174 143 210 215 96 147 7 105 226 23 20 | Route #20: 60 157 73 115 49 43 31 21 93 120 21 | Route #21: 183 223 132 102 168 87 11 53 179 197 150 187 22 | Route #22: 66 81 22 17 175 23 | Route #23: 204 219 85 45 131 154 8 55 185 125 211 24 | Cost 25742 25 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n233-k16.sol: -------------------------------------------------------------------------------- 1 | Route #1: 124 168 115 138 227 136 137 66 127 19 7 62 80 40 2 | Route #2: 48 109 86 23 3 58 82 31 3 | Route #3: 112 166 4 68 106 2 116 65 4 | Route #4: 110 38 64 28 8 93 77 27 5 | Route #5: 193 224 191 145 6 114 84 87 45 71 92 108 172 6 | Route #6: 39 180 135 176 117 51 67 99 228 223 46 126 75 78 20 15 52 74 230 7 | Route #7: 153 222 197 111 30 85 17 5 129 183 141 130 219 175 118 218 190 37 147 25 63 177 113 90 133 47 8 | Route #8: 76 41 79 29 101 16 97 43 9 | Route #9: 55 60 1 42 81 89 226 35 56 10 | Route #10: 170 57 10 220 61 14 208 91 155 11 | Route #11: 21 206 173 139 189 200 164 181 12 | Route #12: 11 13 | Route #13: 215 192 131 53 59 194 18 100 120 134 14 | Route #14: 151 160 182 211 221 122 143 213 148 165 98 54 205 50 15 | Route #15: 13 179 34 132 142 123 169 146 186 128 198 207 171 225 156 184 188 187 185 178 195 201 214 199 49 72 16 | Route #16: 102 159 162 174 217 119 158 210 70 144 196 88 9 36 167 44 95 94 12 140 83 231 202 103 216 203 22 104 149 17 | Route #17: 107 212 161 157 229 121 33 209 125 154 150 32 105 73 26 24 204 232 152 96 69 163 18 | Cost 19230 19 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n237-k14.sol: -------------------------------------------------------------------------------- 1 | Route #1: 175 97 71 199 209 141 17 75 226 187 176 63 4 163 194 56 77 39 2 | Route #2: 230 23 236 54 69 197 119 140 123 103 190 144 171 6 170 91 165 185 3 | Route #3: 200 18 19 55 42 154 99 60 193 12 127 208 139 32 134 156 125 211 4 | Route #4: 29 120 20 159 147 76 36 216 16 98 64 142 15 92 136 110 81 169 5 | Route #5: 177 43 8 196 51 48 146 215 118 25 85 100 65 108 47 132 9 38 6 | Route #6: 28 109 7 | Route #7: 10 13 102 40 133 207 220 126 90 30 24 151 72 44 225 67 219 66 8 | Route #8: 62 70 222 49 113 101 79 233 174 94 37 117 188 41 191 172 80 180 9 | Route #9: 130 2 145 68 149 52 88 128 202 34 96 124 204 234 27 195 164 21 10 | Route #10: 192 183 14 122 50 150 189 59 82 179 181 157 78 137 186 235 212 46 11 | Route #11: 229 84 26 228 210 213 61 5 57 161 3 198 104 227 107 231 89 168 12 | Route #12: 129 135 87 114 162 201 205 166 217 223 33 155 218 138 22 152 214 35 13 | Route #13: 173 115 86 158 31 111 206 182 45 53 221 121 112 93 58 95 73 7 14 | Route #14: 224 184 148 1 203 167 83 105 143 232 178 153 116 160 11 131 74 106 15 | Cost 27042 16 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n242-k48.sol: -------------------------------------------------------------------------------- 1 | Route #1: 128 63 143 131 7 34 59 2 | Route #2: 238 192 161 89 3 | Route #3: 155 108 32 130 38 4 | Route #4: 210 112 16 240 5 | Route #5: 11 43 181 173 6 | Route #6: 100 133 149 136 118 7 | Route #7: 165 176 75 10 8 | Route #8: 65 5 223 142 73 81 9 | Route #9: 151 77 172 189 10 | Route #10: 132 97 180 183 11 | Route #11: 91 39 195 197 152 12 | Route #12: 159 56 113 235 13 | Route #13: 49 114 14 | Route #14: 186 52 179 185 218 15 | Route #15: 21 140 60 83 87 16 | Route #16: 224 30 201 8 17 | Route #17: 105 119 232 230 205 35 18 | Route #18: 69 92 124 184 95 70 138 19 | Route #19: 67 123 237 110 20 | Route #20: 25 20 50 241 231 166 21 | Route #21: 208 156 90 19 47 22 | Route #22: 211 3 88 80 33 31 206 23 | Route #23: 217 18 170 214 71 62 24 | Route #24: 27 55 187 199 127 147 25 | Route #25: 225 222 58 125 233 26 | Route #26: 9 167 174 93 84 27 | Route #27: 101 157 209 207 28 | Route #28: 126 190 42 29 | Route #29: 122 76 17 160 135 44 158 30 | Route #30: 141 64 226 175 46 188 31 | Route #31: 22 37 239 200 198 32 | Route #32: 216 171 57 33 | Route #33: 111 163 1 202 4 34 | Route #34: 45 72 164 219 221 35 | Route #35: 177 94 169 234 26 36 | Route #36: 36 79 14 203 153 37 | Route #37: 54 85 236 15 129 38 | Route #38: 146 134 150 12 139 68 6 39 | Route #39: 96 196 121 40 | Route #40: 103 86 228 82 168 212 41 | Route #41: 215 220 213 117 98 28 42 | Route #42: 148 104 144 162 182 191 43 | Route #43: 61 51 194 204 115 44 | Route #44: 137 13 107 227 45 | Route #45: 120 41 193 109 178 40 46 | Route #46: 24 29 99 74 154 47 | Route #47: 78 145 66 102 48 48 | Route #48: 116 53 23 2 229 106 49 | Cost 82751 50 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n247-k50.sol: -------------------------------------------------------------------------------- 1 | Route #1: 53 131 161 2 | Route #2: 45 34 156 3 | Route #3: 178 149 80 185 51 106 121 84 212 105 4 | Route #4: 41 87 13 151 5 | Route #5: 158 1 181 237 134 112 6 | Route #6: 164 70 175 227 173 63 200 98 7 | Route #7: 117 165 128 33 74 120 238 225 8 | Route #8: 52 9 | Route #9: 206 83 195 114 109 245 194 93 8 10 | Route #10: 239 220 144 229 230 5 210 188 137 179 182 11 | Route #11: 17 23 12 | Route #12: 36 18 123 13 | Route #13: 21 85 14 | Route #14: 86 126 73 39 246 226 90 197 15 | Route #15: 167 71 190 62 233 104 172 76 183 16 | Route #16: 198 214 193 196 77 234 240 127 28 89 79 17 | Route #17: 160 6 59 18 | Route #18: 88 201 78 69 184 38 203 146 107 221 145 19 | Route #19: 141 154 19 152 118 20 | Route #20: 16 21 | Route #21: 48 24 22 | Route #22: 170 244 91 102 217 199 35 140 23 | Route #23: 142 163 110 9 139 75 125 129 81 216 24 | Route #24: 44 103 186 187 25 | Route #25: 37 2 26 | Route #26: 20 42 143 27 | Route #27: 92 11 67 28 | Route #28: 169 56 60 29 | Route #29: 236 46 30 | Route #30: 3 243 115 31 | Route #31: 111 122 130 157 47 150 219 32 | Route #32: 162 116 202 50 228 153 33 | Route #33: 14 95 34 | Route #34: 12 35 | Route #35: 68 27 132 36 | Route #36: 97 215 135 25 100 37 | Route #37: 61 38 | Route #38: 66 39 | Route #39: 43 26 94 40 | Route #40: 159 29 7 41 | Route #41: 10 42 | Route #42: 207 218 171 189 32 211 43 | Route #43: 65 58 44 | Route #44: 15 31 213 223 45 | Route #45: 55 30 46 | Route #46: 119 4 47 | Route #47: 57 48 | Route #48: 205 99 136 177 54 191 232 113 174 49 | Route #49: 166 208 82 108 22 180 176 222 204 192 235 133 96 50 | Route #50: 209 40 224 155 241 124 168 101 138 51 | Route #51: 231 49 64 72 147 242 148 52 | Cost 37274 53 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n251-k28.sol: -------------------------------------------------------------------------------- 1 | Route #1: 79 37 97 107 90 2 | Route #2: 20 229 4 81 11 53 111 121 112 3 | Route #3: 35 69 14 23 3 21 179 110 113 96 4 | Route #4: 39 244 205 130 136 9 87 73 5 | Route #5: 190 234 246 140 159 227 147 64 86 6 | Route #6: 148 128 131 218 202 223 219 176 200 7 | Route #7: 31 71 137 66 215 108 158 206 116 8 | Route #8: 175 172 210 145 165 171 8 211 182 135 9 | Route #9: 198 138 222 28 181 141 248 183 10 | Route #10: 214 133 191 220 62 67 189 177 195 17 11 | Route #11: 160 173 209 247 154 76 166 150 12 | Route #12: 40 157 184 228 152 207 187 42 102 13 | Route #13: 82 240 237 127 192 230 161 203 235 14 | Route #14: 239 143 146 153 117 94 217 156 201 167 15 | Route #15: 80 119 101 103 25 55 118 15 16 | Route #16: 221 204 114 164 34 51 123 124 188 84 17 | Route #17: 144 245 238 45 236 168 22 178 243 18 | Route #18: 149 72 13 32 52 59 26 169 75 19 | Route #19: 125 74 115 232 105 109 99 56 50 20 | Route #20: 33 18 89 43 122 93 29 12 91 54 21 | Route #21: 61 48 104 100 49 68 70 57 27 41 22 | Route #22: 47 65 92 250 60 120 129 24 197 10 23 | Route #23: 6 139 226 16 199 186 1 83 5 24 | Route #24: 134 88 30 44 63 180 216 193 194 77 25 | Route #25: 36 163 151 249 242 46 225 241 213 212 26 | Route #26: 155 162 126 231 170 224 208 196 27 | Route #27: 38 132 174 233 185 19 142 2 98 28 | Route #28: 78 85 7 58 106 95 29 | Cost 38684 30 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n256-k16.sol: -------------------------------------------------------------------------------- 1 | Route #1: 254 220 160 27 212 44 203 200 87 25 86 47 122 167 106 2 | Route #2: 192 151 233 189 43 164 128 48 181 4 198 166 225 82 33 3 | Route #3: 249 50 77 179 88 213 60 215 221 171 51 95 185 214 246 4 | Route #4: 197 15 67 158 145 104 17 30 127 109 177 29 71 124 64 193 5 | Route #5: 201 217 153 3 16 107 226 28 57 46 42 182 62 45 241 118 6 | Route #6: 140 250 154 98 58 242 245 223 94 224 31 211 188 248 159 168 7 | Route #7: 130 115 169 228 206 231 196 6 120 253 73 239 97 55 142 133 8 | Route #8: 8 72 102 163 113 81 208 195 187 68 70 93 65 119 155 24 84 9 | Route #9: 61 40 83 90 244 165 49 116 194 22 219 56 175 234 173 10 | Route #10: 240 184 150 52 161 138 103 222 1 136 76 144 129 237 19 23 11 | Route #11: 251 10 69 209 126 79 180 162 96 178 157 110 75 121 236 204 11 12 | Route #12: 232 35 21 38 190 125 80 18 108 89 7 99 34 205 227 13 13 | Route #13: 218 141 174 210 149 112 32 85 111 238 41 37 114 20 147 146 14 | Route #14: 12 105 39 216 176 230 14 202 123 5 229 63 36 59 26 132 148 15 | Route #15: 54 74 91 92 172 143 199 252 78 152 170 137 235 207 243 53 16 | Route #16: 247 134 9 135 117 2 191 66 255 156 183 131 100 186 139 101 17 | Cost 18839 18 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n261-k13.sol: -------------------------------------------------------------------------------- 1 | Route #1: 181 96 121 136 184 24 157 200 88 30 126 198 13 58 128 122 101 230 255 2 | Route #2: 257 155 222 252 38 234 170 125 239 164 204 235 224 23 146 165 113 129 81 133 21 147 74 211 3 | Route #3: 91 232 49 7 142 168 241 160 109 124 69 120 162 32 159 242 4 | Route #4: 1 106 2 132 220 99 40 145 9 98 259 44 16 231 62 15 229 5 | Route #5: 246 179 195 55 186 5 73 115 33 182 208 52 108 175 94 247 161 76 72 212 166 6 | Route #6: 93 59 97 199 47 249 185 103 34 31 3 258 158 240 187 26 217 226 7 | Route #7: 143 178 39 188 82 180 37 214 51 64 116 171 102 42 254 251 260 53 197 174 8 | Route #8: 79 225 6 17 238 63 245 95 192 237 60 77 154 78 27 25 194 163 12 105 151 36 90 66 68 250 9 | Route #9: 141 41 100 48 207 19 80 236 117 111 57 119 43 112 4 50 28 209 104 10 | Route #10: 131 221 18 138 190 244 205 167 70 243 248 169 183 45 150 173 86 110 213 67 148 11 | Route #11: 85 210 130 172 89 65 140 227 256 56 193 223 127 83 61 201 203 20 123 8 14 152 153 35 22 10 149 215 12 | Route #12: 177 135 134 253 46 137 107 118 156 75 13 | Route #13: 139 176 218 84 71 206 228 87 29 189 144 233 219 11 92 191 216 114 54 196 202 14 | Cost 26558 15 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n266-k58.sol: -------------------------------------------------------------------------------- 1 | Route #1: 218 248 67 229 178 2 | Route #2: 153 180 123 172 3 | Route #3: 115 124 110 104 4 | Route #4: 156 214 140 226 5 | Route #5: 163 240 133 57 152 6 | Route #6: 255 127 203 196 7 | Route #7: 205 256 176 192 113 8 | Route #8: 76 243 31 53 9 | Route #9: 170 254 141 47 10 | Route #10: 262 166 20 10 11 | Route #11: 142 260 222 145 135 12 | Route #12: 30 64 6 3 13 | Route #13: 235 173 161 69 125 14 | Route #14: 164 234 114 13 219 15 | Route #15: 85 107 8 9 37 16 | Route #16: 147 238 66 98 112 17 | Route #17: 81 233 109 29 263 18 | Route #18: 130 38 7 5 19 | Route #19: 185 148 137 144 198 20 | Route #20: 32 28 11 71 1 21 | Route #21: 26 119 61 93 2 22 | Route #22: 227 25 149 68 23 | Route #23: 228 213 216 169 136 24 | Route #24: 183 204 174 181 25 | Route #25: 94 16 45 41 102 26 | Route #26: 74 244 210 220 160 27 | Route #27: 241 159 182 162 28 | Route #28: 21 258 231 73 29 | Route #29: 99 200 207 179 15 30 | Route #30: 117 80 131 48 247 31 | Route #31: 242 190 12 54 146 32 | Route #32: 187 157 158 33 211 33 | Route #33: 155 221 129 75 92 34 | Route #34: 42 151 132 212 35 | Route #35: 105 184 34 175 36 | Route #36: 171 193 62 143 186 37 | Route #37: 101 56 35 39 208 38 | Route #38: 40 70 82 49 106 39 | Route #39: 249 51 89 189 40 | Route #40: 120 100 17 122 41 | Route #41: 195 202 165 42 | Route #42: 97 265 259 150 43 43 | Route #43: 14 116 50 55 60 44 | Route #44: 225 87 22 23 45 | Route #45: 177 86 95 52 251 46 | Route #46: 126 121 96 77 47 | Route #47: 206 197 237 88 103 48 | Route #48: 224 91 58 18 49 | Route #49: 257 78 83 72 50 | Route #50: 118 111 36 46 4 51 | Route #51: 108 167 19 24 128 52 | Route #52: 253 245 63 188 53 | Route #53: 90 65 44 59 194 54 | Route #54: 84 230 217 134 239 55 | Route #55: 191 209 154 246 56 | Route #56: 168 264 199 252 79 57 | Route #57: 236 261 139 27 223 58 | Route #58: 232 250 138 201 215 59 | Cost 75478 60 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n270-k35.sol: -------------------------------------------------------------------------------- 1 | Route #1: 146 242 139 236 249 232 155 2 | Route #2: 121 93 46 42 17 103 8 112 3 | Route #3: 212 158 246 11 185 138 201 189 4 | Route #4: 150 22 255 58 134 74 182 14 5 | Route #5: 213 127 122 97 6 245 63 6 | Route #6: 235 154 257 164 243 13 240 173 7 | Route #7: 191 266 192 68 193 260 128 87 8 | Route #8: 40 142 227 177 153 195 259 184 9 | Route #9: 41 109 19 59 92 25 20 78 10 | Route #10: 1 194 147 231 218 234 104 89 11 | Route #11: 3 56 47 5 37 176 86 132 49 12 | Route #12: 38 10 12 72 2 123 18 13 | Route #13: 116 107 66 45 111 125 50 14 | Route #14: 224 124 44 205 98 157 181 156 15 | Route #15: 32 64 80 100 16 106 35 16 | Route #16: 62 83 71 200 17 | Route #17: 36 57 203 190 172 130 76 102 18 | Route #18: 250 115 252 183 151 220 26 19 | Route #19: 60 105 126 70 54 34 77 20 | Route #20: 131 197 75 204 216 202 61 21 | Route #21: 94 81 108 101 168 225 9 22 | Route #22: 30 52 145 55 95 90 269 248 23 | Route #23: 118 247 258 43 230 15 117 24 | Route #24: 188 253 152 254 21 161 159 25 | Route #25: 29 33 31 79 96 53 84 73 26 | Route #26: 48 262 140 144 199 268 149 27 | Route #27: 206 114 141 136 219 241 175 28 | Route #28: 198 264 222 135 171 209 267 167 29 | Route #29: 120 27 4 7 91 65 251 51 30 | Route #30: 263 196 187 166 207 238 237 85 31 | Route #31: 215 165 163 67 99 228 113 69 32 | Route #32: 119 265 169 24 129 23 88 39 33 | Route #33: 137 178 148 179 143 133 256 162 34 | Route #34: 223 210 160 174 239 233 261 35 | Route #35: 208 180 221 217 28 214 244 36 | Route #36: 211 170 229 226 186 110 82 37 | Cost 35291 38 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n275-k28.sol: -------------------------------------------------------------------------------- 1 | Route #1: 152 88 252 100 239 13 241 77 157 193 2 | Route #2: 163 124 138 235 3 | Route #3: 206 230 158 118 166 229 122 150 170 90 4 | Route #4: 112 171 31 165 41 224 232 67 87 215 5 | Route #5: 45 200 151 35 4 7 94 69 110 274 6 | Route #6: 240 49 43 8 1 19 199 167 214 176 7 | Route #7: 102 5 101 130 46 63 140 245 209 249 8 | Route #8: 125 242 210 164 132 267 218 261 251 11 9 | Route #9: 123 265 173 111 127 64 201 99 195 192 10 | Route #10: 32 56 29 15 212 160 62 82 117 190 11 | Route #11: 196 71 113 216 187 76 80 14 68 258 12 | Route #12: 37 95 217 247 228 233 134 148 139 61 13 | Route #13: 161 97 75 22 23 85 144 106 186 183 14 | Route #14: 141 268 260 244 142 182 25 2 246 179 15 | Route #15: 36 155 189 34 211 256 55 248 234 126 16 | Route #16: 26 156 53 57 96 103 114 58 250 238 17 | Route #17: 16 147 159 177 133 221 208 33 266 254 18 | Route #18: 188 204 116 24 175 253 60 74 225 86 19 | Route #19: 115 172 9 273 168 27 107 146 226 73 20 | Route #20: 181 119 42 198 269 65 145 202 89 272 21 | Route #21: 104 194 257 222 236 180 120 91 109 184 22 | Route #22: 136 185 262 207 129 47 39 38 213 135 23 | Route #23: 219 108 78 66 270 81 174 223 149 83 24 | Route #24: 243 169 128 220 44 84 20 21 79 92 25 | Route #25: 6 28 59 12 231 271 54 191 197 162 26 | Route #26: 40 227 10 3 255 18 121 178 50 51 27 | Route #27: 98 263 264 153 154 237 70 259 72 131 28 | Route #28: 30 17 203 105 205 48 137 143 52 93 29 | Cost 21245 30 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n280-k17.sol: -------------------------------------------------------------------------------- 1 | Route #1: 90 25 76 102 78 115 143 244 3 181 195 86 113 252 29 254 258 2 | Route #2: 155 151 218 206 8 149 84 12 213 215 3 | Route #3: 232 17 226 4 176 80 4 | Route #4: 69 20 10 243 228 83 128 5 | Route #5: 230 53 196 92 187 168 227 169 221 219 64 235 119 224 72 50 33 279 59 58 40 73 278 5 65 201 245 133 6 | Route #6: 203 164 270 71 49 225 106 2 104 118 234 257 45 217 100 174 52 7 | Route #7: 273 138 146 95 246 47 82 190 24 88 142 140 191 171 7 237 177 179 48 145 79 170 8 | Route #8: 180 96 266 111 239 57 28 188 13 87 256 277 116 55 134 30 135 250 9 | Route #9: 216 126 205 70 233 253 208 62 184 1 251 139 222 238 67 114 121 38 241 199 10 | Route #10: 63 248 22 9 77 166 43 132 11 | Route #11: 263 136 54 153 249 262 148 108 223 198 193 175 197 14 214 265 202 200 12 | Route #12: 42 93 23 271 269 129 18 150 272 27 274 37 141 261 34 186 99 125 13 | Route #13: 165 98 152 137 35 75 127 120 183 36 167 6 247 39 117 41 56 44 74 267 14 | Route #14: 159 60 210 242 94 160 182 66 268 157 260 101 275 131 162 109 255 112 122 32 21 89 276 51 156 15 | Route #15: 194 19 144 15 158 31 147 16 | Route #16: 97 189 61 163 264 68 178 236 105 220 161 11 173 209 103 240 17 | Route #17: 154 26 212 229 123 81 46 211 91 110 172 259 85 107 192 207 124 204 16 185 130 231 18 | Cost 33503 19 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n284-k15.sol: -------------------------------------------------------------------------------- 1 | Route #1: 22 2 | Route #2: 87 97 21 35 260 30 55 17 219 278 110 161 76 129 193 19 58 197 247 3 | Route #3: 171 91 223 75 222 179 46 183 57 4 257 137 159 121 60 158 244 228 7 4 | Route #4: 177 27 119 14 190 175 167 238 216 64 132 265 81 56 201 249 134 112 208 59 195 237 255 73 23 218 80 5 | Route #5: 120 147 48 42 182 180 139 163 12 8 74 200 84 89 215 185 67 45 196 115 226 272 153 6 | Route #6: 53 256 95 154 279 133 69 214 39 51 113 32 283 6 250 114 210 7 | Route #7: 146 105 248 108 205 72 52 233 10 5 31 99 118 213 173 149 271 18 8 | Route #8: 85 106 50 281 135 270 38 166 181 192 267 162 82 25 275 211 43 277 104 9 | Route #9: 160 246 126 124 156 232 187 107 176 117 103 268 11 44 71 34 127 231 202 15 143 111 131 102 224 10 | Route #10: 236 40 141 194 88 140 130 86 26 16 2 184 264 94 151 254 198 148 36 77 142 240 11 | Route #11: 122 78 230 206 47 203 262 204 96 170 273 225 152 199 188 155 37 12 | Route #12: 168 252 24 191 242 9 92 261 164 269 259 280 207 83 189 54 251 274 41 13 | Route #13: 276 172 1 186 125 100 258 145 65 212 234 136 28 29 116 14 | Route #14: 221 157 243 227 235 61 20 79 220 3 138 109 90 245 253 150 209 217 239 68 13 266 63 15 | Route #15: 241 49 98 174 62 70 144 66 178 169 165 128 101 263 123 33 282 229 93 16 | Cost 20226 17 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n289-k60.sol: -------------------------------------------------------------------------------- 1 | Route #1: 101 140 68 24 60 119 127 84 116 132 2 | Route #2: 196 215 43 266 3 | Route #3: 224 242 159 29 83 26 223 100 285 109 4 | Route #4: 260 188 80 33 61 77 5 | Route #5: 251 65 197 6 | Route #6: 230 96 70 44 7 | Route #7: 139 27 152 92 19 8 | Route #8: 110 90 284 131 9 | Route #9: 189 170 206 10 | Route #10: 22 11 106 244 11 | Route #11: 204 94 209 12 | Route #12: 249 218 192 13 | Route #13: 2 25 278 14 | Route #14: 254 145 169 15 | Route #15: 171 281 272 199 271 16 | Route #16: 233 282 217 17 | Route #17: 62 168 53 250 18 | Route #18: 227 226 134 151 208 205 287 87 19 | Route #19: 146 191 72 211 166 20 | Route #20: 275 78 135 21 | Route #21: 58 82 180 22 | Route #22: 270 195 107 23 | Route #23: 267 213 136 24 | Route #24: 147 263 214 248 25 | Route #25: 113 103 124 137 26 | Route #26: 75 174 274 3 27 | Route #27: 256 280 219 198 28 | Route #28: 175 201 167 185 29 | Route #29: 15 255 245 239 30 | Route #30: 277 252 228 31 | Route #31: 273 187 149 32 | Route #32: 123 45 156 203 33 | Route #33: 212 54 234 34 | Route #34: 20 125 126 35 | Route #35: 38 36 247 47 36 | Route #36: 50 164 283 162 190 220 74 165 37 | Route #37: 98 18 13 97 38 | Route #38: 40 241 16 91 39 | Route #39: 286 240 32 193 40 | Route #40: 246 114 30 128 41 | Route #41: 79 261 172 95 42 | Route #42: 76 183 288 43 | Route #43: 88 41 9 64 44 | Route #44: 63 176 186 102 262 45 | Route #45: 178 86 216 225 46 | Route #46: 158 184 229 47 | Route #47: 200 148 157 48 | Route #48: 59 6 268 12 49 | Route #49: 67 46 35 121 52 50 | Route #50: 133 5 34 14 112 7 21 85 130 57 51 | Route #51: 269 155 232 52 | Route #52: 111 122 55 115 73 108 117 8 81 53 | Route #53: 236 17 235 99 221 222 161 89 160 54 | Route #54: 257 173 231 104 23 141 144 4 129 31 49 10 118 202 48 71 55 | Route #55: 39 265 238 243 279 56 | Route #56: 105 177 150 258 207 163 194 264 276 237 57 | Route #57: 253 210 51 58 | Route #58: 182 120 56 59 | Route #59: 181 1 179 142 60 | Route #60: 154 28 153 37 61 | Route #61: 138 69 42 93 143 66 259 62 | Cost 95151 63 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n294-k50.sol: -------------------------------------------------------------------------------- 1 | Route #1: 207 219 166 121 129 41 128 140 290 2 | Route #2: 274 118 167 21 155 143 278 3 | Route #3: 218 211 126 199 100 4 | Route #4: 26 120 252 142 228 5 | Route #5: 235 280 241 56 292 192 6 | Route #6: 187 28 35 203 213 215 7 | Route #7: 141 19 112 65 8 | Route #8: 24 224 61 267 9 | Route #9: 198 123 234 95 75 257 285 10 | Route #10: 88 178 270 259 231 11 | Route #11: 69 188 12 | Route #12: 266 206 151 10 124 186 46 130 13 | Route #13: 115 76 184 233 14 | Route #14: 144 289 33 11 86 3 15 | Route #15: 238 246 268 99 16 | Route #16: 58 135 237 169 92 17 | Route #17: 180 189 54 223 91 190 18 | Route #18: 114 256 243 279 149 19 | Route #19: 31 84 40 291 185 104 20 | Route #20: 116 221 239 288 21 | Route #21: 23 48 81 72 102 22 | Route #22: 152 60 57 70 71 205 227 23 | Route #23: 131 30 80 4 14 1 293 160 24 | Route #24: 45 269 117 282 242 25 | Route #25: 183 161 249 127 87 254 132 260 26 | Route #26: 103 67 193 97 158 96 163 27 | Route #27: 195 44 263 20 49 52 145 5 28 | Route #28: 134 25 113 240 262 179 29 | Route #29: 216 181 244 147 30 | Route #30: 230 136 250 247 283 31 | Route #31: 210 170 111 27 36 32 | Route #32: 90 62 197 275 37 171 251 146 33 | Route #33: 156 276 214 50 34 | Route #34: 12 148 204 162 64 82 35 | Route #35: 157 101 89 32 273 36 | Route #36: 43 83 107 59 164 225 105 22 253 37 | Route #37: 261 201 2 194 106 271 174 172 38 | Route #38: 154 281 168 77 159 16 39 | Route #39: 85 109 153 38 73 175 66 40 | Route #40: 119 8 229 29 182 15 255 41 | Route #41: 74 177 110 245 42 | Route #42: 222 248 94 7 277 13 284 43 | Route #43: 98 176 55 44 | Route #44: 265 18 191 217 232 196 45 | Route #45: 137 258 209 264 68 17 46 | Route #46: 108 272 138 236 139 47 | Route #47: 42 173 125 93 63 48 | Route #48: 51 34 150 133 287 49 | Route #49: 208 47 286 212 53 39 50 | Route #50: 122 165 202 200 9 51 | Route #51: 78 220 79 6 226 52 | Cost 47161 53 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n298-k31.sol: -------------------------------------------------------------------------------- 1 | Route #1: 30 236 267 245 237 168 101 290 184 2 | Route #2: 113 10 185 32 98 288 45 134 57 91 3 | Route #3: 47 80 226 278 255 39 71 148 29 4 | Route #4: 84 173 171 167 76 158 65 254 174 72 37 85 2 83 5 | Route #5: 22 58 82 1 200 42 270 105 193 108 152 106 242 6 | Route #6: 169 26 4 272 31 153 156 100 88 280 7 | Route #7: 81 49 209 155 260 194 35 43 110 11 275 8 | Route #8: 224 104 89 203 161 63 252 21 163 204 9 | Route #9: 229 282 180 215 243 146 213 147 10 | Route #10: 145 246 19 262 51 48 133 178 249 250 11 | Route #11: 79 293 70 69 56 59 151 12 | Route #12: 199 8 164 201 239 112 261 135 170 13 | Route #13: 36 24 40 121 139 289 219 77 38 52 211 285 14 | Route #14: 208 16 124 92 172 295 271 137 274 61 15 | Route #15: 235 41 107 46 207 62 138 16 | Route #16: 233 122 94 136 67 263 196 17 | Route #17: 118 221 231 216 264 286 50 33 17 190 3 18 | Route #18: 149 132 225 54 195 97 175 73 15 7 19 | Route #19: 6 247 109 176 244 283 12 276 257 20 | Route #20: 55 240 18 111 64 279 297 141 21 | Route #21: 74 256 150 9 181 123 14 228 28 93 22 | Route #22: 75 265 183 114 296 129 143 205 284 202 23 | Route #23: 291 140 212 197 266 214 60 34 227 24 | Route #24: 186 223 99 23 68 187 87 230 177 269 258 234 27 191 25 | Route #25: 273 5 206 198 217 125 210 26 | Route #26: 13 251 119 25 142 277 20 154 27 | Route #27: 117 218 78 127 165 120 128 166 28 | Route #28: 248 160 182 157 96 95 86 29 | Route #29: 241 281 294 116 130 159 292 259 131 253 126 30 | Route #30: 162 220 115 287 179 189 44 102 144 66 192 31 | Route #31: 103 53 232 222 90 238 188 268 32 | Cost 34231 33 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n303-k21.sol: -------------------------------------------------------------------------------- 1 | Route #1: 98 256 63 238 110 27 243 153 61 76 248 249 219 143 270 184 2 | Route #2: 293 258 224 131 67 246 200 188 69 115 56 30 133 193 5 109 119 158 3 | Route #3: 162 46 7 58 103 233 172 83 9 167 77 134 244 149 113 62 25 4 | Route #4: 21 114 241 236 93 75 47 197 223 117 176 146 99 12 5 | Route #5: 105 199 71 129 139 125 231 242 34 196 274 296 289 299 230 118 6 | Route #6: 232 215 7 | Route #7: 10 285 20 121 180 251 39 175 14 229 277 155 144 45 267 84 22 156 54 8 | Route #8: 245 189 201 135 290 142 281 26 96 2 182 191 132 65 130 9 | Route #9: 217 31 240 239 254 145 138 207 194 255 262 202 160 10 | Route #10: 205 52 166 291 68 187 163 108 36 174 259 198 300 29 226 11 | Route #11: 33 4 234 266 171 252 268 150 253 186 90 195 280 8 123 51 60 12 | Route #12: 53 192 164 235 95 264 97 124 112 165 278 122 273 210 13 | Route #13: 104 237 55 106 216 101 59 137 85 15 35 74 302 301 14 | Route #14: 66 257 227 190 140 275 82 218 89 159 141 126 18 92 42 209 286 15 | Route #15: 148 100 94 221 250 40 91 151 152 154 50 16 | Route #16: 32 271 261 247 181 265 78 37 28 44 128 185 17 | Route #17: 214 183 168 79 282 64 81 213 269 136 3 86 228 211 157 18 | Route #18: 204 107 147 298 19 220 173 284 6 272 276 208 19 | Route #19: 57 222 170 41 260 292 17 297 48 80 1 287 43 279 20 | Route #20: 16 206 294 72 177 263 11 73 13 87 38 88 179 288 116 295 21 | Route #21: 23 120 283 225 212 169 49 111 161 102 127 70 203 24 178 22 | Cost 21736 23 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n308-k13.sol: -------------------------------------------------------------------------------- 1 | Route #1: 57 234 37 139 51 146 153 116 63 6 81 114 118 140 25 50 142 96 1 29 56 2 | Route #2: 210 291 112 132 77 20 249 41 120 295 10 60 79 121 138 130 108 200 206 178 83 277 182 3 | Route #3: 136 164 103 49 135 38 101 221 126 15 70 4 84 144 97 106 137 4 | Route #4: 212 147 143 296 269 282 222 197 196 186 117 3 276 13 270 5 | Route #5: 246 177 230 253 257 247 213 66 180 65 100 216 173 165 260 167 9 105 261 229 251 223 194 155 263 256 6 | Route #6: 265 30 124 69 198 11 232 240 149 94 17 228 211 204 162 86 176 250 7 | Route #7: 288 53 154 95 23 125 71 264 189 238 207 35 18 64 286 62 39 148 267 248 293 233 171 266 199 285 156 175 85 166 281 302 8 | Route #8: 110 226 134 161 24 89 93 42 5 128 16 59 129 80 26 68 243 28 44 272 299 48 168 46 82 303 9 | Route #9: 87 2 113 150 292 98 205 274 280 157 183 297 163 169 104 127 218 254 72 145 40 102 52 131 31 190 10 | Route #10: 187 245 34 170 215 73 8 58 237 307 203 109 258 160 78 279 54 115 11 | Route #11: 209 76 152 36 55 32 123 300 179 298 74 284 255 174 275 202 99 92 283 111 61 45 214 301 7 201 88 43 271 27 119 12 | Route #12: 195 241 22 268 21 90 141 185 259 242 19 107 188 122 224 191 306 227 47 12 239 151 33 219 192 225 172 305 252 181 236 13 | Route #13: 67 304 220 244 91 290 184 273 14 75 278 159 289 235 231 294 262 208 158 217 193 287 133 14 | Cost 25859 15 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n313-k71.sol: -------------------------------------------------------------------------------- 1 | Route #1: 31 121 70 133 153 48 34 99 2 | Route #2: 102 44 142 36 126 152 32 82 3 | Route #3: 9 137 6 4 4 | Route #4: 93 122 78 150 5 | Route #5: 124 88 110 6 | Route #6: 296 52 136 143 118 23 7 | Route #7: 13 104 101 80 46 120 151 58 97 168 300 94 135 98 8 | Route #8: 182 62 68 59 9 | Route #9: 83 91 63 37 144 40 146 77 65 10 | Route #10: 288 129 15 11 | Route #11: 12 134 1 12 | Route #12: 178 286 292 13 | Route #13: 76 105 49 85 50 27 14 | Route #14: 261 188 170 15 | Route #15: 103 109 71 16 | Route #16: 283 138 187 17 | Route #17: 209 192 305 294 18 | Route #18: 197 227 92 19 | Route #19: 306 213 255 20 | Route #20: 81 183 308 21 | Route #21: 246 203 39 22 | Route #22: 307 263 233 223 23 | Route #23: 41 254 199 157 24 | Route #24: 220 73 210 25 | Route #25: 212 194 242 26 | Route #26: 304 225 96 27 | Route #27: 154 14 28 | Route #28: 113 47 181 169 29 | Route #29: 119 240 156 30 | Route #30: 16 186 200 31 | Route #31: 167 232 275 100 32 | Route #32: 172 8 241 55 33 | Route #33: 158 259 193 111 309 310 206 34 | Route #34: 29 189 224 61 35 | Route #35: 131 228 164 175 36 | Route #36: 249 295 72 37 | Route #37: 207 269 202 38 | Route #38: 201 162 208 204 39 | Route #39: 285 54 161 40 | Route #40: 33 56 7 127 41 | Route #41: 252 74 217 42 | Route #42: 114 266 248 43 | Route #43: 195 149 271 293 11 284 198 140 231 44 | Route #44: 264 179 229 219 273 247 38 238 45 | Route #45: 221 270 279 46 | Route #46: 184 303 75 47 | Route #47: 10 215 253 274 48 | Route #48: 5 21 196 180 244 173 291 42 49 | Route #49: 245 17 216 272 50 | Route #50: 148 20 35 160 66 123 26 235 51 | Route #51: 155 302 218 52 | Route #52: 95 281 147 53 | Route #53: 139 79 30 87 54 | Route #54: 236 311 258 55 | Route #55: 90 132 230 276 56 | Route #56: 265 289 214 57 | Route #57: 125 287 243 267 58 | Route #58: 141 43 211 53 59 | Route #59: 226 159 171 60 | Route #60: 191 163 67 256 205 297 185 45 61 | Route #61: 277 176 69 62 | Route #62: 2 106 3 128 28 63 | Route #63: 89 51 64 57 130 84 116 64 | Route #64: 112 165 280 299 65 | Route #65: 298 268 262 66 | Route #66: 290 239 22 67 | Route #67: 115 19 60 68 | Route #68: 25 108 107 301 18 69 | Route #69: 234 312 260 190 70 | Route #70: 278 250 24 257 71 | Route #71: 145 174 117 237 72 | Route #72: 86 251 177 282 166 222 73 | Cost 94043 74 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n317-k53.sol: -------------------------------------------------------------------------------- 1 | Route #1: 41 3 276 24 118 303 2 | Route #2: 199 30 237 215 60 240 3 | Route #3: 141 315 307 45 206 165 4 | Route #4: 32 183 278 226 296 180 5 | Route #5: 195 214 58 137 177 270 6 | Route #6: 9 306 23 144 282 75 7 | Route #7: 47 147 247 82 213 171 8 | Route #8: 64 184 69 35 114 106 9 | Route #9: 209 142 104 227 88 188 10 | Route #10: 146 136 186 291 72 148 11 | Route #11: 232 68 261 222 111 248 12 | Route #12: 175 308 119 279 128 103 13 | Route #13: 275 286 4 132 281 187 14 | Route #14: 238 153 224 89 205 117 15 | Route #15: 299 70 218 62 160 285 16 | Route #16: 57 297 158 249 242 231 17 | Route #17: 38 292 301 11 244 145 18 | Route #18: 17 8 229 83 161 211 19 | Route #19: 120 228 99 50 152 55 20 | Route #20: 300 74 110 135 241 18 21 | Route #21: 90 84 280 95 271 20 22 | Route #22: 44 298 112 134 81 133 23 | Route #23: 48 266 59 56 239 234 24 | Route #24: 96 208 225 65 251 284 25 | Route #25: 63 253 200 268 259 194 26 | Route #26: 105 61 262 164 102 93 27 | Route #27: 185 216 101 166 230 250 28 | Route #28: 40 257 260 316 130 125 29 | Route #29: 73 39 245 258 305 252 30 | Route #30: 98 173 219 131 1 150 31 | Route #31: 129 274 6 255 288 277 32 | Route #32: 170 25 283 254 22 269 33 | Route #33: 19 7 43 233 217 313 34 | Route #34: 52 67 293 27 37 204 35 | Route #35: 201 53 109 5 221 290 36 | Route #36: 246 243 49 178 193 223 37 | Route #37: 16 126 34 295 122 54 38 | Route #38: 267 116 121 100 174 115 39 | Route #39: 272 33 156 210 212 10 40 | Route #40: 287 124 263 46 294 36 41 | Route #41: 236 79 179 176 29 159 42 | Route #42: 140 163 91 28 172 191 43 | Route #43: 197 80 309 256 51 76 44 | Route #44: 143 302 182 149 123 235 45 | Route #45: 21 162 311 71 198 14 46 | Route #46: 108 289 92 151 264 94 47 | Route #47: 127 2 265 181 312 202 48 | Route #48: 310 189 77 113 139 203 49 | Route #49: 97 66 86 304 190 107 50 | Route #50: 13 207 138 196 26 167 51 | Route #51: 154 220 12 157 273 192 52 | Route #52: 78 85 42 155 15 314 53 | Route #53: 169 168 31 87 54 | Cost 78355 55 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n322-k28.sol: -------------------------------------------------------------------------------- 1 | Route #1: 110 108 145 12 192 171 112 302 129 104 103 2 | Route #2: 28 36 24 212 206 9 167 84 150 274 21 277 155 3 | Route #3: 244 266 100 176 154 283 278 13 169 86 40 123 72 4 | Route #4: 15 156 96 320 267 34 189 121 88 191 258 17 5 | Route #5: 194 148 144 63 3 260 226 219 4 187 82 6 | Route #6: 90 216 137 172 273 161 77 295 5 288 259 7 | Route #7: 27 208 115 65 30 10 248 48 290 303 306 269 8 | Route #8: 54 316 99 207 213 214 35 43 236 182 33 9 | Route #9: 184 230 106 177 231 193 68 113 196 281 14 81 10 | Route #10: 57 294 319 146 164 111 271 71 307 262 58 11 | Route #11: 64 127 203 318 234 89 8 139 135 79 252 12 | Route #12: 128 49 199 31 185 101 142 242 317 138 173 51 126 13 | Route #13: 275 125 270 143 218 149 97 160 50 170 18 109 14 | Route #14: 166 190 183 26 263 254 158 250 298 59 1 15 | Route #15: 124 55 280 75 20 232 133 311 53 276 202 312 16 | Route #16: 305 130 287 141 46 272 23 257 117 38 61 17 | Route #17: 76 229 107 37 62 165 7 132 224 296 205 204 18 | Route #18: 292 69 73 180 309 131 94 293 179 152 116 19 | Route #19: 6 220 235 98 200 52 91 289 221 78 188 20 | Route #20: 237 29 159 60 297 92 291 264 74 134 83 21 | Route #21: 163 256 32 239 286 215 315 136 157 181 175 22 | Route #22: 45 304 16 223 87 118 42 209 162 249 70 23 | Route #23: 282 247 301 210 41 93 168 217 261 153 80 95 24 | Route #24: 245 66 174 228 313 201 284 47 39 186 25 | Route #25: 2 310 240 67 308 198 238 119 321 11 222 26 | Route #26: 22 285 211 122 25 255 253 147 265 233 19 27 | Route #27: 102 140 225 44 246 300 227 105 151 268 197 279 28 | Route #28: 85 251 299 314 114 243 241 195 56 178 120 29 | Cost 29834 30 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n327-k20.sol: -------------------------------------------------------------------------------- 1 | Route #1: 159 49 267 284 269 199 177 136 160 80 13 112 67 235 127 298 255 2 | Route #2: 282 148 96 222 243 230 105 56 287 292 185 3 | Route #3: 114 64 29 9 73 133 115 90 77 38 5 97 51 82 151 93 130 32 4 | Route #4: 53 26 98 42 34 241 57 181 163 134 145 78 63 278 294 5 | Route #5: 6 275 37 193 276 22 140 45 132 74 19 129 60 204 131 320 6 | Route #6: 308 290 146 280 24 43 242 104 150 84 113 52 25 142 123 75 54 68 72 7 | Route #7: 238 110 70 178 322 326 299 285 36 61 258 164 306 207 286 7 88 190 8 | Route #8: 191 106 187 231 116 118 233 10 277 92 40 254 66 291 173 225 138 9 | Route #9: 15 135 156 31 162 46 65 109 107 144 11 119 21 101 139 121 309 10 | Route #10: 126 33 313 216 167 214 273 265 245 220 279 198 217 251 120 197 11 | Route #11: 247 196 201 1 316 94 18 314 69 161 152 79 175 215 117 41 288 325 12 | Route #12: 271 183 16 155 14 47 91 59 158 28 44 323 264 86 203 95 249 87 13 | Route #13: 23 188 295 192 179 307 12 234 240 85 229 315 168 209 206 256 8 14 | Route #14: 149 300 99 35 202 27 283 305 257 71 122 260 182 252 261 321 319 15 | Route #15: 250 157 213 270 304 262 186 137 141 302 246 248 30 48 289 125 228 16 | Route #16: 223 266 102 218 89 81 3 4 76 189 62 143 147 2 310 39 226 293 17 | Route #17: 50 100 166 274 83 324 281 153 210 221 296 154 20 311 272 18 | Route #18: 239 55 244 170 172 312 180 317 103 301 128 174 111 211 205 303 224 19 | Route #19: 58 253 263 236 165 237 195 268 219 20 | Route #20: 227 232 176 169 17 108 194 208 200 259 212 184 171 318 124 297 21 | Cost 27532 22 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n331-k15.sol: -------------------------------------------------------------------------------- 1 | Route #1: 300 274 129 306 66 183 157 101 156 270 310 193 219 314 131 54 214 115 222 248 44 189 83 2 | Route #2: 159 182 309 88 21 132 269 84 162 234 226 253 31 315 114 67 4 77 80 18 118 48 288 3 | Route #3: 8 173 28 102 32 280 90 134 284 267 249 307 46 202 278 53 263 172 262 266 72 40 117 4 | Route #4: 210 39 96 51 55 186 170 327 320 272 236 98 163 276 122 153 79 213 250 303 328 257 228 5 | Route #5: 252 273 179 225 70 58 74 171 148 68 296 251 175 259 103 200 110 316 125 100 319 82 247 6 | Route #6: 305 160 137 174 287 127 47 107 282 5 277 185 167 194 324 138 128 240 217 92 7 33 297 7 | Route #7: 99 9 45 322 317 301 237 235 1 19 261 13 14 56 231 116 180 238 188 215 199 178 26 8 | Route #8: 42 95 10 16 142 97 147 151 65 94 244 63 86 59 89 168 144 169 120 204 146 111 152 9 | Route #9: 30 158 329 143 203 150 61 239 136 161 311 73 264 139 312 218 254 227 155 38 184 60 291 10 | Route #10: 76 190 37 20 78 27 293 258 209 36 325 192 3 35 330 289 112 318 286 260 181 123 243 11 | Route #11: 126 41 71 224 206 12 242 255 12 | Route #12: 34 279 196 2 245 52 265 211 292 233 313 119 91 201 24 109 145 106 15 166 229 164 177 13 | Route #13: 104 141 205 256 154 6 271 135 85 57 304 230 113 25 11 165 64 140 207 187 298 23 295 14 | Route #14: 268 216 191 208 275 43 87 75 221 283 323 198 212 281 195 220 176 50 62 17 130 223 197 15 | Route #15: 69 285 105 299 246 49 294 290 133 81 302 321 232 93 29 241 124 22 108 326 121 308 149 16 | Cost 31102 17 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n344-k43.sol: -------------------------------------------------------------------------------- 1 | Route #1: 266 103 274 323 328 326 186 251 2 | Route #2: 290 271 222 221 259 173 255 330 3 | Route #3: 200 174 329 216 298 169 146 194 4 | Route #4: 24 93 333 338 147 143 118 5 | Route #5: 293 245 247 244 228 181 132 158 6 | Route #6: 308 70 243 278 81 14 285 7 | Route #7: 39 65 149 144 231 150 195 77 8 | Route #8: 157 78 140 183 279 116 320 106 9 | Route #9: 75 9 261 230 292 124 152 1 10 | Route #10: 339 260 176 198 342 305 288 223 11 | Route #11: 74 50 48 53 148 52 16 112 12 | Route #12: 254 235 28 56 86 105 102 125 309 13 | Route #13: 11 6 253 95 23 58 167 20 14 | Route #14: 114 164 108 101 18 94 135 312 15 | Route #15: 45 2 5 98 4 291 313 27 16 | Route #16: 306 155 166 286 316 321 82 302 17 | Route #17: 160 225 38 282 220 189 215 284 18 | Route #18: 249 87 117 126 131 180 264 84 19 | Route #19: 96 343 66 79 201 335 262 31 212 20 | Route #20: 133 73 47 89 13 162 69 99 54 21 | Route #21: 327 120 29 207 64 36 139 153 22 | Route #22: 248 268 204 237 128 88 319 322 23 | Route #23: 188 7 37 156 49 51 151 59 24 | Route #24: 217 210 276 134 318 280 177 196 25 | Route #25: 154 119 34 60 3 159 163 137 21 26 | Route #26: 213 250 61 25 209 142 229 190 275 27 | Route #27: 122 136 257 68 289 317 203 239 28 | Route #28: 107 57 226 19 281 263 111 29 | Route #29: 10 46 192 165 240 184 277 182 30 | Route #30: 294 90 161 269 42 83 91 179 31 | Route #31: 256 63 310 287 232 265 129 324 336 32 | Route #32: 258 242 334 273 311 227 193 314 33 | Route #33: 130 44 8 40 32 123 43 35 34 | Route #34: 127 283 191 199 178 295 206 35 | Route #35: 270 233 141 80 315 300 22 219 36 | Route #36: 30 301 224 72 15 246 41 185 37 | Route #37: 307 236 85 109 97 170 303 38 | Route #38: 241 238 55 110 76 337 272 39 | Route #39: 168 214 138 33 175 297 234 304 40 | Route #40: 211 331 218 202 205 172 340 341 41 | Route #41: 299 71 252 100 17 62 92 42 | Route #42: 208 12 145 104 296 171 26 115 325 43 | Route #43: 187 332 121 197 267 113 67 44 | Cost 42050 45 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n351-k40.sol: -------------------------------------------------------------------------------- 1 | Route #1: 267 293 343 91 2 286 161 82 224 2 | Route #2: 197 40 204 39 58 242 141 271 245 124 147 17 3 | Route #3: 85 146 225 275 268 344 188 315 4 | Route #4: 55 337 13 148 254 96 29 5 | Route #5: 342 20 156 79 78 132 336 138 347 6 | Route #6: 173 249 211 194 50 123 111 104 309 7 | Route #7: 74 247 116 234 172 30 219 38 162 311 8 | Route #8: 52 118 126 316 313 186 300 299 169 317 9 | Route #9: 121 276 77 23 331 43 318 259 10 | Route #10: 114 185 71 310 319 269 221 327 11 | Route #11: 137 262 339 182 159 93 308 240 12 | Route #12: 320 143 67 68 282 11 227 295 13 | Route #13: 134 44 94 252 246 105 140 35 14 | Route #14: 283 113 329 189 230 350 15 | Route #15: 273 65 170 338 90 312 207 24 321 16 | Route #16: 264 101 292 334 106 21 290 340 17 | Route #17: 348 122 200 133 108 56 253 237 100 177 18 | Route #18: 46 202 196 332 32 277 19 | Route #19: 31 281 64 158 54 190 199 160 257 20 | Route #20: 14 241 53 218 233 3 4 21 | Route #21: 112 301 62 198 153 250 255 22 | Route #22: 232 187 97 291 95 34 322 23 | Route #23: 214 16 8 179 168 76 213 120 24 | Route #24: 325 328 75 164 61 261 59 115 345 349 25 | Route #25: 25 145 12 37 7 9 87 142 72 69 212 26 | Route #26: 66 33 323 99 333 19 314 27 | Route #27: 151 307 110 154 324 166 48 28 | Route #28: 155 302 127 216 285 235 239 289 29 | Route #29: 150 306 157 195 135 139 274 73 30 | Route #30: 175 102 288 42 130 210 206 109 1 125 31 | Route #31: 335 215 81 98 183 167 294 191 32 | Route #32: 165 45 305 265 266 60 33 | Route #33: 278 181 131 209 251 89 6 51 34 | Route #34: 83 47 176 201 236 180 152 287 28 35 | Route #35: 279 231 86 256 205 296 243 258 5 326 208 192 36 | Route #36: 346 330 57 26 222 228 203 22 88 37 | Route #37: 171 298 80 229 263 41 63 128 27 260 248 297 38 | Route #38: 303 193 107 304 226 36 270 70 223 18 92 39 | Route #39: 244 117 280 284 272 119 136 341 178 40 | Route #40: 238 149 163 217 103 144 15 49 220 129 184 84 10 174 41 | Cost 25896 42 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n359-k29.sol: -------------------------------------------------------------------------------- 1 | Route #1: 59 115 28 120 78 53 142 82 21 312 52 50 2 | Route #2: 30 232 171 44 27 338 132 125 75 84 131 112 152 3 | Route #3: 278 217 239 223 184 358 322 319 233 190 134 9 253 4 | Route #4: 244 323 102 234 72 341 293 126 64 46 150 5 | Route #5: 246 173 41 331 129 104 216 295 262 16 224 6 | Route #6: 130 317 192 335 114 273 327 333 264 207 306 210 54 7 | Route #7: 49 35 204 199 188 342 4 211 283 225 187 221 8 | Route #8: 105 83 8 14 68 43 140 67 40 163 158 153 9 | Route #9: 51 314 281 65 123 226 113 296 168 12 45 161 96 22 10 | Route #10: 266 337 329 279 336 180 301 228 256 138 24 208 11 | Route #11: 245 101 20 116 128 124 176 94 291 213 62 196 100 155 12 | Route #12: 36 56 348 321 69 241 70 265 290 270 13 | Route #13: 257 276 219 98 166 90 39 151 37 254 271 71 200 285 14 | Route #14: 149 119 127 328 10 42 351 345 3 15 | Route #15: 215 143 311 326 284 76 135 55 80 97 272 227 16 | Route #16: 181 308 349 287 92 346 57 220 197 191 107 222 95 193 17 | Route #17: 66 305 350 238 263 206 269 145 356 202 121 182 288 260 18 | Route #18: 214 268 313 91 195 2 255 324 144 157 25 289 19 | Route #19: 167 309 122 58 218 77 38 292 33 334 61 103 320 343 330 332 20 | Route #20: 247 11 274 81 310 299 294 237 186 315 31 240 231 21 | Route #21: 357 147 229 251 118 164 307 146 117 88 29 159 22 | Route #22: 13 26 34 63 325 7 1 74 160 170 85 110 141 111 23 | Route #23: 318 48 6 108 252 156 209 344 189 235 230 198 275 5 24 | Route #24: 19 148 23 139 248 169 282 352 300 267 25 | Route #25: 355 243 259 179 236 298 297 185 258 212 242 26 | Route #26: 86 286 183 60 302 249 353 175 73 303 172 87 316 27 | Route #27: 17 89 354 250 201 280 136 340 15 261 32 277 106 28 | Route #28: 178 47 109 93 18 194 339 99 137 79 165 29 | Route #29: 162 174 347 203 304 205 154 133 177 30 | Cost 51505 31 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n367-k17.sol: -------------------------------------------------------------------------------- 1 | Route #1: 255 217 234 2 298 348 7 364 220 91 157 72 77 71 31 128 314 2 | Route #2: 121 83 248 331 52 145 26 209 6 352 155 109 302 13 141 180 44 324 100 3 | Route #3: 163 218 159 9 190 226 158 18 296 353 362 233 4 | Route #4: 80 207 326 42 300 144 103 342 17 84 311 183 64 101 271 189 351 79 160 170 5 | Route #5: 41 322 165 345 119 166 126 286 259 222 8 124 90 194 303 199 86 295 355 287 6 | Route #6: 232 162 67 88 333 285 211 282 205 120 105 244 15 338 250 196 32 37 249 192 321 95 320 7 | Route #7: 254 129 107 150 294 208 46 87 336 216 307 293 50 261 113 240 111 3 288 354 156 312 347 186 8 | Route #8: 262 30 63 297 228 289 96 349 110 340 99 178 24 22 363 212 188 47 9 | Route #9: 76 225 323 266 164 316 315 117 202 235 291 245 221 305 339 12 329 269 142 146 161 299 203 182 256 10 | Route #10: 210 82 241 45 277 350 172 5 4 75 258 40 237 66 356 11 | Route #11: 198 130 153 151 200 366 268 357 20 73 148 114 125 327 361 175 38 206 343 193 133 138 12 | Route #12: 28 346 313 281 131 58 23 273 318 29 36 108 54 143 122 335 112 136 191 309 257 85 60 185 169 13 | Route #13: 173 132 246 272 181 104 168 236 330 98 106 213 62 224 127 93 48 59 276 215 149 360 43 21 251 35 227 179 147 57 25 265 177 310 56 334 14 | Route #14: 167 283 140 201 184 1 118 264 123 317 39 14 70 247 15 | Route #15: 19 68 197 174 187 11 10 292 139 230 231 16 | Route #16: 204 92 137 358 243 278 74 341 365 89 102 176 16 53 325 51 359 238 116 304 152 279 49 27 267 17 | Route #17: 78 154 195 171 239 135 115 319 301 308 94 69 284 260 253 328 344 263 332 270 275 337 290 34 65 134 306 55 229 274 97 280 33 252 81 219 223 242 214 61 18 | Cost 22814 19 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n384-k52.sol: -------------------------------------------------------------------------------- 1 | Route #1: 190 140 260 83 54 119 39 308 2 | Route #2: 68 366 157 370 317 243 132 215 3 | Route #3: 11 358 122 78 36 256 233 315 41 4 | Route #4: 360 72 75 295 158 202 328 262 5 | Route #5: 289 171 7 180 214 162 137 6 | Route #6: 175 375 192 185 31 145 7 | Route #7: 229 30 305 50 136 244 77 8 | Route #8: 240 88 320 182 107 275 15 9 | Route #9: 309 198 224 231 163 313 246 364 10 | Route #10: 204 13 363 154 248 372 321 11 | Route #11: 134 141 298 49 335 19 51 12 | Route #12: 130 361 280 254 26 344 167 13 | Route #13: 65 380 334 111 323 152 110 14 | Route #14: 259 139 82 177 43 223 352 15 | Route #15: 153 326 102 220 52 69 4 62 16 | Route #16: 371 17 | Route #17: 46 261 128 251 37 193 23 18 | Route #18: 292 178 222 330 105 97 126 19 | Route #19: 270 332 131 381 265 264 365 276 20 | Route #20: 79 156 314 120 374 27 76 208 21 | Route #21: 319 377 150 80 263 350 271 22 | Route #22: 63 14 109 2 74 146 142 369 23 | Route #23: 241 147 217 81 73 87 329 174 24 | Route #24: 267 3 331 247 84 127 333 25 | Route #25: 160 273 95 348 367 66 362 26 | Route #26: 382 18 187 322 96 197 8 27 | Route #27: 55 225 349 12 306 303 92 28 | Route #28: 29 245 286 345 341 200 234 29 | Route #29: 207 148 59 343 183 22 30 | Route #30: 194 218 34 161 359 173 117 24 31 | Route #31: 355 98 44 90 342 28 112 351 32 | Route #32: 269 184 274 257 283 368 99 236 203 33 | Route #33: 282 6 53 5 170 238 21 34 | Route #34: 354 138 67 94 312 189 35 | Route #35: 336 61 249 125 151 42 38 36 | Route #36: 353 56 211 159 347 268 221 37 | Route #37: 383 346 143 17 209 58 242 38 | Route #38: 213 169 116 205 239 307 301 39 | Route #39: 199 176 129 33 103 20 186 304 40 | Route #40: 253 290 250 357 1 135 255 41 | Route #41: 121 338 287 32 93 166 311 42 | Route #42: 235 272 291 113 296 310 155 297 43 | Route #43: 45 210 85 89 228 165 91 44 | Route #44: 25 101 71 378 106 232 316 45 | Route #45: 201 164 179 168 191 279 373 327 46 | Route #46: 285 70 219 181 195 294 35 47 | Route #47: 258 48 277 340 196 212 379 48 | Route #48: 318 149 108 144 299 124 206 49 | Route #49: 266 47 118 133 226 281 339 325 50 | Route #50: 114 324 40 60 278 10 16 51 | Route #51: 172 227 100 356 300 104 57 230 52 | Route #52: 64 9 293 252 284 123 115 53 | Route #53: 86 188 337 288 237 216 302 376 54 | Cost 65940 55 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n393-k38.sol: -------------------------------------------------------------------------------- 1 | Route #1: 73 49 126 71 96 164 139 146 90 330 120 125 2 | Route #2: 220 154 369 20 9 61 309 355 264 3 | Route #3: 105 65 137 1 58 129 84 174 162 179 127 4 | Route #4: 158 4 184 29 78 104 67 68 145 2 177 5 | Route #5: 244 8 169 141 19 46 152 323 349 6 | Route #6: 128 136 69 130 3 180 74 23 110 62 40 7 | Route #7: 34 60 39 32 16 28 43 147 193 358 170 8 | Route #8: 85 196 157 53 108 5 42 98 33 22 181 9 | Route #9: 64 161 163 112 31 99 41 173 144 106 10 | Route #10: 192 187 133 10 30 119 44 11 183 190 11 | Route #11: 138 194 191 77 118 166 59 91 218 238 12 | Route #12: 111 195 189 159 168 75 107 182 15 35 13 | Route #13: 82 57 117 36 156 37 114 97 6 26 14 | Route #14: 352 100 52 17 115 7 83 150 50 89 15 | Route #15: 143 124 38 95 176 79 94 14 25 178 172 16 | Route #16: 81 295 72 345 237 63 249 360 344 103 17 | Route #17: 140 290 383 339 142 24 167 116 246 342 92 18 | Route #18: 322 209 223 308 175 48 280 240 102 19 | Route #19: 54 368 109 288 211 390 255 362 18 326 317 20 | Route #20: 198 337 364 357 363 371 121 225 243 236 21 | Route #21: 123 343 372 221 206 272 389 86 212 22 | Route #22: 252 347 283 66 353 235 274 251 227 23 | Route #23: 287 289 13 80 365 377 356 135 228 286 24 | Route #24: 354 261 373 333 265 263 233 348 374 201 260 25 | Route #25: 165 270 266 324 276 153 335 216 375 385 26 | Route #26: 70 229 380 241 370 262 204 391 232 222 329 27 | Route #27: 321 325 282 340 277 367 328 259 200 307 28 | Route #28: 171 27 214 56 199 284 281 294 250 301 185 29 | Route #29: 258 388 210 314 302 245 205 318 392 296 273 30 | Route #30: 299 134 239 376 313 215 379 275 278 292 31 | Route #31: 336 148 316 382 304 45 188 350 319 268 257 226 122 32 | Route #32: 21 253 310 279 224 242 303 315 160 366 33 | Route #33: 155 55 76 346 306 88 297 149 300 34 | Route #34: 101 361 341 51 217 327 151 113 132 386 35 | Route #35: 271 12 381 285 197 298 131 202 254 256 311 36 | Route #36: 334 305 248 203 207 234 378 332 231 213 37 | Route #37: 384 359 351 387 87 230 47 247 293 269 93 38 | Route #38: 320 331 267 219 312 291 186 208 338 39 | Cost 38260 40 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n401-k29.sol: -------------------------------------------------------------------------------- 1 | Route #1: 178 334 316 304 301 327 145 360 237 295 358 349 56 188 1 190 103 43 217 143 2 | Route #2: 33 156 215 229 398 323 97 175 199 379 320 62 65 165 116 137 274 138 284 49 183 280 297 322 102 267 146 3 | Route #3: 236 225 73 27 373 335 210 31 18 306 21 81 108 4 | Route #4: 234 154 128 34 221 214 41 78 20 384 308 243 163 110 101 64 140 5 | Route #5: 15 89 115 345 302 293 218 100 111 252 6 | Route #6: 59 371 222 326 12 249 290 42 365 332 7 | Route #7: 172 375 275 135 312 344 118 114 94 14 176 198 8 | Route #8: 281 87 5 350 6 336 272 66 132 380 9 | Route #9: 400 268 261 92 348 368 394 67 113 220 10 | Route #10: 70 77 219 231 291 186 271 386 99 11 | Route #11: 209 292 13 121 147 83 60 22 144 50 12 | Route #12: 139 376 359 91 197 311 309 71 227 331 13 | Route #13: 193 127 174 389 251 192 195 23 32 129 14 | Route #14: 244 185 38 44 182 287 328 125 173 325 15 | Route #15: 39 213 324 262 203 369 397 76 136 194 361 235 169 16 | Route #16: 157 8 48 161 155 58 265 184 382 159 17 | Route #17: 9 285 40 17 391 46 346 123 164 18 | Route #18: 318 341 321 107 90 98 282 191 351 167 299 19 | Route #19: 68 202 211 150 3 79 307 356 264 74 120 166 233 270 315 216 392 20 | Route #20: 230 381 367 256 228 126 263 388 168 37 45 21 | Route #21: 35 96 337 10 24 2 330 51 240 7 22 | Route #22: 347 152 395 53 171 29 393 212 357 205 133 260 23 | Route #23: 117 119 242 303 354 95 246 124 82 283 24 | Route #24: 352 278 26 224 201 52 142 245 374 105 25 | Route #25: 162 269 363 72 134 364 170 54 399 112 189 26 | Route #26: 279 329 11 241 288 85 151 57 339 84 106 25 238 27 | Route #27: 239 130 338 93 362 343 226 372 250 179 333 204 208 122 342 141 396 378 196 266 310 298 181 273 149 177 28 | Route #28: 259 253 247 289 366 353 16 63 109 296 28 200 317 387 314 258 19 206 47 286 300 355 370 153 385 158 55 390 104 207 254 277 30 29 | Route #29: 88 232 377 383 319 257 294 276 69 313 187 4 248 160 131 36 180 148 75 305 86 223 61 80 340 255 30 | Cost 66154 31 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n411-k19.sol: -------------------------------------------------------------------------------- 1 | Route #1: 390 248 245 407 377 26 330 292 160 6 389 293 316 194 2 | Route #2: 360 347 271 290 97 397 107 111 170 226 5 182 263 396 204 144 270 218 208 82 3 | Route #3: 128 319 303 81 240 65 155 43 123 264 222 164 18 196 141 178 333 187 54 331 57 150 288 346 286 233 228 4 | Route #4: 169 168 32 88 382 348 299 241 262 72 132 210 340 110 265 308 375 78 161 98 325 11 135 243 5 | Route #5: 33 257 4 239 138 139 124 60 183 6 | Route #6: 252 171 244 400 352 129 17 249 19 281 173 112 31 29 175 103 7 | Route #7: 176 67 385 46 48 250 363 357 179 94 27 100 91 388 10 7 42 341 105 133 8 | Route #8: 320 317 117 186 386 108 223 64 3 84 149 379 284 301 313 384 21 147 358 165 362 9 | Route #9: 136 247 282 220 307 101 15 74 350 25 188 163 298 190 353 287 267 10 | Route #10: 115 302 212 294 338 312 229 224 83 121 351 253 304 1 211 49 92 335 359 191 300 364 11 | Route #11: 337 355 395 134 87 259 246 372 349 318 369 63 24 30 279 93 126 234 326 410 12 | Route #12: 122 162 73 90 376 277 59 95 344 336 40 125 172 296 68 47 28 329 142 401 368 266 22 37 231 310 180 198 195 371 109 13 | Route #13: 339 79 209 289 75 260 201 56 185 214 148 193 8 206 166 232 159 403 374 383 225 96 334 52 39 14 | Route #14: 104 202 295 354 62 106 367 12 405 118 156 127 41 345 276 258 120 314 315 15 | Route #15: 89 343 328 285 114 373 321 378 268 157 16 35 174 158 291 23 370 332 16 | Route #16: 275 215 242 140 58 154 13 323 146 327 272 9 207 167 227 216 305 44 399 17 | Route #17: 69 311 387 366 137 380 392 255 34 2 236 406 324 99 77 254 130 230 278 36 151 361 116 119 213 131 113 309 274 280 238 18 | Route #18: 80 86 221 261 199 14 61 71 66 20 391 53 85 205 102 19 | Route #19: 237 153 365 184 273 235 217 219 409 76 404 356 145 381 143 45 394 269 50 197 393 256 55 203 306 51 251 181 283 200 152 402 192 297 189 38 70 322 177 342 408 398 20 | Cost 19712 21 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n429-k61.sol: -------------------------------------------------------------------------------- 1 | Route #1: 415 194 150 214 201 13 376 2 | Route #2: 341 233 206 44 172 328 92 3 | Route #3: 338 344 54 327 118 330 324 4 | Route #4: 362 31 178 258 245 244 290 322 5 | Route #5: 40 112 139 340 122 198 15 6 | Route #6: 56 73 8 310 308 374 21 7 | Route #7: 390 34 381 413 156 394 83 8 | Route #8: 351 105 260 106 18 164 63 9 | Route #9: 294 378 268 45 295 134 99 10 | Route #10: 140 311 408 318 84 212 162 11 | Route #11: 360 326 158 14 196 171 160 12 | Route #12: 321 403 252 5 241 296 210 13 | Route #13: 382 426 94 110 257 361 95 14 | Route #14: 20 81 397 87 232 57 90 399 15 | Route #15: 199 329 293 398 130 55 372 16 | Route #16: 33 284 124 195 66 53 170 17 | Route #17: 369 213 243 51 331 62 285 18 | Route #18: 50 262 259 288 3 102 185 19 | Route #19: 375 7 71 129 300 218 209 20 | Route #20: 242 88 253 364 307 42 21 | Route #21: 363 234 276 132 286 302 74 22 | Route #22: 70 238 224 101 24 336 25 23 | Route #23: 373 159 75 405 389 12 131 24 | Route #24: 297 48 359 221 421 157 65 25 | Route #25: 175 26 | Route #26: 325 355 231 353 29 36 352 27 | Route #27: 11 289 230 312 6 217 28 | Route #28: 72 211 183 229 135 59 27 29 | Route #29: 4 411 35 267 223 416 292 30 | Route #30: 261 58 177 104 315 154 151 31 | Route #31: 407 96 386 377 388 305 200 32 | Route #32: 28 100 205 146 23 77 33 | Route #33: 412 137 192 385 235 236 34 | Route #34: 313 85 387 349 184 39 402 283 35 | Route #35: 144 1 319 79 306 37 121 36 | Route #36: 149 153 427 9 273 107 275 37 | Route #37: 182 366 350 246 103 207 237 38 | Route #38: 117 337 125 423 225 10 78 39 | Route #39: 347 2 60 383 343 67 401 40 | Route #40: 226 392 64 26 249 145 163 41 | Route #41: 169 49 309 141 384 254 98 42 | Route #42: 188 97 148 393 91 278 274 43 | Route #43: 123 298 271 358 93 168 204 44 | Route #44: 109 391 68 111 304 189 38 45 | Route #45: 320 345 400 19 419 264 180 46 | Route #46: 179 115 370 143 342 348 314 46 47 | Route #47: 256 420 414 208 203 147 48 | Route #48: 152 424 86 301 346 215 409 250 49 | Route #49: 299 263 22 272 43 279 119 30 50 | Route #50: 52 166 167 120 380 368 280 51 | Route #51: 197 80 417 191 339 187 52 | Route #52: 82 251 282 247 142 334 317 53 | Route #53: 136 155 422 255 395 114 54 | Route #54: 222 265 428 219 410 128 371 55 | Route #55: 173 138 61 161 404 190 354 56 | Route #56: 165 248 367 270 69 126 89 57 | Route #57: 240 116 16 332 291 41 113 58 | Route #58: 277 227 396 76 266 186 176 127 59 | Route #59: 287 333 133 335 379 239 357 60 | Route #60: 32 181 47 228 220 216 269 61 | Route #61: 202 365 323 303 108 17 174 62 | Route #62: 425 406 356 316 281 193 418 63 | Cost 65449 64 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n439-k37.sol: -------------------------------------------------------------------------------- 1 | Route #1: 44 233 324 229 268 380 227 249 325 121 353 422 2 | Route #2: 59 136 187 362 434 311 8 169 2 105 236 217 3 | Route #3: 237 393 280 312 438 385 345 166 346 381 404 195 4 | Route #4: 228 162 435 281 218 239 42 72 411 348 260 26 5 | Route #5: 194 50 18 307 262 261 258 93 14 436 373 36 6 | Route #6: 40 201 76 119 127 102 87 29 158 191 129 70 7 | Route #7: 285 252 101 402 66 339 293 89 412 83 126 297 8 | Route #8: 413 432 351 266 329 319 309 338 271 289 253 323 9 | Route #9: 73 157 135 177 34 230 67 16 112 378 21 181 10 | Route #10: 265 313 171 13 103 117 63 74 354 209 11 244 11 | Route #11: 415 398 317 276 226 278 33 298 288 55 263 355 12 | Route #12: 364 259 30 178 310 222 125 190 356 290 368 417 13 | Route #13: 424 300 363 357 214 198 52 95 328 213 114 316 14 | Route #14: 142 232 35 208 374 322 304 419 336 369 188 150 15 | Route #15: 246 138 376 350 341 286 47 257 383 321 243 437 16 | Route #16: 154 7 197 344 173 118 91 215 153 15 159 98 17 | Route #17: 165 235 192 382 174 291 160 292 84 4 132 175 18 | Route #18: 332 120 269 284 320 273 224 282 219 205 183 170 19 | Route #19: 124 99 77 399 106 216 182 78 256 96 179 81 20 | Route #20: 420 396 423 391 337 433 242 360 342 221 377 115 21 | Route #21: 128 186 54 27 141 100 51 164 39 199 151 163 22 | Route #22: 180 48 12 107 306 314 148 111 20 53 23 | Route #23: 172 149 202 308 270 406 71 92 275 41 155 326 24 | Route #24: 38 156 427 254 9 429 365 359 295 358 231 414 25 | Route #25: 204 176 79 189 61 130 80 6 131 367 426 5 26 | Route #26: 333 31 134 387 397 390 184 395 287 161 58 207 27 | Route #27: 401 28 430 248 19 330 108 340 240 220 331 361 28 | Route #28: 167 203 247 49 46 212 94 45 277 69 68 85 29 | Route #29: 62 90 109 371 408 302 255 152 327 389 343 24 30 | Route #30: 394 379 301 10 37 123 64 272 168 405 234 279 31 | Route #31: 1 140 274 113 116 196 75 56 22 210 88 431 32 | Route #32: 238 305 32 82 147 143 60 104 185 294 318 23 33 | Route #33: 193 428 17 403 384 366 122 145 200 139 392 335 34 | Route #34: 97 400 299 386 267 410 349 223 425 133 370 3 35 | Route #35: 250 211 347 43 375 296 57 206 418 416 407 421 36 | Route #36: 283 251 137 65 144 334 25 146 37 | Route #37: 241 245 303 110 409 388 225 86 315 352 264 372 38 | Cost 36391 39 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n449-k29.sol: -------------------------------------------------------------------------------- 1 | Route #1: 82 257 32 304 57 388 188 372 414 243 184 165 191 222 328 338 378 2 | Route #2: 278 447 357 265 419 233 40 231 201 155 319 273 4 87 397 30 301 3 | Route #3: 21 60 2 263 363 228 96 362 332 55 1 198 9 27 4 | Route #4: 440 13 6 106 336 384 37 5 177 16 413 211 412 160 5 | Route #5: 360 130 409 195 163 197 113 237 39 249 224 429 85 6 | Route #6: 389 71 212 240 49 305 361 398 213 339 420 199 24 291 349 7 | Route #7: 411 74 81 320 275 297 253 448 261 322 280 234 387 216 232 131 347 202 8 | Route #8: 241 180 17 432 356 15 159 29 406 255 203 200 84 236 299 9 | Route #9: 10 126 143 48 11 38 281 369 110 73 334 274 290 443 23 295 379 14 10 | Route #10: 171 107 140 276 244 153 405 208 286 133 375 444 391 430 11 | Route #11: 312 53 311 86 439 326 260 424 355 26 28 396 246 217 12 | Route #12: 300 59 122 50 403 385 100 437 90 250 272 45 248 340 13 | Route #13: 72 410 427 120 139 68 227 58 128 325 223 446 141 95 383 80 353 14 | Route #14: 425 423 108 399 99 262 441 118 219 365 124 105 386 344 15 | Route #15: 404 215 35 36 229 66 94 298 56 324 149 287 371 190 395 327 358 16 | Route #16: 154 283 214 117 92 380 239 137 293 210 316 189 52 175 17 | Route #17: 393 221 313 132 242 150 88 321 225 394 43 204 109 351 129 31 318 309 18 | Route #18: 337 54 205 102 136 415 148 206 230 259 417 226 145 247 116 19 | Route #19: 93 296 187 266 77 323 434 245 350 238 125 176 20 | Route #20: 207 156 193 374 158 277 209 364 400 392 303 112 8 25 382 21 | Route #21: 123 317 390 354 62 178 366 302 91 258 157 329 431 34 22 | Route #22: 333 169 373 251 220 22 135 134 426 20 79 78 418 23 | Route #23: 111 282 47 315 76 41 285 61 166 367 352 421 142 192 179 24 | Route #24: 402 144 183 292 306 428 67 194 115 270 438 218 138 18 269 196 104 44 121 25 | Route #25: 341 46 181 172 167 147 75 174 235 445 3 33 330 314 114 42 69 98 65 119 268 26 | Route #26: 51 185 173 162 289 64 377 146 401 307 433 97 407 254 19 7 27 | Route #27: 151 252 152 256 83 267 335 63 368 345 331 28 | Route #28: 381 186 348 170 308 442 161 182 436 422 370 294 435 70 376 284 103 29 | Route #29: 288 89 408 310 127 164 279 264 168 346 342 359 271 416 12 343 101 30 | Cost 55233 31 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n459-k26.sol: -------------------------------------------------------------------------------- 1 | Route #1: 363 300 284 206 5 156 340 397 216 111 117 194 161 269 345 32 238 2 | Route #2: 129 126 422 244 435 64 107 122 403 68 332 394 324 348 305 231 3 | Route #3: 247 168 167 6 133 39 202 198 193 45 296 7 355 334 50 386 4 | Route #4: 9 408 86 352 141 158 173 192 368 249 430 80 3 181 442 5 | Route #5: 256 47 138 260 34 369 339 119 436 428 263 196 212 89 104 384 433 121 309 274 382 6 | Route #6: 400 42 375 396 243 154 84 241 319 83 131 398 304 65 233 7 | Route #7: 425 237 275 76 200 372 148 13 130 299 266 170 201 421 374 56 262 438 55 251 222 8 | Route #8: 329 381 405 380 88 271 406 313 449 307 175 105 454 46 54 379 230 389 185 145 429 95 259 354 317 221 155 310 188 411 378 61 29 25 264 153 392 116 371 325 9 | Route #9: 44 312 276 234 393 23 336 187 160 314 346 457 183 74 14 114 353 186 404 103 258 426 419 147 220 417 236 351 106 283 165 180 365 99 10 | Route #10: 232 48 172 33 15 235 157 328 364 413 434 110 277 184 356 367 415 252 452 71 294 4 11 | Route #11: 297 289 28 338 66 412 451 11 152 322 341 395 19 224 215 228 229 291 205 120 127 245 26 12 | Route #12: 30 347 402 308 142 37 273 292 214 190 293 162 227 137 455 13 | Route #13: 91 79 207 445 136 278 327 316 100 38 143 390 169 280 14 | Route #14: 248 22 163 239 57 20 385 261 43 217 118 191 171 210 15 | Route #15: 315 209 253 49 326 432 90 321 199 128 391 2 311 423 16 | Route #16: 357 254 279 437 62 159 219 149 377 82 285 335 27 268 303 17 | Route #17: 225 320 440 140 98 257 52 226 301 401 134 41 298 443 18 | Route #18: 383 197 360 330 12 447 51 366 290 21 101 203 388 70 302 19 | Route #19: 94 204 439 450 135 418 265 208 218 73 287 344 427 125 20 | Route #20: 178 150 409 112 295 17 318 85 323 124 376 59 343 213 164 21 | Route #21: 87 448 179 458 18 281 444 132 60 81 288 92 10 331 22 | Route #22: 456 359 272 113 78 1 139 195 370 36 267 446 358 211 23 | Route #23: 349 63 176 407 240 69 75 97 350 286 223 53 420 333 410 24 | Route #24: 255 72 102 373 189 242 40 67 16 416 166 35 31 146 77 25 | Route #25: 399 362 387 453 144 108 337 250 306 109 431 123 177 182 8 26 | Route #26: 174 361 270 342 414 424 441 246 115 93 24 151 96 282 58 27 | Cost 24139 28 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n502-k39.sol: -------------------------------------------------------------------------------- 1 | Route #1: 39 317 70 468 153 374 312 363 158 218 407 202 137 2 | Route #2: 216 498 458 286 331 181 395 77 433 324 3 | Route #3: 228 358 444 451 186 234 141 131 20 52 4 192 177 4 | Route #4: 254 53 385 81 169 427 156 164 467 437 76 282 83 5 | Route #5: 436 115 377 37 222 460 223 309 359 300 449 107 32 6 | Route #6: 190 188 279 396 224 88 167 268 162 163 270 9 143 7 | Route #7: 197 339 133 298 2 51 296 469 166 257 425 495 412 8 | Route #8: 93 414 243 102 75 154 213 421 215 7 428 307 200 9 | Route #9: 366 208 346 354 203 373 303 440 22 429 473 288 335 10 | Route #10: 193 376 426 247 310 386 100 409 481 488 266 47 484 11 | Route #11: 180 255 27 349 85 221 23 195 56 196 320 68 97 12 | Route #12: 119 408 448 187 403 17 365 420 55 106 120 130 400 13 | Route #13: 301 44 105 198 147 171 345 251 226 315 145 140 474 14 | Route #14: 405 475 410 160 470 269 392 351 135 59 185 343 25 15 | Route #15: 422 31 38 21 69 242 276 194 148 367 176 210 341 16 | Route #16: 6 126 456 33 114 278 168 123 416 438 17 | Route #17: 11 183 134 5 493 274 344 297 398 46 293 480 441 18 | Route #18: 35 329 149 239 67 132 439 443 272 290 336 248 491 19 | Route #19: 41 113 476 151 482 91 479 352 406 219 291 497 337 20 | Route #20: 60 48 383 489 413 57 178 402 8 34 230 285 175 21 | Route #21: 63 418 261 431 380 399 284 302 61 389 108 325 462 22 | Route #22: 73 263 165 16 18 240 424 453 110 466 464 129 90 23 | Route #23: 98 446 144 14 157 1 311 382 139 369 419 50 304 24 | Route #24: 101 394 74 3 72 316 461 381 500 496 173 78 104 25 | Route #25: 103 220 58 332 252 362 184 445 295 347 393 457 397 26 | Route #26: 118 292 227 246 477 281 259 490 82 435 485 212 231 27 | Route #27: 121 26 314 294 450 455 262 401 236 483 71 225 244 28 | Route #28: 124 379 19 40 452 238 330 283 92 205 125 199 355 29 | Route #29: 150 29 191 201 155 487 388 499 378 12 271 28 478 30 | Route #30: 159 390 109 86 66 340 45 182 99 342 138 472 434 31 | Route #31: 161 170 112 116 136 79 122 364 211 258 142 42 245 32 | Route #32: 189 338 207 494 417 486 241 30 360 214 306 43 289 33 | Route #33: 209 96 87 350 232 321 111 454 313 24 95 273 308 34 | Route #34: 229 287 94 249 333 442 179 13 356 54 357 328 235 35 | Route #35: 253 174 280 267 411 447 384 370 368 463 299 260 501 36 | Route #36: 264 432 117 127 84 415 233 152 371 10 318 80 326 37 | Route #37: 275 128 49 404 206 64 217 250 265 492 391 387 319 38 | Route #38: 353 204 237 322 465 36 305 277 62 256 323 334 471 39 | Route #39: 372 423 65 327 348 375 15 89 430 361 146 172 459 40 | Cost 69226 41 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n513-k21.sol: -------------------------------------------------------------------------------- 1 | Route #1: 133 162 88 402 98 163 165 430 130 496 286 461 309 332 392 478 322 270 400 397 499 248 232 2 | Route #2: 209 80 38 278 470 87 144 122 231 112 61 181 172 120 155 212 24 196 236 35 53 174 7 418 3 | Route #3: 48 132 243 1 191 214 66 228 99 123 100 103 147 16 149 202 241 60 71 116 49 27 69 4 | Route #4: 42 81 39 393 128 124 8 33 30 204 43 221 67 20 180 54 135 17 84 168 68 184 74 5 | Route #5: 23 89 44 246 146 164 110 175 76 11 51 239 195 227 186 190 26 102 65 225 200 137 169 104 153 83 429 6 | Route #6: 229 378 156 158 336 351 330 291 148 419 449 115 475 79 428 12 485 141 416 401 415 312 343 41 7 | Route #7: 237 272 448 14 311 315 396 142 240 268 264 47 498 176 3 29 384 275 504 489 50 249 427 308 13 8 | Route #8: 59 220 2 113 75 256 18 178 437 40 107 205 325 139 117 230 92 22 37 244 192 136 179 78 72 95 28 70 64 368 289 9 | Route #9: 101 394 21 414 423 462 317 505 387 404 329 471 260 266 391 287 480 36 417 10 | Route #10: 152 466 487 390 370 447 349 436 497 464 460 6 161 472 433 313 341 261 5 292 324 91 506 11 | Route #11: 326 347 388 369 77 226 210 170 245 218 199 185 247 207 166 90 235 145 356 154 45 52 411 507 382 143 12 | Route #12: 420 73 215 458 31 439 457 510 114 265 211 331 284 255 118 267 219 482 13 | Route #13: 342 251 318 327 479 410 182 316 188 201 111 323 294 106 138 171 183 85 125 233 32 250 63 189 381 126 187 177 422 269 14 | Route #14: 109 491 445 320 375 252 25 173 131 409 134 4 440 432 276 373 473 450 385 435 358 407 501 150 425 15 | Route #15: 280 119 376 354 361 374 355 406 481 379 259 350 282 512 328 366 58 386 16 | Route #16: 490 34 467 277 403 306 380 193 431 451 198 254 94 157 213 319 194 314 108 371 443 492 348 96 363 399 234 17 | Route #17: 160 495 360 140 455 362 456 335 208 307 389 222 413 296 299 493 359 273 483 283 444 303 357 18 | Route #18: 97 305 300 297 453 398 353 469 9 285 352 15 434 438 93 159 339 253 258 412 474 477 395 334 383 19 | Route #19: 57 338 238 121 476 10 203 442 365 484 503 304 271 509 345 295 302 129 441 301 263 337 167 217 321 20 | Route #20: 216 421 364 377 454 488 197 508 310 151 127 511 344 55 281 494 367 262 500 408 274 426 82 468 446 56 288 19 21 | Route #21: 86 46 340 333 206 298 465 257 452 346 405 293 486 424 279 463 242 459 372 223 290 105 502 62 224 22 | Cost 24201 23 | -------------------------------------------------------------------------------- /tests/data/cvrplib/Vrp-Set-X/X/X-n573-k30.sol: -------------------------------------------------------------------------------- 1 | Route #1: 48 554 103 473 360 424 144 149 41 118 261 430 258 160 369 167 315 242 2 | Route #2: 157 212 475 131 555 523 486 562 279 128 307 86 277 171 9 419 348 53 433 487 374 215 89 166 58 78 121 3 | Route #3: 362 240 197 264 512 524 101 572 342 335 505 268 485 111 465 16 399 370 489 324 221 4 | Route #4: 57 325 134 255 444 448 113 30 355 450 420 283 248 331 368 266 476 347 202 138 455 5 | Route #5: 533 408 537 182 136 54 441 154 501 333 432 190 148 188 493 217 7 141 187 480 287 532 73 330 317 6 | Route #6: 492 462 510 216 45 393 110 151 312 229 426 17 123 322 366 230 115 185 62 351 172 129 320 143 446 270 280 316 7 | Route #7: 373 65 124 494 263 244 1 389 495 35 161 328 371 326 214 8 | Route #8: 568 381 343 327 271 93 304 191 391 92 303 108 23 449 274 224 222 521 176 507 181 9 | Route #9: 72 418 445 156 104 467 259 356 478 239 155 364 228 112 388 542 553 295 447 571 120 552 417 179 309 319 411 386 140 306 204 346 344 297 400 220 470 549 474 238 509 378 10 | Route #10: 403 234 570 14 28 11 | Route #11: 126 469 170 256 415 32 106 3 461 380 423 434 159 267 183 496 359 81 12 | Route #12: 336 357 563 298 332 457 385 519 352 547 275 404 311 286 517 20 350 177 558 130 59 376 249 375 13 | Route #13: 421 37 543 178 4 236 235 513 14 | Route #14: 301 289 397 63 252 442 436 278 13 565 95 5 409 358 377 15 | Route #15: 192 51 302 281 561 318 200 75 43 10 431 205 162 291 569 16 | Route #16: 207 428 460 398 463 164 425 64 21 158 132 22 528 540 211 253 17 | Route #17: 367 471 98 323 60 102 407 168 137 292 82 24 71 392 468 201 539 210 237 66 79 94 47 209 429 18 | Route #18: 458 349 49 459 265 413 546 515 203 406 251 337 42 180 300 313 223 383 518 498 19 | Route #19: 321 353 8 502 27 20 | Route #20: 535 213 175 482 456 564 534 36 488 288 551 127 122 299 334 33 372 69 520 145 21 | Route #21: 85 516 77 194 100 169 548 272 269 305 2 84 227 529 153 526 150 74 294 22 | Route #22: 527 125 556 567 560 395 31 412 6 262 545 233 365 254 56 23 | Route #23: 503 273 232 18 12 536 163 231 139 414 24 | Route #24: 40 11 39 338 276 25 | Route #25: 296 491 133 105 99 410 477 199 285 109 484 29 19 76 422 198 206 497 511 26 | Route #26: 437 508 97 531 173 363 243 514 345 290 483 339 354 83 247 402 504 174 34 152 50 186 27 | Route #27: 557 80 479 135 452 282 91 87 219 195 530 506 44 416 427 472 481 284 52 439 379 541 193 464 257 340 293 90 70 454 241 189 490 396 394 310 117 559 28 | Route #28: 382 107 308 196 538 142 566 361 499 146 525 314 67 15 440 26 208 116 225 500 29 | Route #29: 46 329 245 443 88 68 550 341 384 438 387 55 451 96 401 114 165 38 466 184 226 544 147 61 405 390 260 246 218 30 | Route #30: 453 25 435 250 119 522 31 | Cost 50673 32 | -------------------------------------------------------------------------------- /tests/data/cvrplib/X-n101-k25.sol: -------------------------------------------------------------------------------- 1 | Route #1: 31 46 35 2 | Route #2: 15 22 41 20 3 | Route #3: 1 70 54 4 | Route #4: 92 9 86 5 | Route #5: 68 90 84 66 6 | Route #6: 76 55 16 69 7 | Route #7: 4 13 74 8 | Route #8: 58 12 5 9 | Route #9: 18 10 39 10 | Route #10: 25 65 78 42 28 11 | Route #11: 7 2 45 43 29 36 72 57 12 | Route #12: 87 37 6 49 14 13 | Route #13: 3 77 63 14 | Route #14: 44 67 88 40 15 | Route #15: 82 60 59 16 | Route #16: 8 17 17 | Route #17: 34 64 96 48 26 47 38 18 | Route #18: 80 94 56 21 19 | Route #19: 71 62 99 98 89 20 | Route #20: 100 61 23 21 | Route #21: 19 97 27 22 | Route #22: 81 51 83 23 | Route #23: 50 91 52 24 | Route #24: 30 85 11 79 25 | Route #25: 75 93 26 | Route #26: 24 95 73 53 33 32 27 | Cost 27591 28 | -------------------------------------------------------------------------------- /tests/data/cvrplib/tai75a.sol: -------------------------------------------------------------------------------- 1 | Route #1: 16 4 5 8 17 2 | Route #2: 63 64 58 56 62 3 | Route #3: 12 24 18 27 21 19 15 4 | Route #4: 26 67 66 5 | Route #5: 23 75 74 25 6 | Route #6: 50 47 38 43 35 49 48 37 32 34 41 40 42 29 31 68 59 69 65 7 | Route #7: 53 52 70 72 73 71 20 8 | Route #8: 57 39 44 36 9 | Route #9: 13 6 11 2 3 10 9 7 1 22 10 | Route #10: 28 14 51 61 30 45 33 55 46 60 54 11 | Cost 1618.36 12 | -------------------------------------------------------------------------------- /tests/data/cvrplib/tai75a.vrp: -------------------------------------------------------------------------------- 1 | NAME : Tai75a 2 | TYPE : CVRP 3 | COMMENT : 1618.36 4 | DIMENSION : 76 5 | CAPACITY : 1445 6 | EDGE_WEIGHT_TYPE : EUC_2D 7 | NODE_COORD_SECTION 8 | 1 0 0 9 | 2 35 -56 10 | 3 72 -58 11 | 4 70 -66 12 | 5 45 -40 13 | 6 39 -40 14 | 7 60 -50 15 | 8 42 -59 16 | 9 31 -46 17 | 10 44 -58 18 | 11 45 -67 19 | 12 69 -46 20 | 13 24 0 21 | 14 12 -4 22 | 15 1 -21 23 | 16 3 29 24 | 17 19 -13 25 | 18 13 -14 26 | 19 25 11 27 | 20 24 23 28 | 21 3 7 29 | 22 23 19 30 | 23 2 -7 31 | 24 5 23 32 | 25 32 5 33 | 26 14 25 34 | 27 -16 -4 35 | 28 24 17 36 | 29 0 -7 37 | 30 -74 -22 38 | 31 -64 -24 39 | 32 -71 -19 40 | 33 -91 -15 41 | 34 -65 -14 42 | 35 -91 -26 43 | 36 -76 -7 44 | 37 -66 -4 45 | 38 -87 -10 46 | 39 -73 -8 47 | 40 -81 -1 48 | 41 -82 -24 49 | 42 -87 -25 50 | 43 -76 -25 51 | 44 -75 -6 52 | 45 -70 -3 53 | 46 -64 -22 54 | 47 -66 -5 55 | 48 -72 -10 56 | 49 -89 -3 57 | 50 -86 -3 58 | 51 -57 -9 59 | 52 -22 -36 60 | 53 -44 19 61 | 54 -21 6 62 | 55 -49 -4 63 | 56 -68 -7 64 | 57 -42 11 65 | 58 -69 3 66 | 59 -49 9 67 | 60 -68 -19 68 | 61 -57 -7 69 | 62 -61 -34 70 | 63 -36 16 71 | 64 -56 2 72 | 65 -67 0 73 | 66 -17 -14 74 | 67 -17 -20 75 | 68 -28 -26 76 | 69 -70 -21 77 | 70 -46 -14 78 | 71 -52 36 79 | 72 -33 62 80 | 73 -53 49 81 | 74 -39 59 82 | 75 33 73 83 | 76 38 88 84 | DEMAND_SECTION 85 | 1 0 86 | 2 50 87 | 3 50 88 | 4 170 89 | 5 297 90 | 6 9 91 | 7 630 92 | 8 179 93 | 9 179 94 | 10 216 95 | 11 4 96 | 12 9 97 | 13 154 98 | 14 117 99 | 15 63 100 | 16 436 101 | 17 905 102 | 18 14 103 | 19 3 104 | 20 10 105 | 21 166 106 | 22 211 107 | 23 8 108 | 24 25 109 | 25 139 110 | 26 213 111 | 27 758 112 | 28 429 113 | 29 5 114 | 30 136 115 | 31 501 116 | 32 93 117 | 33 21 118 | 34 169 119 | 35 22 120 | 36 3 121 | 37 271 122 | 38 433 123 | 39 3 124 | 40 1079 125 | 41 233 126 | 42 11 127 | 43 10 128 | 44 78 129 | 45 63 130 | 46 4 131 | 47 59 132 | 48 8 133 | 49 34 134 | 50 234 135 | 51 30 136 | 52 40 137 | 53 123 138 | 54 7 139 | 55 33 140 | 56 369 141 | 57 11 142 | 58 23 143 | 59 208 144 | 60 4 145 | 61 8 146 | 62 36 147 | 63 504 148 | 64 16 149 | 65 574 150 | 66 19 151 | 67 235 152 | 68 445 153 | 69 6 154 | 70 43 155 | 71 210 156 | 72 268 157 | 73 410 158 | 74 124 159 | 75 11 160 | 76 1085 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /tests/data/empty.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyVRP/VRPLIB/8d6e015788359b610f83abafb7238577f21e9a8d/tests/data/empty.txt -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRP/INSTANCES/A-n32-k5.vrp: -------------------------------------------------------------------------------- 1 | NAME : A-n32-k5 2 | COMMENT : (Augerat et al, No of trucks: 5, Optimal value: 784) 3 | TYPE : CVRP 4 | DIMENSION : 32 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 100 7 | NODE_COORD_SECTION 8 | 1 82 76 9 | 2 96 44 10 | 3 50 5 11 | 4 49 8 12 | 5 13 7 13 | 6 29 89 14 | 7 58 30 15 | 8 84 39 16 | 9 14 24 17 | 10 2 39 18 | 11 3 82 19 | 12 5 10 20 | 13 98 52 21 | 14 84 25 22 | 15 61 59 23 | 16 1 65 24 | 17 88 51 25 | 18 91 2 26 | 19 19 32 27 | 20 93 3 28 | 21 50 93 29 | 22 98 14 30 | 23 5 42 31 | 24 42 9 32 | 25 61 62 33 | 26 9 97 34 | 27 80 55 35 | 28 57 69 36 | 29 23 15 37 | 30 20 70 38 | 31 85 60 39 | 32 98 5 40 | DEMAND_SECTION 41 | 1 0 42 | 2 19 43 | 3 21 44 | 4 6 45 | 5 19 46 | 6 7 47 | 7 12 48 | 8 16 49 | 9 6 50 | 10 16 51 | 11 8 52 | 12 14 53 | 13 21 54 | 14 16 55 | 15 3 56 | 16 22 57 | 17 18 58 | 18 19 59 | 19 1 60 | 20 24 61 | 21 8 62 | 22 12 63 | 23 4 64 | 24 8 65 | 25 24 66 | 26 24 67 | 27 2 68 | 28 20 69 | 29 15 70 | 30 2 71 | 31 14 72 | 32 9 73 | DEPOT_SECTION 74 | 1 75 | -1 76 | EOF 77 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRP/INSTANCES/B-n31-k5.vrp: -------------------------------------------------------------------------------- 1 | NAME : B-n31-k5 2 | COMMENT : (Augerat et al, No of trucks: 5, Optimal value: 672) 3 | TYPE : CVRP 4 | DIMENSION : 31 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 100 7 | NODE_COORD_SECTION 8 | 1 17 76 9 | 2 24 6 10 | 3 96 29 11 | 4 14 19 12 | 5 14 32 13 | 6 0 34 14 | 7 16 22 15 | 8 20 26 16 | 9 22 28 17 | 10 17 23 18 | 11 98 30 19 | 12 30 8 20 | 13 23 27 21 | 14 19 23 22 | 15 34 7 23 | 16 31 7 24 | 17 0 37 25 | 18 19 23 26 | 19 0 36 27 | 20 26 7 28 | 21 98 32 29 | 22 5 40 30 | 23 17 26 31 | 24 21 26 32 | 25 28 8 33 | 26 1 35 34 | 27 27 28 35 | 28 99 30 36 | 29 26 28 37 | 30 17 29 38 | 31 20 26 39 | DEMAND_SECTION 40 | 1 0 41 | 2 25 42 | 3 3 43 | 4 13 44 | 5 17 45 | 6 16 46 | 7 9 47 | 8 22 48 | 9 10 49 | 10 16 50 | 11 8 51 | 12 3 52 | 13 16 53 | 14 16 54 | 15 10 55 | 16 24 56 | 17 16 57 | 18 15 58 | 19 14 59 | 20 5 60 | 21 12 61 | 22 2 62 | 23 18 63 | 24 20 64 | 25 15 65 | 26 8 66 | 27 22 67 | 28 15 68 | 29 10 69 | 30 13 70 | 31 19 71 | DEPOT_SECTION 72 | 1 73 | -1 74 | EOF 75 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRP/INSTANCES/CMT1.vrp: -------------------------------------------------------------------------------- 1 | NAME : CMT1 2 | TYPE : CVRP 3 | COMMENT : 524.61 4 | DIMENSION : 51 5 | VEHICLES : 5 6 | CAPACITY : 160 7 | EDGE_WEIGHT_TYPE : EXACT_2D 8 | NODE_COORD_SECTION 9 | 1 30 40 10 | 2 37 52 11 | 3 49 49 12 | 4 52 64 13 | 5 20 26 14 | 6 40 30 15 | 7 21 47 16 | 8 17 63 17 | 9 31 62 18 | 10 52 33 19 | 11 51 21 20 | 12 42 41 21 | 13 31 32 22 | 14 5 25 23 | 15 12 42 24 | 16 36 16 25 | 17 52 41 26 | 18 27 23 27 | 19 17 33 28 | 20 13 13 29 | 21 57 58 30 | 22 62 42 31 | 23 42 57 32 | 24 16 57 33 | 25 8 52 34 | 26 7 38 35 | 27 27 68 36 | 28 30 48 37 | 29 43 67 38 | 30 58 48 39 | 31 58 27 40 | 32 37 69 41 | 33 38 46 42 | 34 46 10 43 | 35 61 33 44 | 36 62 63 45 | 37 63 69 46 | 38 32 22 47 | 39 45 35 48 | 40 59 15 49 | 41 5 6 50 | 42 10 17 51 | 43 21 10 52 | 44 5 64 53 | 45 30 15 54 | 46 39 10 55 | 47 32 39 56 | 48 25 32 57 | 49 25 55 58 | 50 48 28 59 | 51 56 37 60 | DEMAND_SECTION 61 | 1 0 62 | 2 7 63 | 3 30 64 | 4 16 65 | 5 9 66 | 6 21 67 | 7 15 68 | 8 19 69 | 9 23 70 | 10 11 71 | 11 5 72 | 12 19 73 | 13 29 74 | 14 23 75 | 15 21 76 | 16 10 77 | 17 15 78 | 18 3 79 | 19 41 80 | 20 9 81 | 21 28 82 | 22 8 83 | 23 8 84 | 24 16 85 | 25 10 86 | 26 28 87 | 27 7 88 | 28 15 89 | 29 14 90 | 30 6 91 | 31 19 92 | 32 11 93 | 33 12 94 | 34 23 95 | 35 26 96 | 36 17 97 | 37 6 98 | 38 9 99 | 39 15 100 | 40 14 101 | 41 7 102 | 42 27 103 | 43 13 104 | 44 11 105 | 45 16 106 | 46 10 107 | 47 5 108 | 48 25 109 | 49 17 110 | 50 18 111 | 51 10 112 | DEPOT_SECTION 113 | 1 114 | -1 115 | EOF 116 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRP/INSTANCES/P-n16-k8.vrp: -------------------------------------------------------------------------------- 1 | NAME : P-n16-k8 2 | COMMENT : (Augerat et al, No of trucks: 8, Optimal value: 450) 3 | TYPE : CVRP 4 | DIMENSION : 16 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 35 7 | NODE_COORD_SECTION 8 | 1 30 40 9 | 2 37 52 10 | 3 49 49 11 | 4 52 64 12 | 5 31 62 13 | 6 52 33 14 | 7 42 41 15 | 8 52 41 16 | 9 57 58 17 | 10 62 42 18 | 11 42 57 19 | 12 27 68 20 | 13 43 67 21 | 14 58 48 22 | 15 58 27 23 | 16 37 69 24 | DEMAND_SECTION 25 | 1 0 26 | 2 19 27 | 3 30 28 | 4 16 29 | 5 23 30 | 6 11 31 | 7 31 32 | 8 15 33 | 9 28 34 | 10 8 35 | 11 8 36 | 12 7 37 | 13 14 38 | 14 6 39 | 15 19 40 | 16 11 41 | DEPOT_SECTION 42 | 1 43 | -1 44 | EOF 45 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRP/INSTANCES/R-E016-03m.vrp: -------------------------------------------------------------------------------- 1 | NAME : E016-03m 2 | COMMENT : Christofides, Mingozzi and Toth, 1981 3 | TYPE : CVRP 4 | DIMENSION : 16 5 | EDGE_WEIGHT_TYPE : EXACT_2D 6 | CAPACITY : 90 7 | VEHICLES : 3 8 | NODE_COORD_SECTION 9 | 1 30 40 10 | 2 37 52 11 | 3 49 49 12 | 4 52 64 13 | 5 20 26 14 | 6 40 30 15 | 7 21 47 16 | 8 17 63 17 | 9 31 62 18 | 10 52 33 19 | 11 51 21 20 | 12 42 41 21 | 13 31 32 22 | 14 5 25 23 | 15 12 42 24 | 16 36 16 25 | DEMAND_SECTION 26 | 1 0 27 | 2 7 28 | 3 30 29 | 4 16 30 | 5 9 31 | 6 21 32 | 7 15 33 | 8 19 34 | 9 23 35 | 10 11 36 | 11 5 37 | 12 19 38 | 13 29 39 | 14 23 40 | 15 21 41 | 16 10 42 | DEPOT_SECTION 43 | 1 44 | EOF 45 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRP/INSTANCES/S-E016-03m.vrp: -------------------------------------------------------------------------------- 1 | NAME : E016-03m 2 | COMMENT : Christofides, Mingozzi and Toth, 1981 3 | TYPE : CVRP 4 | DIMENSION : 16 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 90 7 | VEHICLES : 3 8 | NODE_COORD_SECTION 9 | 1 30 40 10 | 2 37 52 11 | 3 49 49 12 | 4 52 64 13 | 5 20 26 14 | 6 40 30 15 | 7 21 47 16 | 8 17 63 17 | 9 31 62 18 | 10 52 33 19 | 11 51 21 20 | 12 42 41 21 | 13 31 32 22 | 14 5 25 23 | 15 12 42 24 | 16 36 16 25 | DEMAND_SECTION 26 | 1 0 27 | 2 7 28 | 3 30 29 | 4 16 30 | 5 9 31 | 6 21 32 | 7 15 33 | 8 19 34 | 9 23 35 | 10 11 36 | 11 5 37 | 12 19 38 | 13 29 39 | 14 23 40 | 15 21 41 | 16 10 42 | DEPOT_SECTION 43 | 1 44 | EOF 45 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRP/INSTANCES/U-A-n32-k5.vrp: -------------------------------------------------------------------------------- 1 | NAME : U-A-n32-k5 2 | COMMENT : (Augerat et al, No of trucks: 5, Optimal value: 784) 3 | TYPE : CVRP 4 | DIMENSION : 32 5 | EDGE_WEIGHT_TYPE : EXACT_2D 6 | CAPACITY : 100 7 | NODE_COORD_SECTION 8 | 1 82 76 9 | 2 96 44 10 | 3 50 5 11 | 4 49 8 12 | 5 13 7 13 | 6 29 89 14 | 7 58 30 15 | 8 84 39 16 | 9 14 24 17 | 10 2 39 18 | 11 3 82 19 | 12 5 10 20 | 13 98 52 21 | 14 84 25 22 | 15 61 59 23 | 16 1 65 24 | 17 88 51 25 | 18 91 2 26 | 19 19 32 27 | 20 93 3 28 | 21 50 93 29 | 22 98 14 30 | 23 5 42 31 | 24 42 9 32 | 25 61 62 33 | 26 9 97 34 | 27 80 55 35 | 28 57 69 36 | 29 23 15 37 | 30 20 70 38 | 31 85 60 39 | 32 98 5 40 | DEMAND_SECTION 41 | 1 0 42 | 2 19 43 | 3 21 44 | 4 6 45 | 5 19 46 | 6 7 47 | 7 12 48 | 8 16 49 | 9 6 50 | 10 16 51 | 11 8 52 | 12 14 53 | 13 21 54 | 14 16 55 | 15 3 56 | 16 22 57 | 17 18 58 | 18 19 59 | 19 1 60 | 20 24 61 | 21 8 62 | 22 12 63 | 23 4 64 | 24 8 65 | 25 24 66 | 26 24 67 | 27 2 68 | 28 20 69 | 29 15 70 | 30 2 71 | 31 14 72 | 32 9 73 | DEPOT_SECTION 74 | 1 75 | -1 76 | EOF 77 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRP/INSTANCES/att-n48-k4.vrp: -------------------------------------------------------------------------------- 1 | NAME : att48 2 | COMMENT : (Rinaldi,Yarrow/Araque, No of trucks: 4, Optimal value: 40002) 3 | TYPE : CVRP 4 | DIMENSION : 48 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 15 7 | NODE_COORD_SECTION 8 | 1 6823 4674 9 | 2 7692 2247 10 | 3 9135 6748 11 | 4 7721 3451 12 | 5 8304 8580 13 | 6 7501 5899 14 | 7 4687 1373 15 | 8 5429 1408 16 | 9 7877 1716 17 | 10 7260 2083 18 | 11 7096 7869 19 | 12 6539 3513 20 | 13 6272 2992 21 | 14 6471 4275 22 | 15 7110 4369 23 | 16 6462 2634 24 | 17 8476 2874 25 | 18 3961 1370 26 | 19 5555 1519 27 | 20 4422 1249 28 | 21 5584 3081 29 | 22 5776 4498 30 | 23 8035 2880 31 | 24 6963 3782 32 | 25 6336 7348 33 | 26 8139 8306 34 | 27 4326 1426 35 | 28 5164 1440 36 | 29 8389 5804 37 | 30 4639 1629 38 | 31 6344 1436 39 | 32 5840 5736 40 | 33 5972 2555 41 | 34 7947 4373 42 | 35 6929 8958 43 | 36 5366 1733 44 | 37 4550 1219 45 | 38 6901 1589 46 | 39 6316 5497 47 | 40 7010 2710 48 | 41 9005 3996 49 | 42 7576 7065 50 | 43 4246 1701 51 | 44 5906 1472 52 | 45 6469 8971 53 | 46 6152 2174 54 | 47 5887 3796 55 | 48 7203 5958 56 | DEMAND_SECTION 57 | 1 0 58 | 2 1 59 | 3 1 60 | 4 1 61 | 5 1 62 | 6 1 63 | 7 1 64 | 8 1 65 | 9 1 66 | 10 1 67 | 11 1 68 | 12 1 69 | 13 1 70 | 14 1 71 | 15 1 72 | 16 1 73 | 17 1 74 | 18 1 75 | 19 1 76 | 20 1 77 | 21 1 78 | 22 1 79 | 23 1 80 | 24 1 81 | 25 1 82 | 26 1 83 | 27 1 84 | 28 1 85 | 29 1 86 | 30 1 87 | 31 1 88 | 32 1 89 | 33 1 90 | 34 1 91 | 35 1 92 | 36 1 93 | 37 1 94 | 38 1 95 | 39 1 96 | 40 1 97 | 41 1 98 | 42 1 99 | 43 1 100 | 44 1 101 | 45 1 102 | 46 1 103 | 47 1 104 | 48 1 105 | DEPOT_SECTION 106 | 1 107 | -1 108 | EOF 109 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRPTW/INSTANCES/C101.25.3.vrptw: -------------------------------------------------------------------------------- 1 | NAME : C101 2 | TYPE : CVRPTW 3 | DIMENSION : 26 4 | VEHICLES : 3 5 | CAPACITY : 200 6 | SERVICE_TIME : 90 7 | SCALE : 10 8 | EDGE_WEIGHT_TYPE : FLOOR_2D 9 | NODE_COORD_SECTION 10 | 1 40 50 11 | 2 45 68 12 | 3 45 70 13 | 4 42 66 14 | 5 42 68 15 | 6 42 65 16 | 7 40 69 17 | 8 40 66 18 | 9 38 68 19 | 10 38 70 20 | 11 35 66 21 | 12 35 69 22 | 13 25 85 23 | 14 22 75 24 | 15 22 85 25 | 16 20 80 26 | 17 20 85 27 | 18 18 75 28 | 19 15 75 29 | 20 15 80 30 | 21 30 50 31 | 22 30 52 32 | 23 28 52 33 | 24 28 55 34 | 25 25 50 35 | 26 25 52 36 | DEMAND_SECTION 37 | 1 0 38 | 2 10 39 | 3 30 40 | 4 10 41 | 5 10 42 | 6 10 43 | 7 20 44 | 8 20 45 | 9 20 46 | 10 10 47 | 11 10 48 | 12 10 49 | 13 20 50 | 14 30 51 | 15 10 52 | 16 40 53 | 17 40 54 | 18 20 55 | 19 20 56 | 20 10 57 | 21 10 58 | 22 20 59 | 23 20 60 | 24 10 61 | 25 10 62 | 26 40 63 | TIME_WINDOW_SECTION 64 | 1 0 1236 65 | 2 912 967 66 | 3 825 870 67 | 4 65 146 68 | 5 727 782 69 | 6 15 67 70 | 7 621 702 71 | 8 170 225 72 | 9 255 324 73 | 10 534 605 74 | 11 357 410 75 | 12 448 505 76 | 13 652 721 77 | 14 30 92 78 | 15 567 620 79 | 16 384 429 80 | 17 475 528 81 | 18 99 148 82 | 19 179 254 83 | 20 278 345 84 | 21 10 73 85 | 22 914 965 86 | 23 812 883 87 | 24 732 777 88 | 25 65 144 89 | 26 169 224 90 | DEPOT_SECTION 91 | 1 92 | -1 93 | EOF 94 | -------------------------------------------------------------------------------- /tests/data/lkh-3/CVRPTW/INSTANCES/C101.50.5.vrptw: -------------------------------------------------------------------------------- 1 | NAME : C101 2 | TYPE : CVRPTW 3 | DIMENSION : 51 4 | VEHICLES : 5 5 | CAPACITY : 200 6 | SERVICE_TIME : 90 7 | SCALE : 10 8 | EDGE_WEIGHT_TYPE : FLOOR_2D 9 | NODE_COORD_SECTION 10 | 1 40 50 11 | 2 45 68 12 | 3 45 70 13 | 4 42 66 14 | 5 42 68 15 | 6 42 65 16 | 7 40 69 17 | 8 40 66 18 | 9 38 68 19 | 10 38 70 20 | 11 35 66 21 | 12 35 69 22 | 13 25 85 23 | 14 22 75 24 | 15 22 85 25 | 16 20 80 26 | 17 20 85 27 | 18 18 75 28 | 19 15 75 29 | 20 15 80 30 | 21 30 50 31 | 22 30 52 32 | 23 28 52 33 | 24 28 55 34 | 25 25 50 35 | 26 25 52 36 | 27 25 55 37 | 28 23 52 38 | 29 23 55 39 | 30 20 50 40 | 31 20 55 41 | 32 10 35 42 | 33 10 40 43 | 34 8 40 44 | 35 8 45 45 | 36 5 35 46 | 37 5 45 47 | 38 2 40 48 | 39 0 40 49 | 40 0 45 50 | 41 35 30 51 | 42 35 32 52 | 43 33 32 53 | 44 33 35 54 | 45 32 30 55 | 46 30 30 56 | 47 30 32 57 | 48 30 35 58 | 49 28 30 59 | 50 28 35 60 | 51 26 32 61 | DEMAND_SECTION 62 | 1 0 63 | 2 10 64 | 3 30 65 | 4 10 66 | 5 10 67 | 6 10 68 | 7 20 69 | 8 20 70 | 9 20 71 | 10 10 72 | 11 10 73 | 12 10 74 | 13 20 75 | 14 30 76 | 15 10 77 | 16 40 78 | 17 40 79 | 18 20 80 | 19 20 81 | 20 10 82 | 21 10 83 | 22 20 84 | 23 20 85 | 24 10 86 | 25 10 87 | 26 40 88 | 27 10 89 | 28 10 90 | 29 20 91 | 30 10 92 | 31 10 93 | 32 20 94 | 33 30 95 | 34 40 96 | 35 20 97 | 36 10 98 | 37 10 99 | 38 20 100 | 39 30 101 | 40 20 102 | 41 10 103 | 42 10 104 | 43 20 105 | 44 10 106 | 45 10 107 | 46 10 108 | 47 30 109 | 48 10 110 | 49 10 111 | 50 10 112 | 51 10 113 | TIME_WINDOW_SECTION 114 | 1 0 1236 115 | 2 912 967 116 | 3 825 870 117 | 4 65 146 118 | 5 727 782 119 | 6 15 67 120 | 7 621 702 121 | 8 170 225 122 | 9 255 324 123 | 10 534 605 124 | 11 357 410 125 | 12 448 505 126 | 13 652 721 127 | 14 30 92 128 | 15 567 620 129 | 16 384 429 130 | 17 475 528 131 | 18 99 148 132 | 19 179 254 133 | 20 278 345 134 | 21 10 73 135 | 22 914 965 136 | 23 812 883 137 | 24 732 777 138 | 25 65 144 139 | 26 169 224 140 | 27 622 701 141 | 28 261 316 142 | 29 546 593 143 | 30 358 405 144 | 31 449 504 145 | 32 200 237 146 | 33 31 100 147 | 34 87 158 148 | 35 751 816 149 | 36 283 344 150 | 37 665 716 151 | 38 383 434 152 | 39 479 522 153 | 40 567 624 154 | 41 264 321 155 | 42 166 235 156 | 43 68 149 157 | 44 16 80 158 | 45 359 412 159 | 46 541 600 160 | 47 448 509 161 | 48 1054 1127 162 | 49 632 693 163 | 50 1001 1066 164 | 51 815 880 165 | DEPOT_SECTION 166 | 1 167 | -1 168 | EOF 169 | -------------------------------------------------------------------------------- /tests/data/lkh-3/DCVRP/INSTANCES/D022-04g.vrp: -------------------------------------------------------------------------------- 1 | NAME : D022-04g 2 | COMMENT : Gaskell, 1967; Eilon, Watson-Gandy and Christofides, 1971 3 | TYPE : DCVRP 4 | DIMENSION : 22 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 6000 7 | DISTANCE : 210 8 | SERVICE_TIME : 0 9 | VEHICLES : 4 10 | NODE_COORD_SECTION 11 | 1 145 215 12 | 2 151 264 13 | 3 159 261 14 | 4 130 254 15 | 5 128 252 16 | 6 163 247 17 | 7 146 246 18 | 8 161 242 19 | 9 142 239 20 | 10 163 236 21 | 11 148 232 22 | 12 128 231 23 | 13 156 217 24 | 14 129 214 25 | 15 146 208 26 | 16 164 208 27 | 17 141 206 28 | 18 147 193 29 | 19 164 193 30 | 20 129 189 31 | 21 155 185 32 | 22 139 182 33 | DEMAND_SECTION 34 | 1 0 35 | 2 1100 36 | 3 700 37 | 4 800 38 | 5 1400 39 | 6 2100 40 | 7 400 41 | 8 800 42 | 9 100 43 | 10 500 44 | 11 600 45 | 12 1200 46 | 13 1300 47 | 14 1300 48 | 15 300 49 | 16 900 50 | 17 2100 51 | 18 1000 52 | 19 900 53 | 20 2500 54 | 21 1800 55 | 22 700 56 | DEPOT_SECTION 57 | 1 58 | EOF 59 | -------------------------------------------------------------------------------- /tests/data/tai75a.sol: -------------------------------------------------------------------------------- 1 | Route #1: 16 4 5 8 17 2 | Route #2: 63 64 58 56 62 3 | Route #3: 12 24 18 27 21 19 15 4 | Route #4: 26 67 66 5 | Route #5: 23 75 74 25 6 | Route #6: 50 47 38 43 35 49 48 37 32 34 41 40 42 29 31 68 59 69 65 7 | Route #7: 53 52 70 72 73 71 20 8 | Route #8: 57 39 44 36 9 | Route #9: 13 6 11 2 3 10 9 7 1 22 10 | Route #10: 28 14 51 61 30 45 33 55 46 60 54 11 | Cost 1618.36 12 | -------------------------------------------------------------------------------- /tests/data/tai75a.vrp: -------------------------------------------------------------------------------- 1 | NAME : Tai75a 2 | TYPE : CVRP 3 | COMMENT : 1618.36 4 | DIMENSION : 76 5 | CAPACITY : 1445 6 | EDGE_WEIGHT_TYPE : EUC_2D 7 | NODE_COORD_SECTION 8 | 1 0 0 9 | 2 35 -56 10 | 3 72 -58 11 | 4 70 -66 12 | 5 45 -40 13 | 6 39 -40 14 | 7 60 -50 15 | 8 42 -59 16 | 9 31 -46 17 | 10 44 -58 18 | 11 45 -67 19 | 12 69 -46 20 | 13 24 0 21 | 14 12 -4 22 | 15 1 -21 23 | 16 3 29 24 | 17 19 -13 25 | 18 13 -14 26 | 19 25 11 27 | 20 24 23 28 | 21 3 7 29 | 22 23 19 30 | 23 2 -7 31 | 24 5 23 32 | 25 32 5 33 | 26 14 25 34 | 27 -16 -4 35 | 28 24 17 36 | 29 0 -7 37 | 30 -74 -22 38 | 31 -64 -24 39 | 32 -71 -19 40 | 33 -91 -15 41 | 34 -65 -14 42 | 35 -91 -26 43 | 36 -76 -7 44 | 37 -66 -4 45 | 38 -87 -10 46 | 39 -73 -8 47 | 40 -81 -1 48 | 41 -82 -24 49 | 42 -87 -25 50 | 43 -76 -25 51 | 44 -75 -6 52 | 45 -70 -3 53 | 46 -64 -22 54 | 47 -66 -5 55 | 48 -72 -10 56 | 49 -89 -3 57 | 50 -86 -3 58 | 51 -57 -9 59 | 52 -22 -36 60 | 53 -44 19 61 | 54 -21 6 62 | 55 -49 -4 63 | 56 -68 -7 64 | 57 -42 11 65 | 58 -69 3 66 | 59 -49 9 67 | 60 -68 -19 68 | 61 -57 -7 69 | 62 -61 -34 70 | 63 -36 16 71 | 64 -56 2 72 | 65 -67 0 73 | 66 -17 -14 74 | 67 -17 -20 75 | 68 -28 -26 76 | 69 -70 -21 77 | 70 -46 -14 78 | 71 -52 36 79 | 72 -33 62 80 | 73 -53 49 81 | 74 -39 59 82 | 75 33 73 83 | 76 38 88 84 | DEMAND_SECTION 85 | 1 0 86 | 2 50 87 | 3 50 88 | 4 170 89 | 5 297 90 | 6 9 91 | 7 630 92 | 8 179 93 | 9 179 94 | 10 216 95 | 11 4 96 | 12 9 97 | 13 154 98 | 14 117 99 | 15 63 100 | 16 436 101 | 17 905 102 | 18 14 103 | 19 3 104 | 20 10 105 | 21 166 106 | 22 211 107 | 23 8 108 | 24 25 109 | 25 139 110 | 26 213 111 | 27 758 112 | 28 429 113 | 29 5 114 | 30 136 115 | 31 501 116 | 32 93 117 | 33 21 118 | 34 169 119 | 35 22 120 | 36 3 121 | 37 271 122 | 38 433 123 | 39 3 124 | 40 1079 125 | 41 233 126 | 42 11 127 | 43 10 128 | 44 78 129 | 45 63 130 | 46 4 131 | 47 59 132 | 48 8 133 | 49 34 134 | 50 234 135 | 51 30 136 | 52 40 137 | 53 123 138 | 54 7 139 | 55 33 140 | 56 369 141 | 57 11 142 | 58 23 143 | 59 208 144 | 60 4 145 | 61 8 146 | 62 36 147 | 63 504 148 | 64 16 149 | 65 574 150 | 66 19 151 | 67 235 152 | 68 445 153 | 69 6 154 | 70 43 155 | 71 210 156 | 72 268 157 | 73 410 158 | 74 124 159 | 75 11 160 | 76 1085 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /tests/download/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyVRP/VRPLIB/8d6e015788359b610f83abafb7238577f21e9a8d/tests/download/__init__.py -------------------------------------------------------------------------------- /tests/download/test_download_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import pytest 4 | from numpy.testing import assert_, assert_equal 5 | 6 | from vrplib import download_instance 7 | 8 | 9 | def test_deprecation_warning(tmp_path): 10 | """ 11 | Checks if a deprecation warning is raised when the function is called. 12 | """ 13 | with pytest.warns(DeprecationWarning): 14 | download_instance("X-n101-k25", tmp_path / "tmp") 15 | 16 | 17 | @pytest.mark.filterwarnings("ignore:The function") 18 | def test_raise_invalid_name(tmp_path): 19 | """ 20 | Raise an error if the passed-in name is invalid. 21 | """ 22 | with pytest.raises(ValueError): 23 | download_instance("invalid_name", tmp_path / "tmp") 24 | 25 | 26 | @pytest.mark.filterwarnings("ignore:The function") 27 | def test_download_vrplib_instance_file_name(tmp_path): 28 | """ 29 | Tests if a VRPLIB instance is correctly downloaded from CVRPLIB 30 | and saved to the passed-in file path. 31 | """ 32 | name = "X-n101-k25" 33 | fname = "random_file_name.txt" 34 | file_path = tmp_path / fname 35 | 36 | download_instance(name, file_path) 37 | assert_(os.path.exists(file_path)) 38 | 39 | with open(file_path, "r") as fi: 40 | actual = fi.read() 41 | 42 | with open(f"tests/data/cvrplib/{name}.vrp", "r") as fi: 43 | desired = fi.read() 44 | 45 | assert_equal(actual, desired) 46 | 47 | 48 | @pytest.mark.filterwarnings("ignore:The function") 49 | def test_download_vrplib_instance_dir_path(tmp_path): 50 | """ 51 | Tests if a VRPLIB instance is correctly downloaded from CVRPLIB 52 | and saved to the passed-in directory. 53 | """ 54 | name = "X-n101-k25" 55 | dir_path = tmp_path 56 | file_path = dir_path / (name + ".vrp") 57 | 58 | download_instance(name, dir_path) 59 | assert_(os.path.exists(file_path)) 60 | 61 | with open(file_path, "r") as fi: 62 | actual = fi.read() 63 | 64 | with open(f"tests/data/cvrplib/{name}.vrp", "r") as fi: 65 | desired = fi.read() 66 | 67 | assert_equal(actual, desired) 68 | 69 | 70 | @pytest.mark.filterwarnings("ignore:The function") 71 | def test_download_solomon_instance(tmp_path): 72 | """ 73 | Tests if a Solomon instance is correctly downloaded from CVRPLIB. 74 | """ 75 | name = "C101" 76 | ext = ".txt" 77 | loc = tmp_path / (name + ext) 78 | 79 | download_instance(name, loc) 80 | 81 | with open(loc, "r") as fi: 82 | actual = fi.read() 83 | 84 | with open(f"tests/data/cvrplib/{name + ext}", "r") as fi: 85 | desired = fi.read() 86 | 87 | assert_equal(actual, desired) 88 | -------------------------------------------------------------------------------- /tests/download/test_download_utils.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from numpy.testing import assert_equal 3 | 4 | from vrplib.download.download_utils import find_set 5 | 6 | from ..utils import selected_cases 7 | 8 | 9 | @pytest.mark.parametrize("case", selected_cases()) 10 | def test_find_dir(case): 11 | assert_equal(find_set(case.instance_name), case.set_name) 12 | 13 | 14 | def test_raise_invalid_name(): 15 | with pytest.raises(ValueError): 16 | find_set("test_name") 17 | -------------------------------------------------------------------------------- /tests/download/test_list_names.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from numpy.testing import assert_ 3 | 4 | from vrplib import list_names 5 | 6 | from ..utils import selected_cases 7 | 8 | 9 | def test_deprecationg_warning(): 10 | """ 11 | Check if the deprecation warning is raised. 12 | """ 13 | with pytest.warns(DeprecationWarning): 14 | list_names(1, 2, "cvrp") 15 | 16 | 17 | @pytest.mark.filterwarnings("ignore:The function") 18 | @pytest.mark.parametrize("case", selected_cases()) 19 | def test_list_names(case): 20 | assert_(case.instance_name in list_names()) 21 | 22 | 23 | @pytest.mark.filterwarnings("ignore:The function") 24 | @pytest.mark.parametrize( 25 | "low, high, vrp_type", 26 | [ 27 | (1, 2, "vrp"), # vrp not in [None, 'cvrp', 'vrptw'] 28 | ], 29 | ) 30 | def test_list_names_raise(low, high, vrp_type): 31 | """ 32 | Raise for invalid input paramaters. 33 | """ 34 | with pytest.raises(ValueError): 35 | list_names(low, high, vrp_type) 36 | 37 | 38 | @pytest.mark.filterwarnings("ignore:The function") 39 | @pytest.mark.parametrize( 40 | "name, low, high, vrp_type", 41 | [ 42 | ("A-n32-k5", 31, 31, "cvrp"), 43 | ("ORTEC-n242-k12", 0, 241, "cvrp"), 44 | ("Flanders2", 30000, None, "cvrp"), 45 | ("X-n101-k25", 0, 100, None), 46 | ("RC208", 0, 100, "vrptw"), 47 | ("RC2_10_10", 1000, 1000, None), 48 | ], 49 | ) 50 | def test_list_names_n(name, low, high, vrp_type): 51 | """ 52 | Check if the passed-in name is in the list of names. 53 | """ 54 | assert_(name in list_names(low, high, vrp_type)) 55 | -------------------------------------------------------------------------------- /tests/parse/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyVRP/VRPLIB/8d6e015788359b610f83abafb7238577f21e9a8d/tests/parse/__init__.py -------------------------------------------------------------------------------- /tests/parse/test_parse_solution.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from numpy.testing import assert_equal 3 | 4 | from vrplib.parse.parse_solution import parse_solution 5 | 6 | 7 | @pytest.mark.parametrize( 8 | "text, data", 9 | [ 10 | ("", {"routes": []}), # empty solution 11 | ( 12 | "Route #1: 1 2 3\n Route #2: 5 6\n COST: 10", 13 | {"routes": [[1, 2, 3], [5, 6]], "cost": 10}, 14 | ), 15 | ( 16 | "Route #1: 1 \n Route #2: 6\n comment: VRPLIB", 17 | {"routes": [[1], [6]], "comment": "VRPLIB"}, 18 | ), 19 | ( 20 | "Route #1: 1 \n Route #2: 6\n time 180.23", 21 | {"routes": [[1], [6]], "time": 180.23}, 22 | ), 23 | ( # skip lines without : or space 24 | "Route #1: 1 \n Route #2: 6\n ABCDE", 25 | {"routes": [[1], [6]]}, 26 | ), 27 | ], 28 | ) 29 | def test_parse_solution(text, data): 30 | """ 31 | Tests if a solution is correctly parsed. 32 | """ 33 | assert_equal(parse_solution(text), data) 34 | -------------------------------------------------------------------------------- /tests/parse/test_parse_utils.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from numpy.testing import assert_equal 3 | 4 | from vrplib.parse.parse_utils import text2lines 5 | 6 | 7 | @pytest.mark.parametrize(("text", "expected"), [("", []), ("\n", [])]) 8 | def test_empty_lines(text: str, expected: list[str]): 9 | assert_equal(text2lines(text), expected) 10 | 11 | 12 | @pytest.mark.parametrize( 13 | ("text", "expected"), 14 | [ 15 | ("# test comment", []), 16 | ("# other comment", []), 17 | ("123\n#comment", ["123"]), 18 | ("#\n#", []), 19 | # Lines are stripped before they're inspected for comments, so this 20 | # should also be OK: 21 | (" # comment after whitespace", []), 22 | ], 23 | ) 24 | def test_comments(text: str, expected: list[str]): 25 | assert_equal(text2lines(text), expected) 26 | -------------------------------------------------------------------------------- /tests/read/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyVRP/VRPLIB/8d6e015788359b610f83abafb7238577f21e9a8d/tests/read/__init__.py -------------------------------------------------------------------------------- /tests/read/test_read_solution.py: -------------------------------------------------------------------------------- 1 | from numpy.testing import assert_equal 2 | 3 | from vrplib import read_solution 4 | 5 | 6 | def test_read_dummy_solution(tmp_path): 7 | """ 8 | Tests if a dummy solution is correctly read and parsed. 9 | """ 10 | name = "test.sol" 11 | 12 | with open(tmp_path / name, "w") as fi: 13 | solution = "\n".join( 14 | [ 15 | "Route 1 : 1 2", 16 | "Route 2 : 3 4", 17 | "Route 3 : 5", 18 | "Cost : 100", 19 | "Time : 123.45", 20 | "Name : test.sol", 21 | "Comment : Test.", 22 | ] 23 | ) 24 | fi.write(solution) 25 | 26 | target = { 27 | "routes": [[1, 2], [3, 4], [5]], 28 | "cost": 100, 29 | "time": 123.45, 30 | "name": name, 31 | "comment": "Test.", 32 | } 33 | 34 | assert_equal(read_solution(tmp_path / name), target) 35 | -------------------------------------------------------------------------------- /tests/utils.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from pathlib import Path 3 | 4 | from vrplib.download.download_utils import find_set 5 | 6 | CVRPLIB_DATA_DIR = Path("tests/data/cvrplib/") 7 | 8 | 9 | @dataclass 10 | class Case: 11 | name: str 12 | set_name: str 13 | instance_name: str 14 | instance_path: str 15 | solution_path: str 16 | dimension: int 17 | capacity: int 18 | cost: float 19 | 20 | 21 | def make_case( 22 | set_name, 23 | instance_name, 24 | dimension, 25 | capacity, 26 | cost, 27 | ): 28 | """ 29 | Return a test case based on the passed-in arguments. 30 | """ 31 | return Case( 32 | name=set_name + "/" + instance_name, 33 | set_name=set_name, 34 | instance_name=instance_name, 35 | instance_path=CVRPLIB_DATA_DIR 36 | / ( 37 | instance_name 38 | + ( 39 | ".txt" 40 | if find_set(instance_name) in ["Solomon", "HG"] 41 | else ".vrp" 42 | ) 43 | ), 44 | solution_path=CVRPLIB_DATA_DIR / (instance_name + ".sol"), 45 | dimension=dimension, 46 | capacity=capacity, 47 | cost=cost, 48 | ) 49 | 50 | 51 | def selected_cases(): 52 | """ 53 | A selection of test cases. 54 | """ 55 | A = make_case("A", "A-n32-k5", 32, 100, 784) 56 | B = make_case("B", "B-n31-k5", 31, 100, 672) 57 | C = make_case("CMT", "CMT6", 51, 160, 555.43) 58 | D = make_case("D", "ORTEC-n242-k12", 242, 125, 123750) 59 | E = make_case("E", "E-n13-k4", 13, 6000, 247) 60 | F = make_case("F", "F-n72-k4", 72, 30000, 237) 61 | G = make_case("Golden", "Golden_1", 241, 550, 5623.47) 62 | L = make_case("Li", "Li_21", 561, 1200, 16212.82548) 63 | M = make_case("M", "M-n101-k10", 101, 200, 820) 64 | P = make_case("P", "P-n16-k8", 16, 35, 450) 65 | X = make_case("X", "X-n101-k25", 101, 206, 27591) 66 | 67 | return [ 68 | A, 69 | B, 70 | C, 71 | D, 72 | E, 73 | F, 74 | G, 75 | L, 76 | M, 77 | P, 78 | X, 79 | ] 80 | -------------------------------------------------------------------------------- /tests/write/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyVRP/VRPLIB/8d6e015788359b610f83abafb7238577f21e9a8d/tests/write/__init__.py -------------------------------------------------------------------------------- /tests/write/test_write_solution.py: -------------------------------------------------------------------------------- 1 | from numpy.testing import assert_equal, assert_raises 2 | from pytest import mark 3 | 4 | from vrplib import write_solution 5 | 6 | 7 | @mark.parametrize( 8 | "routes, desired", 9 | [ 10 | ([[1, 2]], "Route #1: 1 2"), 11 | ([[1, 2], [42, 9]], "Route #1: 1 2\nRoute #2: 42 9"), 12 | ], 13 | ) 14 | def test_write_routes(tmp_path, routes, desired): 15 | """ 16 | Tests the writing of a solution with routes. 17 | """ 18 | name = "test.sol" 19 | write_solution(tmp_path / name, routes) 20 | 21 | with open(tmp_path / name, "r") as fh: 22 | assert_equal(fh.read(), desired + "\n") 23 | 24 | 25 | def test_raise_empty_routes(tmp_path): 26 | """ 27 | Tests that an error is raised if a route is empty. 28 | """ 29 | name = "test.sol" 30 | 31 | with assert_raises(ValueError): 32 | write_solution(tmp_path / name, [[]]) 33 | 34 | with assert_raises(ValueError): 35 | write_solution(tmp_path / name, [[1], []]) 36 | 37 | 38 | @mark.parametrize( 39 | "data, desired", 40 | [ 41 | ({"Cost": 100}, "Cost: 100"), # int 42 | ({"Time": 123.45}, "Time: 123.45"), # float 43 | ({"Distance": -1}, "Distance: -1"), # negative int 44 | ({"name": "test.sol"}, "name: test.sol"), # string 45 | ({"Vehicle types": [1, 2, 3]}, "Vehicle types: [1, 2, 3]"), # list 46 | ({"Vehicle types": (1, 3)}, "Vehicle types: (1, 3)"), # tuple 47 | ], 48 | ) 49 | def test_format_other_data(tmp_path, data, desired): 50 | name = "test.sol" 51 | routes = [[1]] 52 | write_solution(tmp_path / name, routes, data) 53 | 54 | with open(tmp_path / name, "r") as fh: 55 | text = "Route #1: 1" + "\n" + desired + "\n" 56 | assert_equal(fh.read(), text) 57 | 58 | 59 | def test_small_example(tmp_path): 60 | """ 61 | Tests the writing of a small example. 62 | """ 63 | name = "test.sol" 64 | routes = [[1, 2], [3, 4], [5]] 65 | data = {"Cost": 100, "Time": 123.45, "name": name} 66 | 67 | write_solution(tmp_path / name, routes, data) 68 | 69 | desired = "\n".join( 70 | [ 71 | "Route #1: 1 2", 72 | "Route #2: 3 4", 73 | "Route #3: 5", 74 | "Cost: 100", 75 | "Time: 123.45", 76 | "name: test.sol", 77 | "", 78 | ] 79 | ) 80 | 81 | with open(tmp_path / name, "r") as fh: 82 | assert_equal(fh.read(), desired) 83 | -------------------------------------------------------------------------------- /vrplib/__init__.py: -------------------------------------------------------------------------------- 1 | from .download import download_instance, download_solution, list_names 2 | from .read import read_instance, read_solution 3 | from .write import write_instance, write_solution 4 | -------------------------------------------------------------------------------- /vrplib/download/__init__.py: -------------------------------------------------------------------------------- 1 | from .download_instance import download_instance 2 | from .download_solution import download_solution 3 | from .list_names import list_names 4 | -------------------------------------------------------------------------------- /vrplib/download/constants.py: -------------------------------------------------------------------------------- 1 | CVRPLIB_URL = "http://vrp.atd-lab.inf.puc-rio.br/media/com_vrp/instances/" 2 | 3 | 4 | CVRP_SETS = [ 5 | "A", 6 | "B", 7 | "E", 8 | "F", 9 | "M", 10 | "P", 11 | "CMT", 12 | "tai", 13 | "Golden", 14 | "Li", 15 | "X", 16 | "XXL", 17 | ] 18 | 19 | VRPTW_SETS = [ 20 | "Solomon", 21 | "HG", 22 | ] 23 | 24 | XXL_NAMES = ["Antwerp", "Brussels", "Flanders", "Ghent", "Leuven"] 25 | DIMACS_NAMES = ["Loggi", "ORTEC"] 26 | -------------------------------------------------------------------------------- /vrplib/download/download_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | import warnings 3 | from pathlib import Path 4 | from typing import Union 5 | from urllib.request import urlopen 6 | 7 | from .constants import CVRPLIB_URL 8 | from .download_utils import find_set, is_vrptw 9 | 10 | 11 | def download_instance(name: str, path: Union[str, os.PathLike]): 12 | """ 13 | Downloads an instance file from CVRPLIB and saves it at the specified path. 14 | 15 | Parameters 16 | ---------- 17 | name 18 | The name of the instance to download. Should be one of the names 19 | listed in `vrplib.list_instances()`. 20 | path 21 | The path where the instance file should be saved. If a directory is 22 | specified, the file will be saved in that directory with the original 23 | file name. 24 | """ 25 | msg = ( 26 | "The function 'download_instance' is deprecated and will be removed" 27 | " in the next major version (vrplib v2.0.0)." 28 | ) 29 | warnings.warn(msg, DeprecationWarning) 30 | 31 | ext = "txt" if is_vrptw(name) else "vrp" 32 | url = CVRPLIB_URL + f"{find_set(name)}/{name}.{ext}" 33 | response = urlopen(url, timeout=30) 34 | 35 | instance_text = response.read().decode("utf-8") 36 | 37 | if os.path.isdir(path): 38 | path = Path(path) / f"{name}.{ext}" 39 | 40 | with open(path, "w") as fi: 41 | fi.write(instance_text) 42 | -------------------------------------------------------------------------------- /vrplib/download/download_solution.py: -------------------------------------------------------------------------------- 1 | import os 2 | import warnings 3 | from pathlib import Path 4 | from typing import Union 5 | from urllib.request import urlopen 6 | 7 | from .constants import CVRPLIB_URL 8 | from .download_utils import find_set 9 | 10 | 11 | def download_solution(name: str, path: Union[str, os.PathLike]): 12 | """ 13 | Downloads a solution file from CVRPLIB and saves it at the specified path. 14 | 15 | Parameters 16 | ---------- 17 | name 18 | The name of the instance to download. Should be one of the names 19 | listed in `vrplib.list_instances`. 20 | path 21 | The path where the solution file should be saved. If a directory is 22 | specified, the file will be saved in that directory with the original 23 | file name. 24 | """ 25 | msg = ( 26 | "The function 'download_solution' is deprecated and will be removed" 27 | " in the next major version (vrplib v2.0.0)." 28 | ) 29 | warnings.warn(msg, DeprecationWarning) 30 | 31 | url = CVRPLIB_URL + f"{find_set(name)}/{name}.sol" 32 | response = urlopen(url, timeout=30) 33 | 34 | solution_text = response.read().decode("utf-8") 35 | 36 | if os.path.isdir(path): 37 | path = Path(path) / f"{name}.sol" 38 | 39 | with open(path, "w") as fi: 40 | fi.write(solution_text) 41 | -------------------------------------------------------------------------------- /vrplib/download/download_utils.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | from .constants import CVRP_SETS, DIMACS_NAMES, XXL_NAMES 4 | 5 | 6 | def find_set(instance_name: str) -> str: 7 | """ 8 | Find the set name of the instance. 9 | 10 | Notes 11 | ----- 12 | - VRPTW instances start with "C, R, RC" directly followed by 1 or 2. 13 | HG instances have underscores ("_") in the name, whereas Solomon 14 | instances do not. 15 | - CVRP instance names and their corresponding set names share the same 16 | first letter. the exceptions are XXL and DIMACS instances, which have 17 | unique instance names 18 | """ 19 | if re.match("(R|C|RC)[12]", instance_name): 20 | if "_" in instance_name: 21 | return "HG" 22 | else: 23 | return "Solomon" 24 | 25 | if any([instance_name.startswith(xxl) for xxl in XXL_NAMES]): 26 | return "XXL" 27 | 28 | if any([instance_name.startswith(dimacs) for dimacs in DIMACS_NAMES]): 29 | return "D" 30 | 31 | for set_name in CVRP_SETS: 32 | if instance_name.startswith(set_name): 33 | return set_name 34 | 35 | raise ValueError(f"Set name not known for instance: {instance_name}.") 36 | 37 | 38 | def is_vrptw(name: str) -> bool: 39 | """ 40 | Checks if the passed-in name is a VRPTW instance or not. Otherwise the 41 | instance is a CVRP instance. 42 | """ 43 | return find_set(name) in ["HG", "Solomon"] 44 | -------------------------------------------------------------------------------- /vrplib/download/list_names.py: -------------------------------------------------------------------------------- 1 | import importlib.resources as pkg_resource 2 | import warnings 3 | from functools import lru_cache 4 | from typing import Optional 5 | 6 | from .download_utils import is_vrptw 7 | 8 | 9 | def list_names( 10 | low: Optional[int] = None, 11 | high: Optional[int] = None, 12 | vrp_type: Optional[str] = None, 13 | ): 14 | """ 15 | Returns the names of the instances that can be downloaded from CVRPLIB. 16 | 17 | Parameters 18 | ---------- 19 | low 20 | The minimum number of customers of the listed instances. 21 | high 22 | The maximum number of customers of the listed instances. 23 | vrp_type 24 | The vrp_type, one of ['cvrp', 'vrptw']. If not set, then instances 25 | of both types are returned. 26 | """ 27 | instances = _read_instance_data() 28 | msg = ( 29 | "The function 'list_names' is deprecated and will be removed" 30 | " in the next major version (vrplib v2.0.0)." 31 | ) 32 | warnings.warn(msg, DeprecationWarning) 33 | 34 | if low is not None: 35 | instances = filter(lambda inst: inst["n_customers"] >= low, instances) 36 | 37 | if high is not None: 38 | instances = filter(lambda inst: inst["n_customers"] <= high, instances) 39 | 40 | if vrp_type not in [None, "cvrp", "vrptw"]: 41 | raise ValueError("vrp_type must be one of [None, 'cvrp', 'vrptw']") 42 | 43 | elif vrp_type == "cvrp": 44 | instances = filter(lambda inst: not is_vrptw(inst["name"]), instances) 45 | 46 | elif vrp_type == "vrptw": 47 | instances = filter(lambda inst: is_vrptw(inst["name"]), instances) 48 | 49 | return [inst["name"] for inst in instances] 50 | 51 | 52 | @lru_cache() 53 | def _read_instance_data(): 54 | """ 55 | Reads the instance data. All CVRPLIB instance names are stored in the 56 | `instance_data.csv` file. 57 | """ 58 | fi = pkg_resource.read_text(__package__, "instance_data.csv") 59 | instances = [line.strip().split(",") for line in fi.split()] 60 | 61 | return [ 62 | {"name": inst[0], "n_customers": int(inst[1])} for inst in instances 63 | ] 64 | -------------------------------------------------------------------------------- /vrplib/parse/__init__.py: -------------------------------------------------------------------------------- 1 | from .parse_solomon import parse_solomon 2 | from .parse_solution import parse_solution 3 | from .parse_vrplib import parse_vrplib 4 | -------------------------------------------------------------------------------- /vrplib/parse/distances/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyVRP/VRPLIB/8d6e015788359b610f83abafb7238577f21e9a8d/vrplib/parse/distances/__init__.py -------------------------------------------------------------------------------- /vrplib/parse/parse_solomon.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | 3 | import numpy as np 4 | 5 | from .parse_distances import pairwise_euclidean 6 | from .parse_utils import text2lines 7 | 8 | Instance = dict[str, Union[str, float, np.ndarray]] 9 | 10 | 11 | def parse_solomon(text: str, compute_edge_weights: bool = True) -> Instance: 12 | """ 13 | Parses the text of a Solomon VRPTW instance. 14 | 15 | Parameters 16 | ---------- 17 | text 18 | The instance text. 19 | compute_edge_weights 20 | Whether to compute the edge weights from the node coordinates. 21 | Defaults to True. 22 | 23 | Returns 24 | ------- 25 | The instance data as dictionary. 26 | """ 27 | lines = text2lines(text) 28 | 29 | is_valid_solomon_instance(lines) 30 | 31 | instance: Instance = {"name": lines[0]} 32 | instance["vehicles"], instance["capacity"] = [ 33 | int(num) for num in lines[3].split() 34 | ] 35 | 36 | data = np.genfromtxt(lines[6:], dtype=int) 37 | 38 | instance["node_coord"] = data[:, 1:3] 39 | instance["demand"] = data[:, 3] 40 | instance["time_window"] = data[:, 4:6] 41 | instance["service_time"] = data[:, 6] 42 | 43 | if compute_edge_weights: 44 | instance["edge_weight"] = pairwise_euclidean(instance["node_coord"]) 45 | 46 | return instance 47 | 48 | 49 | def is_valid_solomon_instance(lines: list[str]): 50 | """ 51 | Checks if the passed-in lines follow the Solomon format requirements. 52 | """ 53 | 54 | try: 55 | assert lines[0] # non-empty first line 56 | assert "VEHICLE" in lines[1] 57 | assert "NUMBER" in lines[2] 58 | assert "CAPACITY" in lines[2] 59 | assert "CUSTOMER" in lines[4] 60 | 61 | # Header names are separated on whitespace because the spacing of 62 | # some Solomon instances is off. 63 | headers = [ 64 | "CUST", 65 | "NO.", 66 | "XCOORD.", 67 | "YCOORD.", 68 | "DEMAND", 69 | "READY", 70 | "DUE", 71 | "DATE", 72 | "SERVICE", 73 | "TIME", 74 | ] 75 | for header in headers: 76 | assert header in lines[5] 77 | 78 | except (IndexError, ValueError, AssertionError) as err: 79 | msg = "Instance does not conform to the Solomon format." 80 | raise RuntimeError(msg) from err 81 | -------------------------------------------------------------------------------- /vrplib/parse/parse_solution.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | 3 | from .parse_utils import infer_type, text2lines 4 | 5 | Solution = dict[str, Union[float, str, list]] 6 | 7 | 8 | def parse_solution(text: str) -> Solution: 9 | """ 10 | Parses the text of a solution file formatted in VRPLIB style. A solution 11 | consists of routes, which are indexed from 1 to n, and possibly other data. 12 | 13 | Parameters 14 | ---------- 15 | text 16 | The solution text. 17 | 18 | Returns 19 | ------- 20 | dict 21 | The soluion data. 22 | """ 23 | solution: Solution = {"routes": []} 24 | 25 | for line in text2lines(text): 26 | if "Route" in line: 27 | route = [int(idx) for idx in line.split(":")[1].split(" ") if idx] 28 | solution["routes"].append(route) # type: ignore 29 | elif ":" in line or " " in line: # Split at first colon or whitespace 30 | split_at = ":" if ":" in line else " " 31 | k, v = [word.strip() for word in line.split(split_at, 1)] 32 | solution[k.lower()] = infer_type(v) 33 | else: # Ignore lines without keyword-value pairs 34 | continue 35 | 36 | return solution 37 | -------------------------------------------------------------------------------- /vrplib/parse/parse_utils.py: -------------------------------------------------------------------------------- 1 | from typing import Union 2 | 3 | 4 | def text2lines(text: str) -> list[str]: 5 | """ 6 | Takes a string and returns a list of non-empty, stripped lines. Also 7 | removes any comment lines from the given string. 8 | """ 9 | return [ 10 | stripped 11 | for line in text.splitlines() 12 | if (stripped := line.strip()) and not stripped.startswith("#") 13 | ] 14 | 15 | 16 | def infer_type(s: str) -> Union[int, float, str]: 17 | try: 18 | return int(s) 19 | except ValueError: 20 | try: 21 | return float(s) 22 | except ValueError: 23 | return s 24 | -------------------------------------------------------------------------------- /vrplib/read/__init__.py: -------------------------------------------------------------------------------- 1 | from .read_instance import read_instance 2 | from .read_solution import read_solution 3 | -------------------------------------------------------------------------------- /vrplib/read/read_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | from typing import Any, Union 3 | 4 | from vrplib.parse import parse_solomon, parse_vrplib 5 | 6 | 7 | def read_instance( 8 | path: Union[str, os.PathLike], 9 | instance_format: str = "vrplib", 10 | compute_edge_weights: bool = True, 11 | ) -> dict[str, Any]: 12 | """ 13 | Reads the instance from the passed-in file path. 14 | 15 | Parameters 16 | ---------- 17 | path 18 | The path to the instance file. 19 | instance_format 20 | The instance format, one of ["vrplib", "solomon"]. Default is "vrplib". 21 | compute_edge_weights 22 | Whether to calculate edge weights based on instance specifications 23 | and node coordinates, if not explicitly provided. Defaults to True. 24 | 25 | Returns 26 | ------- 27 | A dictionary that contains the instance data. 28 | """ 29 | with open(path, "r") as fi: 30 | if instance_format == "vrplib": 31 | return parse_vrplib(fi.read(), compute_edge_weights) 32 | elif instance_format == "solomon": 33 | return parse_solomon(fi.read(), compute_edge_weights) 34 | 35 | raise ValueError(f"Format style {instance_format} not known.") 36 | -------------------------------------------------------------------------------- /vrplib/read/read_solution.py: -------------------------------------------------------------------------------- 1 | import os 2 | from typing import Any, Union 3 | 4 | from vrplib.parse import parse_solution 5 | 6 | 7 | def read_solution(path: Union[str, os.PathLike]) -> dict[str, Any]: 8 | """ 9 | Reads the solution from the passed-in file path. 10 | 11 | Parameters 12 | ---------- 13 | path 14 | The path to the solution file. 15 | 16 | Returns 17 | ------- 18 | A dictionary that contains the solution data. 19 | 20 | """ 21 | with open(path, "r") as fi: 22 | return parse_solution(fi.read()) 23 | -------------------------------------------------------------------------------- /vrplib/write/__init__.py: -------------------------------------------------------------------------------- 1 | from .write_instance import write_instance 2 | from .write_solution import write_solution 3 | -------------------------------------------------------------------------------- /vrplib/write/write_solution.py: -------------------------------------------------------------------------------- 1 | import os 2 | from typing import Any, Optional, Union 3 | 4 | 5 | def write_solution( 6 | path: Union[str, os.PathLike], 7 | routes: list[list[int]], 8 | data: Optional[dict[str, Any]] = None, 9 | ): 10 | """ 11 | Writes a VRP solution to file following the VRPLIB convention. 12 | 13 | Parameters 14 | ---------- 15 | path 16 | The file path. 17 | routes 18 | A list of routes, each route denoting the order in which the customers 19 | are visited. 20 | data 21 | Optional data dictionary. Each key-value pair is written to the 22 | solution file as "{key}: {value}". 23 | """ 24 | for route in routes: 25 | if len(route) == 0: 26 | raise ValueError("Empty route in solution.") 27 | 28 | with open(path, "w") as fi: 29 | for idx, route in enumerate(routes, 1): 30 | text = " ".join([f"Route #{idx}:"] + [str(val) for val in route]) 31 | fi.write(text + "\n") 32 | 33 | if data is not None: 34 | for key, value in data.items(): 35 | fi.write(f"{key}: {value}\n") 36 | --------------------------------------------------------------------------------