├── .gitignore ├── LICENSE ├── README.md ├── checkpoints ├── autoregressive_230628122107.pt ├── autoregressive_230628122107_best.pt ├── autoregressive_pretrained.pt ├── coarsening_agent_230628111235.pt ├── coarsening_agent_230628111235_best.pt ├── coarsening_pretrained.pt ├── oneshot_pretrained.pt ├── opt_autoregressive_230628122107.pt └── opt_coarsening_agent_230628111235.pt ├── config ├── autoregressive_config.yaml ├── coarsening_config.yaml └── oneshot_config.yaml ├── data ├── data_test_100.bin ├── data_test_1000.bin ├── data_test_200.bin ├── data_test_300.bin ├── data_test_400.bin ├── data_test_50.bin ├── data_test_500.bin ├── data_test_75.bin ├── data_test_750.bin ├── data_test_index_100.bin ├── data_test_index_1000.bin ├── data_test_index_200.bin ├── data_test_index_300.bin ├── data_test_index_400.bin ├── data_test_index_50.bin ├── data_test_index_500.bin ├── data_test_index_75.bin ├── instances │ ├── random-0-X-n300.vrp │ ├── random-0-X-n400.vrp │ ├── random-0-X-n50.vrp │ ├── random-0-X-n750.vrp │ ├── random-1-X-n1000.vrp │ ├── random-1-X-n300.vrp │ ├── random-1-X-n500.vrp │ ├── random-1-X-n75.vrp │ ├── random-10-X-n100.vrp │ ├── random-10-X-n400.vrp │ ├── random-10-X-n750.vrp │ ├── random-11-X-n1000.vrp │ ├── random-11-X-n200.vrp │ ├── random-11-X-n500.vrp │ ├── random-12-X-n400.vrp │ ├── random-12-X-n50.vrp │ ├── random-12-X-n750.vrp │ ├── random-13-X-n1000.vrp │ ├── random-13-X-n500.vrp │ ├── random-13-X-n75.vrp │ ├── random-14-X-n100.vrp │ ├── random-14-X-n400.vrp │ ├── random-14-X-n750.vrp │ ├── random-15-X-n1000.vrp │ ├── random-15-X-n200.vrp │ ├── random-15-X-n500.vrp │ ├── random-16-X-n400.vrp │ ├── random-16-X-n50.vrp │ ├── random-16-X-n750.vrp │ ├── random-17-X-n1000.vrp │ ├── random-17-X-n500.vrp │ ├── random-17-X-n75.vrp │ ├── random-18-X-n100.vrp │ ├── random-18-X-n400.vrp │ ├── random-18-X-n750.vrp │ ├── random-19-X-n1000.vrp │ ├── random-19-X-n200.vrp │ ├── random-19-X-n500.vrp │ ├── random-2-X-n100.vrp │ ├── random-2-X-n300.vrp │ ├── random-2-X-n400.vrp │ ├── random-2-X-n750.vrp │ ├── random-20-X-n50.vrp │ ├── random-21-X-n1000.vrp │ ├── random-21-X-n75.vrp │ ├── random-22-X-n100.vrp │ ├── random-23-X-n200.vrp │ ├── random-24-X-n50.vrp │ ├── random-25-X-n75.vrp │ ├── random-26-X-n100.vrp │ ├── random-27-X-n200.vrp │ ├── random-28-X-n50.vrp │ ├── random-29-X-n75.vrp │ ├── random-3-X-n1000.vrp │ ├── random-3-X-n200.vrp │ ├── random-3-X-n300.vrp │ ├── random-3-X-n500.vrp │ ├── random-30-X-n100.vrp │ ├── random-31-X-n200.vrp │ ├── random-32-X-n50.vrp │ ├── random-33-X-n75.vrp │ ├── random-34-X-n100.vrp │ ├── random-35-X-n200.vrp │ ├── random-36-X-n50.vrp │ ├── random-37-X-n75.vrp │ ├── random-38-X-n100.vrp │ ├── random-39-X-n200.vrp │ ├── random-4-X-n300.vrp │ ├── random-4-X-n400.vrp │ ├── random-4-X-n50.vrp │ ├── random-4-X-n750.vrp │ ├── random-5-X-n1000.vrp │ ├── random-5-X-n300.vrp │ ├── random-5-X-n500.vrp │ ├── random-5-X-n75.vrp │ ├── random-6-X-n100.vrp │ ├── random-6-X-n300.vrp │ ├── random-6-X-n400.vrp │ ├── random-6-X-n750.vrp │ ├── random-7-X-n1000.vrp │ ├── random-7-X-n200.vrp │ ├── random-7-X-n300.vrp │ ├── random-7-X-n500.vrp │ ├── random-8-X-n300.vrp │ ├── random-8-X-n400.vrp │ ├── random-8-X-n50.vrp │ ├── random-8-X-n750.vrp │ ├── random-9-X-n1000.vrp │ ├── random-9-X-n300.vrp │ ├── random-9-X-n500.vrp │ └── random-9-X-n75.vrp └── results │ └── README.txt ├── julia_main.py ├── requirements.txt ├── src ├── __init__.py ├── jl │ ├── call_julia.jl │ ├── cvrp_cutting.jl │ ├── experiment.jl │ └── experiment_with_random_instances.jl ├── model │ ├── __init__.py │ ├── autoregressive_agent.py │ └── coarsenig_agent.py ├── nn │ ├── __init__.py │ ├── gn.py │ ├── gnn.py │ └── mlp.py └── utils │ ├── __init__.py │ ├── data_utils.py │ ├── dataset.py │ ├── eval_utils.py │ ├── graph_utils.py │ └── train_utils.py ├── train_autoregressive_model.py └── train_coarsening_model.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | 131 | # checkpoints 132 | data/data_random.bin 133 | data/results/*.pkl 134 | wandb/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Hyeonah Kim 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NeuralSEP: A Neural Separation Algorithm for the Rounded Capacity Inequalities 2 | 3 | This repository provides implemented codes for the paper, NeuralSEP. 4 | > Hyeonah Kim, Jinkyoo Park, Changhyun Kwon (2024) A Neural Separation Algorithm for the Rounded Capacity Inequalities. INFORMS Journal on Computing. 5 | https://doi.org/10.1287/ijoc.2022.0310 6 | 7 | 8 | ## Python requirement 9 | Clone project and create an environment with conda: 10 | ```bash 11 | conda create -n neuralsep python=3.8 12 | conda activate neuralsep 13 | 14 | conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit==11.3 -c pytorch 15 | pip install -r requirements.txt 16 | ``` 17 | 18 | **Note** 19 | - If you use the different cuda version, please modify the URL for `torch-scatter` in `requirements.txt` before running it; see [here](https://pytorch-geometric.readthedocs.io/en/1.7.2/notes/installation.html). 20 | - If you have any trouble with `dgl`, please refer [here](https://www.dgl.ai/pages/start.html). 21 | - To run cutting plane embedded NeuralSEP, other installations are required. 22 | 23 | ## Usage 24 | ### Training 25 | Download [`data_random.bin`](https://drive.google.com/file/d/1TAYlo1xTWxqPpLVeVkmLrbIlMd1TxvdU/view?usp=sharing) and place it in the `\data` directory. 26 | Then, run the following code to train: 27 | ```console 28 | python train_coarsening_model.py 29 | ``` 30 | 31 | 32 | ### Evaluating with cutting plane methods 33 | ```console 34 | cd src/jl 35 | julia experiment_with_random_instances.jl 36 | ``` 37 | 38 | - To run the autoregressive model, the function `learned_rounded_capacity_cuts` in `src/jl/cvrp_cutting.jl` needs to be modified. 39 | - You can change pre-trained model directories in `julia_main.py` for each model. 40 | 41 | 42 | ## Others 43 | ### Julia requirement 44 | - Julia >= 1.8.3 45 | 46 | ```julia 47 | ] add JuMP CPLEX TSPLIB CVRPLIB Graphs PyCall Pickle 48 | ] add https://github.com/chkwon/CVRPSEP.jl.git 49 | ``` 50 | 51 | **Note:** to use the created python env, activate the env and re-configure PyCall when installing PyCall in julia. 52 | ```julia 53 | using Pkg 54 | ENV["PYTHON"] = Sys.which("python") 55 | ENV["PYCALL_JL_RUNTIME_PYTHON"] = Sys.which("python") 56 | Pkg.add("PyCall") 57 | Pkg.build("PyCall") 58 | ``` 59 | 60 | ### CPLEX (1.2.10) 61 | A license is required (the student license is free). 62 | 63 | 64 | -------------------------------------------------------------------------------- /checkpoints/autoregressive_230628122107.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/autoregressive_230628122107.pt -------------------------------------------------------------------------------- /checkpoints/autoregressive_230628122107_best.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/autoregressive_230628122107_best.pt -------------------------------------------------------------------------------- /checkpoints/autoregressive_pretrained.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/autoregressive_pretrained.pt -------------------------------------------------------------------------------- /checkpoints/coarsening_agent_230628111235.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/coarsening_agent_230628111235.pt -------------------------------------------------------------------------------- /checkpoints/coarsening_agent_230628111235_best.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/coarsening_agent_230628111235_best.pt -------------------------------------------------------------------------------- /checkpoints/coarsening_pretrained.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/coarsening_pretrained.pt -------------------------------------------------------------------------------- /checkpoints/oneshot_pretrained.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/oneshot_pretrained.pt -------------------------------------------------------------------------------- /checkpoints/opt_autoregressive_230628122107.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/opt_autoregressive_230628122107.pt -------------------------------------------------------------------------------- /checkpoints/opt_coarsening_agent_230628111235.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/checkpoints/opt_coarsening_agent_230628111235.pt -------------------------------------------------------------------------------- /config/autoregressive_config.yaml: -------------------------------------------------------------------------------- 1 | model: 2 | node_dim: 2 3 | edge_dim: 1 4 | latent_dim: 64 5 | n_layer: 3 6 | train: 7 | seed: 1234 8 | data_file: data_random 9 | test_size: 0.1 10 | batch_size: 16 11 | shuffle_dl: True 12 | n_epochs: 5 13 | loss_fn: MSELoss 14 | positive_weight: False 15 | save_every: 64 16 | eval_every: 64 17 | device: cuda:1 18 | opt: 19 | lr: 0.0005 20 | T_0: 32 -------------------------------------------------------------------------------- /config/coarsening_config.yaml: -------------------------------------------------------------------------------- 1 | model: 2 | node_dim: 2 3 | edge_dim: 1 4 | latent_dim: 128 5 | n_layer: 5 6 | train: 7 | seed: 1234 8 | data_file: data_random 9 | test_size: 0.1 10 | data_size: 100 11 | batch_size: 16 12 | shuffle_dl: True 13 | n_epochs: 20 14 | n_iterations: 50 15 | contraction_ratio: 0.75 16 | num_clusters: 3 17 | loss_fn: BCELoss 18 | positive_weight: True 19 | save_every: 64 20 | eval_every: 64 21 | device: cuda:0 22 | opt: 23 | lr: 0.0005 24 | T_0: 32 25 | -------------------------------------------------------------------------------- /config/oneshot_config.yaml: -------------------------------------------------------------------------------- 1 | model: 2 | node_dim: 2 3 | edge_dim: 1 4 | latent_dim: 128 5 | n_layer: 5 6 | train: 7 | seed: 1234 8 | data_file: data_random 9 | test_size: 0.1 10 | data_size: 100 11 | batch_size: 16 12 | shuffle_dl: True 13 | n_epochs: 20 14 | n_iterations: 1 15 | contraction_ratio: 1 16 | num_clusters: 3 17 | loss_fn: MSELoss 18 | positive_weight: False 19 | save_every: 64 20 | eval_every: 64 21 | device: cpu 22 | opt: 23 | lr: 0.0005 24 | T_0: 32 -------------------------------------------------------------------------------- /data/data_test_100.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_100.bin -------------------------------------------------------------------------------- /data/data_test_1000.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_1000.bin -------------------------------------------------------------------------------- /data/data_test_200.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_200.bin -------------------------------------------------------------------------------- /data/data_test_300.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_300.bin -------------------------------------------------------------------------------- /data/data_test_400.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_400.bin -------------------------------------------------------------------------------- /data/data_test_50.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_50.bin -------------------------------------------------------------------------------- /data/data_test_500.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_500.bin -------------------------------------------------------------------------------- /data/data_test_75.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_75.bin -------------------------------------------------------------------------------- /data/data_test_750.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_750.bin -------------------------------------------------------------------------------- /data/data_test_index_100.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_index_100.bin -------------------------------------------------------------------------------- /data/data_test_index_1000.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_index_1000.bin -------------------------------------------------------------------------------- /data/data_test_index_200.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_index_200.bin -------------------------------------------------------------------------------- /data/data_test_index_300.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_index_300.bin -------------------------------------------------------------------------------- /data/data_test_index_400.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_index_400.bin -------------------------------------------------------------------------------- /data/data_test_index_50.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_index_50.bin -------------------------------------------------------------------------------- /data/data_test_index_500.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_index_500.bin -------------------------------------------------------------------------------- /data/data_test_index_75.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/data/data_test_index_75.bin -------------------------------------------------------------------------------- /data/instances/random-0-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-0-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 312 7 | NODE_COORD_SECTION 8 | 1 45 528 9 | 2 80 765 10 | 3 457 303 11 | 4 924 57 12 | 5 564 195 13 | 6 298 375 14 | 7 300 762 15 | 8 672 578 16 | 9 545 966 17 | 10 119 164 18 | 11 668 615 19 | 12 318 162 20 | 13 564 553 21 | 14 832 759 22 | 15 389 690 23 | 16 158 954 24 | 17 253 168 25 | 18 961 977 26 | 19 918 729 27 | 20 370 9 28 | 21 18 6 29 | 22 151 373 30 | 23 468 256 31 | 24 280 605 32 | 25 789 789 33 | 26 729 617 34 | 27 245 569 35 | 28 781 982 36 | 29 465 398 37 | 30 1000 405 38 | 31 836 286 39 | 32 336 460 40 | 33 689 528 41 | 34 811 304 42 | 35 62 743 43 | 36 552 130 44 | 37 64 786 45 | 38 445 193 46 | 39 569 735 47 | 40 905 378 48 | 41 483 625 49 | 42 762 112 50 | 43 399 854 51 | 44 90 59 52 | 45 590 556 53 | 46 712 10 54 | 47 20 814 55 | 48 234 662 56 | 49 913 370 57 | 50 48 878 58 | 51 511 927 59 | DEMAND_SECTION 60 | 1 0 61 | 2 84 62 | 3 75 63 | 4 12 64 | 5 71 65 | 6 48 66 | 7 63 67 | 8 78 68 | 9 46 69 | 10 53 70 | 11 52 71 | 12 43 72 | 13 94 73 | 14 91 74 | 15 28 75 | 16 58 76 | 17 58 77 | 18 17 78 | 19 66 79 | 20 25 80 | 21 68 81 | 22 97 82 | 23 93 83 | 24 22 84 | 25 21 85 | 26 63 86 | 27 6 87 | 28 71 88 | 29 32 89 | 30 31 90 | 31 44 91 | 32 12 92 | 33 51 93 | 34 22 94 | 35 61 95 | 36 8 96 | 37 50 97 | 38 35 98 | 39 38 99 | 40 87 100 | 41 50 101 | 42 4 102 | 43 10 103 | 44 13 104 | 45 41 105 | 46 65 106 | 47 39 107 | 48 46 108 | 49 49 109 | 50 19 110 | 51 44 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-1-X-n300.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-1-X-n300.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 301 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 599 7 | NODE_COORD_SECTION 8 | 1 271 359 9 | 2 23 194 10 | 3 919 991 11 | 4 673 680 12 | 5 137 383 13 | 6 527 667 14 | 7 950 926 15 | 8 399 59 16 | 9 231 954 17 | 10 974 678 18 | 11 728 41 19 | 12 687 881 20 | 13 22 939 21 | 14 885 582 22 | 15 306 600 23 | 16 902 995 24 | 17 229 603 25 | 18 79 750 26 | 19 507 227 27 | 20 689 398 28 | 21 575 124 29 | 22 286 370 30 | 23 223 861 31 | 24 709 479 32 | 25 806 175 33 | 26 782 625 34 | 27 436 301 35 | 28 31 257 36 | 29 222 981 37 | 30 911 796 38 | 31 995 319 39 | 32 154 790 40 | 33 811 891 41 | 34 263 118 42 | 35 672 780 43 | 36 539 923 44 | 37 213 880 45 | 38 669 500 46 | 39 226 140 47 | 40 870 886 48 | 41 236 866 49 | 42 258 108 50 | 43 713 475 51 | 44 875 709 52 | 45 462 630 53 | 46 457 987 54 | 47 249 216 55 | 48 284 882 56 | 49 931 667 57 | 50 330 493 58 | 51 95 712 59 | 52 844 242 60 | 53 252 45 61 | 54 662 693 62 | 55 630 397 63 | 56 546 245 64 | 57 397 14 65 | 58 114 786 66 | 59 373 408 67 | 60 613 907 68 | 61 531 656 69 | 62 878 91 70 | 63 312 160 71 | 64 266 397 72 | 65 298 173 73 | 66 38 509 74 | 67 672 340 75 | 68 117 290 76 | 69 801 785 77 | 70 16 171 78 | 71 626 61 79 | 72 262 334 80 | 73 400 615 81 | 74 926 545 82 | 75 377 751 83 | 76 173 374 84 | 77 625 372 85 | 78 783 113 86 | 79 502 793 87 | 80 388 172 88 | 81 401 983 89 | 82 843 416 90 | 83 984 367 91 | 84 806 700 92 | 85 553 896 93 | 86 27 714 94 | 87 84 885 95 | 88 853 213 96 | 89 347 574 97 | 90 432 561 98 | 91 180 874 99 | 92 964 750 100 | 93 670 56 101 | 94 297 552 102 | 95 432 242 103 | 96 466 540 104 | 97 774 274 105 | 98 316 419 106 | 99 498 337 107 | 100 614 521 108 | 101 198 16 109 | 102 39 988 110 | 103 590 107 111 | 104 944 552 112 | 105 632 970 113 | 106 507 351 114 | 107 335 155 115 | 108 62 683 116 | 109 427 324 117 | 110 653 183 118 | 111 923 995 119 | 112 802 971 120 | 113 114 502 121 | 114 907 814 122 | 115 428 912 123 | 116 899 643 124 | 117 796 246 125 | 118 751 505 126 | 119 187 735 127 | 120 998 721 128 | 121 76 335 129 | 122 956 994 130 | 123 37 285 131 | 124 196 265 132 | 125 897 12 133 | 126 866 689 134 | 127 215 946 135 | 128 765 986 136 | 129 372 698 137 | 130 850 411 138 | 131 13 405 139 | 132 793 218 140 | 133 916 842 141 | 134 519 405 142 | 135 158 47 143 | 136 34 318 144 | 137 479 489 145 | 138 111 649 146 | 139 926 508 147 | 140 113 318 148 | 141 247 3 149 | 142 827 494 150 | 143 707 903 151 | 144 925 767 152 | 145 383 856 153 | 146 294 834 154 | 147 830 388 155 | 148 947 342 156 | 149 586 749 157 | 150 423 131 158 | 151 654 834 159 | 152 855 917 160 | 153 976 308 161 | 154 544 0 162 | 155 205 282 163 | 156 657 564 164 | 157 759 894 165 | 158 421 961 166 | 159 116 205 167 | 160 126 726 168 | 161 292 86 169 | 162 46 781 170 | 163 513 714 171 | 164 408 482 172 | 165 598 785 173 | 166 555 414 174 | 167 954 706 175 | 168 791 466 176 | 169 890 881 177 | 170 580 437 178 | 171 595 125 179 | 172 678 334 180 | 173 198 981 181 | 174 952 207 182 | 175 80 695 183 | 176 543 238 184 | 177 466 953 185 | 178 290 459 186 | 179 606 421 187 | 180 983 23 188 | 181 19 102 189 | 182 635 343 190 | 183 972 25 191 | 184 570 297 192 | 185 951 913 193 | 186 698 256 194 | 187 553 159 195 | 188 194 981 196 | 189 527 631 197 | 190 612 487 198 | 191 507 212 199 | 192 844 224 200 | 193 113 559 201 | 194 941 651 202 | 195 668 755 203 | 196 791 80 204 | 197 796 238 205 | 198 438 258 206 | 199 980 908 207 | 200 819 548 208 | 201 158 18 209 | 202 59 273 210 | 203 631 409 211 | 204 401 302 212 | 205 551 416 213 | 206 625 750 214 | 207 128 511 215 | 208 399 451 216 | 209 675 703 217 | 210 868 196 218 | 211 267 651 219 | 212 207 328 220 | 213 270 367 221 | 214 61 362 222 | 215 63 580 223 | 216 574 50 224 | 217 900 336 225 | 218 27 96 226 | 219 900 514 227 | 220 220 998 228 | 221 903 130 229 | 222 888 837 230 | 223 165 622 231 | 224 960 972 232 | 225 177 924 233 | 226 248 135 234 | 227 51 342 235 | 228 888 757 236 | 229 534 921 237 | 230 95 364 238 | 231 383 230 239 | 232 705 739 240 | 233 445 689 241 | 234 622 450 242 | 235 271 318 243 | 236 633 957 244 | 237 539 913 245 | 238 837 914 246 | 239 812 994 247 | 240 739 29 248 | 241 255 290 249 | 242 269 960 250 | 243 745 354 251 | 244 663 717 252 | 245 939 615 253 | 246 124 706 254 | 247 245 840 255 | 248 424 33 256 | 249 592 195 257 | 250 701 673 258 | 251 237 620 259 | 252 119 5 260 | 253 983 703 261 | 254 59 134 262 | 255 184 74 263 | 256 999 155 264 | 257 456 535 265 | 258 563 333 266 | 259 595 622 267 | 260 279 130 268 | 261 703 758 269 | 262 200 274 270 | 263 507 382 271 | 264 84 946 272 | 265 617 742 273 | 266 449 564 274 | 267 251 383 275 | 268 128 241 276 | 269 483 557 277 | 270 319 61 278 | 271 879 302 279 | 272 130 827 280 | 273 856 697 281 | 274 342 196 282 | 275 297 195 283 | 276 973 803 284 | 277 931 8 285 | 278 64 951 286 | 279 68 811 287 | 280 489 333 288 | 281 421 264 289 | 282 419 16 290 | 283 420 558 291 | 284 215 539 292 | 285 502 204 293 | 286 252 68 294 | 287 693 11 295 | 288 740 65 296 | 289 860 70 297 | 290 920 538 298 | 291 53 885 299 | 292 85 540 300 | 293 857 881 301 | 294 603 239 302 | 295 987 55 303 | 296 969 636 304 | 297 591 171 305 | 298 52 713 306 | 299 901 421 307 | 300 355 159 308 | 301 475 785 309 | DEMAND_SECTION 310 | 1 0 311 | 2 42 312 | 3 89 313 | 4 9 314 | 5 49 315 | 6 64 316 | 7 58 317 | 8 76 318 | 9 57 319 | 10 27 320 | 11 99 321 | 12 40 322 | 13 50 323 | 14 15 324 | 15 88 325 | 16 51 326 | 17 46 327 | 18 51 328 | 19 3 329 | 20 71 330 | 21 77 331 | 22 59 332 | 23 95 333 | 24 49 334 | 25 59 335 | 26 83 336 | 27 52 337 | 28 44 338 | 29 18 339 | 30 13 340 | 31 81 341 | 32 82 342 | 33 20 343 | 34 60 344 | 35 54 345 | 36 88 346 | 37 6 347 | 38 6 348 | 39 55 349 | 40 19 350 | 41 58 351 | 42 77 352 | 43 22 353 | 44 55 354 | 45 27 355 | 46 19 356 | 47 59 357 | 48 98 358 | 49 7 359 | 50 95 360 | 51 61 361 | 52 93 362 | 53 44 363 | 54 26 364 | 55 2 365 | 56 82 366 | 57 49 367 | 58 1 368 | 59 12 369 | 60 52 370 | 61 52 371 | 62 15 372 | 63 83 373 | 64 63 374 | 65 78 375 | 66 12 376 | 67 34 377 | 68 3 378 | 69 30 379 | 70 36 380 | 71 42 381 | 72 12 382 | 73 9 383 | 74 51 384 | 75 62 385 | 76 84 386 | 77 97 387 | 78 45 388 | 79 37 389 | 80 13 390 | 81 30 391 | 82 75 392 | 83 1 393 | 84 56 394 | 85 80 395 | 86 19 396 | 87 94 397 | 88 67 398 | 89 93 399 | 90 49 400 | 91 98 401 | 92 64 402 | 93 29 403 | 94 75 404 | 95 56 405 | 96 52 406 | 97 97 407 | 98 17 408 | 99 35 409 | 100 12 410 | 101 91 411 | 102 13 412 | 103 93 413 | 104 74 414 | 105 30 415 | 106 36 416 | 107 37 417 | 108 7 418 | 109 11 419 | 110 54 420 | 111 57 421 | 112 5 422 | 113 13 423 | 114 96 424 | 115 26 425 | 116 87 426 | 117 43 427 | 118 53 428 | 119 44 429 | 120 44 430 | 121 37 431 | 122 44 432 | 123 46 433 | 124 2 434 | 125 11 435 | 126 98 436 | 127 12 437 | 128 10 438 | 129 9 439 | 130 46 440 | 131 24 441 | 132 81 442 | 133 31 443 | 134 93 444 | 135 97 445 | 136 49 446 | 137 74 447 | 138 21 448 | 139 1 449 | 140 12 450 | 141 54 451 | 142 70 452 | 143 19 453 | 144 62 454 | 145 1 455 | 146 80 456 | 147 95 457 | 148 99 458 | 149 23 459 | 150 57 460 | 151 11 461 | 152 88 462 | 153 47 463 | 154 6 464 | 155 21 465 | 156 53 466 | 157 85 467 | 158 87 468 | 159 2 469 | 160 92 470 | 161 46 471 | 162 55 472 | 163 31 473 | 164 30 474 | 165 59 475 | 166 44 476 | 167 77 477 | 168 4 478 | 169 51 479 | 170 71 480 | 171 7 481 | 172 83 482 | 173 47 483 | 174 26 484 | 175 8 485 | 176 57 486 | 177 76 487 | 178 95 488 | 179 6 489 | 180 3 490 | 181 6 491 | 182 28 492 | 183 97 493 | 184 71 494 | 185 68 495 | 186 35 496 | 187 32 497 | 188 14 498 | 189 95 499 | 190 38 500 | 191 94 501 | 192 69 502 | 193 30 503 | 194 44 504 | 195 2 505 | 196 85 506 | 197 2 507 | 198 55 508 | 199 2 509 | 200 57 510 | 201 61 511 | 202 50 512 | 203 77 513 | 204 97 514 | 205 69 515 | 206 6 516 | 207 53 517 | 208 79 518 | 209 23 519 | 210 50 520 | 211 3 521 | 212 89 522 | 213 6 523 | 214 15 524 | 215 76 525 | 216 16 526 | 217 38 527 | 218 10 528 | 219 59 529 | 220 71 530 | 221 6 531 | 222 37 532 | 223 72 533 | 224 76 534 | 225 65 535 | 226 70 536 | 227 23 537 | 228 68 538 | 229 54 539 | 230 25 540 | 231 19 541 | 232 88 542 | 233 49 543 | 234 29 544 | 235 46 545 | 236 96 546 | 237 38 547 | 238 27 548 | 239 18 549 | 240 18 550 | 241 87 551 | 242 74 552 | 243 46 553 | 244 14 554 | 245 61 555 | 246 63 556 | 247 22 557 | 248 53 558 | 249 99 559 | 250 27 560 | 251 67 561 | 252 90 562 | 253 60 563 | 254 29 564 | 255 43 565 | 256 95 566 | 257 43 567 | 258 93 568 | 259 19 569 | 260 4 570 | 261 14 571 | 262 18 572 | 263 27 573 | 264 90 574 | 265 2 575 | 266 28 576 | 267 19 577 | 268 48 578 | 269 4 579 | 270 42 580 | 271 76 581 | 272 95 582 | 273 34 583 | 274 66 584 | 275 46 585 | 276 46 586 | 277 76 587 | 278 26 588 | 279 12 589 | 280 52 590 | 281 81 591 | 282 31 592 | 283 63 593 | 284 85 594 | 285 63 595 | 286 37 596 | 287 27 597 | 288 78 598 | 289 67 599 | 290 3 600 | 291 22 601 | 292 74 602 | 293 74 603 | 294 83 604 | 295 60 605 | 296 26 606 | 297 59 607 | 298 46 608 | 299 89 609 | 300 95 610 | 301 25 611 | DEPOT_SECTION 612 | 1 613 | -1 614 | EOF 615 | -------------------------------------------------------------------------------- /data/instances/random-1-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-1-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 621 7 | NODE_COORD_SECTION 8 | 1 163 213 9 | 2 427 769 10 | 3 22 575 11 | 4 602 157 12 | 5 221 414 13 | 6 786 109 14 | 7 27 714 15 | 8 556 382 16 | 9 697 711 17 | 10 477 578 18 | 11 586 78 19 | 12 269 417 20 | 13 330 64 21 | 14 120 803 22 | 15 131 215 23 | 16 457 206 24 | 17 261 882 25 | 18 306 720 26 | 19 504 148 27 | 20 884 783 28 | 21 909 788 29 | 22 791 928 30 | 23 648 711 31 | 24 794 589 32 | 25 175 128 33 | 26 32 139 34 | 27 94 837 35 | 28 613 974 36 | 29 84 675 37 | 30 840 39 38 | 31 293 733 39 | 32 714 767 40 | 33 433 980 41 | 34 54 698 42 | 35 260 366 43 | 36 50 665 44 | 37 220 780 45 | 38 63 128 46 | 39 95 952 47 | 40 965 837 48 | 41 753 880 49 | 42 569 404 50 | 43 36 86 51 | 44 271 394 52 | 45 882 282 53 | 46 79 830 54 | 47 743 638 55 | 48 829 492 56 | 49 144 696 57 | 50 348 868 58 | 51 306 571 59 | 52 672 303 60 | 53 200 262 61 | 54 44 811 62 | 55 989 469 63 | 56 368 694 64 | 57 604 569 65 | 58 255 806 66 | 59 148 71 67 | 60 755 798 68 | 61 312 283 69 | 62 19 704 70 | 63 697 617 71 | 64 724 283 72 | 65 568 599 73 | 66 562 977 74 | 67 426 409 75 | 68 252 577 76 | 69 36 839 77 | 70 531 132 78 | 71 243 911 79 | 72 335 476 80 | 73 715 469 81 | 74 874 134 82 | 75 873 768 83 | 76 972 126 84 | DEMAND_SECTION 85 | 1 0 86 | 2 54 87 | 3 21 88 | 4 22 89 | 5 2 90 | 6 33 91 | 7 11 92 | 8 31 93 | 9 4 94 | 10 43 95 | 11 72 96 | 12 42 97 | 13 81 98 | 14 17 99 | 15 42 100 | 16 97 101 | 17 82 102 | 18 15 103 | 19 9 104 | 20 64 105 | 21 58 106 | 22 21 107 | 23 94 108 | 24 79 109 | 25 10 110 | 26 65 111 | 27 30 112 | 28 75 113 | 29 54 114 | 30 69 115 | 31 88 116 | 32 56 117 | 33 55 118 | 34 7 119 | 35 94 120 | 36 81 121 | 37 55 122 | 38 86 123 | 39 35 124 | 40 44 125 | 41 42 126 | 42 36 127 | 43 87 128 | 44 23 129 | 45 81 130 | 46 5 131 | 47 90 132 | 48 32 133 | 49 32 134 | 50 1 135 | 51 86 136 | 52 68 137 | 53 73 138 | 54 52 139 | 55 76 140 | 56 21 141 | 57 24 142 | 58 11 143 | 59 82 144 | 60 99 145 | 61 16 146 | 62 80 147 | 63 52 148 | 64 21 149 | 65 73 150 | 66 76 151 | 67 23 152 | 68 97 153 | 69 37 154 | 70 39 155 | 71 77 156 | 72 12 157 | 73 89 158 | 74 22 159 | 75 93 160 | 76 16 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-10-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-10-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 436 7 | NODE_COORD_SECTION 8 | 1 402 40 9 | 2 804 682 10 | 3 458 475 11 | 4 368 323 12 | 5 578 512 13 | 6 805 734 14 | 7 396 814 15 | 8 936 684 16 | 9 759 583 17 | 10 452 715 18 | 11 701 846 19 | 12 232 388 20 | 13 515 494 21 | 14 746 791 22 | 15 774 420 23 | 16 600 377 24 | 17 501 648 25 | 18 295 896 26 | 19 150 501 27 | 20 280 461 28 | 21 896 356 29 | 22 920 759 30 | 23 457 750 31 | 24 933 653 32 | 25 472 930 33 | 26 340 647 34 | 27 179 860 35 | 28 677 648 36 | 29 248 400 37 | 30 669 266 38 | 31 519 425 39 | 32 453 417 40 | 33 308 597 41 | 34 695 661 42 | 35 105 188 43 | 36 260 766 44 | 37 640 460 45 | 38 306 216 46 | 39 938 236 47 | 40 385 686 48 | 41 730 218 49 | 42 283 723 50 | 43 452 844 51 | 44 496 930 52 | 45 375 20 53 | 46 933 278 54 | 47 639 799 55 | 48 749 301 56 | 49 874 979 57 | 50 976 74 58 | 51 174 748 59 | 52 407 146 60 | 53 685 938 61 | 54 461 130 62 | 55 378 283 63 | 56 837 383 64 | 57 267 789 65 | 58 512 77 66 | 59 842 71 67 | 60 262 943 68 | 61 651 209 69 | 62 787 713 70 | 63 639 90 71 | 64 872 592 72 | 65 972 399 73 | 66 762 25 74 | 67 250 694 75 | 68 877 956 76 | 69 9 22 77 | 70 920 109 78 | 71 65 240 79 | 72 277 951 80 | 73 496 530 81 | 74 350 758 82 | 75 160 294 83 | 76 822 56 84 | 77 1000 474 85 | 78 969 463 86 | 79 418 82 87 | 80 832 117 88 | 81 138 685 89 | 82 446 793 90 | 83 558 123 91 | 84 912 366 92 | 85 380 204 93 | 86 633 154 94 | 87 961 186 95 | 88 184 843 96 | 89 737 636 97 | 90 388 221 98 | 91 351 179 99 | 92 328 847 100 | 93 568 995 101 | 94 937 491 102 | 95 900 133 103 | 96 866 176 104 | 97 124 309 105 | 98 194 400 106 | 99 381 167 107 | 100 724 489 108 | 101 159 9 109 | DEMAND_SECTION 110 | 1 0 111 | 2 50 112 | 3 10 113 | 4 93 114 | 5 88 115 | 6 61 116 | 7 27 117 | 8 19 118 | 9 75 119 | 10 93 120 | 11 69 121 | 12 42 122 | 13 34 123 | 14 77 124 | 15 19 125 | 16 98 126 | 17 2 127 | 18 74 128 | 19 84 129 | 20 12 130 | 21 13 131 | 22 40 132 | 23 86 133 | 24 28 134 | 25 64 135 | 26 23 136 | 27 74 137 | 28 53 138 | 29 60 139 | 30 51 140 | 31 76 141 | 32 15 142 | 33 31 143 | 34 82 144 | 35 26 145 | 36 8 146 | 37 60 147 | 38 37 148 | 39 68 149 | 40 4 150 | 41 9 151 | 42 27 152 | 43 41 153 | 44 75 154 | 45 82 155 | 46 25 156 | 47 63 157 | 48 44 158 | 49 96 159 | 50 89 160 | 51 78 161 | 52 35 162 | 53 5 163 | 54 73 164 | 55 54 165 | 56 85 166 | 57 20 167 | 58 72 168 | 59 61 169 | 60 75 170 | 61 90 171 | 62 53 172 | 63 15 173 | 64 59 174 | 65 53 175 | 66 36 176 | 67 80 177 | 68 35 178 | 69 39 179 | 70 8 180 | 71 90 181 | 72 78 182 | 73 11 183 | 74 46 184 | 75 55 185 | 76 19 186 | 77 85 187 | 78 52 188 | 79 40 189 | 80 51 190 | 81 11 191 | 82 33 192 | 83 64 193 | 84 74 194 | 85 88 195 | 86 12 196 | 87 73 197 | 88 46 198 | 89 10 199 | 90 98 200 | 91 95 201 | 92 84 202 | 93 14 203 | 94 29 204 | 95 99 205 | 96 25 206 | 97 1 207 | 98 97 208 | 99 4 209 | 100 60 210 | 101 11 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-11-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-11-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 499 7 | NODE_COORD_SECTION 8 | 1 957 662 9 | 2 659 773 10 | 3 930 986 11 | 4 175 919 12 | 5 814 781 13 | 6 345 726 14 | 7 784 771 15 | 8 917 33 16 | 9 267 532 17 | 10 74 530 18 | 11 682 37 19 | 12 226 899 20 | 13 712 672 21 | 14 285 976 22 | 15 32 860 23 | 16 742 209 24 | 17 26 351 25 | 18 430 603 26 | 19 617 346 27 | 20 667 434 28 | 21 15 356 29 | 22 3 511 30 | 23 105 193 31 | 24 583 21 32 | 25 841 139 33 | 26 486 258 34 | 27 161 521 35 | 28 314 586 36 | 29 728 749 37 | 30 17 658 38 | 31 37 524 39 | 32 244 62 40 | 33 579 365 41 | 34 500 465 42 | 35 186 324 43 | 36 784 685 44 | 37 82 669 45 | 38 665 12 46 | 39 253 334 47 | 40 528 926 48 | 41 888 884 49 | 42 337 763 50 | 43 401 907 51 | 44 271 511 52 | 45 952 841 53 | 46 480 498 54 | 47 75 12 55 | 48 779 18 56 | 49 197 616 57 | 50 176 816 58 | 51 408 641 59 | 52 393 564 60 | 53 96 430 61 | 54 955 819 62 | 55 501 237 63 | 56 930 545 64 | 57 849 278 65 | 58 918 318 66 | 59 88 340 67 | 60 51 519 68 | 61 752 244 69 | 62 876 281 70 | 63 281 909 71 | 64 371 514 72 | 65 637 466 73 | 66 530 714 74 | 67 739 166 75 | 68 397 282 76 | 69 372 968 77 | 70 200 930 78 | 71 967 623 79 | 72 613 548 80 | 73 258 664 81 | 74 579 792 82 | 75 664 682 83 | 76 72 133 84 | 77 10 451 85 | 78 546 734 86 | 79 57 956 87 | 80 649 546 88 | 81 705 421 89 | 82 143 347 90 | 83 342 524 91 | 84 297 106 92 | 85 106 528 93 | 86 802 929 94 | 87 416 925 95 | 88 368 766 96 | 89 951 244 97 | 90 200 802 98 | 91 69 743 99 | 92 327 289 100 | 93 758 295 101 | 94 60 37 102 | 95 445 426 103 | 96 583 172 104 | 97 385 36 105 | 98 652 690 106 | 99 12 76 107 | 100 445 952 108 | 101 360 60 109 | 102 286 459 110 | 103 788 23 111 | 104 912 632 112 | 105 619 206 113 | 106 586 769 114 | 107 536 77 115 | 108 441 574 116 | 109 718 459 117 | 110 643 15 118 | 111 185 521 119 | 112 830 781 120 | 113 723 390 121 | 114 392 104 122 | 115 35 690 123 | 116 572 660 124 | 117 124 214 125 | 118 272 394 126 | 119 137 938 127 | 120 541 476 128 | 121 352 436 129 | 122 918 152 130 | 123 109 416 131 | 124 309 948 132 | 125 145 466 133 | 126 353 848 134 | 127 943 991 135 | 128 337 578 136 | 129 266 299 137 | 130 647 26 138 | 131 574 214 139 | 132 874 280 140 | 133 839 935 141 | 134 212 403 142 | 135 36 168 143 | 136 448 328 144 | 137 148 164 145 | 138 440 866 146 | 139 643 537 147 | 140 735 925 148 | 141 979 962 149 | 142 97 378 150 | 143 334 580 151 | 144 687 121 152 | 145 77 340 153 | 146 163 904 154 | 147 70 626 155 | 148 803 670 156 | 149 475 175 157 | 150 884 630 158 | 151 28 418 159 | 152 865 483 160 | 153 44 204 161 | 154 29 363 162 | 155 746 390 163 | 156 618 587 164 | 157 945 997 165 | 158 462 365 166 | 159 967 94 167 | 160 606 528 168 | 161 708 528 169 | 162 600 155 170 | 163 734 1000 171 | 164 505 803 172 | 165 865 711 173 | 166 852 366 174 | 167 739 827 175 | 168 231 961 176 | 169 780 162 177 | 170 516 183 178 | 171 894 968 179 | 172 406 440 180 | 173 437 244 181 | 174 397 409 182 | 175 835 305 183 | 176 547 621 184 | 177 757 180 185 | 178 503 277 186 | 179 169 466 187 | 180 718 732 188 | 181 329 978 189 | 182 282 997 190 | 183 628 606 191 | 184 124 283 192 | 185 995 578 193 | 186 60 860 194 | 187 770 755 195 | 188 869 24 196 | 189 121 841 197 | 190 207 312 198 | 191 779 731 199 | 192 566 321 200 | 193 117 207 201 | 194 930 264 202 | 195 236 545 203 | 196 700 86 204 | 197 151 191 205 | 198 527 71 206 | 199 970 560 207 | 200 176 488 208 | 201 2 908 209 | DEMAND_SECTION 210 | 1 0 211 | 2 5 212 | 3 15 213 | 4 30 214 | 5 62 215 | 6 29 216 | 7 42 217 | 8 92 218 | 9 7 219 | 10 65 220 | 11 99 221 | 12 49 222 | 13 28 223 | 14 54 224 | 15 15 225 | 16 63 226 | 17 67 227 | 18 40 228 | 19 72 229 | 20 60 230 | 21 49 231 | 22 8 232 | 23 96 233 | 24 30 234 | 25 94 235 | 26 13 236 | 27 4 237 | 28 86 238 | 29 77 239 | 30 61 240 | 31 74 241 | 32 22 242 | 33 63 243 | 34 71 244 | 35 96 245 | 36 39 246 | 37 2 247 | 38 44 248 | 39 25 249 | 40 24 250 | 41 32 251 | 42 91 252 | 43 22 253 | 44 39 254 | 45 32 255 | 46 5 256 | 47 16 257 | 48 85 258 | 49 64 259 | 50 14 260 | 51 90 261 | 52 67 262 | 53 50 263 | 54 60 264 | 55 18 265 | 56 58 266 | 57 85 267 | 58 49 268 | 59 93 269 | 60 89 270 | 61 16 271 | 62 52 272 | 63 33 273 | 64 68 274 | 65 30 275 | 66 60 276 | 67 50 277 | 68 42 278 | 69 20 279 | 70 3 280 | 71 29 281 | 72 30 282 | 73 19 283 | 74 67 284 | 75 8 285 | 76 57 286 | 77 11 287 | 78 24 288 | 79 59 289 | 80 34 290 | 81 94 291 | 82 58 292 | 83 48 293 | 84 25 294 | 85 64 295 | 86 83 296 | 87 42 297 | 88 49 298 | 89 70 299 | 90 39 300 | 91 48 301 | 92 37 302 | 93 97 303 | 94 50 304 | 95 3 305 | 96 77 306 | 97 70 307 | 98 32 308 | 99 28 309 | 100 18 310 | 101 28 311 | 102 87 312 | 103 91 313 | 104 7 314 | 105 16 315 | 106 44 316 | 107 78 317 | 108 18 318 | 109 83 319 | 110 4 320 | 111 84 321 | 112 73 322 | 113 13 323 | 114 15 324 | 115 24 325 | 116 93 326 | 117 62 327 | 118 79 328 | 119 52 329 | 120 31 330 | 121 21 331 | 122 37 332 | 123 89 333 | 124 37 334 | 125 50 335 | 126 11 336 | 127 32 337 | 128 62 338 | 129 34 339 | 130 19 340 | 131 50 341 | 132 50 342 | 133 60 343 | 134 2 344 | 135 56 345 | 136 80 346 | 137 46 347 | 138 68 348 | 139 78 349 | 140 18 350 | 141 40 351 | 142 63 352 | 143 97 353 | 144 62 354 | 145 55 355 | 146 89 356 | 147 55 357 | 148 92 358 | 149 35 359 | 150 84 360 | 151 29 361 | 152 61 362 | 153 57 363 | 154 12 364 | 155 59 365 | 156 9 366 | 157 19 367 | 158 40 368 | 159 46 369 | 160 53 370 | 161 6 371 | 162 18 372 | 163 29 373 | 164 82 374 | 165 72 375 | 166 4 376 | 167 50 377 | 168 3 378 | 169 13 379 | 170 63 380 | 171 56 381 | 172 29 382 | 173 47 383 | 174 83 384 | 175 61 385 | 176 65 386 | 177 41 387 | 178 36 388 | 179 76 389 | 180 29 390 | 181 9 391 | 182 6 392 | 183 56 393 | 184 15 394 | 185 74 395 | 186 16 396 | 187 14 397 | 188 53 398 | 189 88 399 | 190 34 400 | 191 40 401 | 192 92 402 | 193 53 403 | 194 36 404 | 195 66 405 | 196 17 406 | 197 68 407 | 198 48 408 | 199 45 409 | 200 64 410 | 201 69 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-12-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-12-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 777 7 | NODE_COORD_SECTION 8 | 1 132 214 9 | 2 587 729 10 | 3 39 531 11 | 4 293 71 12 | 5 420 124 13 | 6 803 47 14 | 7 655 399 15 | 8 778 446 16 | 9 943 675 17 | 10 722 265 18 | 11 48 2 19 | 12 116 853 20 | 13 25 17 21 | 14 304 213 22 | 15 465 681 23 | 16 181 694 24 | 17 392 328 25 | 18 568 429 26 | 19 757 579 27 | 20 984 936 28 | 21 205 414 29 | 22 570 53 30 | 23 708 220 31 | 24 31 318 32 | 25 335 572 33 | 26 293 987 34 | 27 119 998 35 | 28 594 764 36 | 29 65 463 37 | 30 519 455 38 | 31 71 602 39 | 32 330 716 40 | 33 15 998 41 | 34 905 659 42 | 35 34 215 43 | 36 150 174 44 | 37 810 416 45 | 38 888 222 46 | 39 795 915 47 | 40 197 571 48 | 41 356 769 49 | 42 186 604 50 | 43 902 683 51 | 44 234 58 52 | 45 491 982 53 | 46 452 626 54 | 47 417 479 55 | 48 628 717 56 | 49 462 669 57 | 50 210 904 58 | 51 328 823 59 | DEMAND_SECTION 60 | 1 0 61 | 2 81 62 | 3 72 63 | 4 67 64 | 5 1 65 | 6 79 66 | 7 41 67 | 8 33 68 | 9 35 69 | 10 88 70 | 11 51 71 | 12 44 72 | 13 19 73 | 14 26 74 | 15 81 75 | 16 96 76 | 17 74 77 | 18 89 78 | 19 44 79 | 20 37 80 | 21 93 81 | 22 96 82 | 23 61 83 | 24 64 84 | 25 98 85 | 26 79 86 | 27 46 87 | 28 23 88 | 29 57 89 | 30 98 90 | 31 63 91 | 32 77 92 | 33 53 93 | 34 7 94 | 35 33 95 | 36 5 96 | 37 43 97 | 38 89 98 | 39 81 99 | 40 33 100 | 41 66 101 | 42 93 102 | 43 77 103 | 44 37 104 | 45 86 105 | 46 3 106 | 47 43 107 | 48 18 108 | 49 85 109 | 50 72 110 | 51 40 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-13-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-13-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 761 7 | NODE_COORD_SECTION 8 | 1 280 625 9 | 2 834 255 10 | 3 327 366 11 | 4 177 0 12 | 5 195 46 13 | 6 699 192 14 | 7 811 265 15 | 8 800 100 16 | 9 956 369 17 | 10 124 253 18 | 11 866 797 19 | 12 927 765 20 | 13 632 555 21 | 14 457 345 22 | 15 926 261 23 | 16 898 130 24 | 17 524 709 25 | 18 475 519 26 | 19 570 437 27 | 20 26 637 28 | 21 537 219 29 | 22 971 879 30 | 23 857 782 31 | 24 390 672 32 | 25 354 186 33 | 26 458 711 34 | 27 585 90 35 | 28 1 25 36 | 29 402 97 37 | 30 704 572 38 | 31 5 569 39 | 32 108 196 40 | 33 491 525 41 | 34 145 166 42 | 35 160 151 43 | 36 400 657 44 | 37 364 920 45 | 38 766 414 46 | 39 108 616 47 | 40 23 209 48 | 41 526 325 49 | 42 2 862 50 | 43 17 887 51 | 44 205 949 52 | 45 762 462 53 | 46 856 89 54 | 47 95 560 55 | 48 790 833 56 | 49 570 822 57 | 50 31 60 58 | 51 685 843 59 | 52 113 908 60 | 53 949 103 61 | 54 103 76 62 | 55 757 756 63 | 56 501 147 64 | 57 656 9 65 | 58 634 144 66 | 59 360 641 67 | 60 583 185 68 | 61 791 550 69 | 62 820 687 70 | 63 796 796 71 | 64 574 650 72 | 65 220 488 73 | 66 178 575 74 | 67 363 576 75 | 68 248 984 76 | 69 243 431 77 | 70 851 192 78 | 71 287 112 79 | 72 552 993 80 | 73 58 743 81 | 74 182 896 82 | 75 777 443 83 | 76 881 638 84 | DEMAND_SECTION 85 | 1 0 86 | 2 74 87 | 3 52 88 | 4 28 89 | 5 6 90 | 6 89 91 | 7 12 92 | 8 74 93 | 9 86 94 | 10 90 95 | 11 88 96 | 12 92 97 | 13 80 98 | 14 51 99 | 15 37 100 | 16 15 101 | 17 18 102 | 18 7 103 | 19 54 104 | 20 46 105 | 21 52 106 | 22 13 107 | 23 49 108 | 24 94 109 | 25 79 110 | 26 2 111 | 27 50 112 | 28 96 113 | 29 46 114 | 30 87 115 | 31 52 116 | 32 77 117 | 33 61 118 | 34 44 119 | 35 90 120 | 36 35 121 | 37 74 122 | 38 99 123 | 39 95 124 | 40 53 125 | 41 56 126 | 42 51 127 | 43 82 128 | 44 89 129 | 45 36 130 | 46 8 131 | 47 84 132 | 48 40 133 | 49 71 134 | 50 91 135 | 51 43 136 | 52 23 137 | 53 64 138 | 54 6 139 | 55 20 140 | 56 5 141 | 57 76 142 | 58 38 143 | 59 24 144 | 60 90 145 | 61 68 146 | 62 24 147 | 63 75 148 | 64 44 149 | 65 94 150 | 66 39 151 | 67 29 152 | 68 83 153 | 69 68 154 | 70 3 155 | 71 41 156 | 72 54 157 | 73 40 158 | 74 77 159 | 75 6 160 | 76 74 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-14-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-14-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 457 7 | NODE_COORD_SECTION 8 | 1 306 873 9 | 2 396 384 10 | 3 880 651 11 | 4 365 880 12 | 5 652 80 13 | 6 580 576 14 | 7 965 376 15 | 8 385 479 16 | 9 589 647 17 | 10 724 406 18 | 11 194 81 19 | 12 563 407 20 | 13 94 422 21 | 14 507 770 22 | 15 386 251 23 | 16 96 899 24 | 17 45 366 25 | 18 225 881 26 | 19 221 619 27 | 20 122 497 28 | 21 358 858 29 | 22 387 557 30 | 23 74 612 31 | 24 768 189 32 | 25 894 760 33 | 26 399 959 34 | 27 769 847 35 | 28 582 752 36 | 29 697 60 37 | 30 210 886 38 | 31 39 475 39 | 32 188 435 40 | 33 996 843 41 | 34 191 801 42 | 35 421 328 43 | 36 870 417 44 | 37 590 683 45 | 38 806 825 46 | 39 122 112 47 | 40 16 699 48 | 41 674 723 49 | 42 916 747 50 | 43 893 697 51 | 44 268 444 52 | 45 565 505 53 | 46 638 105 54 | 47 308 324 55 | 48 245 346 56 | 49 636 979 57 | 50 228 619 58 | 51 136 123 59 | 52 725 375 60 | 53 966 205 61 | 54 293 577 62 | 55 629 26 63 | 56 195 867 64 | 57 311 602 65 | 58 734 961 66 | 59 108 894 67 | 60 770 841 68 | 61 697 145 69 | 62 365 598 70 | 63 686 969 71 | 64 921 274 72 | 65 935 986 73 | 66 934 750 74 | 67 497 203 75 | 68 585 133 76 | 69 497 940 77 | 70 408 592 78 | 71 911 54 79 | 72 668 438 80 | 73 694 214 81 | 74 649 552 82 | 75 139 513 83 | 76 531 49 84 | 77 18 459 85 | 78 314 511 86 | 79 192 242 87 | 80 3 647 88 | 81 851 589 89 | 82 186 556 90 | 83 325 364 91 | 84 245 907 92 | 85 762 12 93 | 86 769 802 94 | 87 932 405 95 | 88 263 978 96 | 89 507 224 97 | 90 373 552 98 | 91 528 366 99 | 92 999 103 100 | 93 883 160 101 | 94 383 41 102 | 95 135 731 103 | 96 280 498 104 | 97 501 276 105 | 98 179 775 106 | 99 210 998 107 | 100 729 936 108 | 101 589 878 109 | DEMAND_SECTION 110 | 1 0 111 | 2 63 112 | 3 39 113 | 4 16 114 | 5 73 115 | 6 87 116 | 7 45 117 | 8 69 118 | 9 91 119 | 10 53 120 | 11 51 121 | 12 86 122 | 13 12 123 | 14 75 124 | 15 81 125 | 16 50 126 | 17 12 127 | 18 84 128 | 19 46 129 | 20 99 130 | 21 77 131 | 22 55 132 | 23 98 133 | 24 74 134 | 25 70 135 | 26 47 136 | 27 51 137 | 28 28 138 | 29 31 139 | 30 7 140 | 31 95 141 | 32 60 142 | 33 29 143 | 34 7 144 | 35 16 145 | 36 65 146 | 37 73 147 | 38 94 148 | 39 17 149 | 40 30 150 | 41 37 151 | 42 59 152 | 43 36 153 | 44 54 154 | 45 12 155 | 46 89 156 | 47 51 157 | 48 83 158 | 49 72 159 | 50 31 160 | 51 22 161 | 52 21 162 | 53 60 163 | 54 58 164 | 55 83 165 | 56 22 166 | 57 36 167 | 58 72 168 | 59 98 169 | 60 29 170 | 61 31 171 | 62 23 172 | 63 74 173 | 64 88 174 | 65 48 175 | 66 12 176 | 67 3 177 | 68 99 178 | 69 13 179 | 70 36 180 | 71 26 181 | 72 48 182 | 73 70 183 | 74 70 184 | 75 2 185 | 76 74 186 | 77 92 187 | 78 99 188 | 79 38 189 | 80 13 190 | 81 27 191 | 82 65 192 | 83 64 193 | 84 74 194 | 85 93 195 | 86 91 196 | 87 13 197 | 88 90 198 | 89 67 199 | 90 18 200 | 91 57 201 | 92 65 202 | 93 38 203 | 94 6 204 | 95 34 205 | 96 73 206 | 97 40 207 | 98 21 208 | 99 16 209 | 100 73 210 | 101 38 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-15-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-15-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 557 7 | NODE_COORD_SECTION 8 | 1 862 406 9 | 2 899 46 10 | 3 951 25 11 | 4 535 308 12 | 5 382 611 13 | 6 265 894 14 | 7 408 119 15 | 8 547 160 16 | 9 657 844 17 | 10 611 977 18 | 11 55 316 19 | 12 616 935 20 | 13 734 349 21 | 14 640 375 22 | 15 201 405 23 | 16 178 543 24 | 17 873 54 25 | 18 686 173 26 | 19 684 31 27 | 20 857 431 28 | 21 690 318 29 | 22 515 76 30 | 23 98 737 31 | 24 687 14 32 | 25 439 158 33 | 26 127 548 34 | 27 658 826 35 | 28 757 203 36 | 29 474 423 37 | 30 874 541 38 | 31 190 357 39 | 32 850 192 40 | 33 95 528 41 | 34 877 234 42 | 35 967 210 43 | 36 970 553 44 | 37 653 27 45 | 38 72 232 46 | 39 142 730 47 | 40 817 490 48 | 41 272 248 49 | 42 217 83 50 | 43 108 475 51 | 44 846 658 52 | 45 628 82 53 | 46 392 3 54 | 47 613 790 55 | 48 830 306 56 | 49 917 599 57 | 50 288 918 58 | 51 996 969 59 | 52 645 200 60 | 53 590 112 61 | 54 917 449 62 | 55 81 967 63 | 56 632 250 64 | 57 289 896 65 | 58 716 722 66 | 59 739 872 67 | 60 513 866 68 | 61 776 285 69 | 62 285 455 70 | 63 729 357 71 | 64 962 754 72 | 65 711 48 73 | 66 753 10 74 | 67 276 699 75 | 68 444 624 76 | 69 259 186 77 | 70 540 872 78 | 71 592 873 79 | 72 167 954 80 | 73 374 23 81 | 74 191 101 82 | 75 315 28 83 | 76 588 635 84 | 77 167 923 85 | 78 975 175 86 | 79 448 119 87 | 80 824 906 88 | 81 173 521 89 | 82 608 510 90 | 83 430 547 91 | 84 41 563 92 | 85 859 856 93 | 86 174 702 94 | 87 838 430 95 | 88 992 449 96 | 89 395 811 97 | 90 227 524 98 | 91 369 934 99 | 92 881 692 100 | 93 653 272 101 | 94 570 778 102 | 95 491 559 103 | 96 882 393 104 | 97 488 411 105 | 98 118 603 106 | 99 673 141 107 | 100 971 392 108 | 101 522 618 109 | 102 289 517 110 | 103 99 495 111 | 104 508 938 112 | 105 188 966 113 | 106 917 995 114 | 107 315 477 115 | 108 814 824 116 | 109 457 706 117 | 110 434 171 118 | 111 702 804 119 | 112 539 103 120 | 113 446 345 121 | 114 708 308 122 | 115 329 519 123 | 116 906 132 124 | 117 237 282 125 | 118 393 742 126 | 119 221 588 127 | 120 518 669 128 | 121 944 674 129 | 122 476 522 130 | 123 101 956 131 | 124 851 829 132 | 125 653 678 133 | 126 850 100 134 | 127 17 93 135 | 128 961 612 136 | 129 569 111 137 | 130 840 642 138 | 131 787 276 139 | 132 358 214 140 | 133 490 434 141 | 134 68 817 142 | 135 882 704 143 | 136 915 847 144 | 137 545 439 145 | 138 186 169 146 | 139 973 82 147 | 140 451 754 148 | 141 415 526 149 | 142 741 100 150 | 143 802 118 151 | 144 269 971 152 | 145 409 589 153 | 146 215 151 154 | 147 500 165 155 | 148 650 113 156 | 149 464 155 157 | 150 893 453 158 | 151 197 791 159 | 152 593 867 160 | 153 163 114 161 | 154 174 457 162 | 155 86 148 163 | 156 715 989 164 | 157 24 827 165 | 158 819 142 166 | 159 499 391 167 | 160 951 819 168 | 161 790 40 169 | 162 146 186 170 | 163 312 425 171 | 164 271 744 172 | 165 200 844 173 | 166 215 505 174 | 167 750 351 175 | 168 491 442 176 | 169 682 402 177 | 170 435 714 178 | 171 692 170 179 | 172 896 406 180 | 173 830 741 181 | 174 15 465 182 | 175 665 916 183 | 176 788 374 184 | 177 613 67 185 | 178 699 988 186 | 179 463 110 187 | 180 181 120 188 | 181 426 558 189 | 182 422 436 190 | 183 878 345 191 | 184 164 159 192 | 185 981 105 193 | 186 402 485 194 | 187 839 731 195 | 188 749 452 196 | 189 732 735 197 | 190 631 972 198 | 191 270 528 199 | 192 856 443 200 | 193 612 849 201 | 194 1000 175 202 | 195 258 875 203 | 196 715 688 204 | 197 528 251 205 | 198 457 304 206 | 199 12 51 207 | 200 778 414 208 | 201 312 143 209 | DEMAND_SECTION 210 | 1 0 211 | 2 4 212 | 3 17 213 | 4 49 214 | 5 44 215 | 6 4 216 | 7 17 217 | 8 36 218 | 9 35 219 | 10 38 220 | 11 94 221 | 12 42 222 | 13 70 223 | 14 15 224 | 15 31 225 | 16 17 226 | 17 37 227 | 18 97 228 | 19 79 229 | 20 95 230 | 21 71 231 | 22 91 232 | 23 81 233 | 24 60 234 | 25 90 235 | 26 16 236 | 27 79 237 | 28 79 238 | 29 38 239 | 30 26 240 | 31 32 241 | 32 6 242 | 33 18 243 | 34 1 244 | 35 28 245 | 36 86 246 | 37 68 247 | 38 28 248 | 39 31 249 | 40 51 250 | 41 12 251 | 42 50 252 | 43 22 253 | 44 90 254 | 45 98 255 | 46 34 256 | 47 23 257 | 48 30 258 | 49 56 259 | 50 83 260 | 51 63 261 | 52 68 262 | 53 88 263 | 54 52 264 | 55 93 265 | 56 10 266 | 57 5 267 | 58 71 268 | 59 36 269 | 60 25 270 | 61 97 271 | 62 8 272 | 63 63 273 | 64 81 274 | 65 13 275 | 66 27 276 | 67 28 277 | 68 75 278 | 69 63 279 | 70 73 280 | 71 3 281 | 72 94 282 | 73 84 283 | 74 62 284 | 75 2 285 | 76 5 286 | 77 62 287 | 78 4 288 | 79 53 289 | 80 95 290 | 81 84 291 | 82 11 292 | 83 16 293 | 84 18 294 | 85 94 295 | 86 38 296 | 87 92 297 | 88 47 298 | 89 34 299 | 90 7 300 | 91 6 301 | 92 17 302 | 93 65 303 | 94 14 304 | 95 46 305 | 96 77 306 | 97 60 307 | 98 25 308 | 99 75 309 | 100 43 310 | 101 38 311 | 102 78 312 | 103 31 313 | 104 70 314 | 105 93 315 | 106 16 316 | 107 53 317 | 108 88 318 | 109 4 319 | 110 61 320 | 111 11 321 | 112 6 322 | 113 37 323 | 114 79 324 | 115 64 325 | 116 53 326 | 117 32 327 | 118 88 328 | 119 52 329 | 120 53 330 | 121 11 331 | 122 3 332 | 123 31 333 | 124 74 334 | 125 39 335 | 126 40 336 | 127 39 337 | 128 86 338 | 129 13 339 | 130 94 340 | 131 74 341 | 132 43 342 | 133 96 343 | 134 26 344 | 135 63 345 | 136 39 346 | 137 82 347 | 138 67 348 | 139 44 349 | 140 17 350 | 141 95 351 | 142 84 352 | 143 1 353 | 144 64 354 | 145 80 355 | 146 40 356 | 147 31 357 | 148 31 358 | 149 4 359 | 150 96 360 | 151 42 361 | 152 13 362 | 153 24 363 | 154 82 364 | 155 77 365 | 156 94 366 | 157 95 367 | 158 47 368 | 159 4 369 | 160 70 370 | 161 33 371 | 162 2 372 | 163 17 373 | 164 55 374 | 165 65 375 | 166 41 376 | 167 17 377 | 168 87 378 | 169 17 379 | 170 90 380 | 171 26 381 | 172 83 382 | 173 71 383 | 174 78 384 | 175 49 385 | 176 98 386 | 177 59 387 | 178 47 388 | 179 5 389 | 180 5 390 | 181 99 391 | 182 10 392 | 183 81 393 | 184 15 394 | 185 15 395 | 186 70 396 | 187 34 397 | 188 25 398 | 189 27 399 | 190 98 400 | 191 27 401 | 192 4 402 | 193 24 403 | 194 36 404 | 195 61 405 | 196 74 406 | 197 49 407 | 198 94 408 | 199 89 409 | 200 21 410 | 201 77 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-16-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-16-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 579 7 | NODE_COORD_SECTION 8 | 1 33 881 9 | 2 673 659 10 | 3 56 623 11 | 4 915 744 12 | 5 569 46 13 | 6 513 762 14 | 7 396 770 15 | 8 333 561 16 | 9 796 621 17 | 10 455 57 18 | 11 759 974 19 | 12 382 58 20 | 13 75 650 21 | 14 651 777 22 | 15 998 640 23 | 16 716 454 24 | 17 33 455 25 | 18 827 989 26 | 19 777 528 27 | 20 671 797 28 | 21 776 832 29 | 22 626 487 30 | 23 175 604 31 | 24 536 235 32 | 25 481 515 33 | 26 321 96 34 | 27 128 480 35 | 28 566 532 36 | 29 239 716 37 | 30 305 387 38 | 31 95 620 39 | 32 629 47 40 | 33 782 648 41 | 34 224 443 42 | 35 953 588 43 | 36 479 336 44 | 37 767 638 45 | 38 242 413 46 | 39 903 98 47 | 40 358 166 48 | 41 791 248 49 | 42 858 972 50 | 43 862 664 51 | 44 587 6 52 | 45 669 772 53 | 46 647 920 54 | 47 294 685 55 | 48 311 183 56 | 49 777 694 57 | 50 831 376 58 | 51 598 495 59 | DEMAND_SECTION 60 | 1 0 61 | 2 66 62 | 3 44 63 | 4 75 64 | 5 84 65 | 6 75 66 | 7 47 67 | 8 6 68 | 9 64 69 | 10 93 70 | 11 90 71 | 12 63 72 | 13 63 73 | 14 19 74 | 15 52 75 | 16 66 76 | 17 61 77 | 18 73 78 | 19 64 79 | 20 72 80 | 21 82 81 | 22 98 82 | 23 84 83 | 24 7 84 | 25 70 85 | 26 13 86 | 27 2 87 | 28 27 88 | 29 45 89 | 30 79 90 | 31 60 91 | 32 20 92 | 33 98 93 | 34 6 94 | 35 72 95 | 36 53 96 | 37 8 97 | 38 13 98 | 39 99 99 | 40 58 100 | 41 27 101 | 42 68 102 | 43 46 103 | 44 98 104 | 45 33 105 | 46 34 106 | 47 11 107 | 48 77 108 | 49 90 109 | 50 74 110 | 51 1 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-17-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-17-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 182 7 | NODE_COORD_SECTION 8 | 1 2 56 9 | 2 876 922 10 | 3 916 576 11 | 4 280 29 12 | 5 436 735 13 | 6 343 42 14 | 7 846 937 15 | 8 792 580 16 | 9 596 50 17 | 10 965 901 18 | 11 768 275 19 | 12 171 277 20 | 13 463 782 21 | 14 493 210 22 | 15 260 512 23 | 16 47 416 24 | 17 531 158 25 | 18 398 585 26 | 19 590 965 27 | 20 761 127 28 | 21 663 198 29 | 22 945 754 30 | 23 130 149 31 | 24 615 334 32 | 25 259 521 33 | 26 516 277 34 | 27 274 934 35 | 28 614 470 36 | 29 249 407 37 | 30 738 105 38 | 31 871 114 39 | 32 934 431 40 | 33 102 274 41 | 34 52 814 42 | 35 148 86 43 | 36 853 790 44 | 37 219 661 45 | 38 777 633 46 | 39 942 326 47 | 40 797 42 48 | 41 276 548 49 | 42 371 852 50 | 43 707 539 51 | 44 863 330 52 | 45 638 908 53 | 46 823 70 54 | 47 348 618 55 | 48 423 106 56 | 49 786 741 57 | 50 844 176 58 | 51 306 565 59 | 52 520 595 60 | 53 184 259 61 | 54 798 522 62 | 55 460 528 63 | 56 958 429 64 | 57 409 884 65 | 58 19 562 66 | 59 843 983 67 | 60 620 184 68 | 61 690 869 69 | 62 276 605 70 | 63 328 481 71 | 64 500 8 72 | 65 943 278 73 | 66 147 91 74 | 67 445 118 75 | 68 275 656 76 | 69 158 705 77 | 70 635 720 78 | 71 805 146 79 | 72 660 632 80 | 73 486 755 81 | 74 266 634 82 | 75 720 476 83 | 76 706 957 84 | DEMAND_SECTION 85 | 1 0 86 | 2 76 87 | 3 46 88 | 4 55 89 | 5 50 90 | 6 5 91 | 7 93 92 | 8 19 93 | 9 84 94 | 10 99 95 | 11 87 96 | 12 13 97 | 13 78 98 | 14 26 99 | 15 7 100 | 16 23 101 | 17 37 102 | 18 82 103 | 19 25 104 | 20 62 105 | 21 37 106 | 22 67 107 | 23 11 108 | 24 58 109 | 25 37 110 | 26 50 111 | 27 58 112 | 28 27 113 | 29 63 114 | 30 19 115 | 31 10 116 | 32 62 117 | 33 71 118 | 34 13 119 | 35 33 120 | 36 90 121 | 37 55 122 | 38 42 123 | 39 12 124 | 40 78 125 | 41 40 126 | 42 48 127 | 43 16 128 | 44 25 129 | 45 92 130 | 46 7 131 | 47 57 132 | 48 46 133 | 49 55 134 | 50 91 135 | 51 15 136 | 52 56 137 | 53 12 138 | 54 2 139 | 55 61 140 | 56 41 141 | 57 36 142 | 58 9 143 | 59 13 144 | 60 74 145 | 61 32 146 | 62 75 147 | 63 18 148 | 64 81 149 | 65 97 150 | 66 22 151 | 67 11 152 | 68 79 153 | 69 15 154 | 70 30 155 | 71 16 156 | 72 47 157 | 73 80 158 | 74 89 159 | 75 82 160 | 76 16 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-18-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-18-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 843 7 | NODE_COORD_SECTION 8 | 1 419 711 9 | 2 717 649 10 | 3 904 516 11 | 4 455 45 12 | 5 698 660 13 | 6 181 270 14 | 7 642 417 15 | 8 660 654 16 | 9 895 978 17 | 10 247 265 18 | 11 694 993 19 | 12 454 559 20 | 13 860 1 21 | 14 168 758 22 | 15 531 68 23 | 16 136 667 24 | 17 152 957 25 | 18 76 703 26 | 19 499 556 27 | 20 103 93 28 | 21 815 33 29 | 22 291 465 30 | 23 450 826 31 | 24 743 601 32 | 25 81 681 33 | 26 127 479 34 | 27 507 26 35 | 28 519 296 36 | 29 372 302 37 | 30 823 204 38 | 31 726 36 39 | 32 758 317 40 | 33 132 284 41 | 34 368 32 42 | 35 970 410 43 | 36 768 280 44 | 37 38 38 45 | 38 652 321 46 | 39 241 200 47 | 40 104 213 48 | 41 138 21 49 | 42 766 171 50 | 43 501 918 51 | 44 498 271 52 | 45 535 131 53 | 46 383 324 54 | 47 620 534 55 | 48 851 770 56 | 49 107 207 57 | 50 922 577 58 | 51 279 53 59 | 52 154 131 60 | 53 77 276 61 | 54 847 737 62 | 55 423 286 63 | 56 510 542 64 | 57 200 209 65 | 58 129 892 66 | 59 414 612 67 | 60 425 23 68 | 61 489 676 69 | 62 544 113 70 | 63 280 654 71 | 64 841 576 72 | 65 294 751 73 | 66 353 788 74 | 67 859 931 75 | 68 160 453 76 | 69 983 279 77 | 70 900 599 78 | 71 810 890 79 | 72 930 567 80 | 73 31 923 81 | 74 788 765 82 | 75 361 102 83 | 76 371 575 84 | 77 107 584 85 | 78 610 222 86 | 79 660 903 87 | 80 995 396 88 | 81 43 467 89 | 82 649 535 90 | 83 490 568 91 | 84 202 941 92 | 85 39 740 93 | 86 201 446 94 | 87 555 176 95 | 88 556 493 96 | 89 765 34 97 | 90 864 380 98 | 91 635 390 99 | 92 237 96 100 | 93 269 965 101 | 94 32 725 102 | 95 997 630 103 | 96 613 354 104 | 97 178 114 105 | 98 365 159 106 | 99 343 131 107 | 100 216 427 108 | 101 485 697 109 | DEMAND_SECTION 110 | 1 0 111 | 2 54 112 | 3 70 113 | 4 63 114 | 5 47 115 | 6 98 116 | 7 89 117 | 8 21 118 | 9 88 119 | 10 11 120 | 11 19 121 | 12 83 122 | 13 89 123 | 14 50 124 | 15 44 125 | 16 66 126 | 17 21 127 | 18 63 128 | 19 67 129 | 20 42 130 | 21 55 131 | 22 74 132 | 23 85 133 | 24 94 134 | 25 3 135 | 26 15 136 | 27 89 137 | 28 49 138 | 29 22 139 | 30 41 140 | 31 49 141 | 32 42 142 | 33 85 143 | 34 41 144 | 35 61 145 | 36 58 146 | 37 20 147 | 38 67 148 | 39 20 149 | 40 78 150 | 41 38 151 | 42 42 152 | 43 61 153 | 44 97 154 | 45 58 155 | 46 14 156 | 47 4 157 | 48 58 158 | 49 76 159 | 50 81 160 | 51 81 161 | 52 80 162 | 53 69 163 | 54 80 164 | 55 25 165 | 56 13 166 | 57 38 167 | 58 96 168 | 59 51 169 | 60 49 170 | 61 12 171 | 62 28 172 | 63 81 173 | 64 85 174 | 65 19 175 | 66 94 176 | 67 76 177 | 68 92 178 | 69 69 179 | 70 65 180 | 71 80 181 | 72 70 182 | 73 71 183 | 74 60 184 | 75 69 185 | 76 7 186 | 77 85 187 | 78 47 188 | 79 56 189 | 80 98 190 | 81 3 191 | 82 10 192 | 83 88 193 | 84 55 194 | 85 82 195 | 86 3 196 | 87 11 197 | 88 13 198 | 89 35 199 | 90 44 200 | 91 54 201 | 92 46 202 | 93 61 203 | 94 66 204 | 95 89 205 | 96 45 206 | 97 77 207 | 98 15 208 | 99 55 209 | 100 66 210 | 101 99 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-19-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-19-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 898 7 | NODE_COORD_SECTION 8 | 1 341 443 9 | 2 158 799 10 | 3 892 126 11 | 4 563 547 12 | 5 777 789 13 | 6 94 399 14 | 7 691 575 15 | 8 910 493 16 | 9 436 787 17 | 10 770 166 18 | 11 296 171 19 | 12 664 649 20 | 13 779 425 21 | 14 564 49 22 | 15 249 595 23 | 16 442 300 24 | 17 27 112 25 | 18 993 373 26 | 19 565 849 27 | 20 991 294 28 | 21 170 555 29 | 22 681 483 30 | 23 365 148 31 | 24 406 463 32 | 25 620 577 33 | 26 954 147 34 | 27 310 11 35 | 28 421 872 36 | 29 829 280 37 | 30 591 891 38 | 31 940 84 39 | 32 4 88 40 | 33 704 634 41 | 34 271 195 42 | 35 712 360 43 | 36 967 444 44 | 37 252 633 45 | 38 616 0 46 | 39 552 104 47 | 40 535 834 48 | 41 978 234 49 | 42 773 214 50 | 43 766 105 51 | 44 427 264 52 | 45 818 539 53 | 46 966 869 54 | 47 862 792 55 | 48 181 679 56 | 49 105 401 57 | 50 498 877 58 | 51 496 801 59 | 52 724 431 60 | 53 344 53 61 | 54 513 188 62 | 55 935 342 63 | 56 740 127 64 | 57 306 710 65 | 58 340 576 66 | 59 652 511 67 | 60 826 979 68 | 61 15 683 69 | 62 708 834 70 | 63 789 458 71 | 64 598 504 72 | 65 95 646 73 | 66 894 35 74 | 67 757 614 75 | 68 785 596 76 | 69 546 243 77 | 70 403 702 78 | 71 709 621 79 | 72 192 495 80 | 73 246 796 81 | 74 937 922 82 | 75 123 595 83 | 76 855 903 84 | 77 385 936 85 | 78 427 383 86 | 79 365 245 87 | 80 748 258 88 | 81 798 311 89 | 82 111 91 90 | 83 474 177 91 | 84 324 374 92 | 85 881 310 93 | 86 932 192 94 | 87 439 22 95 | 88 408 925 96 | 89 128 610 97 | 90 421 694 98 | 91 596 895 99 | 92 489 252 100 | 93 437 471 101 | 94 846 666 102 | 95 500 779 103 | 96 2 600 104 | 97 759 49 105 | 98 999 984 106 | 99 416 525 107 | 100 673 837 108 | 101 215 714 109 | 102 716 406 110 | 103 586 595 111 | 104 666 575 112 | 105 453 514 113 | 106 286 176 114 | 107 972 882 115 | 108 685 236 116 | 109 195 672 117 | 110 267 67 118 | 111 159 150 119 | 112 494 766 120 | 113 749 494 121 | 114 630 460 122 | 115 482 101 123 | 116 252 460 124 | 117 511 336 125 | 118 383 761 126 | 119 858 348 127 | 120 675 16 128 | 121 180 588 129 | 122 722 579 130 | 123 735 727 131 | 124 103 705 132 | 125 93 857 133 | 126 612 391 134 | 127 908 322 135 | 128 69 806 136 | 129 351 34 137 | 130 100 575 138 | 131 217 768 139 | 132 801 999 140 | 133 577 771 141 | 134 711 269 142 | 135 72 663 143 | 136 34 236 144 | 137 765 222 145 | 138 870 492 146 | 139 144 860 147 | 140 205 294 148 | 141 792 668 149 | 142 738 511 150 | 143 215 900 151 | 144 917 447 152 | 145 293 21 153 | 146 401 856 154 | 147 233 815 155 | 148 327 734 156 | 149 324 828 157 | 150 492 630 158 | 151 213 877 159 | 152 251 460 160 | 153 585 308 161 | 154 681 176 162 | 155 253 363 163 | 156 442 383 164 | 157 235 278 165 | 158 294 83 166 | 159 605 234 167 | 160 350 84 168 | 161 710 489 169 | 162 709 656 170 | 163 710 532 171 | 164 244 761 172 | 165 478 6 173 | 166 345 244 174 | 167 899 847 175 | 168 372 658 176 | 169 757 351 177 | 170 636 538 178 | 171 825 755 179 | 172 309 389 180 | 173 805 126 181 | 174 308 476 182 | 175 311 966 183 | 176 851 233 184 | 177 432 240 185 | 178 238 503 186 | 179 270 998 187 | 180 737 974 188 | 181 562 59 189 | 182 130 942 190 | 183 46 665 191 | 184 346 799 192 | 185 526 366 193 | 186 800 985 194 | 187 248 681 195 | 188 685 223 196 | 189 375 583 197 | 190 795 219 198 | 191 311 415 199 | 192 250 787 200 | 193 937 861 201 | 194 585 265 202 | 195 156 647 203 | 196 426 532 204 | 197 989 772 205 | 198 334 984 206 | 199 206 513 207 | 200 224 195 208 | 201 640 882 209 | DEMAND_SECTION 210 | 1 0 211 | 2 43 212 | 3 40 213 | 4 22 214 | 5 40 215 | 6 53 216 | 7 51 217 | 8 17 218 | 9 93 219 | 10 42 220 | 11 65 221 | 12 51 222 | 13 84 223 | 14 46 224 | 15 17 225 | 16 23 226 | 17 66 227 | 18 83 228 | 19 77 229 | 20 98 230 | 21 19 231 | 22 14 232 | 23 67 233 | 24 28 234 | 25 59 235 | 26 69 236 | 27 31 237 | 28 4 238 | 29 48 239 | 30 92 240 | 31 22 241 | 32 82 242 | 33 91 243 | 34 61 244 | 35 65 245 | 36 64 246 | 37 17 247 | 38 46 248 | 39 93 249 | 40 12 250 | 41 10 251 | 42 7 252 | 43 55 253 | 44 61 254 | 45 83 255 | 46 78 256 | 47 12 257 | 48 79 258 | 49 53 259 | 50 50 260 | 51 11 261 | 52 29 262 | 53 69 263 | 54 88 264 | 55 55 265 | 56 81 266 | 57 88 267 | 58 47 268 | 59 95 269 | 60 58 270 | 61 74 271 | 62 3 272 | 63 34 273 | 64 75 274 | 65 19 275 | 66 89 276 | 67 24 277 | 68 86 278 | 69 65 279 | 70 31 280 | 71 54 281 | 72 11 282 | 73 99 283 | 74 43 284 | 75 30 285 | 76 85 286 | 77 93 287 | 78 46 288 | 79 4 289 | 80 13 290 | 81 11 291 | 82 84 292 | 83 41 293 | 84 49 294 | 85 16 295 | 86 7 296 | 87 6 297 | 88 80 298 | 89 72 299 | 90 6 300 | 91 22 301 | 92 72 302 | 93 48 303 | 94 92 304 | 95 45 305 | 96 64 306 | 97 73 307 | 98 31 308 | 99 73 309 | 100 54 310 | 101 84 311 | 102 21 312 | 103 64 313 | 104 54 314 | 105 28 315 | 106 67 316 | 107 89 317 | 108 36 318 | 109 91 319 | 110 39 320 | 111 35 321 | 112 61 322 | 113 81 323 | 114 40 324 | 115 36 325 | 116 9 326 | 117 59 327 | 118 24 328 | 119 31 329 | 120 4 330 | 121 68 331 | 122 78 332 | 123 35 333 | 124 90 334 | 125 94 335 | 126 56 336 | 127 82 337 | 128 35 338 | 129 61 339 | 130 38 340 | 131 18 341 | 132 68 342 | 133 13 343 | 134 69 344 | 135 82 345 | 136 16 346 | 137 73 347 | 138 26 348 | 139 85 349 | 140 95 350 | 141 77 351 | 142 39 352 | 143 85 353 | 144 47 354 | 145 13 355 | 146 44 356 | 147 19 357 | 148 82 358 | 149 62 359 | 150 21 360 | 151 21 361 | 152 32 362 | 153 40 363 | 154 53 364 | 155 60 365 | 156 52 366 | 157 58 367 | 158 1 368 | 159 13 369 | 160 75 370 | 161 57 371 | 162 34 372 | 163 13 373 | 164 85 374 | 165 10 375 | 166 9 376 | 167 42 377 | 168 51 378 | 169 20 379 | 170 8 380 | 171 59 381 | 172 50 382 | 173 66 383 | 174 32 384 | 175 87 385 | 176 16 386 | 177 5 387 | 178 22 388 | 179 27 389 | 180 44 390 | 181 7 391 | 182 54 392 | 183 91 393 | 184 99 394 | 185 94 395 | 186 71 396 | 187 55 397 | 188 38 398 | 189 36 399 | 190 4 400 | 191 47 401 | 192 83 402 | 193 46 403 | 194 89 404 | 195 24 405 | 196 26 406 | 197 95 407 | 198 11 408 | 199 61 409 | 200 99 410 | 201 48 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-2-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-2-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 434 7 | NODE_COORD_SECTION 8 | 1 939 431 9 | 2 32 210 10 | 3 690 263 11 | 4 484 963 12 | 5 277 844 13 | 6 96 82 14 | 7 811 338 15 | 8 532 734 16 | 9 359 958 17 | 10 390 155 18 | 11 956 157 19 | 12 120 420 20 | 13 115 559 21 | 14 778 705 22 | 15 889 698 23 | 16 432 496 24 | 17 209 481 25 | 18 588 758 26 | 19 577 609 27 | 20 393 998 28 | 21 993 447 29 | 22 981 239 30 | 23 478 690 31 | 24 38 461 32 | 25 333 185 33 | 26 973 96 34 | 27 287 275 35 | 28 985 442 36 | 29 295 511 37 | 30 980 272 38 | 31 502 951 39 | 32 673 234 40 | 33 260 633 41 | 34 651 350 42 | 35 150 136 43 | 36 981 649 44 | 37 657 590 45 | 38 25 230 46 | 39 338 773 47 | 40 739 423 48 | 41 636 509 49 | 42 807 24 50 | 43 548 76 51 | 44 123 466 52 | 45 135 675 53 | 46 83 693 54 | 47 295 733 55 | 48 438 887 56 | 49 70 108 57 | 50 668 173 58 | 51 888 305 59 | 52 630 326 60 | 53 393 384 61 | 54 956 689 62 | 55 366 214 63 | 56 968 555 64 | 57 36 926 65 | 58 580 270 66 | 59 906 630 67 | 60 52 527 68 | 61 304 861 69 | 62 93 38 70 | 63 518 884 71 | 64 818 282 72 | 65 681 647 73 | 66 502 33 74 | 67 628 671 75 | 68 294 257 76 | 69 939 871 77 | 70 147 65 78 | 71 488 163 79 | 72 254 301 80 | 73 941 589 81 | 74 161 545 82 | 75 803 151 83 | 76 292 994 84 | 77 83 577 85 | 78 119 848 86 | 79 95 297 87 | 80 316 547 88 | 81 980 436 89 | 82 392 560 90 | 83 51 419 91 | 84 544 280 92 | 85 101 756 93 | 86 317 265 94 | 87 19 194 95 | 88 601 723 96 | 89 157 691 97 | 90 155 252 98 | 91 690 689 99 | 92 52 959 100 | 93 610 306 101 | 94 87 119 102 | 95 518 247 103 | 96 84 136 104 | 97 791 669 105 | 98 397 998 106 | 99 146 4 107 | 100 679 942 108 | 101 187 250 109 | DEMAND_SECTION 110 | 1 0 111 | 2 74 112 | 3 76 113 | 4 2 114 | 5 51 115 | 6 8 116 | 7 1 117 | 8 82 118 | 9 27 119 | 10 40 120 | 11 6 121 | 12 54 122 | 13 74 123 | 14 50 124 | 15 74 125 | 16 45 126 | 17 56 127 | 18 51 128 | 19 35 129 | 20 15 130 | 21 27 131 | 22 23 132 | 23 10 133 | 24 50 134 | 25 42 135 | 26 22 136 | 27 35 137 | 28 85 138 | 29 98 139 | 30 7 140 | 31 85 141 | 32 97 142 | 33 16 143 | 34 41 144 | 35 84 145 | 36 21 146 | 37 93 147 | 38 94 148 | 39 55 149 | 40 75 150 | 41 72 151 | 42 78 152 | 43 80 153 | 44 39 154 | 45 11 155 | 46 52 156 | 47 18 157 | 48 31 158 | 49 47 159 | 50 71 160 | 51 11 161 | 52 67 162 | 53 8 163 | 54 28 164 | 55 40 165 | 56 9 166 | 57 60 167 | 58 44 168 | 59 13 169 | 60 99 170 | 61 68 171 | 62 37 172 | 63 36 173 | 64 97 174 | 65 23 175 | 66 19 176 | 67 13 177 | 68 50 178 | 69 49 179 | 70 10 180 | 71 77 181 | 72 51 182 | 73 99 183 | 74 37 184 | 75 57 185 | 76 25 186 | 77 50 187 | 78 64 188 | 79 63 189 | 80 15 190 | 81 10 191 | 82 17 192 | 83 60 193 | 84 42 194 | 85 13 195 | 86 12 196 | 87 15 197 | 88 53 198 | 89 66 199 | 90 57 200 | 91 31 201 | 92 92 202 | 93 1 203 | 94 91 204 | 95 25 205 | 96 9 206 | 97 93 207 | 98 9 208 | 99 44 209 | 100 6 210 | 101 41 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-2-X-n300.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-2-X-n300.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 301 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 475 7 | NODE_COORD_SECTION 8 | 1 164 919 9 | 2 279 206 10 | 3 528 564 11 | 4 410 564 12 | 5 934 446 13 | 6 949 650 14 | 7 90 50 15 | 8 694 707 16 | 9 669 219 17 | 10 527 285 18 | 11 542 266 19 | 12 959 550 20 | 13 704 890 21 | 14 109 347 22 | 15 893 321 23 | 16 655 878 24 | 17 360 482 25 | 18 815 518 26 | 19 74 884 27 | 20 486 336 28 | 21 287 761 29 | 22 172 950 30 | 23 641 51 31 | 24 545 682 32 | 25 246 801 33 | 26 79 919 34 | 27 421 114 35 | 28 561 719 36 | 29 888 812 37 | 30 885 703 38 | 31 607 795 39 | 32 383 709 40 | 33 615 864 41 | 34 103 648 42 | 35 701 588 43 | 36 756 811 44 | 37 550 817 45 | 38 825 496 46 | 39 780 272 47 | 40 737 56 48 | 41 682 87 49 | 42 932 846 50 | 43 914 654 51 | 44 684 721 52 | 45 374 940 53 | 46 369 917 54 | 47 191 112 55 | 48 654 547 56 | 49 199 255 57 | 50 652 263 58 | 51 877 632 59 | 52 682 840 60 | 53 741 523 61 | 54 328 152 62 | 55 906 778 63 | 56 530 467 64 | 57 210 0 65 | 58 124 969 66 | 59 775 773 67 | 60 684 499 68 | 61 706 530 69 | 62 35 516 70 | 63 243 981 71 | 64 599 895 72 | 65 676 146 73 | 66 45 38 74 | 67 26 184 75 | 68 627 168 76 | 69 571 210 77 | 70 223 190 78 | 71 58 983 79 | 72 618 561 80 | 73 967 500 81 | 74 265 627 82 | 75 398 710 83 | 76 109 637 84 | 77 738 396 85 | 78 990 150 86 | 79 164 301 87 | 80 410 547 88 | 81 421 594 89 | 82 441 268 90 | 83 767 603 91 | 84 87 661 92 | 85 573 702 93 | 86 368 178 94 | 87 160 215 95 | 88 804 302 96 | 89 529 674 97 | 90 344 6 98 | 91 703 598 99 | 92 549 3 100 | 93 808 641 101 | 94 134 484 102 | 95 55 282 103 | 96 523 326 104 | 97 253 132 105 | 98 150 151 106 | 99 219 202 107 | 100 238 737 108 | 101 104 422 109 | 102 966 88 110 | 103 305 416 111 | 104 845 267 112 | 105 904 888 113 | 106 5 67 114 | 107 106 869 115 | 108 912 193 116 | 109 565 534 117 | 110 139 355 118 | 111 669 532 119 | 112 509 746 120 | 113 405 545 121 | 114 468 589 122 | 115 864 602 123 | 116 97 618 124 | 117 919 914 125 | 118 572 109 126 | 119 47 8 127 | 120 970 137 128 | 121 828 813 129 | 122 535 12 130 | 123 654 396 131 | 124 877 464 132 | 125 338 483 133 | 126 828 290 134 | 127 784 460 135 | 128 847 860 136 | 129 651 271 137 | 130 792 897 138 | 131 385 217 139 | 132 612 53 140 | 133 545 56 141 | 134 408 27 142 | 135 605 714 143 | 136 782 878 144 | 137 909 57 145 | 138 80 693 146 | 139 249 393 147 | 140 740 711 148 | 141 727 827 149 | 142 114 893 150 | 143 383 399 151 | 144 315 256 152 | 145 868 374 153 | 146 63 238 154 | 147 967 288 155 | 148 301 589 156 | 149 831 657 157 | 150 49 241 158 | 151 331 152 159 | 152 232 514 160 | 153 665 605 161 | 154 751 985 162 | 155 603 686 163 | 156 512 278 164 | 157 230 531 165 | 158 406 149 166 | 159 666 637 167 | 160 913 840 168 | 161 794 585 169 | 162 475 156 170 | 163 541 747 171 | 164 87 3 172 | 165 507 801 173 | 166 746 630 174 | 167 543 711 175 | 168 146 623 176 | 169 929 954 177 | 170 311 459 178 | 171 936 249 179 | 172 98 507 180 | 173 917 134 181 | 174 148 846 182 | 175 712 737 183 | 176 783 631 184 | 177 570 304 185 | 178 426 497 186 | 179 129 440 187 | 180 754 612 188 | 181 501 71 189 | 182 642 91 190 | 183 897 707 191 | 184 268 325 192 | 185 639 8 193 | 186 743 384 194 | 187 313 463 195 | 188 418 733 196 | 189 45 262 197 | 190 963 446 198 | 191 193 135 199 | 192 383 891 200 | 193 281 299 201 | 194 816 640 202 | 195 473 3 203 | 196 646 553 204 | 197 385 404 205 | 198 44 99 206 | 199 432 205 207 | 200 810 182 208 | 201 1 627 209 | 202 793 32 210 | 203 882 702 211 | 204 16 48 212 | 205 445 866 213 | 206 203 738 214 | 207 339 217 215 | 208 728 872 216 | 209 886 481 217 | 210 763 43 218 | 211 570 931 219 | 212 422 620 220 | 213 345 600 221 | 214 919 325 222 | 215 527 859 223 | 216 719 283 224 | 217 652 561 225 | 218 204 646 226 | 219 435 304 227 | 220 699 804 228 | 221 927 504 229 | 222 855 34 230 | 223 337 379 231 | 224 525 720 232 | 225 265 516 233 | 226 285 231 234 | 227 768 19 235 | 228 264 281 236 | 229 836 448 237 | 230 170 122 238 | 231 811 542 239 | 232 876 813 240 | 233 613 308 241 | 234 497 229 242 | 235 673 997 243 | 236 462 251 244 | 237 817 653 245 | 238 659 200 246 | 239 933 83 247 | 240 211 909 248 | 241 327 293 249 | 242 457 185 250 | 243 610 231 251 | 244 994 740 252 | 245 105 606 253 | 246 168 841 254 | 247 233 86 255 | 248 755 585 256 | 249 694 480 257 | 250 411 622 258 | 251 713 198 259 | 252 701 236 260 | 253 167 401 261 | 254 844 798 262 | 255 649 552 263 | 256 74 789 264 | 257 232 702 265 | 258 994 683 266 | 259 513 254 267 | 260 18 47 268 | 261 82 716 269 | 262 248 476 270 | 263 706 708 271 | 264 280 17 272 | 265 114 209 273 | 266 241 643 274 | 267 474 520 275 | 268 497 513 276 | 269 600 219 277 | 270 332 792 278 | 271 762 519 279 | 272 272 942 280 | 273 447 85 281 | 274 7 267 282 | 275 708 732 283 | 276 776 857 284 | 277 516 960 285 | 278 265 533 286 | 279 279 598 287 | 280 280 213 288 | 281 703 785 289 | 282 296 312 290 | 283 234 1000 291 | 284 942 998 292 | 285 13 666 293 | 286 100 611 294 | 287 143 438 295 | 288 804 1000 296 | 289 734 591 297 | 290 2 577 298 | 291 709 590 299 | 292 480 498 300 | 293 699 772 301 | 294 757 938 302 | 295 543 458 303 | 296 45 924 304 | 297 534 502 305 | 298 668 47 306 | 299 193 97 307 | 300 817 440 308 | 301 423 539 309 | DEMAND_SECTION 310 | 1 0 311 | 2 59 312 | 3 74 313 | 4 30 314 | 5 22 315 | 6 97 316 | 7 81 317 | 8 47 318 | 9 15 319 | 10 37 320 | 11 40 321 | 12 59 322 | 13 90 323 | 14 49 324 | 15 90 325 | 16 10 326 | 17 39 327 | 18 5 328 | 19 75 329 | 20 6 330 | 21 21 331 | 22 9 332 | 23 62 333 | 24 86 334 | 25 34 335 | 26 95 336 | 27 83 337 | 28 88 338 | 29 70 339 | 30 46 340 | 31 62 341 | 32 46 342 | 33 67 343 | 34 59 344 | 35 73 345 | 36 70 346 | 37 50 347 | 38 26 348 | 39 20 349 | 40 76 350 | 41 53 351 | 42 13 352 | 43 32 353 | 44 10 354 | 45 55 355 | 46 28 356 | 47 55 357 | 48 46 358 | 49 36 359 | 50 69 360 | 51 6 361 | 52 7 362 | 53 22 363 | 54 57 364 | 55 55 365 | 56 94 366 | 57 49 367 | 58 63 368 | 59 77 369 | 60 33 370 | 61 59 371 | 62 79 372 | 63 77 373 | 64 77 374 | 65 6 375 | 66 44 376 | 67 47 377 | 68 80 378 | 69 76 379 | 70 38 380 | 71 32 381 | 72 78 382 | 73 68 383 | 74 92 384 | 75 54 385 | 76 86 386 | 77 83 387 | 78 15 388 | 79 73 389 | 80 88 390 | 81 35 391 | 82 34 392 | 83 66 393 | 84 7 394 | 85 2 395 | 86 26 396 | 87 33 397 | 88 95 398 | 89 99 399 | 90 98 400 | 91 18 401 | 92 95 402 | 93 68 403 | 94 21 404 | 95 74 405 | 96 55 406 | 97 56 407 | 98 17 408 | 99 72 409 | 100 29 410 | 101 54 411 | 102 74 412 | 103 57 413 | 104 48 414 | 105 5 415 | 106 41 416 | 107 32 417 | 108 3 418 | 109 43 419 | 110 50 420 | 111 7 421 | 112 35 422 | 113 12 423 | 114 52 424 | 115 51 425 | 116 1 426 | 117 11 427 | 118 12 428 | 119 35 429 | 120 89 430 | 121 66 431 | 122 5 432 | 123 9 433 | 124 79 434 | 125 34 435 | 126 65 436 | 127 9 437 | 128 84 438 | 129 90 439 | 130 75 440 | 131 99 441 | 132 49 442 | 133 30 443 | 134 76 444 | 135 97 445 | 136 89 446 | 137 25 447 | 138 97 448 | 139 8 449 | 140 97 450 | 141 27 451 | 142 58 452 | 143 89 453 | 144 80 454 | 145 99 455 | 146 2 456 | 147 94 457 | 148 74 458 | 149 11 459 | 150 75 460 | 151 11 461 | 152 40 462 | 153 13 463 | 154 64 464 | 155 47 465 | 156 96 466 | 157 73 467 | 158 83 468 | 159 5 469 | 160 72 470 | 161 33 471 | 162 23 472 | 163 30 473 | 164 91 474 | 165 28 475 | 166 46 476 | 167 14 477 | 168 30 478 | 169 51 479 | 170 23 480 | 171 99 481 | 172 43 482 | 173 58 483 | 174 34 484 | 175 47 485 | 176 35 486 | 177 69 487 | 178 45 488 | 179 15 489 | 180 25 490 | 181 70 491 | 182 7 492 | 183 40 493 | 184 57 494 | 185 4 495 | 186 17 496 | 187 60 497 | 188 61 498 | 189 42 499 | 190 37 500 | 191 31 501 | 192 20 502 | 193 60 503 | 194 37 504 | 195 33 505 | 196 22 506 | 197 45 507 | 198 45 508 | 199 74 509 | 200 6 510 | 201 47 511 | 202 90 512 | 203 6 513 | 204 80 514 | 205 78 515 | 206 19 516 | 207 49 517 | 208 41 518 | 209 69 519 | 210 14 520 | 211 85 521 | 212 5 522 | 213 42 523 | 214 29 524 | 215 56 525 | 216 78 526 | 217 92 527 | 218 45 528 | 219 78 529 | 220 15 530 | 221 14 531 | 222 5 532 | 223 88 533 | 224 33 534 | 225 60 535 | 226 24 536 | 227 62 537 | 228 87 538 | 229 60 539 | 230 17 540 | 231 86 541 | 232 21 542 | 233 13 543 | 234 10 544 | 235 60 545 | 236 30 546 | 237 52 547 | 238 73 548 | 239 13 549 | 240 10 550 | 241 84 551 | 242 33 552 | 243 95 553 | 244 72 554 | 245 16 555 | 246 38 556 | 247 21 557 | 248 52 558 | 249 94 559 | 250 83 560 | 251 25 561 | 252 99 562 | 253 17 563 | 254 91 564 | 255 90 565 | 256 12 566 | 257 30 567 | 258 57 568 | 259 26 569 | 260 67 570 | 261 28 571 | 262 58 572 | 263 53 573 | 264 12 574 | 265 9 575 | 266 33 576 | 267 91 577 | 268 48 578 | 269 11 579 | 270 81 580 | 271 99 581 | 272 67 582 | 273 75 583 | 274 27 584 | 275 31 585 | 276 94 586 | 277 48 587 | 278 7 588 | 279 63 589 | 280 8 590 | 281 4 591 | 282 84 592 | 283 49 593 | 284 79 594 | 285 61 595 | 286 1 596 | 287 36 597 | 288 39 598 | 289 4 599 | 290 16 600 | 291 14 601 | 292 90 602 | 293 55 603 | 294 61 604 | 295 69 605 | 296 70 606 | 297 79 607 | 298 55 608 | 299 34 609 | 300 74 610 | 301 63 611 | DEPOT_SECTION 612 | 1 613 | -1 614 | EOF 615 | -------------------------------------------------------------------------------- /data/instances/random-20-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-20-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 377 7 | NODE_COORD_SECTION 8 | 1 334 726 9 | 2 836 682 10 | 3 814 364 11 | 4 59 390 12 | 5 240 37 13 | 6 105 749 14 | 7 975 973 15 | 8 904 443 16 | 9 180 475 17 | 10 53 959 18 | 11 569 522 19 | 12 508 16 20 | 13 422 919 21 | 14 447 138 22 | 15 635 854 23 | 16 847 694 24 | 17 760 883 25 | 18 768 58 26 | 19 223 235 27 | 20 758 889 28 | 21 977 745 29 | 22 495 750 30 | 23 337 974 31 | 24 566 441 32 | 25 406 203 33 | 26 693 204 34 | 27 893 171 35 | 28 437 665 36 | 29 652 489 37 | 30 934 778 38 | 31 884 39 39 | 32 71 879 40 | 33 551 631 41 | 34 734 461 42 | 35 848 724 43 | 36 575 295 44 | 37 6 214 45 | 38 263 284 46 | 39 127 258 47 | 40 539 877 48 | 41 16 149 49 | 42 446 520 50 | 43 790 257 51 | 44 866 36 52 | 45 850 147 53 | 46 185 587 54 | 47 840 413 55 | 48 571 37 56 | 49 724 286 57 | 50 904 171 58 | 51 379 159 59 | DEMAND_SECTION 60 | 1 0 61 | 2 17 62 | 3 96 63 | 4 74 64 | 5 18 65 | 6 4 66 | 7 41 67 | 8 60 68 | 9 38 69 | 10 6 70 | 11 52 71 | 12 2 72 | 13 17 73 | 14 64 74 | 15 25 75 | 16 52 76 | 17 4 77 | 18 5 78 | 19 52 79 | 20 52 80 | 21 19 81 | 22 19 82 | 23 54 83 | 24 34 84 | 25 40 85 | 26 98 86 | 27 86 87 | 28 62 88 | 29 75 89 | 30 58 90 | 31 82 91 | 32 42 92 | 33 53 93 | 34 35 94 | 35 42 95 | 36 4 96 | 37 11 97 | 38 80 98 | 39 20 99 | 40 79 100 | 41 99 101 | 42 52 102 | 43 10 103 | 44 97 104 | 45 44 105 | 46 14 106 | 47 5 107 | 48 24 108 | 49 5 109 | 50 61 110 | 51 79 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-21-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-21-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 595 7 | NODE_COORD_SECTION 8 | 1 416 715 9 | 2 757 731 10 | 3 433 610 11 | 4 33 753 12 | 5 289 932 13 | 6 25 22 14 | 7 779 543 15 | 8 192 997 16 | 9 663 863 17 | 10 64 114 18 | 11 724 484 19 | 12 440 874 20 | 13 310 608 21 | 14 713 642 22 | 15 58 87 23 | 16 797 985 24 | 17 3 762 25 | 18 336 112 26 | 19 526 501 27 | 20 526 696 28 | 21 6 990 29 | 22 489 512 30 | 23 255 207 31 | 24 437 196 32 | 25 708 455 33 | 26 859 862 34 | 27 24 669 35 | 28 266 488 36 | 29 178 558 37 | 30 732 325 38 | 31 980 265 39 | 32 306 428 40 | 33 83 575 41 | 34 961 390 42 | 35 254 409 43 | 36 442 924 44 | 37 751 667 45 | 38 30 420 46 | 39 219 317 47 | 40 936 419 48 | 41 993 254 49 | 42 175 221 50 | 43 580 896 51 | 44 906 88 52 | 45 387 818 53 | 46 814 797 54 | 47 965 325 55 | 48 298 399 56 | 49 143 394 57 | 50 51 699 58 | 51 613 568 59 | 52 813 78 60 | 53 600 805 61 | 54 730 372 62 | 55 126 192 63 | 56 38 426 64 | 57 239 215 65 | 58 628 869 66 | 59 3 765 67 | 60 486 884 68 | 61 852 980 69 | 62 913 121 70 | 63 302 194 71 | 64 748 274 72 | 65 854 228 73 | 66 369 697 74 | 67 997 73 75 | 68 426 823 76 | 69 134 328 77 | 70 906 16 78 | 71 676 359 79 | 72 47 371 80 | 73 849 543 81 | 74 438 774 82 | 75 232 978 83 | 76 894 818 84 | DEMAND_SECTION 85 | 1 0 86 | 2 90 87 | 3 2 88 | 4 9 89 | 5 55 90 | 6 58 91 | 7 84 92 | 8 34 93 | 9 17 94 | 10 65 95 | 11 28 96 | 12 85 97 | 13 54 98 | 14 36 99 | 15 23 100 | 16 43 101 | 17 95 102 | 18 68 103 | 19 11 104 | 20 3 105 | 21 60 106 | 22 4 107 | 23 96 108 | 24 21 109 | 25 19 110 | 26 68 111 | 27 1 112 | 28 44 113 | 29 15 114 | 30 39 115 | 31 25 116 | 32 97 117 | 33 82 118 | 34 26 119 | 35 21 120 | 36 23 121 | 37 73 122 | 38 92 123 | 39 27 124 | 40 72 125 | 41 90 126 | 42 79 127 | 43 97 128 | 44 35 129 | 45 95 130 | 46 63 131 | 47 24 132 | 48 53 133 | 49 68 134 | 50 49 135 | 51 36 136 | 52 2 137 | 53 36 138 | 54 80 139 | 55 64 140 | 56 55 141 | 57 73 142 | 58 49 143 | 59 74 144 | 60 2 145 | 61 5 146 | 62 51 147 | 63 28 148 | 64 46 149 | 65 86 150 | 66 41 151 | 67 61 152 | 68 37 153 | 69 70 154 | 70 33 155 | 71 62 156 | 72 52 157 | 73 12 158 | 74 58 159 | 75 66 160 | 76 19 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-22-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-22-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 272 7 | NODE_COORD_SECTION 8 | 1 151 146 9 | 2 920 153 10 | 3 48 772 11 | 4 301 402 12 | 5 339 595 13 | 6 498 443 14 | 7 572 27 15 | 8 58 62 16 | 9 273 280 17 | 10 170 920 18 | 11 169 288 19 | 12 474 885 20 | 13 729 60 21 | 14 776 180 22 | 15 164 844 23 | 16 31 567 24 | 17 598 63 25 | 18 571 771 26 | 19 272 360 27 | 20 525 763 28 | 21 823 44 29 | 22 507 994 30 | 23 885 642 31 | 24 453 546 32 | 25 378 939 33 | 26 853 633 34 | 27 429 217 35 | 28 424 139 36 | 29 718 396 37 | 30 922 557 38 | 31 913 87 39 | 32 986 626 40 | 33 308 228 41 | 34 163 770 42 | 35 502 821 43 | 36 574 489 44 | 37 686 765 45 | 38 773 542 46 | 39 489 205 47 | 40 775 543 48 | 41 388 633 49 | 42 339 656 50 | 43 869 516 51 | 44 928 618 52 | 45 230 564 53 | 46 886 583 54 | 47 94 795 55 | 48 555 387 56 | 49 133 987 57 | 50 835 519 58 | 51 503 808 59 | 52 752 441 60 | 53 800 220 61 | 54 721 180 62 | 55 779 261 63 | 56 73 43 64 | 57 502 829 65 | 58 532 332 66 | 59 463 383 67 | 60 715 830 68 | 61 178 59 69 | 62 509 226 70 | 63 635 45 71 | 64 753 549 72 | 65 315 956 73 | 66 332 836 74 | 67 973 101 75 | 68 153 413 76 | 69 656 399 77 | 70 799 21 78 | 71 124 315 79 | 72 81 743 80 | 73 848 703 81 | 74 68 720 82 | 75 182 907 83 | 76 29 274 84 | 77 913 462 85 | 78 326 134 86 | 79 95 788 87 | 80 426 764 88 | 81 986 480 89 | 82 307 17 90 | 83 697 147 91 | 84 679 121 92 | 85 965 66 93 | 86 516 293 94 | 87 257 329 95 | 88 187 363 96 | 89 577 885 97 | 90 560 123 98 | 91 183 825 99 | 92 158 864 100 | 93 230 453 101 | 94 130 782 102 | 95 661 74 103 | 96 449 673 104 | 97 927 467 105 | 98 528 350 106 | 99 70 453 107 | 100 817 607 108 | 101 502 30 109 | DEMAND_SECTION 110 | 1 0 111 | 2 55 112 | 3 45 113 | 4 77 114 | 5 69 115 | 6 43 116 | 7 31 117 | 8 54 118 | 9 30 119 | 10 92 120 | 11 93 121 | 12 59 122 | 13 7 123 | 14 55 124 | 15 30 125 | 16 10 126 | 17 98 127 | 18 56 128 | 19 8 129 | 20 64 130 | 21 52 131 | 22 17 132 | 23 99 133 | 24 68 134 | 25 79 135 | 26 80 136 | 27 87 137 | 28 79 138 | 29 66 139 | 30 39 140 | 31 36 141 | 32 90 142 | 33 72 143 | 34 31 144 | 35 20 145 | 36 76 146 | 37 49 147 | 38 1 148 | 39 41 149 | 40 87 150 | 41 84 151 | 42 60 152 | 43 98 153 | 44 10 154 | 45 52 155 | 46 7 156 | 47 19 157 | 48 27 158 | 49 6 159 | 50 49 160 | 51 20 161 | 52 12 162 | 53 3 163 | 54 68 164 | 55 41 165 | 56 75 166 | 57 89 167 | 58 86 168 | 59 50 169 | 60 60 170 | 61 25 171 | 62 47 172 | 63 36 173 | 64 74 174 | 65 97 175 | 66 16 176 | 67 16 177 | 68 33 178 | 69 56 179 | 70 62 180 | 71 88 181 | 72 95 182 | 73 26 183 | 74 67 184 | 75 77 185 | 76 5 186 | 77 73 187 | 78 88 188 | 79 68 189 | 80 52 190 | 81 36 191 | 82 25 192 | 83 36 193 | 84 83 194 | 85 81 195 | 86 59 196 | 87 57 197 | 88 40 198 | 89 7 199 | 90 41 200 | 91 14 201 | 92 78 202 | 93 59 203 | 94 99 204 | 95 46 205 | 96 24 206 | 97 12 207 | 98 90 208 | 99 29 209 | 100 78 210 | 101 30 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-23-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-23-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 441 7 | NODE_COORD_SECTION 8 | 1 342 523 9 | 2 281 10 10 | 3 871 733 11 | 4 364 483 12 | 5 359 64 13 | 6 967 472 14 | 7 670 995 15 | 8 923 66 16 | 9 369 410 17 | 10 79 455 18 | 11 355 602 19 | 12 998 833 20 | 13 793 892 21 | 14 619 988 22 | 15 697 517 23 | 16 989 749 24 | 17 524 702 25 | 18 839 40 26 | 19 954 801 27 | 20 649 929 28 | 21 490 990 29 | 22 454 462 30 | 23 617 109 31 | 24 690 493 32 | 25 119 16 33 | 26 906 926 34 | 27 660 930 35 | 28 709 346 36 | 29 659 354 37 | 30 219 29 38 | 31 1000 859 39 | 32 144 256 40 | 33 295 921 41 | 34 204 552 42 | 35 80 488 43 | 36 438 21 44 | 37 976 248 45 | 38 166 485 46 | 39 817 502 47 | 40 265 410 48 | 41 518 281 49 | 42 391 294 50 | 43 813 106 51 | 44 959 86 52 | 45 125 536 53 | 46 0 824 54 | 47 413 362 55 | 48 363 885 56 | 49 880 955 57 | 50 930 897 58 | 51 706 673 59 | 52 858 488 60 | 53 80 707 61 | 54 141 278 62 | 55 162 416 63 | 56 193 139 64 | 57 258 175 65 | 58 921 585 66 | 59 846 378 67 | 60 131 846 68 | 61 424 11 69 | 62 734 480 70 | 63 82 623 71 | 64 158 152 72 | 65 184 87 73 | 66 269 50 74 | 67 364 331 75 | 68 108 503 76 | 69 728 521 77 | 70 844 565 78 | 71 605 319 79 | 72 46 688 80 | 73 311 951 81 | 74 753 123 82 | 75 410 521 83 | 76 474 421 84 | 77 578 554 85 | 78 849 456 86 | 79 714 618 87 | 80 374 206 88 | 81 442 491 89 | 82 615 263 90 | 83 892 438 91 | 84 214 427 92 | 85 693 122 93 | 86 267 598 94 | 87 856 184 95 | 88 639 568 96 | 89 879 271 97 | 90 878 263 98 | 91 350 260 99 | 92 169 404 100 | 93 419 45 101 | 94 838 266 102 | 95 958 90 103 | 96 538 957 104 | 97 938 403 105 | 98 881 531 106 | 99 647 894 107 | 100 612 756 108 | 101 983 332 109 | 102 841 800 110 | 103 953 558 111 | 104 285 500 112 | 105 672 984 113 | 106 587 773 114 | 107 701 871 115 | 108 785 543 116 | 109 645 164 117 | 110 715 265 118 | 111 801 955 119 | 112 913 406 120 | 113 395 233 121 | 114 4 454 122 | 115 574 5 123 | 116 535 670 124 | 117 31 720 125 | 118 89 460 126 | 119 703 23 127 | 120 969 272 128 | 121 818 546 129 | 122 15 4 130 | 123 354 900 131 | 124 863 987 132 | 125 72 796 133 | 126 632 64 134 | 127 594 885 135 | 128 167 407 136 | 129 475 128 137 | 130 434 816 138 | 131 810 778 139 | 132 809 538 140 | 133 524 959 141 | 134 247 719 142 | 135 771 121 143 | 136 255 731 144 | 137 144 920 145 | 138 325 544 146 | 139 398 95 147 | 140 940 872 148 | 141 939 844 149 | 142 845 995 150 | 143 98 615 151 | 144 164 218 152 | 145 538 315 153 | 146 126 840 154 | 147 872 537 155 | 148 525 21 156 | 149 51 529 157 | 150 1 639 158 | 151 977 698 159 | 152 376 367 160 | 153 649 440 161 | 154 766 331 162 | 155 284 48 163 | 156 441 477 164 | 157 738 890 165 | 158 889 159 166 | 159 974 654 167 | 160 266 399 168 | 161 463 840 169 | 162 709 625 170 | 163 368 746 171 | 164 43 212 172 | 165 505 912 173 | 166 280 267 174 | 167 739 341 175 | 168 928 982 176 | 169 793 456 177 | 170 466 230 178 | 171 485 708 179 | 172 431 460 180 | 173 29 9 181 | 174 172 681 182 | 175 96 75 183 | 176 102 997 184 | 177 886 991 185 | 178 468 203 186 | 179 721 588 187 | 180 572 995 188 | 181 212 925 189 | 182 401 738 190 | 183 892 498 191 | 184 158 138 192 | 185 948 592 193 | 186 710 130 194 | 187 218 460 195 | 188 215 363 196 | 189 387 468 197 | 190 496 68 198 | 191 163 246 199 | 192 472 831 200 | 193 838 66 201 | 194 719 449 202 | 195 446 796 203 | 196 288 325 204 | 197 470 993 205 | 198 228 300 206 | 199 36 565 207 | 200 870 45 208 | 201 79 169 209 | DEMAND_SECTION 210 | 1 0 211 | 2 6 212 | 3 89 213 | 4 16 214 | 5 98 215 | 6 1 216 | 7 36 217 | 8 27 218 | 9 75 219 | 10 37 220 | 11 20 221 | 12 56 222 | 13 41 223 | 14 52 224 | 15 97 225 | 16 73 226 | 17 7 227 | 18 53 228 | 19 15 229 | 20 45 230 | 21 83 231 | 22 1 232 | 23 82 233 | 24 91 234 | 25 15 235 | 26 94 236 | 27 31 237 | 28 74 238 | 29 64 239 | 30 38 240 | 31 31 241 | 32 80 242 | 33 48 243 | 34 10 244 | 35 67 245 | 36 29 246 | 37 18 247 | 38 6 248 | 39 85 249 | 40 59 250 | 41 19 251 | 42 18 252 | 43 86 253 | 44 14 254 | 45 67 255 | 46 32 256 | 47 15 257 | 48 49 258 | 49 54 259 | 50 11 260 | 51 86 261 | 52 64 262 | 53 49 263 | 54 52 264 | 55 88 265 | 56 28 266 | 57 80 267 | 58 75 268 | 59 77 269 | 60 85 270 | 61 13 271 | 62 68 272 | 63 34 273 | 64 75 274 | 65 26 275 | 66 57 276 | 67 6 277 | 68 1 278 | 69 86 279 | 70 95 280 | 71 49 281 | 72 81 282 | 73 12 283 | 74 12 284 | 75 61 285 | 76 2 286 | 77 98 287 | 78 34 288 | 79 80 289 | 80 4 290 | 81 34 291 | 82 79 292 | 83 44 293 | 84 92 294 | 85 97 295 | 86 37 296 | 87 28 297 | 88 32 298 | 89 38 299 | 90 39 300 | 91 25 301 | 92 91 302 | 93 61 303 | 94 99 304 | 95 19 305 | 96 24 306 | 97 53 307 | 98 5 308 | 99 78 309 | 100 38 310 | 101 44 311 | 102 79 312 | 103 46 313 | 104 98 314 | 105 86 315 | 106 60 316 | 107 41 317 | 108 58 318 | 109 38 319 | 110 97 320 | 111 74 321 | 112 80 322 | 113 7 323 | 114 30 324 | 115 98 325 | 116 83 326 | 117 75 327 | 118 85 328 | 119 66 329 | 120 62 330 | 121 59 331 | 122 95 332 | 123 35 333 | 124 4 334 | 125 38 335 | 126 37 336 | 127 44 337 | 128 64 338 | 129 27 339 | 130 97 340 | 131 75 341 | 132 71 342 | 133 67 343 | 134 70 344 | 135 33 345 | 136 15 346 | 137 45 347 | 138 6 348 | 139 17 349 | 140 47 350 | 141 19 351 | 142 48 352 | 143 13 353 | 144 72 354 | 145 60 355 | 146 38 356 | 147 24 357 | 148 86 358 | 149 41 359 | 150 61 360 | 151 26 361 | 152 51 362 | 153 20 363 | 154 72 364 | 155 50 365 | 156 18 366 | 157 19 367 | 158 80 368 | 159 20 369 | 160 79 370 | 161 31 371 | 162 50 372 | 163 70 373 | 164 40 374 | 165 44 375 | 166 78 376 | 167 87 377 | 168 66 378 | 169 59 379 | 170 55 380 | 171 70 381 | 172 28 382 | 173 61 383 | 174 42 384 | 175 27 385 | 176 88 386 | 177 91 387 | 178 1 388 | 179 22 389 | 180 7 390 | 181 28 391 | 182 40 392 | 183 96 393 | 184 78 394 | 185 38 395 | 186 16 396 | 187 2 397 | 188 83 398 | 189 56 399 | 190 32 400 | 191 90 401 | 192 2 402 | 193 48 403 | 194 20 404 | 195 65 405 | 196 99 406 | 197 51 407 | 198 36 408 | 199 36 409 | 200 88 410 | 201 81 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-24-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-24-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 1073 7 | NODE_COORD_SECTION 8 | 1 789 913 9 | 2 781 720 10 | 3 520 889 11 | 4 786 327 12 | 5 987 378 13 | 6 518 141 14 | 7 133 724 15 | 8 495 263 16 | 9 544 777 17 | 10 202 95 18 | 11 311 850 19 | 12 422 586 20 | 13 762 357 21 | 14 496 335 22 | 15 686 668 23 | 16 983 989 24 | 17 392 369 25 | 18 845 880 26 | 19 981 432 27 | 20 222 576 28 | 21 170 873 29 | 22 256 705 30 | 23 151 537 31 | 24 615 690 32 | 25 157 150 33 | 26 413 528 34 | 27 512 214 35 | 28 873 894 36 | 29 632 73 37 | 30 895 235 38 | 31 746 764 39 | 32 361 194 40 | 33 696 641 41 | 34 112 588 42 | 35 766 36 43 | 36 458 426 44 | 37 206 848 45 | 38 712 984 46 | 39 708 41 47 | 40 447 768 48 | 41 629 355 49 | 42 897 251 50 | 43 598 969 51 | 44 448 396 52 | 45 875 720 53 | 46 856 901 54 | 47 607 936 55 | 48 352 749 56 | 49 332 936 57 | 50 454 333 58 | 51 239 603 59 | DEMAND_SECTION 60 | 1 0 61 | 2 82 62 | 3 46 63 | 4 19 64 | 5 24 65 | 6 78 66 | 7 98 67 | 8 98 68 | 9 45 69 | 10 96 70 | 11 1 71 | 12 40 72 | 13 74 73 | 14 81 74 | 15 83 75 | 16 92 76 | 17 56 77 | 18 39 78 | 19 13 79 | 20 39 80 | 21 2 81 | 22 24 82 | 23 18 83 | 24 49 84 | 25 81 85 | 26 77 86 | 27 76 87 | 28 59 88 | 29 45 89 | 30 22 90 | 31 91 91 | 32 27 92 | 33 16 93 | 34 14 94 | 35 40 95 | 36 61 96 | 37 78 97 | 38 71 98 | 39 15 99 | 40 5 100 | 41 97 101 | 42 67 102 | 43 7 103 | 44 89 104 | 45 54 105 | 46 61 106 | 47 81 107 | 48 74 108 | 49 61 109 | 50 73 110 | 51 81 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-25-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-25-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 609 7 | NODE_COORD_SECTION 8 | 1 779 229 9 | 2 393 83 10 | 3 429 734 11 | 4 197 845 12 | 5 277 503 13 | 6 975 550 14 | 7 24 766 15 | 8 261 79 16 | 9 116 520 17 | 10 545 796 18 | 11 418 228 19 | 12 988 777 20 | 13 180 343 21 | 14 121 281 22 | 15 144 400 23 | 16 682 335 24 | 17 129 226 25 | 18 556 743 26 | 19 14 127 27 | 20 529 17 28 | 21 740 450 29 | 22 595 948 30 | 23 414 194 31 | 24 567 507 32 | 25 86 757 33 | 26 133 381 34 | 27 46 961 35 | 28 956 396 36 | 29 155 718 37 | 30 413 499 38 | 31 526 60 39 | 32 345 553 40 | 33 503 833 41 | 34 460 544 42 | 35 300 61 43 | 36 630 68 44 | 37 623 444 45 | 38 685 494 46 | 39 631 860 47 | 40 314 115 48 | 41 754 566 49 | 42 900 258 50 | 43 2 897 51 | 44 304 135 52 | 45 971 24 53 | 46 40 616 54 | 47 84 333 55 | 48 784 189 56 | 49 735 993 57 | 50 338 848 58 | 51 949 576 59 | 52 279 490 60 | 53 914 553 61 | 54 253 61 62 | 55 636 340 63 | 56 53 16 64 | 57 683 147 65 | 58 794 789 66 | 59 4 105 67 | 60 741 762 68 | 61 910 25 69 | 62 584 725 70 | 63 603 278 71 | 64 60 924 72 | 65 527 120 73 | 66 767 19 74 | 67 193 249 75 | 68 505 964 76 | 69 599 800 77 | 70 505 904 78 | 71 727 426 79 | 72 347 927 80 | 73 759 133 81 | 74 706 911 82 | 75 656 301 83 | 76 974 317 84 | DEMAND_SECTION 85 | 1 0 86 | 2 55 87 | 3 14 88 | 4 30 89 | 5 10 90 | 6 43 91 | 7 96 92 | 8 75 93 | 9 17 94 | 10 73 95 | 11 24 96 | 12 39 97 | 13 27 98 | 14 56 99 | 15 89 100 | 16 18 101 | 17 98 102 | 18 4 103 | 19 79 104 | 20 72 105 | 21 19 106 | 22 93 107 | 23 13 108 | 24 26 109 | 25 73 110 | 26 57 111 | 27 10 112 | 28 88 113 | 29 52 114 | 30 23 115 | 31 53 116 | 32 54 117 | 33 25 118 | 34 41 119 | 35 38 120 | 36 9 121 | 37 17 122 | 38 93 123 | 39 93 124 | 40 18 125 | 41 53 126 | 42 88 127 | 43 38 128 | 44 98 129 | 45 37 130 | 46 23 131 | 47 42 132 | 48 49 133 | 49 17 134 | 50 17 135 | 51 30 136 | 52 9 137 | 53 54 138 | 54 75 139 | 55 48 140 | 56 3 141 | 57 60 142 | 58 20 143 | 59 75 144 | 60 76 145 | 61 16 146 | 62 77 147 | 63 23 148 | 64 37 149 | 65 50 150 | 66 40 151 | 67 24 152 | 68 66 153 | 69 83 154 | 70 78 155 | 71 34 156 | 72 89 157 | 73 65 158 | 74 46 159 | 75 27 160 | 76 51 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-26-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-26-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 450 7 | NODE_COORD_SECTION 8 | 1 343 241 9 | 2 355 414 10 | 3 142 475 11 | 4 920 38 12 | 5 451 304 13 | 6 425 256 14 | 7 937 725 15 | 8 778 104 16 | 9 320 885 17 | 10 461 377 18 | 11 434 985 19 | 12 263 313 20 | 13 96 676 21 | 14 520 752 22 | 15 529 39 23 | 16 563 228 24 | 17 984 856 25 | 18 961 277 26 | 19 661 513 27 | 20 113 733 28 | 21 23 266 29 | 22 177 345 30 | 23 609 995 31 | 24 130 885 32 | 25 693 933 33 | 26 45 986 34 | 27 475 300 35 | 28 296 682 36 | 29 622 676 37 | 30 283 411 38 | 31 823 951 39 | 32 24 953 40 | 33 208 509 41 | 34 263 470 42 | 35 965 805 43 | 36 300 104 44 | 37 237 36 45 | 38 299 777 46 | 39 621 810 47 | 40 587 896 48 | 41 627 934 49 | 42 137 529 50 | 43 425 683 51 | 44 498 755 52 | 45 500 15 53 | 46 843 641 54 | 47 638 515 55 | 48 518 926 56 | 49 714 913 57 | 50 326 526 58 | 51 260 419 59 | 52 34 457 60 | 53 119 289 61 | 54 720 212 62 | 55 135 71 63 | 56 130 771 64 | 57 381 346 65 | 58 679 256 66 | 59 689 93 67 | 60 541 902 68 | 61 751 903 69 | 62 208 232 70 | 63 731 997 71 | 64 28 323 72 | 65 54 298 73 | 66 928 504 74 | 67 742 722 75 | 68 443 765 76 | 69 287 799 77 | 70 914 739 78 | 71 544 34 79 | 72 646 895 80 | 73 576 539 81 | 74 653 357 82 | 75 907 669 83 | 76 617 21 84 | 77 334 912 85 | 78 887 787 86 | 79 114 365 87 | 80 856 703 88 | 81 901 386 89 | 82 397 383 90 | 83 883 930 91 | 84 418 632 92 | 85 447 512 93 | 86 850 796 94 | 87 998 56 95 | 88 827 900 96 | 89 66 593 97 | 90 616 677 98 | 91 352 185 99 | 92 675 996 100 | 93 955 850 101 | 94 632 522 102 | 95 809 121 103 | 96 401 76 104 | 97 851 453 105 | 98 630 550 106 | 99 540 630 107 | 100 348 428 108 | 101 149 278 109 | DEMAND_SECTION 110 | 1 0 111 | 2 51 112 | 3 64 113 | 4 88 114 | 5 7 115 | 6 19 116 | 7 62 117 | 8 34 118 | 9 24 119 | 10 38 120 | 11 80 121 | 12 90 122 | 13 17 123 | 14 37 124 | 15 88 125 | 16 75 126 | 17 29 127 | 18 74 128 | 19 12 129 | 20 88 130 | 21 5 131 | 22 25 132 | 23 82 133 | 24 23 134 | 25 51 135 | 26 47 136 | 27 20 137 | 28 73 138 | 29 37 139 | 30 38 140 | 31 78 141 | 32 78 142 | 33 18 143 | 34 44 144 | 35 33 145 | 36 10 146 | 37 70 147 | 38 2 148 | 39 20 149 | 40 28 150 | 41 23 151 | 42 12 152 | 43 46 153 | 44 62 154 | 45 59 155 | 46 22 156 | 47 85 157 | 48 88 158 | 49 24 159 | 50 76 160 | 51 95 161 | 52 45 162 | 53 89 163 | 54 95 164 | 55 23 165 | 56 90 166 | 57 71 167 | 58 45 168 | 59 14 169 | 60 85 170 | 61 87 171 | 62 71 172 | 63 37 173 | 64 52 174 | 65 43 175 | 66 14 176 | 67 72 177 | 68 12 178 | 69 33 179 | 70 26 180 | 71 62 181 | 72 73 182 | 73 38 183 | 74 30 184 | 75 34 185 | 76 44 186 | 77 12 187 | 78 69 188 | 79 47 189 | 80 25 190 | 81 63 191 | 82 46 192 | 83 9 193 | 84 16 194 | 85 73 195 | 86 23 196 | 87 49 197 | 88 91 198 | 89 97 199 | 90 75 200 | 91 54 201 | 92 56 202 | 93 48 203 | 94 87 204 | 95 4 205 | 96 59 206 | 97 71 207 | 98 94 208 | 99 31 209 | 100 19 210 | 101 67 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-27-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-27-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 732 7 | NODE_COORD_SECTION 8 | 1 933 248 9 | 2 790 550 10 | 3 758 795 11 | 4 944 722 12 | 5 979 491 13 | 6 383 535 14 | 7 292 976 15 | 8 475 813 16 | 9 418 199 17 | 10 911 396 18 | 11 678 893 19 | 12 727 369 20 | 13 700 622 21 | 14 541 693 22 | 15 324 515 23 | 16 596 69 24 | 17 596 749 25 | 18 187 214 26 | 19 272 183 27 | 20 513 132 28 | 21 406 811 29 | 22 453 631 30 | 23 973 959 31 | 24 375 311 32 | 25 213 352 33 | 26 839 658 34 | 27 171 222 35 | 28 505 96 36 | 29 69 165 37 | 30 338 619 38 | 31 168 817 39 | 32 744 123 40 | 33 453 778 41 | 34 462 938 42 | 35 546 604 43 | 36 545 607 44 | 37 750 674 45 | 38 111 142 46 | 39 998 554 47 | 40 515 967 48 | 41 92 758 49 | 42 129 135 50 | 43 740 220 51 | 44 214 641 52 | 45 999 42 53 | 46 346 332 54 | 47 285 925 55 | 48 164 770 56 | 49 594 525 57 | 50 583 98 58 | 51 190 634 59 | 52 27 706 60 | 53 744 594 61 | 54 826 650 62 | 55 479 907 63 | 56 578 230 64 | 57 786 588 65 | 58 833 742 66 | 59 907 388 67 | 60 836 143 68 | 61 277 661 69 | 62 90 729 70 | 63 133 361 71 | 64 484 414 72 | 65 184 763 73 | 66 12 109 74 | 67 104 675 75 | 68 598 757 76 | 69 260 519 77 | 70 177 364 78 | 71 355 620 79 | 72 787 130 80 | 73 728 605 81 | 74 585 746 82 | 75 762 942 83 | 76 320 303 84 | 77 588 930 85 | 78 953 771 86 | 79 591 241 87 | 80 10 922 88 | 81 912 190 89 | 82 80 302 90 | 83 772 627 91 | 84 431 726 92 | 85 957 902 93 | 86 780 385 94 | 87 820 248 95 | 88 563 69 96 | 89 731 834 97 | 90 520 973 98 | 91 548 112 99 | 92 513 113 100 | 93 61 932 101 | 94 430 589 102 | 95 248 766 103 | 96 455 227 104 | 97 759 499 105 | 98 944 220 106 | 99 236 655 107 | 100 664 912 108 | 101 96 951 109 | 102 756 130 110 | 103 318 133 111 | 104 444 669 112 | 105 939 729 113 | 106 277 825 114 | 107 809 586 115 | 108 49 428 116 | 109 266 569 117 | 110 745 679 118 | 111 717 563 119 | 112 829 228 120 | 113 562 717 121 | 114 130 423 122 | 115 618 694 123 | 116 523 93 124 | 117 967 378 125 | 118 673 973 126 | 119 725 558 127 | 120 364 160 128 | 121 70 53 129 | 122 367 357 130 | 123 769 822 131 | 124 711 421 132 | 125 396 514 133 | 126 873 926 134 | 127 95 88 135 | 128 313 106 136 | 129 127 11 137 | 130 719 748 138 | 131 520 366 139 | 132 882 384 140 | 133 340 687 141 | 134 894 481 142 | 135 411 823 143 | 136 109 990 144 | 137 562 432 145 | 138 694 423 146 | 139 432 723 147 | 140 46 989 148 | 141 601 151 149 | 142 836 413 150 | 143 230 344 151 | 144 397 598 152 | 145 539 837 153 | 146 700 463 154 | 147 167 307 155 | 148 449 990 156 | 149 604 813 157 | 150 819 185 158 | 151 204 993 159 | 152 190 971 160 | 153 157 919 161 | 154 972 30 162 | 155 904 919 163 | 156 464 794 164 | 157 452 990 165 | 158 914 159 166 | 159 731 282 167 | 160 985 32 168 | 161 997 102 169 | 162 32 428 170 | 163 471 210 171 | 164 372 774 172 | 165 799 870 173 | 166 619 776 174 | 167 579 475 175 | 168 907 479 176 | 169 170 279 177 | 170 616 608 178 | 171 877 127 179 | 172 473 509 180 | 173 172 976 181 | 174 570 154 182 | 175 501 623 183 | 176 1 940 184 | 177 31 207 185 | 178 615 90 186 | 179 180 285 187 | 180 390 386 188 | 181 382 207 189 | 182 999 814 190 | 183 171 43 191 | 184 174 791 192 | 185 653 693 193 | 186 471 589 194 | 187 305 736 195 | 188 82 671 196 | 189 210 981 197 | 190 975 236 198 | 191 545 858 199 | 192 789 990 200 | 193 160 299 201 | 194 997 748 202 | 195 7 372 203 | 196 732 274 204 | 197 435 526 205 | 198 736 540 206 | 199 975 946 207 | 200 781 781 208 | 201 82 598 209 | DEMAND_SECTION 210 | 1 0 211 | 2 52 212 | 3 55 213 | 4 58 214 | 5 59 215 | 6 49 216 | 7 16 217 | 8 41 218 | 9 47 219 | 10 63 220 | 11 55 221 | 12 36 222 | 13 30 223 | 14 21 224 | 15 19 225 | 16 48 226 | 17 18 227 | 18 63 228 | 19 60 229 | 20 42 230 | 21 90 231 | 22 63 232 | 23 60 233 | 24 19 234 | 25 39 235 | 26 65 236 | 27 41 237 | 28 13 238 | 29 64 239 | 30 81 240 | 31 38 241 | 32 60 242 | 33 92 243 | 34 23 244 | 35 46 245 | 36 43 246 | 37 28 247 | 38 22 248 | 39 26 249 | 40 98 250 | 41 14 251 | 42 2 252 | 43 81 253 | 44 33 254 | 45 28 255 | 46 65 256 | 47 97 257 | 48 50 258 | 49 90 259 | 50 51 260 | 51 17 261 | 52 48 262 | 53 2 263 | 54 66 264 | 55 52 265 | 56 18 266 | 57 4 267 | 58 27 268 | 59 63 269 | 60 69 270 | 61 78 271 | 62 62 272 | 63 9 273 | 64 14 274 | 65 69 275 | 66 80 276 | 67 1 277 | 68 26 278 | 69 57 279 | 70 21 280 | 71 64 281 | 72 52 282 | 73 5 283 | 74 55 284 | 75 29 285 | 76 71 286 | 77 72 287 | 78 59 288 | 79 86 289 | 80 27 290 | 81 43 291 | 82 73 292 | 83 61 293 | 84 36 294 | 85 42 295 | 86 25 296 | 87 47 297 | 88 86 298 | 89 20 299 | 90 26 300 | 91 41 301 | 92 85 302 | 93 18 303 | 94 30 304 | 95 26 305 | 96 36 306 | 97 9 307 | 98 85 308 | 99 79 309 | 100 2 310 | 101 1 311 | 102 42 312 | 103 66 313 | 104 10 314 | 105 66 315 | 106 89 316 | 107 95 317 | 108 95 318 | 109 36 319 | 110 43 320 | 111 95 321 | 112 84 322 | 113 2 323 | 114 95 324 | 115 60 325 | 116 21 326 | 117 38 327 | 118 86 328 | 119 37 329 | 120 50 330 | 121 93 331 | 122 75 332 | 123 8 333 | 124 89 334 | 125 62 335 | 126 76 336 | 127 50 337 | 128 85 338 | 129 9 339 | 130 35 340 | 131 27 341 | 132 86 342 | 133 69 343 | 134 23 344 | 135 66 345 | 136 57 346 | 137 14 347 | 138 61 348 | 139 23 349 | 140 89 350 | 141 94 351 | 142 41 352 | 143 5 353 | 144 30 354 | 145 25 355 | 146 58 356 | 147 10 357 | 148 23 358 | 149 17 359 | 150 26 360 | 151 13 361 | 152 44 362 | 153 43 363 | 154 3 364 | 155 20 365 | 156 6 366 | 157 90 367 | 158 83 368 | 159 86 369 | 160 66 370 | 161 79 371 | 162 51 372 | 163 26 373 | 164 75 374 | 165 22 375 | 166 57 376 | 167 58 377 | 168 21 378 | 169 61 379 | 170 57 380 | 171 48 381 | 172 69 382 | 173 25 383 | 174 9 384 | 175 75 385 | 176 35 386 | 177 7 387 | 178 77 388 | 179 38 389 | 180 68 390 | 181 63 391 | 182 86 392 | 183 10 393 | 184 97 394 | 185 21 395 | 186 43 396 | 187 97 397 | 188 87 398 | 189 4 399 | 190 71 400 | 191 27 401 | 192 16 402 | 193 16 403 | 194 81 404 | 195 74 405 | 196 23 406 | 197 12 407 | 198 25 408 | 199 11 409 | 200 31 410 | 201 4 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-28-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-28-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 354 7 | NODE_COORD_SECTION 8 | 1 21 174 9 | 2 222 932 10 | 3 972 288 11 | 4 189 919 12 | 5 792 1 13 | 6 500 324 14 | 7 172 775 15 | 8 980 911 16 | 9 432 453 17 | 10 124 326 18 | 11 178 218 19 | 12 939 842 20 | 13 579 284 21 | 14 574 574 22 | 15 24 302 23 | 16 38 190 24 | 17 451 796 25 | 18 460 197 26 | 19 445 320 27 | 20 423 753 28 | 21 498 405 29 | 22 540 258 30 | 23 655 795 31 | 24 821 591 32 | 25 240 766 33 | 26 121 792 34 | 27 25 2 35 | 28 477 842 36 | 29 423 570 37 | 30 665 653 38 | 31 924 427 39 | 32 327 524 40 | 33 779 800 41 | 34 766 148 42 | 35 69 418 43 | 36 685 490 44 | 37 1000 987 45 | 38 651 78 46 | 39 878 572 47 | 40 115 500 48 | 41 647 243 49 | 42 391 48 50 | 43 316 229 51 | 44 332 681 52 | 45 126 878 53 | 46 311 596 54 | 47 852 935 55 | 48 207 395 56 | 49 954 62 57 | 50 690 606 58 | 51 406 362 59 | DEMAND_SECTION 60 | 1 0 61 | 2 3 62 | 3 19 63 | 4 83 64 | 5 78 65 | 6 7 66 | 7 53 67 | 8 7 68 | 9 85 69 | 10 25 70 | 11 33 71 | 12 9 72 | 13 66 73 | 14 48 74 | 15 52 75 | 16 75 76 | 17 66 77 | 18 38 78 | 19 64 79 | 20 18 80 | 21 76 81 | 22 85 82 | 23 8 83 | 24 11 84 | 25 14 85 | 26 54 86 | 27 27 87 | 28 90 88 | 29 78 89 | 30 45 90 | 31 94 91 | 32 20 92 | 33 58 93 | 34 7 94 | 35 93 95 | 36 32 96 | 37 60 97 | 38 39 98 | 39 9 99 | 40 5 100 | 41 54 101 | 42 65 102 | 43 23 103 | 44 48 104 | 45 59 105 | 46 10 106 | 47 11 107 | 48 61 108 | 49 43 109 | 50 51 110 | 51 23 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-29-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-29-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 542 7 | NODE_COORD_SECTION 8 | 1 247 173 9 | 2 51 744 10 | 3 910 314 11 | 4 252 731 12 | 5 580 656 13 | 6 589 946 14 | 7 731 836 15 | 8 698 217 16 | 9 582 380 17 | 10 619 475 18 | 11 394 610 19 | 12 693 320 20 | 13 525 367 21 | 14 709 69 22 | 15 171 370 23 | 16 11 564 24 | 17 200 163 25 | 18 936 218 26 | 19 512 977 27 | 20 404 45 28 | 21 111 47 29 | 22 886 404 30 | 23 420 266 31 | 24 907 278 32 | 25 960 534 33 | 26 955 455 34 | 27 398 587 35 | 28 433 781 36 | 29 815 180 37 | 30 858 377 38 | 31 111 821 39 | 32 257 878 40 | 33 705 662 41 | 34 312 123 42 | 35 318 921 43 | 36 292 676 44 | 37 896 20 45 | 38 214 222 46 | 39 989 495 47 | 40 934 58 48 | 41 628 752 49 | 42 916 491 50 | 43 235 220 51 | 44 262 389 52 | 45 707 739 53 | 46 498 131 54 | 47 766 75 55 | 48 653 142 56 | 49 848 602 57 | 50 496 549 58 | 51 443 43 59 | 52 903 722 60 | 53 419 695 61 | 54 976 679 62 | 55 843 763 63 | 56 814 78 64 | 57 358 89 65 | 58 150 623 66 | 59 282 792 67 | 60 276 949 68 | 61 812 352 69 | 62 429 622 70 | 63 853 302 71 | 64 160 490 72 | 65 178 869 73 | 66 727 764 74 | 67 848 974 75 | 68 672 761 76 | 69 47 1000 77 | 70 541 423 78 | 71 561 89 79 | 72 258 661 80 | 73 674 61 81 | 74 23 75 82 | 75 896 88 83 | 76 216 106 84 | DEMAND_SECTION 85 | 1 0 86 | 2 81 87 | 3 98 88 | 4 94 89 | 5 63 90 | 6 64 91 | 7 64 92 | 8 3 93 | 9 10 94 | 10 99 95 | 11 45 96 | 12 58 97 | 13 5 98 | 14 99 99 | 15 81 100 | 16 78 101 | 17 40 102 | 18 9 103 | 19 17 104 | 20 18 105 | 21 22 106 | 22 82 107 | 23 35 108 | 24 74 109 | 25 42 110 | 26 38 111 | 27 11 112 | 28 59 113 | 29 4 114 | 30 14 115 | 31 83 116 | 32 24 117 | 33 39 118 | 34 90 119 | 35 10 120 | 36 72 121 | 37 50 122 | 38 43 123 | 39 33 124 | 40 57 125 | 41 58 126 | 42 95 127 | 43 35 128 | 44 40 129 | 45 18 130 | 46 47 131 | 47 13 132 | 48 34 133 | 49 3 134 | 50 61 135 | 51 11 136 | 52 2 137 | 53 89 138 | 54 34 139 | 55 38 140 | 56 42 141 | 57 73 142 | 58 25 143 | 59 37 144 | 60 52 145 | 61 22 146 | 62 62 147 | 63 74 148 | 64 19 149 | 65 13 150 | 66 64 151 | 67 69 152 | 68 95 153 | 69 47 154 | 70 24 155 | 71 90 156 | 72 11 157 | 73 35 158 | 74 36 159 | 75 91 160 | 76 42 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-3-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-3-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 755 7 | NODE_COORD_SECTION 8 | 1 544 108 9 | 2 513 687 10 | 3 802 679 11 | 4 564 456 12 | 5 371 433 13 | 6 401 945 14 | 7 97 574 15 | 8 299 933 16 | 9 246 530 17 | 10 528 814 18 | 11 399 867 19 | 12 411 570 20 | 13 648 185 21 | 14 350 536 22 | 15 321 606 23 | 16 632 998 24 | 17 139 544 25 | 18 553 712 26 | 19 44 5 27 | 20 457 119 28 | 21 849 500 29 | 22 358 926 30 | 23 290 843 31 | 24 766 559 32 | 25 29 462 33 | 26 362 40 34 | 27 84 108 35 | 28 140 108 36 | 29 550 933 37 | 30 369 68 38 | 31 193 264 39 | 32 950 229 40 | 33 172 651 41 | 34 55 113 42 | 35 723 497 43 | 36 381 919 44 | 37 129 180 45 | 38 487 542 46 | 39 263 192 47 | 40 288 966 48 | 41 822 519 49 | 42 909 202 50 | 43 373 954 51 | 44 255 472 52 | 45 470 979 53 | 46 130 288 54 | 47 571 547 55 | 48 323 314 56 | 49 577 481 57 | 50 916 685 58 | 51 106 995 59 | 52 410 565 60 | 53 344 322 61 | 54 697 986 62 | 55 113 496 63 | 56 418 347 64 | 57 989 572 65 | 58 329 612 66 | 59 593 607 67 | 60 854 899 68 | 61 998 637 69 | 62 222 717 70 | 63 665 119 71 | 64 46 140 72 | 65 958 671 73 | 66 4 866 74 | 67 365 770 75 | 68 101 363 76 | 69 672 830 77 | 70 859 316 78 | 71 807 973 79 | 72 49 714 80 | 73 804 300 81 | 74 591 406 82 | 75 473 5 83 | 76 868 898 84 | 77 281 76 85 | 78 739 670 86 | 79 935 155 87 | 80 489 267 88 | 81 681 47 89 | 82 984 801 90 | 83 653 1000 91 | 84 36 491 92 | 85 717 669 93 | 86 940 138 94 | 87 83 654 95 | 88 811 998 96 | 89 81 135 97 | 90 988 605 98 | 91 928 131 99 | 92 882 699 100 | 93 276 696 101 | 94 877 843 102 | 95 339 394 103 | 96 218 707 104 | 97 80 178 105 | 98 259 902 106 | 99 256 10 107 | 100 665 618 108 | 101 1000 500 109 | 102 868 749 110 | 103 13 981 111 | 104 557 332 112 | 105 959 172 113 | 106 481 846 114 | 107 444 463 115 | 108 705 136 116 | 109 363 813 117 | 110 898 713 118 | 111 517 345 119 | 112 324 674 120 | 113 763 331 121 | 114 227 332 122 | 115 42 486 123 | 116 615 53 124 | 117 780 946 125 | 118 236 809 126 | 119 195 282 127 | 120 908 58 128 | 121 77 97 129 | 122 477 233 130 | 123 83 163 131 | 124 172 320 132 | 125 945 203 133 | 126 274 423 134 | 127 186 859 135 | 128 786 83 136 | 129 447 202 137 | 130 467 242 138 | 131 131 367 139 | 132 206 18 140 | 133 573 388 141 | 134 902 587 142 | 135 415 592 143 | 136 847 134 144 | 137 476 895 145 | 138 323 338 146 | 139 745 906 147 | 140 420 446 148 | 141 639 932 149 | 142 72 343 150 | 143 482 873 151 | 144 686 208 152 | 145 418 934 153 | 146 668 799 154 | 147 415 444 155 | 148 639 622 156 | 149 745 676 157 | 150 926 430 158 | 151 536 206 159 | 152 597 152 160 | 153 423 55 161 | 154 575 605 162 | 155 890 90 163 | 156 830 511 164 | 157 773 26 165 | 158 742 483 166 | 159 522 726 167 | 160 631 869 168 | 161 433 738 169 | 162 58 507 170 | 163 142 408 171 | 164 147 257 172 | 165 918 223 173 | 166 963 447 174 | 167 509 430 175 | 168 327 61 176 | 169 28 773 177 | 170 1000 731 178 | 171 740 585 179 | 172 886 241 180 | 173 842 918 181 | 174 979 88 182 | 175 750 156 183 | 176 244 442 184 | 177 552 478 185 | 178 63 133 186 | 179 417 248 187 | 180 64 685 188 | 181 765 607 189 | 182 651 816 190 | 183 840 330 191 | 184 830 429 192 | 185 325 264 193 | 186 452 686 194 | 187 556 317 195 | 188 21 44 196 | 189 163 946 197 | 190 723 317 198 | 191 622 79 199 | 192 670 921 200 | 193 424 0 201 | 194 367 600 202 | 195 534 832 203 | 196 436 449 204 | 197 424 508 205 | 198 137 659 206 | 199 162 424 207 | 200 268 795 208 | 201 40 179 209 | DEMAND_SECTION 210 | 1 0 211 | 2 23 212 | 3 95 213 | 4 97 214 | 5 99 215 | 6 8 216 | 7 44 217 | 8 37 218 | 9 5 219 | 10 6 220 | 11 57 221 | 12 54 222 | 13 25 223 | 14 33 224 | 15 20 225 | 16 46 226 | 17 94 227 | 18 59 228 | 19 38 229 | 20 76 230 | 21 34 231 | 22 18 232 | 23 48 233 | 24 62 234 | 25 41 235 | 26 63 236 | 27 31 237 | 28 14 238 | 29 28 239 | 30 58 240 | 31 91 241 | 32 40 242 | 33 52 243 | 34 87 244 | 35 98 245 | 36 9 246 | 37 79 247 | 38 27 248 | 39 2 249 | 40 5 250 | 41 78 251 | 42 34 252 | 43 78 253 | 44 59 254 | 45 8 255 | 46 19 256 | 47 85 257 | 48 66 258 | 49 36 259 | 50 86 260 | 51 38 261 | 52 47 262 | 53 83 263 | 54 84 264 | 55 44 265 | 56 63 266 | 57 33 267 | 58 32 268 | 59 93 269 | 60 33 270 | 61 65 271 | 62 1 272 | 63 74 273 | 64 98 274 | 65 63 275 | 66 60 276 | 67 59 277 | 68 59 278 | 69 36 279 | 70 18 280 | 71 39 281 | 72 34 282 | 73 89 283 | 74 34 284 | 75 9 285 | 76 62 286 | 77 85 287 | 78 92 288 | 79 24 289 | 80 59 290 | 81 85 291 | 82 55 292 | 83 82 293 | 84 23 294 | 85 81 295 | 86 49 296 | 87 12 297 | 88 86 298 | 89 51 299 | 90 53 300 | 91 52 301 | 92 4 302 | 93 79 303 | 94 86 304 | 95 95 305 | 96 9 306 | 97 27 307 | 98 59 308 | 99 87 309 | 100 59 310 | 101 17 311 | 102 6 312 | 103 42 313 | 104 50 314 | 105 89 315 | 106 76 316 | 107 3 317 | 108 57 318 | 109 30 319 | 110 13 320 | 111 50 321 | 112 39 322 | 113 62 323 | 114 33 324 | 115 19 325 | 116 75 326 | 117 43 327 | 118 17 328 | 119 65 329 | 120 46 330 | 121 20 331 | 122 78 332 | 123 48 333 | 124 61 334 | 125 22 335 | 126 2 336 | 127 9 337 | 128 5 338 | 129 32 339 | 130 88 340 | 131 16 341 | 132 66 342 | 133 80 343 | 134 74 344 | 135 67 345 | 136 85 346 | 137 80 347 | 138 5 348 | 139 13 349 | 140 85 350 | 141 26 351 | 142 79 352 | 143 27 353 | 144 29 354 | 145 40 355 | 146 3 356 | 147 77 357 | 148 11 358 | 149 75 359 | 150 28 360 | 151 63 361 | 152 80 362 | 153 36 363 | 154 65 364 | 155 57 365 | 156 33 366 | 157 61 367 | 158 16 368 | 159 65 369 | 160 7 370 | 161 4 371 | 162 22 372 | 163 26 373 | 164 4 374 | 165 91 375 | 166 48 376 | 167 66 377 | 168 25 378 | 169 15 379 | 170 78 380 | 171 40 381 | 172 24 382 | 173 3 383 | 174 76 384 | 175 77 385 | 176 74 386 | 177 65 387 | 178 58 388 | 179 24 389 | 180 40 390 | 181 74 391 | 182 92 392 | 183 56 393 | 184 75 394 | 185 44 395 | 186 36 396 | 187 30 397 | 188 52 398 | 189 82 399 | 190 51 400 | 191 83 401 | 192 33 402 | 193 52 403 | 194 13 404 | 195 27 405 | 196 50 406 | 197 16 407 | 198 93 408 | 199 44 409 | 200 98 410 | 201 12 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-30-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-30-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 867 7 | NODE_COORD_SECTION 8 | 1 561 976 9 | 2 265 809 10 | 3 336 360 11 | 4 986 154 12 | 5 209 991 13 | 6 500 620 14 | 7 430 143 15 | 8 817 934 16 | 9 216 425 17 | 10 147 8 18 | 11 178 99 19 | 12 425 251 20 | 13 579 545 21 | 14 427 930 22 | 15 226 592 23 | 16 892 607 24 | 17 204 47 25 | 18 985 797 26 | 19 494 3 27 | 20 130 10 28 | 21 222 44 29 | 22 245 212 30 | 23 606 958 31 | 24 11 300 32 | 25 115 912 33 | 26 731 663 34 | 27 15 687 35 | 28 654 436 36 | 29 673 617 37 | 30 116 953 38 | 31 601 679 39 | 32 767 750 40 | 33 261 520 41 | 34 408 630 42 | 35 195 116 43 | 36 77 325 44 | 37 176 283 45 | 38 913 438 46 | 39 728 881 47 | 40 486 414 48 | 41 576 985 49 | 42 384 265 50 | 43 170 81 51 | 44 277 218 52 | 45 74 69 53 | 46 130 840 54 | 47 28 954 55 | 48 48 357 56 | 49 937 466 57 | 50 559 351 58 | 51 3 213 59 | 52 417 709 60 | 53 408 780 61 | 54 631 506 62 | 55 503 983 63 | 56 646 585 64 | 57 656 203 65 | 58 239 941 66 | 59 501 285 67 | 60 889 145 68 | 61 362 893 69 | 62 70 459 70 | 63 835 182 71 | 64 462 239 72 | 65 701 671 73 | 66 167 423 74 | 67 649 403 75 | 68 255 787 76 | 69 200 206 77 | 70 6 765 78 | 71 33 723 79 | 72 756 601 80 | 73 898 828 81 | 74 796 310 82 | 75 940 664 83 | 76 195 741 84 | 77 176 903 85 | 78 951 520 86 | 79 366 768 87 | 80 581 94 88 | 81 338 949 89 | 82 319 452 90 | 83 973 19 91 | 84 338 224 92 | 85 759 960 93 | 86 982 589 94 | 87 908 56 95 | 88 349 0 96 | 89 110 621 97 | 90 601 709 98 | 91 584 343 99 | 92 111 853 100 | 93 489 921 101 | 94 801 365 102 | 95 310 735 103 | 96 925 217 104 | 97 465 52 105 | 98 610 191 106 | 99 371 910 107 | 100 805 888 108 | 101 983 852 109 | DEMAND_SECTION 110 | 1 0 111 | 2 60 112 | 3 25 113 | 4 55 114 | 5 16 115 | 6 17 116 | 7 29 117 | 8 63 118 | 9 55 119 | 10 2 120 | 11 69 121 | 12 72 122 | 13 11 123 | 14 68 124 | 15 16 125 | 16 7 126 | 17 87 127 | 18 76 128 | 19 45 129 | 20 32 130 | 21 69 131 | 22 85 132 | 23 33 133 | 24 93 134 | 25 24 135 | 26 12 136 | 27 2 137 | 28 62 138 | 29 24 139 | 30 39 140 | 31 48 141 | 32 71 142 | 33 66 143 | 34 55 144 | 35 81 145 | 36 71 146 | 37 83 147 | 38 60 148 | 39 53 149 | 40 97 150 | 41 95 151 | 42 50 152 | 43 11 153 | 44 73 154 | 45 71 155 | 46 49 156 | 47 19 157 | 48 87 158 | 49 32 159 | 50 52 160 | 51 77 161 | 52 53 162 | 53 57 163 | 54 8 164 | 55 93 165 | 56 70 166 | 57 12 167 | 58 10 168 | 59 55 169 | 60 33 170 | 61 16 171 | 62 35 172 | 63 72 173 | 64 73 174 | 65 5 175 | 66 41 176 | 67 89 177 | 68 92 178 | 69 67 179 | 70 31 180 | 71 81 181 | 72 49 182 | 73 2 183 | 74 47 184 | 75 30 185 | 76 66 186 | 77 76 187 | 78 7 188 | 79 85 189 | 80 47 190 | 81 69 191 | 82 23 192 | 83 15 193 | 84 21 194 | 85 79 195 | 86 15 196 | 87 82 197 | 88 89 198 | 89 29 199 | 90 31 200 | 91 85 201 | 92 59 202 | 93 30 203 | 94 71 204 | 95 4 205 | 96 44 206 | 97 13 207 | 98 96 208 | 99 23 209 | 100 54 210 | 101 39 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-31-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-31-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 500 7 | NODE_COORD_SECTION 8 | 1 967 378 9 | 2 149 362 10 | 3 496 224 11 | 4 649 76 12 | 5 123 267 13 | 6 385 531 14 | 7 250 13 15 | 8 633 244 16 | 9 423 860 17 | 10 151 583 18 | 11 601 856 19 | 12 835 493 20 | 13 410 760 21 | 14 130 907 22 | 15 573 751 23 | 16 143 211 24 | 17 797 863 25 | 18 315 209 26 | 19 478 767 27 | 20 82 199 28 | 21 793 735 29 | 22 356 469 30 | 23 915 583 31 | 24 469 307 32 | 25 54 812 33 | 26 601 75 34 | 27 247 10 35 | 28 941 666 36 | 29 906 968 37 | 30 728 999 38 | 31 873 342 39 | 32 259 884 40 | 33 955 560 41 | 34 229 198 42 | 35 684 750 43 | 36 408 714 44 | 37 486 331 45 | 38 608 42 46 | 39 254 735 47 | 40 932 509 48 | 41 918 993 49 | 42 245 997 50 | 43 523 0 51 | 44 442 730 52 | 45 374 657 53 | 46 546 728 54 | 47 949 168 55 | 48 535 416 56 | 49 26 208 57 | 50 767 855 58 | 51 883 423 59 | 52 687 494 60 | 53 405 828 61 | 54 231 528 62 | 55 196 366 63 | 56 103 479 64 | 57 543 889 65 | 58 125 754 66 | 59 525 573 67 | 60 259 979 68 | 61 22 966 69 | 62 763 199 70 | 63 198 54 71 | 64 190 182 72 | 65 762 277 73 | 66 270 115 74 | 67 866 151 75 | 68 344 26 76 | 69 564 242 77 | 70 269 116 78 | 71 849 295 79 | 72 881 781 80 | 73 759 29 81 | 74 99 284 82 | 75 53 621 83 | 76 255 164 84 | 77 279 286 85 | 78 663 820 86 | 79 809 135 87 | 80 233 141 88 | 81 436 720 89 | 82 964 541 90 | 83 570 799 91 | 84 461 78 92 | 85 252 421 93 | 86 8 182 94 | 87 78 552 95 | 88 50 779 96 | 89 781 739 97 | 90 392 805 98 | 91 977 912 99 | 92 534 601 100 | 93 835 627 101 | 94 673 812 102 | 95 834 883 103 | 96 984 746 104 | 97 463 929 105 | 98 586 300 106 | 99 388 767 107 | 100 598 937 108 | 101 697 699 109 | 102 487 106 110 | 103 755 374 111 | 104 314 731 112 | 105 413 680 113 | 106 123 523 114 | 107 361 491 115 | 108 704 990 116 | 109 753 35 117 | 110 271 394 118 | 111 73 157 119 | 112 395 499 120 | 113 882 260 121 | 114 996 30 122 | 115 234 610 123 | 116 447 202 124 | 117 461 803 125 | 118 599 42 126 | 119 880 450 127 | 120 872 287 128 | 121 59 834 129 | 122 145 83 130 | 123 691 852 131 | 124 116 683 132 | 125 337 694 133 | 126 83 784 134 | 127 197 224 135 | 128 597 177 136 | 129 314 246 137 | 130 733 683 138 | 131 37 658 139 | 132 733 530 140 | 133 447 941 141 | 134 62 492 142 | 135 157 430 143 | 136 291 148 144 | 137 153 135 145 | 138 758 146 146 | 139 511 490 147 | 140 734 185 148 | 141 51 707 149 | 142 450 449 150 | 143 7 450 151 | 144 487 203 152 | 145 993 101 153 | 146 897 303 154 | 147 979 990 155 | 148 766 732 156 | 149 111 884 157 | 150 419 587 158 | 151 287 691 159 | 152 61 58 160 | 153 563 965 161 | 154 176 854 162 | 155 715 227 163 | 156 92 630 164 | 157 286 421 165 | 158 862 367 166 | 159 136 715 167 | 160 482 535 168 | 161 915 690 169 | 162 801 480 170 | 163 425 702 171 | 164 596 464 172 | 165 811 105 173 | 166 64 116 174 | 167 590 692 175 | 168 887 496 176 | 169 19 729 177 | 170 962 220 178 | 171 693 663 179 | 172 381 302 180 | 173 432 661 181 | 174 854 256 182 | 175 294 468 183 | 176 459 305 184 | 177 53 860 185 | 178 88 155 186 | 179 479 617 187 | 180 811 74 188 | 181 840 469 189 | 182 254 264 190 | 183 641 327 191 | 184 235 734 192 | 185 158 784 193 | 186 709 26 194 | 187 286 729 195 | 188 429 377 196 | 189 231 120 197 | 190 357 972 198 | 191 54 275 199 | 192 152 147 200 | 193 681 505 201 | 194 289 980 202 | 195 485 426 203 | 196 917 327 204 | 197 736 394 205 | 198 273 905 206 | 199 233 568 207 | 200 432 580 208 | 201 731 894 209 | DEMAND_SECTION 210 | 1 0 211 | 2 34 212 | 3 74 213 | 4 58 214 | 5 47 215 | 6 63 216 | 7 81 217 | 8 24 218 | 9 1 219 | 10 27 220 | 11 20 221 | 12 77 222 | 13 71 223 | 14 98 224 | 15 84 225 | 16 75 226 | 17 73 227 | 18 85 228 | 19 71 229 | 20 77 230 | 21 76 231 | 22 25 232 | 23 58 233 | 24 45 234 | 25 13 235 | 26 24 236 | 27 23 237 | 28 69 238 | 29 58 239 | 30 25 240 | 31 38 241 | 32 72 242 | 33 93 243 | 34 25 244 | 35 95 245 | 36 11 246 | 37 22 247 | 38 21 248 | 39 22 249 | 40 36 250 | 41 98 251 | 42 85 252 | 43 33 253 | 44 39 254 | 45 79 255 | 46 1 256 | 47 66 257 | 48 96 258 | 49 91 259 | 50 69 260 | 51 28 261 | 52 8 262 | 53 65 263 | 54 23 264 | 55 29 265 | 56 20 266 | 57 5 267 | 58 31 268 | 59 19 269 | 60 12 270 | 61 26 271 | 62 82 272 | 63 78 273 | 64 90 274 | 65 70 275 | 66 4 276 | 67 42 277 | 68 66 278 | 69 12 279 | 70 68 280 | 71 97 281 | 72 10 282 | 73 1 283 | 74 34 284 | 75 22 285 | 76 68 286 | 77 48 287 | 78 10 288 | 79 48 289 | 80 21 290 | 81 26 291 | 82 82 292 | 83 82 293 | 84 93 294 | 85 99 295 | 86 44 296 | 87 50 297 | 88 11 298 | 89 1 299 | 90 60 300 | 91 26 301 | 92 52 302 | 93 20 303 | 94 99 304 | 95 92 305 | 96 26 306 | 97 75 307 | 98 95 308 | 99 70 309 | 100 9 310 | 101 66 311 | 102 7 312 | 103 63 313 | 104 90 314 | 105 73 315 | 106 51 316 | 107 42 317 | 108 71 318 | 109 54 319 | 110 70 320 | 111 41 321 | 112 1 322 | 113 13 323 | 114 18 324 | 115 82 325 | 116 47 326 | 117 12 327 | 118 66 328 | 119 7 329 | 120 96 330 | 121 25 331 | 122 46 332 | 123 19 333 | 124 48 334 | 125 39 335 | 126 5 336 | 127 80 337 | 128 80 338 | 129 33 339 | 130 76 340 | 131 79 341 | 132 18 342 | 133 44 343 | 134 27 344 | 135 82 345 | 136 61 346 | 137 82 347 | 138 89 348 | 139 28 349 | 140 77 350 | 141 51 351 | 142 85 352 | 143 71 353 | 144 17 354 | 145 42 355 | 146 6 356 | 147 39 357 | 148 88 358 | 149 32 359 | 150 96 360 | 151 73 361 | 152 70 362 | 153 73 363 | 154 58 364 | 155 90 365 | 156 89 366 | 157 26 367 | 158 56 368 | 159 52 369 | 160 34 370 | 161 50 371 | 162 32 372 | 163 60 373 | 164 63 374 | 165 90 375 | 166 94 376 | 167 67 377 | 168 68 378 | 169 94 379 | 170 89 380 | 171 93 381 | 172 77 382 | 173 79 383 | 174 26 384 | 175 90 385 | 176 26 386 | 177 76 387 | 178 13 388 | 179 23 389 | 180 82 390 | 181 83 391 | 182 36 392 | 183 11 393 | 184 43 394 | 185 37 395 | 186 19 396 | 187 20 397 | 188 41 398 | 189 1 399 | 190 72 400 | 191 85 401 | 192 82 402 | 193 76 403 | 194 88 404 | 195 34 405 | 196 78 406 | 197 5 407 | 198 26 408 | 199 23 409 | 200 70 410 | 201 89 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-32-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-32-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 800 7 | NODE_COORD_SECTION 8 | 1 278 59 9 | 2 761 496 10 | 3 390 621 11 | 4 809 332 12 | 5 891 948 13 | 6 638 89 14 | 7 462 860 15 | 8 429 231 16 | 9 364 70 17 | 10 697 87 18 | 11 277 747 19 | 12 1 858 20 | 13 925 73 21 | 14 760 208 22 | 15 316 47 23 | 16 557 835 24 | 17 84 547 25 | 18 179 235 26 | 19 26 195 27 | 20 177 134 28 | 21 901 705 29 | 22 450 331 30 | 23 485 632 31 | 24 985 429 32 | 25 952 383 33 | 26 961 536 34 | 27 165 416 35 | 28 184 102 36 | 29 616 337 37 | 30 724 958 38 | 31 300 757 39 | 32 15 586 40 | 33 635 679 41 | 34 701 200 42 | 35 166 111 43 | 36 500 744 44 | 37 492 855 45 | 38 335 198 46 | 39 346 332 47 | 40 550 341 48 | 41 273 301 49 | 42 938 43 50 | 43 170 862 51 | 44 820 538 52 | 45 124 605 53 | 46 63 210 54 | 47 518 340 55 | 48 485 21 56 | 49 270 639 57 | 50 795 433 58 | 51 349 397 59 | DEMAND_SECTION 60 | 1 0 61 | 2 14 62 | 3 37 63 | 4 15 64 | 5 64 65 | 6 3 66 | 7 2 67 | 8 9 68 | 9 54 69 | 10 38 70 | 11 33 71 | 12 14 72 | 13 67 73 | 14 66 74 | 15 36 75 | 16 14 76 | 17 40 77 | 18 64 78 | 19 53 79 | 20 53 80 | 21 75 81 | 22 74 82 | 23 41 83 | 24 30 84 | 25 97 85 | 26 32 86 | 27 73 87 | 28 65 88 | 29 36 89 | 30 62 90 | 31 93 91 | 32 33 92 | 33 33 93 | 34 84 94 | 35 45 95 | 36 31 96 | 37 91 97 | 38 24 98 | 39 69 99 | 40 85 100 | 41 73 101 | 42 95 102 | 43 81 103 | 44 76 104 | 45 16 105 | 46 10 106 | 47 63 107 | 48 56 108 | 49 71 109 | 50 59 110 | 51 64 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-33-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-33-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 322 7 | NODE_COORD_SECTION 8 | 1 298 489 9 | 2 510 732 10 | 3 415 219 11 | 4 466 957 12 | 5 387 135 13 | 6 213 18 14 | 7 833 516 15 | 8 301 440 16 | 9 875 439 17 | 10 591 972 18 | 11 635 11 19 | 12 522 779 20 | 13 667 238 21 | 14 688 257 22 | 15 918 541 23 | 16 976 359 24 | 17 310 502 25 | 18 452 344 26 | 19 199 797 27 | 20 769 41 28 | 21 836 786 29 | 22 109 894 30 | 23 21 836 31 | 24 506 82 32 | 25 945 315 33 | 26 938 474 34 | 27 913 849 35 | 28 777 202 36 | 29 233 746 37 | 30 917 597 38 | 31 56 846 39 | 32 729 720 40 | 33 249 686 41 | 34 771 470 42 | 35 474 416 43 | 36 424 674 44 | 37 737 605 45 | 38 969 80 46 | 39 672 577 47 | 40 168 196 48 | 41 765 116 49 | 42 169 19 50 | 43 34 197 51 | 44 43 984 52 | 45 442 982 53 | 46 87 119 54 | 47 164 220 55 | 48 381 973 56 | 49 123 112 57 | 50 992 980 58 | 51 797 268 59 | 52 601 67 60 | 53 469 848 61 | 54 920 898 62 | 55 167 723 63 | 56 579 168 64 | 57 856 567 65 | 58 797 686 66 | 59 236 412 67 | 60 304 799 68 | 61 4 937 69 | 62 261 886 70 | 63 703 341 71 | 64 848 249 72 | 65 11 561 73 | 66 159 924 74 | 67 346 748 75 | 68 677 95 76 | 69 992 318 77 | 70 175 314 78 | 71 960 146 79 | 72 275 742 80 | 73 249 177 81 | 74 469 276 82 | 75 995 46 83 | 76 547 406 84 | DEMAND_SECTION 85 | 1 0 86 | 2 10 87 | 3 34 88 | 4 54 89 | 5 79 90 | 6 77 91 | 7 38 92 | 8 73 93 | 9 74 94 | 10 82 95 | 11 65 96 | 12 66 97 | 13 99 98 | 14 64 99 | 15 86 100 | 16 30 101 | 17 9 102 | 18 60 103 | 19 38 104 | 20 57 105 | 21 85 106 | 22 75 107 | 23 6 108 | 24 82 109 | 25 66 110 | 26 58 111 | 27 39 112 | 28 55 113 | 29 61 114 | 30 1 115 | 31 35 116 | 32 57 117 | 33 68 118 | 34 7 119 | 35 40 120 | 36 97 121 | 37 86 122 | 38 99 123 | 39 65 124 | 40 65 125 | 41 36 126 | 42 86 127 | 43 63 128 | 44 47 129 | 45 78 130 | 46 66 131 | 47 25 132 | 48 8 133 | 49 28 134 | 50 50 135 | 51 74 136 | 52 17 137 | 53 24 138 | 54 50 139 | 55 40 140 | 56 48 141 | 57 73 142 | 58 44 143 | 59 3 144 | 60 39 145 | 61 59 146 | 62 51 147 | 63 22 148 | 64 8 149 | 65 74 150 | 66 59 151 | 67 62 152 | 68 72 153 | 69 60 154 | 70 42 155 | 71 48 156 | 72 36 157 | 73 60 158 | 74 83 159 | 75 55 160 | 76 29 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-34-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-34-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 701 7 | NODE_COORD_SECTION 8 | 1 424 492 9 | 2 870 930 10 | 3 236 448 11 | 4 558 10 12 | 5 725 184 13 | 6 318 29 14 | 7 753 456 15 | 8 678 113 16 | 9 383 45 17 | 10 396 989 18 | 11 157 665 19 | 12 79 283 20 | 13 428 785 21 | 14 287 413 22 | 15 619 390 23 | 16 492 128 24 | 17 248 479 25 | 18 793 104 26 | 19 306 793 27 | 20 406 468 28 | 21 34 416 29 | 22 862 524 30 | 23 83 542 31 | 24 965 384 32 | 25 144 768 33 | 26 431 609 34 | 27 15 412 35 | 28 158 678 36 | 29 950 694 37 | 30 242 564 38 | 31 110 587 39 | 32 628 774 40 | 33 867 67 41 | 34 994 532 42 | 35 142 217 43 | 36 510 986 44 | 37 631 238 45 | 38 336 22 46 | 39 863 645 47 | 40 824 287 48 | 41 601 658 49 | 42 550 287 50 | 43 88 866 51 | 44 521 403 52 | 45 13 323 53 | 46 839 397 54 | 47 375 454 55 | 48 702 290 56 | 49 558 645 57 | 50 636 592 58 | 51 990 626 59 | 52 689 704 60 | 53 903 131 61 | 54 577 33 62 | 55 567 412 63 | 56 126 208 64 | 57 306 520 65 | 58 14 275 66 | 59 778 535 67 | 60 262 120 68 | 61 435 641 69 | 62 572 720 70 | 63 195 611 71 | 64 147 680 72 | 65 26 758 73 | 66 792 944 74 | 67 747 473 75 | 68 518 135 76 | 69 503 321 77 | 70 68 59 78 | 71 797 526 79 | 72 784 963 80 | 73 404 618 81 | 74 287 452 82 | 75 10 820 83 | 76 910 186 84 | 77 165 524 85 | 78 749 372 86 | 79 296 354 87 | 80 141 954 88 | 81 148 442 89 | 82 185 209 90 | 83 8 843 91 | 84 540 4 92 | 85 541 98 93 | 86 694 776 94 | 87 384 783 95 | 88 624 560 96 | 89 261 146 97 | 90 56 863 98 | 91 523 194 99 | 92 950 190 100 | 93 439 666 101 | 94 120 28 102 | 95 495 734 103 | 96 71 908 104 | 97 397 773 105 | 98 964 685 106 | 99 32 156 107 | 100 960 665 108 | 101 597 496 109 | DEMAND_SECTION 110 | 1 0 111 | 2 27 112 | 3 57 113 | 4 98 114 | 5 44 115 | 6 50 116 | 7 55 117 | 8 18 118 | 9 48 119 | 10 18 120 | 11 13 121 | 12 59 122 | 13 33 123 | 14 90 124 | 15 9 125 | 16 87 126 | 17 66 127 | 18 3 128 | 19 57 129 | 20 27 130 | 21 24 131 | 22 47 132 | 23 89 133 | 24 25 134 | 25 96 135 | 26 92 136 | 27 98 137 | 28 43 138 | 29 67 139 | 30 77 140 | 31 6 141 | 32 72 142 | 33 49 143 | 34 19 144 | 35 39 145 | 36 48 146 | 37 94 147 | 38 3 148 | 39 55 149 | 40 36 150 | 41 8 151 | 42 64 152 | 43 62 153 | 44 76 154 | 45 71 155 | 46 6 156 | 47 46 157 | 48 69 158 | 49 97 159 | 50 63 160 | 51 14 161 | 52 49 162 | 53 83 163 | 54 85 164 | 55 13 165 | 56 96 166 | 57 5 167 | 58 45 168 | 59 58 169 | 60 50 170 | 61 35 171 | 62 87 172 | 63 26 173 | 64 45 174 | 65 29 175 | 66 33 176 | 67 60 177 | 68 74 178 | 69 50 179 | 70 41 180 | 71 13 181 | 72 82 182 | 73 35 183 | 74 12 184 | 75 64 185 | 76 34 186 | 77 14 187 | 78 27 188 | 79 3 189 | 80 22 190 | 81 38 191 | 82 67 192 | 83 24 193 | 84 61 194 | 85 98 195 | 86 57 196 | 87 28 197 | 88 61 198 | 89 59 199 | 90 58 200 | 91 53 201 | 92 59 202 | 93 93 203 | 94 91 204 | 95 92 205 | 96 78 206 | 97 58 207 | 98 22 208 | 99 16 209 | 100 67 210 | 101 81 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-35-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-35-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 704 7 | NODE_COORD_SECTION 8 | 1 755 984 9 | 2 9 496 10 | 3 19 92 11 | 4 550 409 12 | 5 258 844 13 | 6 728 548 14 | 7 141 649 15 | 8 586 278 16 | 9 911 174 17 | 10 98 593 18 | 11 721 737 19 | 12 960 890 20 | 13 883 79 21 | 14 576 431 22 | 15 789 599 23 | 16 147 891 24 | 17 628 641 25 | 18 990 668 26 | 19 177 131 27 | 20 176 675 28 | 21 484 77 29 | 22 145 358 30 | 23 465 542 31 | 24 122 123 32 | 25 430 817 33 | 26 303 712 34 | 27 633 733 35 | 28 231 307 36 | 29 98 760 37 | 30 486 430 38 | 31 438 276 39 | 32 137 901 40 | 33 806 977 41 | 34 781 367 42 | 35 481 909 43 | 36 133 331 44 | 37 239 169 45 | 38 262 576 46 | 39 880 539 47 | 40 852 170 48 | 41 499 958 49 | 42 99 40 50 | 43 37 394 51 | 44 812 335 52 | 45 421 940 53 | 46 439 968 54 | 47 531 794 55 | 48 925 978 56 | 49 605 115 57 | 50 497 554 58 | 51 284 868 59 | 52 798 509 60 | 53 108 868 61 | 54 415 603 62 | 55 748 888 63 | 56 174 879 64 | 57 901 420 65 | 58 338 755 66 | 59 474 204 67 | 60 75 128 68 | 61 493 54 69 | 62 463 444 70 | 63 111 71 71 | 64 258 487 72 | 65 958 177 73 | 66 460 221 74 | 67 918 574 75 | 68 254 990 76 | 69 66 231 77 | 70 222 596 78 | 71 3 357 79 | 72 977 233 80 | 73 203 60 81 | 74 117 459 82 | 75 86 737 83 | 76 245 821 84 | 77 281 904 85 | 78 389 24 86 | 79 961 365 87 | 80 981 204 88 | 81 649 826 89 | 82 177 214 90 | 83 654 703 91 | 84 727 328 92 | 85 442 144 93 | 86 136 52 94 | 87 426 323 95 | 88 547 556 96 | 89 214 783 97 | 90 950 908 98 | 91 549 74 99 | 92 650 596 100 | 93 276 265 101 | 94 48 995 102 | 95 956 362 103 | 96 876 922 104 | 97 527 931 105 | 98 966 910 106 | 99 816 67 107 | 100 553 468 108 | 101 623 248 109 | 102 588 687 110 | 103 252 102 111 | 104 34 458 112 | 105 407 216 113 | 106 160 747 114 | 107 914 345 115 | 108 813 1000 116 | 109 640 417 117 | 110 77 504 118 | 111 913 810 119 | 112 832 765 120 | 113 758 183 121 | 114 570 932 122 | 115 741 976 123 | 116 987 575 124 | 117 790 329 125 | 118 299 356 126 | 119 972 542 127 | 120 739 312 128 | 121 489 537 129 | 122 706 872 130 | 123 797 696 131 | 124 618 38 132 | 125 912 600 133 | 126 558 756 134 | 127 902 731 135 | 128 51 747 136 | 129 51 1000 137 | 130 156 573 138 | 131 161 665 139 | 132 891 608 140 | 133 844 319 141 | 134 684 654 142 | 135 782 432 143 | 136 864 939 144 | 137 772 777 145 | 138 249 725 146 | 139 104 853 147 | 140 314 758 148 | 141 580 899 149 | 142 716 461 150 | 143 573 584 151 | 144 172 280 152 | 145 651 716 153 | 146 949 963 154 | 147 497 540 155 | 148 493 173 156 | 149 403 513 157 | 150 625 471 158 | 151 147 601 159 | 152 484 342 160 | 153 662 125 161 | 154 223 62 162 | 155 925 211 163 | 156 762 343 164 | 157 264 306 165 | 158 281 768 166 | 159 108 626 167 | 160 188 235 168 | 161 96 609 169 | 162 883 82 170 | 163 156 258 171 | 164 1000 921 172 | 165 39 373 173 | 166 277 826 174 | 167 165 299 175 | 168 926 157 176 | 169 334 681 177 | 170 529 234 178 | 171 171 943 179 | 172 768 457 180 | 173 792 991 181 | 174 286 924 182 | 175 584 158 183 | 176 844 684 184 | 177 379 188 185 | 178 795 697 186 | 179 981 368 187 | 180 931 70 188 | 181 751 484 189 | 182 438 570 190 | 183 219 33 191 | 184 312 476 192 | 185 853 328 193 | 186 924 888 194 | 187 244 451 195 | 188 910 313 196 | 189 696 72 197 | 190 148 91 198 | 191 462 746 199 | 192 953 227 200 | 193 679 198 201 | 194 795 109 202 | 195 535 708 203 | 196 524 333 204 | 197 167 457 205 | 198 474 548 206 | 199 43 454 207 | 200 961 325 208 | 201 183 769 209 | DEMAND_SECTION 210 | 1 0 211 | 2 65 212 | 3 59 213 | 4 27 214 | 5 87 215 | 6 26 216 | 7 53 217 | 8 60 218 | 9 63 219 | 10 31 220 | 11 7 221 | 12 50 222 | 13 39 223 | 14 67 224 | 15 75 225 | 16 54 226 | 17 68 227 | 18 54 228 | 19 87 229 | 20 33 230 | 21 76 231 | 22 47 232 | 23 76 233 | 24 93 234 | 25 10 235 | 26 83 236 | 27 99 237 | 28 68 238 | 29 7 239 | 30 59 240 | 31 19 241 | 32 27 242 | 33 87 243 | 34 42 244 | 35 88 245 | 36 59 246 | 37 14 247 | 38 85 248 | 39 28 249 | 40 80 250 | 41 43 251 | 42 83 252 | 43 75 253 | 44 62 254 | 45 74 255 | 46 79 256 | 47 91 257 | 48 31 258 | 49 8 259 | 50 10 260 | 51 32 261 | 52 32 262 | 53 27 263 | 54 56 264 | 55 11 265 | 56 58 266 | 57 46 267 | 58 82 268 | 59 34 269 | 60 10 270 | 61 34 271 | 62 55 272 | 63 92 273 | 64 55 274 | 65 28 275 | 66 72 276 | 67 58 277 | 68 6 278 | 69 56 279 | 70 25 280 | 71 93 281 | 72 72 282 | 73 27 283 | 74 74 284 | 75 11 285 | 76 85 286 | 77 75 287 | 78 38 288 | 79 68 289 | 80 76 290 | 81 94 291 | 82 75 292 | 83 69 293 | 84 52 294 | 85 76 295 | 86 74 296 | 87 90 297 | 88 94 298 | 89 33 299 | 90 54 300 | 91 50 301 | 92 72 302 | 93 59 303 | 94 95 304 | 95 41 305 | 96 87 306 | 97 16 307 | 98 62 308 | 99 33 309 | 100 11 310 | 101 92 311 | 102 31 312 | 103 39 313 | 104 66 314 | 105 35 315 | 106 70 316 | 107 71 317 | 108 1 318 | 109 58 319 | 110 28 320 | 111 72 321 | 112 29 322 | 113 89 323 | 114 8 324 | 115 94 325 | 116 47 326 | 117 93 327 | 118 10 328 | 119 39 329 | 120 76 330 | 121 94 331 | 122 44 332 | 123 91 333 | 124 71 334 | 125 21 335 | 126 63 336 | 127 46 337 | 128 18 338 | 129 4 339 | 130 42 340 | 131 29 341 | 132 17 342 | 133 6 343 | 134 28 344 | 135 32 345 | 136 5 346 | 137 7 347 | 138 49 348 | 139 96 349 | 140 93 350 | 141 21 351 | 142 46 352 | 143 48 353 | 144 93 354 | 145 1 355 | 146 49 356 | 147 58 357 | 148 61 358 | 149 1 359 | 150 47 360 | 151 79 361 | 152 28 362 | 153 26 363 | 154 21 364 | 155 27 365 | 156 6 366 | 157 80 367 | 158 93 368 | 159 49 369 | 160 7 370 | 161 17 371 | 162 3 372 | 163 15 373 | 164 82 374 | 165 17 375 | 166 5 376 | 167 54 377 | 168 88 378 | 169 45 379 | 170 64 380 | 171 82 381 | 172 95 382 | 173 99 383 | 174 26 384 | 175 15 385 | 176 5 386 | 177 47 387 | 178 9 388 | 179 64 389 | 180 34 390 | 181 37 391 | 182 45 392 | 183 49 393 | 184 87 394 | 185 63 395 | 186 56 396 | 187 28 397 | 188 68 398 | 189 12 399 | 190 9 400 | 191 93 401 | 192 46 402 | 193 61 403 | 194 92 404 | 195 92 405 | 196 45 406 | 197 26 407 | 198 82 408 | 199 4 409 | 200 74 410 | 201 16 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-36-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-36-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 336 7 | NODE_COORD_SECTION 8 | 1 912 17 9 | 2 405 300 10 | 3 963 258 11 | 4 293 61 12 | 5 881 721 13 | 6 795 906 14 | 7 582 209 15 | 8 9 86 16 | 9 970 78 17 | 10 320 690 18 | 11 968 976 19 | 12 259 796 20 | 13 51 567 21 | 14 923 528 22 | 15 725 38 23 | 16 732 352 24 | 17 975 288 25 | 18 717 588 26 | 19 88 105 27 | 20 74 696 28 | 21 726 838 29 | 22 865 820 30 | 23 251 860 31 | 24 189 798 32 | 25 235 981 33 | 26 86 490 34 | 27 328 441 35 | 28 836 608 36 | 29 365 70 37 | 30 228 353 38 | 31 838 827 39 | 32 535 212 40 | 33 767 192 41 | 34 17 741 42 | 35 890 668 43 | 36 30 784 44 | 37 813 184 45 | 38 635 289 46 | 39 355 33 47 | 40 928 276 48 | 41 795 430 49 | 42 140 572 50 | 43 531 479 51 | 44 952 74 52 | 45 309 459 53 | 46 414 712 54 | 47 874 508 55 | 48 109 202 56 | 49 667 99 57 | 50 415 282 58 | 51 902 10 59 | DEMAND_SECTION 60 | 1 0 61 | 2 28 62 | 3 57 63 | 4 70 64 | 5 31 65 | 6 64 66 | 7 15 67 | 8 87 68 | 9 6 69 | 10 46 70 | 11 99 71 | 12 71 72 | 13 85 73 | 14 37 74 | 15 67 75 | 16 12 76 | 17 43 77 | 18 30 78 | 19 27 79 | 20 73 80 | 21 80 81 | 22 49 82 | 23 96 83 | 24 13 84 | 25 90 85 | 26 76 86 | 27 17 87 | 28 66 88 | 29 50 89 | 30 52 90 | 31 40 91 | 32 2 92 | 33 52 93 | 34 46 94 | 35 49 95 | 36 77 96 | 37 17 97 | 38 1 98 | 39 54 99 | 40 31 100 | 41 54 101 | 42 41 102 | 43 85 103 | 44 73 104 | 45 2 105 | 46 51 106 | 47 4 107 | 48 86 108 | 49 62 109 | 50 51 110 | 51 8 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-37-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-37-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 996 7 | NODE_COORD_SECTION 8 | 1 13 512 9 | 2 981 175 10 | 3 540 404 11 | 4 879 869 12 | 5 572 596 13 | 6 256 31 14 | 7 138 219 15 | 8 812 299 16 | 9 383 369 17 | 10 244 146 18 | 11 46 844 19 | 12 188 724 20 | 13 444 60 21 | 14 278 854 22 | 15 93 934 23 | 16 940 230 24 | 17 143 622 25 | 18 20 486 26 | 19 690 126 27 | 20 361 563 28 | 21 997 634 29 | 22 276 842 30 | 23 916 935 31 | 24 881 881 32 | 25 698 67 33 | 26 69 917 34 | 27 727 982 35 | 28 969 872 36 | 29 590 701 37 | 30 11 747 38 | 31 823 173 39 | 32 147 152 40 | 33 598 477 41 | 34 187 552 42 | 35 974 681 43 | 36 642 845 44 | 37 790 126 45 | 38 20 589 46 | 39 717 579 47 | 40 889 490 48 | 41 199 753 49 | 42 835 221 50 | 43 37 3 51 | 44 913 379 52 | 45 813 251 53 | 46 392 213 54 | 47 670 803 55 | 48 836 623 56 | 49 852 578 57 | 50 833 885 58 | 51 815 462 59 | 52 510 112 60 | 53 27 438 61 | 54 805 242 62 | 55 915 630 63 | 56 562 944 64 | 57 641 760 65 | 58 303 456 66 | 59 418 831 67 | 60 189 608 68 | 61 995 94 69 | 62 178 80 70 | 63 986 779 71 | 64 171 18 72 | 65 100 389 73 | 66 359 738 74 | 67 736 832 75 | 68 643 237 76 | 69 382 998 77 | 70 642 726 78 | 71 30 233 79 | 72 702 769 80 | 73 856 622 81 | 74 547 428 82 | 75 306 506 83 | 76 893 783 84 | DEMAND_SECTION 85 | 1 0 86 | 2 3 87 | 3 10 88 | 4 63 89 | 5 62 90 | 6 48 91 | 7 99 92 | 8 19 93 | 9 36 94 | 10 38 95 | 11 21 96 | 12 37 97 | 13 20 98 | 14 14 99 | 15 54 100 | 16 80 101 | 17 51 102 | 18 69 103 | 19 37 104 | 20 46 105 | 21 9 106 | 22 53 107 | 23 9 108 | 24 12 109 | 25 58 110 | 26 54 111 | 27 76 112 | 28 59 113 | 29 17 114 | 30 74 115 | 31 57 116 | 32 88 117 | 33 80 118 | 34 94 119 | 35 68 120 | 36 75 121 | 37 57 122 | 38 36 123 | 39 54 124 | 40 73 125 | 41 24 126 | 42 65 127 | 43 92 128 | 44 42 129 | 45 42 130 | 46 76 131 | 47 51 132 | 48 24 133 | 49 97 134 | 50 42 135 | 51 62 136 | 52 61 137 | 53 77 138 | 54 34 139 | 55 58 140 | 56 79 141 | 57 75 142 | 58 53 143 | 59 30 144 | 60 41 145 | 61 3 146 | 62 79 147 | 63 80 148 | 64 29 149 | 65 35 150 | 66 64 151 | 67 33 152 | 68 93 153 | 69 36 154 | 70 95 155 | 71 58 156 | 72 68 157 | 73 6 158 | 74 56 159 | 75 34 160 | 76 44 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-38-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-38-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 519 7 | NODE_COORD_SECTION 8 | 1 363 605 9 | 2 58 119 10 | 3 258 105 11 | 4 872 44 12 | 5 902 112 13 | 6 428 780 14 | 7 86 59 15 | 8 19 943 16 | 9 397 921 17 | 10 71 817 18 | 11 938 663 19 | 12 836 25 20 | 13 619 802 21 | 14 165 286 22 | 15 608 843 23 | 16 829 659 24 | 17 186 853 25 | 18 627 348 26 | 19 624 1 27 | 20 863 761 28 | 21 41 145 29 | 22 912 357 30 | 23 938 129 31 | 24 248 468 32 | 25 842 12 33 | 26 50 746 34 | 27 191 570 35 | 28 359 711 36 | 29 797 346 37 | 30 40 332 38 | 31 636 504 39 | 32 434 121 40 | 33 485 852 41 | 34 600 610 42 | 35 389 62 43 | 36 347 829 44 | 37 530 489 45 | 38 28 830 46 | 39 735 766 47 | 40 93 623 48 | 41 128 790 49 | 42 391 837 50 | 43 382 142 51 | 44 405 962 52 | 45 552 502 53 | 46 356 508 54 | 47 265 693 55 | 48 434 811 56 | 49 578 400 57 | 50 622 980 58 | 51 979 866 59 | 52 832 620 60 | 53 998 630 61 | 54 393 893 62 | 55 5 745 63 | 56 708 819 64 | 57 556 900 65 | 58 467 826 66 | 59 319 333 67 | 60 165 751 68 | 61 82 826 69 | 62 2 47 70 | 63 244 533 71 | 64 690 686 72 | 65 776 390 73 | 66 271 913 74 | 67 315 28 75 | 68 820 714 76 | 69 153 259 77 | 70 548 197 78 | 71 341 4 79 | 72 473 789 80 | 73 521 439 81 | 74 817 522 82 | 75 400 189 83 | 76 166 939 84 | 77 127 730 85 | 78 916 508 86 | 79 829 249 87 | 80 352 350 88 | 81 800 705 89 | 82 63 92 90 | 83 359 506 91 | 84 936 729 92 | 85 411 553 93 | 86 396 334 94 | 87 874 197 95 | 88 696 261 96 | 89 658 600 97 | 90 289 257 98 | 91 960 631 99 | 92 932 996 100 | 93 156 896 101 | 94 144 498 102 | 95 561 885 103 | 96 235 380 104 | 97 293 692 105 | 98 868 317 106 | 99 855 107 107 | 100 30 477 108 | 101 763 697 109 | DEMAND_SECTION 110 | 1 0 111 | 2 73 112 | 3 78 113 | 4 41 114 | 5 25 115 | 6 95 116 | 7 4 117 | 8 28 118 | 9 89 119 | 10 64 120 | 11 74 121 | 12 7 122 | 13 39 123 | 14 61 124 | 15 10 125 | 16 78 126 | 17 86 127 | 18 76 128 | 19 88 129 | 20 93 130 | 21 90 131 | 22 88 132 | 23 90 133 | 24 62 134 | 25 75 135 | 26 6 136 | 27 54 137 | 28 63 138 | 29 28 139 | 30 10 140 | 31 67 141 | 32 82 142 | 33 32 143 | 34 38 144 | 35 1 145 | 36 1 146 | 37 25 147 | 38 71 148 | 39 66 149 | 40 85 150 | 41 19 151 | 42 21 152 | 43 54 153 | 44 52 154 | 45 22 155 | 46 97 156 | 47 74 157 | 48 65 158 | 49 64 159 | 50 60 160 | 51 12 161 | 52 52 162 | 53 17 163 | 54 5 164 | 55 53 165 | 56 40 166 | 57 37 167 | 58 54 168 | 59 96 169 | 60 86 170 | 61 94 171 | 62 65 172 | 63 93 173 | 64 69 174 | 65 97 175 | 66 4 176 | 67 1 177 | 68 6 178 | 69 41 179 | 70 53 180 | 71 92 181 | 72 49 182 | 73 47 183 | 74 54 184 | 75 18 185 | 76 91 186 | 77 45 187 | 78 49 188 | 79 96 189 | 80 23 190 | 81 74 191 | 82 28 192 | 83 95 193 | 84 57 194 | 85 36 195 | 86 11 196 | 87 54 197 | 88 4 198 | 89 16 199 | 90 41 200 | 91 97 201 | 92 23 202 | 93 53 203 | 94 71 204 | 95 89 205 | 96 97 206 | 97 67 207 | 98 10 208 | 99 96 209 | 100 74 210 | 101 25 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-39-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-39-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 915 7 | NODE_COORD_SECTION 8 | 1 843 780 9 | 2 308 476 10 | 3 611 225 11 | 4 629 589 12 | 5 268 560 13 | 6 954 473 14 | 7 536 897 15 | 8 892 299 16 | 9 285 273 17 | 10 87 485 18 | 11 66 387 19 | 12 790 72 20 | 13 678 87 21 | 14 828 134 22 | 15 80 186 23 | 16 183 318 24 | 17 638 470 25 | 18 449 710 26 | 19 412 593 27 | 20 915 587 28 | 21 308 564 29 | 22 968 859 30 | 23 433 529 31 | 24 519 695 32 | 25 567 713 33 | 26 428 471 34 | 27 72 176 35 | 28 271 232 36 | 29 921 933 37 | 30 648 64 38 | 31 272 156 39 | 32 437 464 40 | 33 667 20 41 | 34 47 746 42 | 35 159 922 43 | 36 592 205 44 | 37 902 874 45 | 38 252 603 46 | 39 39 785 47 | 40 928 807 48 | 41 275 166 49 | 42 630 413 50 | 43 778 928 51 | 44 218 349 52 | 45 348 131 53 | 46 474 220 54 | 47 330 950 55 | 48 798 930 56 | 49 921 855 57 | 50 439 840 58 | 51 529 409 59 | 52 375 127 60 | 53 602 760 61 | 54 120 559 62 | 55 239 489 63 | 56 442 258 64 | 57 813 130 65 | 58 491 9 66 | 59 115 343 67 | 60 39 978 68 | 61 623 548 69 | 62 493 472 70 | 63 195 430 71 | 64 921 18 72 | 65 717 393 73 | 66 154 87 74 | 67 231 181 75 | 68 656 838 76 | 69 930 140 77 | 70 89 951 78 | 71 266 174 79 | 72 866 200 80 | 73 256 239 81 | 74 929 930 82 | 75 832 800 83 | 76 245 465 84 | 77 343 913 85 | 78 841 96 86 | 79 832 653 87 | 80 323 115 88 | 81 840 660 89 | 82 563 991 90 | 83 775 891 91 | 84 862 695 92 | 85 525 841 93 | 86 568 434 94 | 87 717 656 95 | 88 902 980 96 | 89 907 76 97 | 90 165 874 98 | 91 106 675 99 | 92 420 793 100 | 93 639 202 101 | 94 324 867 102 | 95 668 268 103 | 96 791 61 104 | 97 408 889 105 | 98 703 954 106 | 99 328 581 107 | 100 706 739 108 | 101 825 979 109 | 102 371 111 110 | 103 266 407 111 | 104 247 725 112 | 105 216 548 113 | 106 786 320 114 | 107 206 444 115 | 108 96 998 116 | 109 429 581 117 | 110 929 771 118 | 111 233 22 119 | 112 905 416 120 | 113 329 473 121 | 114 855 793 122 | 115 651 396 123 | 116 997 11 124 | 117 913 301 125 | 118 981 131 126 | 119 820 911 127 | 120 932 922 128 | 121 799 77 129 | 122 880 66 130 | 123 256 884 131 | 124 332 358 132 | 125 631 999 133 | 126 159 700 134 | 127 746 239 135 | 128 52 633 136 | 129 358 769 137 | 130 410 139 138 | 131 509 416 139 | 132 233 873 140 | 133 259 609 141 | 134 833 265 142 | 135 984 854 143 | 136 339 842 144 | 137 675 609 145 | 138 346 625 146 | 139 871 883 147 | 140 103 916 148 | 141 895 970 149 | 142 710 711 150 | 143 418 690 151 | 144 178 229 152 | 145 457 385 153 | 146 937 889 154 | 147 232 778 155 | 148 431 964 156 | 149 746 599 157 | 150 486 575 158 | 151 992 1000 159 | 152 119 865 160 | 153 383 204 161 | 154 152 14 162 | 155 205 105 163 | 156 465 969 164 | 157 535 908 165 | 158 347 372 166 | 159 740 638 167 | 160 335 625 168 | 161 923 130 169 | 162 385 446 170 | 163 648 58 171 | 164 441 765 172 | 165 170 752 173 | 166 65 310 174 | 167 12 578 175 | 168 179 636 176 | 169 944 931 177 | 170 673 913 178 | 171 971 802 179 | 172 16 856 180 | 173 193 199 181 | 174 979 904 182 | 175 528 83 183 | 176 7 137 184 | 177 343 959 185 | 178 772 712 186 | 179 464 913 187 | 180 979 757 188 | 181 187 711 189 | 182 359 859 190 | 183 801 203 191 | 184 682 242 192 | 185 281 725 193 | 186 994 424 194 | 187 579 538 195 | 188 499 876 196 | 189 637 23 197 | 190 666 893 198 | 191 778 164 199 | 192 261 694 200 | 193 944 928 201 | 194 941 451 202 | 195 962 453 203 | 196 84 789 204 | 197 359 977 205 | 198 842 79 206 | 199 747 974 207 | 200 487 93 208 | 201 100 118 209 | DEMAND_SECTION 210 | 1 0 211 | 2 33 212 | 3 28 213 | 4 3 214 | 5 93 215 | 6 45 216 | 7 30 217 | 8 66 218 | 9 6 219 | 10 75 220 | 11 44 221 | 12 16 222 | 13 20 223 | 14 73 224 | 15 59 225 | 16 62 226 | 17 74 227 | 18 64 228 | 19 47 229 | 20 94 230 | 21 19 231 | 22 76 232 | 23 44 233 | 24 93 234 | 25 17 235 | 26 31 236 | 27 50 237 | 28 15 238 | 29 70 239 | 30 72 240 | 31 17 241 | 32 27 242 | 33 99 243 | 34 84 244 | 35 47 245 | 36 17 246 | 37 64 247 | 38 44 248 | 39 56 249 | 40 41 250 | 41 11 251 | 42 45 252 | 43 88 253 | 44 39 254 | 45 36 255 | 46 23 256 | 47 23 257 | 48 49 258 | 49 23 259 | 50 74 260 | 51 93 261 | 52 10 262 | 53 96 263 | 54 5 264 | 55 98 265 | 56 72 266 | 57 13 267 | 58 32 268 | 59 16 269 | 60 56 270 | 61 99 271 | 62 6 272 | 63 37 273 | 64 60 274 | 65 77 275 | 66 93 276 | 67 55 277 | 68 96 278 | 69 58 279 | 70 12 280 | 71 77 281 | 72 33 282 | 73 27 283 | 74 42 284 | 75 12 285 | 76 90 286 | 77 29 287 | 78 63 288 | 79 43 289 | 80 59 290 | 81 32 291 | 82 19 292 | 83 6 293 | 84 61 294 | 85 75 295 | 86 98 296 | 87 32 297 | 88 72 298 | 89 78 299 | 90 82 300 | 91 15 301 | 92 59 302 | 93 20 303 | 94 13 304 | 95 60 305 | 96 24 306 | 97 2 307 | 98 52 308 | 99 47 309 | 100 34 310 | 101 96 311 | 102 1 312 | 103 94 313 | 104 42 314 | 105 41 315 | 106 26 316 | 107 88 317 | 108 15 318 | 109 29 319 | 110 13 320 | 111 68 321 | 112 80 322 | 113 90 323 | 114 52 324 | 115 82 325 | 116 41 326 | 117 68 327 | 118 15 328 | 119 24 329 | 120 14 330 | 121 19 331 | 122 34 332 | 123 30 333 | 124 42 334 | 125 59 335 | 126 14 336 | 127 27 337 | 128 16 338 | 129 97 339 | 130 25 340 | 131 8 341 | 132 9 342 | 133 92 343 | 134 31 344 | 135 99 345 | 136 51 346 | 137 29 347 | 138 63 348 | 139 39 349 | 140 84 350 | 141 97 351 | 142 66 352 | 143 27 353 | 144 80 354 | 145 48 355 | 146 1 356 | 147 18 357 | 148 54 358 | 149 95 359 | 150 94 360 | 151 47 361 | 152 59 362 | 153 10 363 | 154 1 364 | 155 36 365 | 156 77 366 | 157 12 367 | 158 73 368 | 159 81 369 | 160 16 370 | 161 27 371 | 162 68 372 | 163 18 373 | 164 54 374 | 165 86 375 | 166 19 376 | 167 65 377 | 168 94 378 | 169 89 379 | 170 86 380 | 171 4 381 | 172 62 382 | 173 38 383 | 174 68 384 | 175 7 385 | 176 98 386 | 177 64 387 | 178 13 388 | 179 71 389 | 180 98 390 | 181 94 391 | 182 97 392 | 183 65 393 | 184 86 394 | 185 24 395 | 186 21 396 | 187 53 397 | 188 83 398 | 189 65 399 | 190 9 400 | 191 56 401 | 192 13 402 | 193 29 403 | 194 68 404 | 195 9 405 | 196 4 406 | 197 46 407 | 198 71 408 | 199 4 409 | 200 1 410 | 201 71 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-4-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-4-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 906 7 | NODE_COORD_SECTION 8 | 1 291 40 9 | 2 504 787 10 | 3 908 329 11 | 4 296 428 12 | 5 266 230 13 | 6 300 928 14 | 7 718 529 15 | 8 818 690 16 | 9 18 390 17 | 10 734 105 18 | 11 847 912 19 | 12 109 500 20 | 13 216 191 21 | 14 953 990 22 | 15 126 467 23 | 16 606 57 24 | 17 14 540 25 | 18 808 724 26 | 19 168 245 27 | 20 712 300 28 | 21 119 196 29 | 22 717 644 30 | 23 542 520 31 | 24 583 676 32 | 25 846 692 33 | 26 299 666 34 | 27 890 492 35 | 28 466 12 36 | 29 753 291 37 | 30 830 758 38 | 31 897 486 39 | 32 713 618 40 | 33 606 662 41 | 34 592 820 42 | 35 267 772 43 | 36 180 860 44 | 37 866 723 45 | 38 933 714 46 | 39 922 229 47 | 40 159 233 48 | 41 660 353 49 | 42 707 128 50 | 43 696 16 51 | 44 167 195 52 | 45 340 648 53 | 46 625 343 54 | 47 148 200 55 | 48 506 831 56 | 49 841 514 57 | 50 989 727 58 | 51 520 40 59 | DEMAND_SECTION 60 | 1 0 61 | 2 50 62 | 3 60 63 | 4 90 64 | 5 67 65 | 6 39 66 | 7 90 67 | 8 88 68 | 9 85 69 | 10 73 70 | 11 7 71 | 12 79 72 | 13 57 73 | 14 78 74 | 15 59 75 | 16 83 76 | 17 83 77 | 18 1 78 | 19 36 79 | 20 23 80 | 21 32 81 | 22 88 82 | 23 89 83 | 24 21 84 | 25 7 85 | 26 95 86 | 27 87 87 | 28 59 88 | 29 78 89 | 30 91 90 | 31 33 91 | 32 89 92 | 33 86 93 | 34 74 94 | 35 54 95 | 36 21 96 | 37 22 97 | 38 85 98 | 39 61 99 | 40 51 100 | 41 50 101 | 42 16 102 | 43 88 103 | 44 89 104 | 45 32 105 | 46 23 106 | 47 98 107 | 48 35 108 | 49 38 109 | 50 52 110 | 51 45 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-5-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-5-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 369 7 | NODE_COORD_SECTION 8 | 1 656 69 9 | 2 355 74 10 | 3 728 175 11 | 4 570 608 12 | 5 190 382 13 | 6 47 506 14 | 7 366 442 15 | 8 837 546 16 | 9 263 116 17 | 10 197 95 18 | 11 434 847 19 | 12 55 85 20 | 13 39 231 21 | 14 543 422 22 | 15 906 491 23 | 16 934 16 24 | 17 882 479 25 | 18 169 173 26 | 19 331 688 27 | 20 788 725 28 | 21 535 213 29 | 22 172 22 30 | 23 96 895 31 | 24 568 402 32 | 25 149 484 33 | 26 694 493 34 | 27 756 934 35 | 28 600 400 36 | 29 275 390 37 | 30 364 941 38 | 31 294 698 39 | 32 757 611 40 | 33 617 801 41 | 34 881 219 42 | 35 616 69 43 | 36 787 342 44 | 37 888 810 45 | 38 839 655 46 | 39 339 296 47 | 40 770 182 48 | 41 134 786 49 | 42 669 612 50 | 43 518 121 51 | 44 835 302 52 | 45 210 368 53 | 46 992 760 54 | 47 884 712 55 | 48 722 792 56 | 49 427 588 57 | 50 215 639 58 | 51 379 689 59 | 52 735 325 60 | 53 425 71 61 | 54 702 334 62 | 55 980 48 63 | 56 601 587 64 | 57 936 566 65 | 58 526 544 66 | 59 736 600 67 | 60 789 365 68 | 61 61 38 69 | 62 754 151 70 | 63 199 350 71 | 64 773 665 72 | 65 988 917 73 | 66 281 640 74 | 67 404 269 75 | 68 933 685 76 | 69 93 838 77 | 70 606 387 78 | 71 162 944 79 | 72 57 294 80 | 73 736 89 81 | 74 307 559 82 | 75 394 735 83 | 76 687 266 84 | DEMAND_SECTION 85 | 1 0 86 | 2 74 87 | 3 55 88 | 4 26 89 | 5 54 90 | 6 22 91 | 7 70 92 | 8 97 93 | 9 4 94 | 10 96 95 | 11 84 96 | 12 38 97 | 13 5 98 | 14 86 99 | 15 77 100 | 16 57 101 | 17 65 102 | 18 59 103 | 19 66 104 | 20 54 105 | 21 62 106 | 22 70 107 | 23 50 108 | 24 38 109 | 25 2 110 | 26 42 111 | 27 2 112 | 28 23 113 | 29 23 114 | 30 71 115 | 31 52 116 | 32 23 117 | 33 1 118 | 34 64 119 | 35 64 120 | 36 15 121 | 37 45 122 | 38 40 123 | 39 68 124 | 40 63 125 | 41 51 126 | 42 34 127 | 43 35 128 | 44 46 129 | 45 44 130 | 46 19 131 | 47 86 132 | 48 35 133 | 49 70 134 | 50 33 135 | 51 40 136 | 52 20 137 | 53 72 138 | 54 54 139 | 55 24 140 | 56 84 141 | 57 74 142 | 58 19 143 | 59 64 144 | 60 74 145 | 61 92 146 | 62 42 147 | 63 43 148 | 64 44 149 | 65 99 150 | 66 28 151 | 67 62 152 | 68 84 153 | 69 7 154 | 70 49 155 | 71 13 156 | 72 69 157 | 73 3 158 | 74 59 159 | 75 28 160 | 76 52 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/instances/random-6-X-n100.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-6-X-n100.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 101 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 388 7 | NODE_COORD_SECTION 8 | 1 4 2 9 | 2 567 84 10 | 3 744 58 11 | 4 729 759 12 | 5 562 571 13 | 6 682 426 14 | 7 577 566 15 | 8 772 921 16 | 9 441 447 17 | 10 896 629 18 | 11 395 758 19 | 12 842 49 20 | 13 233 312 21 | 14 441 538 22 | 15 758 486 23 | 16 234 959 24 | 17 428 15 25 | 18 931 992 26 | 19 185 405 27 | 20 782 855 28 | 21 692 521 29 | 22 163 169 30 | 23 55 182 31 | 24 997 394 32 | 25 746 806 33 | 26 668 891 34 | 27 984 45 35 | 28 830 685 36 | 29 915 740 37 | 30 516 437 38 | 31 868 191 39 | 32 535 412 40 | 33 960 861 41 | 34 58 314 42 | 35 8 105 43 | 36 674 360 44 | 37 370 144 45 | 38 770 636 46 | 39 833 24 47 | 40 619 348 48 | 41 380 777 49 | 42 746 848 50 | 43 770 682 51 | 44 738 35 52 | 45 460 187 53 | 46 303 642 54 | 47 554 528 55 | 48 22 881 56 | 49 487 839 57 | 50 750 186 58 | 51 735 333 59 | 52 575 560 60 | 53 247 989 61 | 54 882 701 62 | 55 847 822 63 | 56 869 670 64 | 57 988 844 65 | 58 631 423 66 | 59 436 826 67 | 60 109 798 68 | 61 651 540 69 | 62 508 146 70 | 63 920 50 71 | 64 217 877 72 | 65 59 807 73 | 66 688 658 74 | 67 56 250 75 | 68 912 499 76 | 69 319 860 77 | 70 636 256 78 | 71 171 262 79 | 72 399 305 80 | 73 297 501 81 | 74 300 404 82 | 75 362 18 83 | 76 202 666 84 | 77 571 113 85 | 78 236 162 86 | 79 495 127 87 | 80 988 527 88 | 81 188 400 89 | 82 894 352 90 | 83 1 754 91 | 84 585 882 92 | 85 153 809 93 | 86 315 361 94 | 87 627 270 95 | 88 567 38 96 | 89 182 86 97 | 90 435 392 98 | 91 433 83 99 | 92 635 949 100 | 93 822 992 101 | 94 341 794 102 | 95 426 191 103 | 96 406 290 104 | 97 599 229 105 | 98 288 659 106 | 99 353 723 107 | 100 274 721 108 | 101 511 21 109 | DEMAND_SECTION 110 | 1 0 111 | 2 46 112 | 3 11 113 | 4 51 114 | 5 75 115 | 6 29 116 | 7 17 117 | 8 97 118 | 9 51 119 | 10 38 120 | 11 41 121 | 12 26 122 | 13 40 123 | 14 37 124 | 15 30 125 | 16 64 126 | 17 97 127 | 18 11 128 | 19 85 129 | 20 23 130 | 21 74 131 | 22 27 132 | 23 91 133 | 24 68 134 | 25 58 135 | 26 47 136 | 27 17 137 | 28 38 138 | 29 97 139 | 30 48 140 | 31 51 141 | 32 75 142 | 33 48 143 | 34 89 144 | 35 88 145 | 36 49 146 | 37 71 147 | 38 32 148 | 39 23 149 | 40 16 150 | 41 92 151 | 42 9 152 | 43 99 153 | 44 5 154 | 45 37 155 | 46 14 156 | 47 16 157 | 48 21 158 | 49 88 159 | 50 52 160 | 51 85 161 | 52 13 162 | 53 34 163 | 54 35 164 | 55 24 165 | 56 37 166 | 57 2 167 | 58 81 168 | 59 89 169 | 60 74 170 | 61 61 171 | 62 33 172 | 63 52 173 | 64 68 174 | 65 95 175 | 66 91 176 | 67 45 177 | 68 61 178 | 69 13 179 | 70 19 180 | 71 55 181 | 72 71 182 | 73 39 183 | 74 2 184 | 75 90 185 | 76 57 186 | 77 1 187 | 78 25 188 | 79 98 189 | 80 94 190 | 81 98 191 | 82 51 192 | 83 93 193 | 84 62 194 | 85 44 195 | 86 30 196 | 87 41 197 | 88 57 198 | 89 33 199 | 90 44 200 | 91 85 201 | 92 10 202 | 93 20 203 | 94 75 204 | 95 80 205 | 96 38 206 | 97 55 207 | 98 51 208 | 99 34 209 | 100 49 210 | 101 89 211 | DEPOT_SECTION 212 | 1 213 | -1 214 | EOF 215 | -------------------------------------------------------------------------------- /data/instances/random-7-X-n200.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-7-X-n200.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 201 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 746 7 | NODE_COORD_SECTION 8 | 1 640 589 9 | 2 244 515 10 | 3 795 604 11 | 4 804 651 12 | 5 865 473 13 | 6 525 3 14 | 7 605 725 15 | 8 159 728 16 | 9 948 758 17 | 10 68 397 18 | 11 805 442 19 | 12 434 505 20 | 13 83 924 21 | 14 65 669 22 | 15 951 774 23 | 16 370 760 24 | 17 259 245 25 | 18 627 205 26 | 19 205 122 27 | 20 598 999 28 | 21 615 772 29 | 22 259 264 30 | 23 923 503 31 | 24 327 38 32 | 25 215 54 33 | 26 1000 471 34 | 27 598 347 35 | 28 685 390 36 | 29 835 336 37 | 30 872 581 38 | 31 623 75 39 | 32 999 666 40 | 33 806 117 41 | 34 981 916 42 | 35 634 782 43 | 36 89 145 44 | 37 490 970 45 | 38 768 135 46 | 39 896 489 47 | 40 756 751 48 | 41 133 626 49 | 42 135 483 50 | 43 893 362 51 | 44 996 168 52 | 45 881 199 53 | 46 819 431 54 | 47 74 50 55 | 48 760 605 56 | 49 851 856 57 | 50 412 206 58 | 51 756 397 59 | 52 205 664 60 | 53 109 871 61 | 54 655 998 62 | 55 975 454 63 | 56 744 556 64 | 57 743 999 65 | 58 911 262 66 | 59 794 567 67 | 60 347 930 68 | 61 574 729 69 | 62 304 633 70 | 63 914 567 71 | 64 985 964 72 | 65 922 237 73 | 66 444 742 74 | 67 903 990 75 | 68 627 802 76 | 69 866 994 77 | 70 266 999 78 | 71 550 205 79 | 72 618 977 80 | 73 639 827 81 | 74 398 46 82 | 75 455 937 83 | 76 901 993 84 | 77 317 375 85 | 78 14 752 86 | 79 258 959 87 | 80 841 675 88 | 81 583 31 89 | 82 70 150 90 | 83 888 705 91 | 84 110 414 92 | 85 735 86 93 | 86 526 879 94 | 87 320 777 95 | 88 456 153 96 | 89 208 851 97 | 90 140 185 98 | 91 705 623 99 | 92 915 146 100 | 93 436 413 101 | 94 727 196 102 | 95 981 814 103 | 96 476 955 104 | 97 708 220 105 | 98 596 20 106 | 99 528 380 107 | 100 765 35 108 | 101 838 12 109 | 102 751 841 110 | 103 284 335 111 | 104 355 580 112 | 105 116 93 113 | 106 286 362 114 | 107 412 80 115 | 108 934 270 116 | 109 69 407 117 | 110 859 844 118 | 111 251 90 119 | 112 249 895 120 | 113 871 595 121 | 114 521 293 122 | 115 446 162 123 | 116 265 665 124 | 117 946 157 125 | 118 354 949 126 | 119 764 633 127 | 120 349 246 128 | 121 302 401 129 | 122 241 691 130 | 123 262 662 131 | 124 484 647 132 | 125 417 878 133 | 126 653 465 134 | 127 21 709 135 | 128 238 483 136 | 129 290 576 137 | 130 18 590 138 | 131 105 899 139 | 132 499 255 140 | 133 989 714 141 | 134 668 839 142 | 135 929 781 143 | 136 86 414 144 | 137 564 467 145 | 138 206 645 146 | 139 497 463 147 | 140 186 991 148 | 141 543 34 149 | 142 56 870 150 | 143 566 666 151 | 144 603 471 152 | 145 357 998 153 | 146 477 910 154 | 147 351 636 155 | 148 340 219 156 | 149 668 323 157 | 150 847 432 158 | 151 603 541 159 | 152 52 342 160 | 153 43 953 161 | 154 675 266 162 | 155 253 503 163 | 156 68 535 164 | 157 462 728 165 | 158 816 355 166 | 159 778 738 167 | 160 468 98 168 | 161 199 652 169 | 162 145 971 170 | 163 330 880 171 | 164 572 109 172 | 165 237 276 173 | 166 768 34 174 | 167 526 461 175 | 168 526 154 176 | 169 209 283 177 | 170 613 278 178 | 171 125 986 179 | 172 336 357 180 | 173 597 276 181 | 174 784 221 182 | 175 817 146 183 | 176 929 562 184 | 177 267 323 185 | 178 433 597 186 | 179 207 562 187 | 180 226 641 188 | 181 362 895 189 | 182 661 973 190 | 183 763 463 191 | 184 367 801 192 | 185 834 180 193 | 186 829 267 194 | 187 809 26 195 | 188 153 368 196 | 189 519 558 197 | 190 154 329 198 | 191 371 430 199 | 192 862 601 200 | 193 194 860 201 | 194 792 54 202 | 195 66 827 203 | 196 303 817 204 | 197 465 184 205 | 198 597 949 206 | 199 692 132 207 | 200 672 643 208 | 201 186 883 209 | DEMAND_SECTION 210 | 1 0 211 | 2 37 212 | 3 8 213 | 4 59 214 | 5 47 215 | 6 76 216 | 7 23 217 | 8 19 218 | 9 15 219 | 10 37 220 | 11 19 221 | 12 45 222 | 13 35 223 | 14 55 224 | 15 54 225 | 16 15 226 | 17 78 227 | 18 55 228 | 19 40 229 | 20 81 230 | 21 9 231 | 22 1 232 | 23 55 233 | 24 54 234 | 25 2 235 | 26 51 236 | 27 98 237 | 28 55 238 | 29 98 239 | 30 96 240 | 31 44 241 | 32 22 242 | 33 51 243 | 34 73 244 | 35 39 245 | 36 17 246 | 37 11 247 | 38 15 248 | 39 34 249 | 40 26 250 | 41 63 251 | 42 16 252 | 43 42 253 | 44 46 254 | 45 22 255 | 46 60 256 | 47 72 257 | 48 21 258 | 49 42 259 | 50 28 260 | 51 43 261 | 52 45 262 | 53 6 263 | 54 34 264 | 55 26 265 | 56 63 266 | 57 22 267 | 58 18 268 | 59 93 269 | 60 98 270 | 61 66 271 | 62 43 272 | 63 90 273 | 64 87 274 | 65 26 275 | 66 49 276 | 67 17 277 | 68 43 278 | 69 12 279 | 70 34 280 | 71 20 281 | 72 95 282 | 73 94 283 | 74 95 284 | 75 42 285 | 76 47 286 | 77 38 287 | 78 60 288 | 79 25 289 | 80 81 290 | 81 22 291 | 82 51 292 | 83 43 293 | 84 25 294 | 85 37 295 | 86 20 296 | 87 97 297 | 88 33 298 | 89 31 299 | 90 51 300 | 91 83 301 | 92 78 302 | 93 33 303 | 94 18 304 | 95 97 305 | 96 77 306 | 97 51 307 | 98 1 308 | 99 25 309 | 100 76 310 | 101 51 311 | 102 37 312 | 103 26 313 | 104 95 314 | 105 41 315 | 106 97 316 | 107 99 317 | 108 1 318 | 109 29 319 | 110 12 320 | 111 57 321 | 112 12 322 | 113 16 323 | 114 15 324 | 115 20 325 | 116 59 326 | 117 94 327 | 118 82 328 | 119 18 329 | 120 52 330 | 121 21 331 | 122 49 332 | 123 37 333 | 124 45 334 | 125 94 335 | 126 3 336 | 127 18 337 | 128 24 338 | 129 12 339 | 130 57 340 | 131 48 341 | 132 94 342 | 133 11 343 | 134 90 344 | 135 67 345 | 136 46 346 | 137 97 347 | 138 45 348 | 139 86 349 | 140 32 350 | 141 50 351 | 142 92 352 | 143 73 353 | 144 51 354 | 145 24 355 | 146 93 356 | 147 55 357 | 148 41 358 | 149 40 359 | 150 61 360 | 151 24 361 | 152 47 362 | 153 5 363 | 154 3 364 | 155 19 365 | 156 37 366 | 157 50 367 | 158 70 368 | 159 29 369 | 160 21 370 | 161 29 371 | 162 15 372 | 163 34 373 | 164 9 374 | 165 63 375 | 166 82 376 | 167 44 377 | 168 9 378 | 169 48 379 | 170 93 380 | 171 55 381 | 172 71 382 | 173 48 383 | 174 52 384 | 175 59 385 | 176 96 386 | 177 30 387 | 178 60 388 | 179 39 389 | 180 30 390 | 181 5 391 | 182 33 392 | 183 31 393 | 184 73 394 | 185 40 395 | 186 53 396 | 187 5 397 | 188 22 398 | 189 4 399 | 190 10 400 | 191 90 401 | 192 55 402 | 193 88 403 | 194 72 404 | 195 46 405 | 196 95 406 | 197 67 407 | 198 61 408 | 199 92 409 | 200 98 410 | 201 77 411 | DEPOT_SECTION 412 | 1 413 | -1 414 | EOF 415 | -------------------------------------------------------------------------------- /data/instances/random-7-X-n300.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-7-X-n300.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 301 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 755 7 | NODE_COORD_SECTION 8 | 1 865 463 9 | 2 505 405 10 | 3 909 101 11 | 4 595 879 12 | 5 573 663 13 | 6 42 217 14 | 7 106 790 15 | 8 378 967 16 | 9 574 365 17 | 10 500 963 18 | 11 273 384 19 | 12 295 666 20 | 13 374 831 21 | 14 360 865 22 | 15 430 197 23 | 16 958 230 24 | 17 865 465 25 | 18 415 479 26 | 19 888 81 27 | 20 926 141 28 | 21 187 580 29 | 22 547 88 30 | 23 846 524 31 | 24 800 2 32 | 25 355 451 33 | 26 345 742 34 | 27 538 239 35 | 28 716 621 36 | 29 436 874 37 | 30 580 7 38 | 31 591 786 39 | 32 417 339 40 | 33 25 4 41 | 34 16 336 42 | 35 468 770 43 | 36 835 559 44 | 37 33 844 45 | 38 121 308 46 | 39 147 38 47 | 40 699 73 48 | 41 938 609 49 | 42 512 11 50 | 43 399 734 51 | 44 44 775 52 | 45 112 780 53 | 46 553 609 54 | 47 237 808 55 | 48 55 379 56 | 49 672 463 57 | 50 278 892 58 | 51 801 220 59 | 52 950 511 60 | 53 93 241 61 | 54 841 508 62 | 55 772 918 63 | 56 126 431 64 | 57 624 789 65 | 58 701 824 66 | 59 515 716 67 | 60 198 577 68 | 61 503 796 69 | 62 373 90 70 | 63 278 643 71 | 64 799 715 72 | 65 311 571 73 | 66 327 963 74 | 67 535 827 75 | 68 825 611 76 | 69 587 716 77 | 70 942 82 78 | 71 793 325 79 | 72 330 259 80 | 73 108 769 81 | 74 440 865 82 | 75 866 629 83 | 76 348 513 84 | 77 375 624 85 | 78 570 260 86 | 79 364 925 87 | 80 306 74 88 | 81 43 727 89 | 82 850 149 90 | 83 10 88 91 | 84 211 563 92 | 85 894 318 93 | 86 804 314 94 | 87 219 533 95 | 88 557 58 96 | 89 381 926 97 | 90 247 406 98 | 91 217 75 99 | 92 518 112 100 | 93 110 308 101 | 94 244 58 102 | 95 325 962 103 | 96 887 639 104 | 97 797 562 105 | 98 50 240 106 | 99 161 337 107 | 100 973 340 108 | 101 724 342 109 | 102 933 991 110 | 103 67 671 111 | 104 427 267 112 | 105 593 994 113 | 106 782 585 114 | 107 416 461 115 | 108 378 553 116 | 109 550 970 117 | 110 529 213 118 | 111 745 128 119 | 112 247 528 120 | 113 390 2 121 | 114 865 183 122 | 115 809 152 123 | 116 211 663 124 | 117 740 103 125 | 118 486 440 126 | 119 17 143 127 | 120 79 579 128 | 121 203 669 129 | 122 878 636 130 | 123 355 978 131 | 124 145 344 132 | 125 0 992 133 | 126 296 481 134 | 127 598 57 135 | 128 591 923 136 | 129 920 75 137 | 130 262 359 138 | 131 671 719 139 | 132 997 822 140 | 133 872 439 141 | 134 133 454 142 | 135 834 440 143 | 136 756 89 144 | 137 371 568 145 | 138 112 891 146 | 139 834 82 147 | 140 732 814 148 | 141 897 544 149 | 142 539 7 150 | 143 121 257 151 | 144 789 571 152 | 145 561 131 153 | 146 519 71 154 | 147 14 341 155 | 148 775 808 156 | 149 497 204 157 | 150 678 414 158 | 151 385 29 159 | 152 691 979 160 | 153 632 573 161 | 154 8 864 162 | 155 348 152 163 | 156 230 761 164 | 157 551 828 165 | 158 362 150 166 | 159 518 611 167 | 160 162 785 168 | 161 901 754 169 | 162 683 28 170 | 163 218 29 171 | 164 771 654 172 | 165 593 911 173 | 166 373 347 174 | 167 625 170 175 | 168 928 94 176 | 169 531 488 177 | 170 405 186 178 | 171 478 515 179 | 172 397 838 180 | 173 650 615 181 | 174 829 419 182 | 175 260 814 183 | 176 250 406 184 | 177 675 315 185 | 178 465 992 186 | 179 496 72 187 | 180 714 730 188 | 181 550 976 189 | 182 263 490 190 | 183 840 567 191 | 184 444 442 192 | 185 607 604 193 | 186 442 919 194 | 187 885 362 195 | 188 837 944 196 | 189 909 309 197 | 190 274 338 198 | 191 485 144 199 | 192 303 381 200 | 193 153 522 201 | 194 167 394 202 | 195 106 137 203 | 196 76 531 204 | 197 701 684 205 | 198 887 850 206 | 199 288 487 207 | 200 796 780 208 | 201 723 684 209 | 202 762 119 210 | 203 193 516 211 | 204 400 403 212 | 205 333 710 213 | 206 245 467 214 | 207 875 237 215 | 208 721 392 216 | 209 247 192 217 | 210 758 610 218 | 211 38 9 219 | 212 399 160 220 | 213 848 2 221 | 214 934 48 222 | 215 929 556 223 | 216 668 56 224 | 217 349 419 225 | 218 183 417 226 | 219 898 343 227 | 220 87 564 228 | 221 945 354 229 | 222 614 489 230 | 223 536 595 231 | 224 112 295 232 | 225 910 965 233 | 226 524 591 234 | 227 951 154 235 | 228 213 844 236 | 229 334 776 237 | 230 477 941 238 | 231 943 489 239 | 232 191 179 240 | 233 374 754 241 | 234 250 917 242 | 235 626 608 243 | 236 597 689 244 | 237 86 334 245 | 238 579 193 246 | 239 5 305 247 | 240 383 860 248 | 241 629 221 249 | 242 361 807 250 | 243 128 505 251 | 244 858 829 252 | 245 185 498 253 | 246 951 44 254 | 247 857 730 255 | 248 626 847 256 | 249 918 390 257 | 250 437 785 258 | 251 817 245 259 | 252 59 685 260 | 253 36 803 261 | 254 378 731 262 | 255 534 556 263 | 256 496 608 264 | 257 490 191 265 | 258 475 116 266 | 259 718 5 267 | 260 343 664 268 | 261 886 445 269 | 262 58 977 270 | 263 849 16 271 | 264 689 609 272 | 265 248 5 273 | 266 205 185 274 | 267 705 367 275 | 268 9 95 276 | 269 798 355 277 | 270 369 552 278 | 271 88 778 279 | 272 452 850 280 | 273 456 209 281 | 274 142 298 282 | 275 790 191 283 | 276 706 667 284 | 277 718 55 285 | 278 695 801 286 | 279 624 954 287 | 280 601 794 288 | 281 895 465 289 | 282 179 450 290 | 283 944 531 291 | 284 857 378 292 | 285 77 732 293 | 286 803 832 294 | 287 455 450 295 | 288 496 580 296 | 289 61 591 297 | 290 754 715 298 | 291 133 522 299 | 292 137 147 300 | 293 457 106 301 | 294 402 635 302 | 295 233 23 303 | 296 130 243 304 | 297 732 657 305 | 298 491 918 306 | 299 300 61 307 | 300 637 502 308 | 301 661 750 309 | DEMAND_SECTION 310 | 1 0 311 | 2 66 312 | 3 21 313 | 4 64 314 | 5 81 315 | 6 58 316 | 7 24 317 | 8 23 318 | 9 2 319 | 10 44 320 | 11 81 321 | 12 92 322 | 13 77 323 | 14 5 324 | 15 51 325 | 16 86 326 | 17 2 327 | 18 83 328 | 19 70 329 | 20 37 330 | 21 40 331 | 22 74 332 | 23 75 333 | 24 99 334 | 25 87 335 | 26 53 336 | 27 36 337 | 28 2 338 | 29 15 339 | 30 1 340 | 31 84 341 | 32 6 342 | 33 22 343 | 34 53 344 | 35 22 345 | 36 73 346 | 37 16 347 | 38 64 348 | 39 25 349 | 40 55 350 | 41 3 351 | 42 57 352 | 43 31 353 | 44 49 354 | 45 46 355 | 46 44 356 | 47 68 357 | 48 55 358 | 49 25 359 | 50 2 360 | 51 20 361 | 52 36 362 | 53 49 363 | 54 27 364 | 55 22 365 | 56 67 366 | 57 56 367 | 58 49 368 | 59 32 369 | 60 30 370 | 61 16 371 | 62 36 372 | 63 64 373 | 64 83 374 | 65 30 375 | 66 96 376 | 67 72 377 | 68 64 378 | 69 2 379 | 70 93 380 | 71 97 381 | 72 9 382 | 73 84 383 | 74 72 384 | 75 36 385 | 76 48 386 | 77 73 387 | 78 35 388 | 79 95 389 | 80 95 390 | 81 38 391 | 82 77 392 | 83 43 393 | 84 85 394 | 85 77 395 | 86 89 396 | 87 79 397 | 88 28 398 | 89 78 399 | 90 29 400 | 91 72 401 | 92 44 402 | 93 94 403 | 94 59 404 | 95 1 405 | 96 15 406 | 97 60 407 | 98 36 408 | 99 21 409 | 100 27 410 | 101 7 411 | 102 52 412 | 103 83 413 | 104 72 414 | 105 64 415 | 106 5 416 | 107 23 417 | 108 73 418 | 109 58 419 | 110 96 420 | 111 15 421 | 112 1 422 | 113 66 423 | 114 49 424 | 115 21 425 | 116 99 426 | 117 27 427 | 118 15 428 | 119 12 429 | 120 94 430 | 121 76 431 | 122 11 432 | 123 72 433 | 124 85 434 | 125 77 435 | 126 38 436 | 127 92 437 | 128 72 438 | 129 1 439 | 130 28 440 | 131 9 441 | 132 13 442 | 133 53 443 | 134 37 444 | 135 4 445 | 136 84 446 | 137 95 447 | 138 99 448 | 139 3 449 | 140 55 450 | 141 67 451 | 142 83 452 | 143 60 453 | 144 66 454 | 145 98 455 | 146 74 456 | 147 43 457 | 148 5 458 | 149 47 459 | 150 25 460 | 151 19 461 | 152 87 462 | 153 88 463 | 154 10 464 | 155 5 465 | 156 56 466 | 157 92 467 | 158 92 468 | 159 20 469 | 160 23 470 | 161 16 471 | 162 30 472 | 163 31 473 | 164 60 474 | 165 51 475 | 166 32 476 | 167 13 477 | 168 83 478 | 169 95 479 | 170 10 480 | 171 33 481 | 172 47 482 | 173 34 483 | 174 20 484 | 175 44 485 | 176 61 486 | 177 62 487 | 178 41 488 | 179 86 489 | 180 14 490 | 181 88 491 | 182 67 492 | 183 80 493 | 184 75 494 | 185 63 495 | 186 17 496 | 187 8 497 | 188 3 498 | 189 30 499 | 190 10 500 | 191 20 501 | 192 98 502 | 193 7 503 | 194 50 504 | 195 68 505 | 196 78 506 | 197 55 507 | 198 92 508 | 199 57 509 | 200 85 510 | 201 42 511 | 202 46 512 | 203 78 513 | 204 29 514 | 205 33 515 | 206 3 516 | 207 46 517 | 208 8 518 | 209 35 519 | 210 86 520 | 211 36 521 | 212 68 522 | 213 46 523 | 214 57 524 | 215 67 525 | 216 28 526 | 217 5 527 | 218 79 528 | 219 52 529 | 220 21 530 | 221 9 531 | 222 39 532 | 223 54 533 | 224 36 534 | 225 52 535 | 226 41 536 | 227 28 537 | 228 14 538 | 229 37 539 | 230 42 540 | 231 47 541 | 232 82 542 | 233 35 543 | 234 2 544 | 235 51 545 | 236 50 546 | 237 38 547 | 238 18 548 | 239 5 549 | 240 91 550 | 241 12 551 | 242 7 552 | 243 50 553 | 244 41 554 | 245 39 555 | 246 11 556 | 247 52 557 | 248 83 558 | 249 55 559 | 250 57 560 | 251 29 561 | 252 89 562 | 253 2 563 | 254 3 564 | 255 27 565 | 256 48 566 | 257 41 567 | 258 99 568 | 259 2 569 | 260 7 570 | 261 13 571 | 262 30 572 | 263 58 573 | 264 22 574 | 265 32 575 | 266 34 576 | 267 55 577 | 268 45 578 | 269 66 579 | 270 70 580 | 271 57 581 | 272 42 582 | 273 53 583 | 274 90 584 | 275 47 585 | 276 38 586 | 277 38 587 | 278 62 588 | 279 10 589 | 280 97 590 | 281 9 591 | 282 64 592 | 283 41 593 | 284 18 594 | 285 93 595 | 286 19 596 | 287 80 597 | 288 79 598 | 289 93 599 | 290 63 600 | 291 43 601 | 292 82 602 | 293 41 603 | 294 12 604 | 295 24 605 | 296 51 606 | 297 32 607 | 298 38 608 | 299 51 609 | 300 59 610 | 301 99 611 | DEPOT_SECTION 612 | 1 613 | -1 614 | EOF 615 | -------------------------------------------------------------------------------- /data/instances/random-8-X-n50.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-8-X-n50.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 51 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 979 7 | NODE_COORD_SECTION 8 | 1 297 259 9 | 2 623 52 10 | 3 116 564 11 | 4 627 931 12 | 5 734 132 13 | 6 846 797 14 | 7 71 851 15 | 8 989 16 16 | 9 428 1 17 | 10 333 571 18 | 11 53 495 19 | 12 249 562 20 | 13 10 444 21 | 14 532 571 22 | 15 310 171 23 | 16 140 740 24 | 17 786 354 25 | 18 692 342 26 | 19 748 1000 27 | 20 776 644 28 | 21 861 57 29 | 22 0 374 30 | 23 426 963 31 | 24 546 397 32 | 25 156 397 33 | 26 11 326 34 | 27 11 572 35 | 28 138 688 36 | 29 809 769 37 | 30 202 210 38 | 31 638 143 39 | 32 479 518 40 | 33 490 505 41 | 34 118 381 42 | 35 541 346 43 | 36 978 617 44 | 37 98 525 45 | 38 363 251 46 | 39 136 228 47 | 40 623 804 48 | 41 688 45 49 | 42 626 511 50 | 43 29 720 51 | 44 457 88 52 | 45 748 525 53 | 46 978 2 54 | 47 224 534 55 | 48 547 514 56 | 49 432 574 57 | 50 277 905 58 | 51 957 182 59 | DEMAND_SECTION 60 | 1 0 61 | 2 71 62 | 3 81 63 | 4 57 64 | 5 77 65 | 6 65 66 | 7 85 67 | 8 4 68 | 9 37 69 | 10 47 70 | 11 93 71 | 12 21 72 | 13 26 73 | 14 7 74 | 15 9 75 | 16 80 76 | 17 27 77 | 18 27 78 | 19 98 79 | 20 62 80 | 21 30 81 | 22 69 82 | 23 92 83 | 24 22 84 | 25 20 85 | 26 54 86 | 27 90 87 | 28 84 88 | 29 84 89 | 30 51 90 | 31 32 91 | 32 63 92 | 33 61 93 | 34 20 94 | 35 22 95 | 36 52 96 | 37 18 97 | 38 22 98 | 39 71 99 | 40 23 100 | 41 33 101 | 42 10 102 | 43 67 103 | 44 38 104 | 45 5 105 | 46 77 106 | 47 9 107 | 48 66 108 | 49 25 109 | 50 28 110 | 51 38 111 | DEPOT_SECTION 112 | 1 113 | -1 114 | EOF 115 | -------------------------------------------------------------------------------- /data/instances/random-9-X-n75.vrp: -------------------------------------------------------------------------------- 1 | NAME : random-9-X-n75.vrp 2 | COMMENT : Generated by Junyoung, following Uchoa (2013). 3 | TYPE : CVRP 4 | DIMENSION : 76 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | CAPACITY : 956 7 | NODE_COORD_SECTION 8 | 1 839 728 9 | 2 822 156 10 | 3 615 527 11 | 4 859 724 12 | 5 106 32 13 | 6 84 773 14 | 7 976 338 15 | 8 75 938 16 | 9 160 233 17 | 10 995 394 18 | 11 715 462 19 | 12 970 303 20 | 13 835 231 21 | 14 155 612 22 | 15 147 865 23 | 16 294 810 24 | 17 658 86 25 | 18 890 781 26 | 19 578 425 27 | 20 282 727 28 | 21 586 743 29 | 22 468 654 30 | 23 665 590 31 | 24 213 739 32 | 25 614 463 33 | 26 373 70 34 | 27 185 218 35 | 28 315 419 36 | 29 43 340 37 | 30 341 723 38 | 31 114 640 39 | 32 130 923 40 | 33 531 967 41 | 34 315 781 42 | 35 897 11 43 | 36 204 207 44 | 37 123 574 45 | 38 745 94 46 | 39 373 535 47 | 40 930 828 48 | 41 547 183 49 | 42 953 875 50 | 43 192 335 51 | 44 636 14 52 | 45 290 706 53 | 46 238 359 54 | 47 963 238 55 | 48 406 871 56 | 49 824 619 57 | 50 52 288 58 | 51 494 334 59 | 52 60 290 60 | 53 333 180 61 | 54 980 14 62 | 55 714 624 63 | 56 263 885 64 | 57 324 944 65 | 58 407 53 66 | 59 441 738 67 | 60 208 254 68 | 61 486 603 69 | 62 939 400 70 | 63 808 101 71 | 64 533 90 72 | 65 548 225 73 | 66 8 366 74 | 67 880 556 75 | 68 954 582 76 | 69 477 122 77 | 70 854 543 78 | 71 994 536 79 | 72 567 739 80 | 73 150 51 81 | 74 343 697 82 | 75 601 324 83 | 76 515 519 84 | DEMAND_SECTION 85 | 1 0 86 | 2 76 87 | 3 63 88 | 4 77 89 | 5 65 90 | 6 97 91 | 7 57 92 | 8 69 93 | 9 27 94 | 10 77 95 | 11 24 96 | 12 45 97 | 13 39 98 | 14 73 99 | 15 49 100 | 16 92 101 | 17 35 102 | 18 31 103 | 19 58 104 | 20 6 105 | 21 23 106 | 22 75 107 | 23 52 108 | 24 17 109 | 25 55 110 | 26 70 111 | 27 71 112 | 28 18 113 | 29 57 114 | 30 39 115 | 31 98 116 | 32 58 117 | 33 56 118 | 34 15 119 | 35 29 120 | 36 88 121 | 37 96 122 | 38 15 123 | 39 67 124 | 40 9 125 | 41 94 126 | 42 54 127 | 43 66 128 | 44 30 129 | 45 10 130 | 46 31 131 | 47 39 132 | 48 29 133 | 49 75 134 | 50 83 135 | 51 51 136 | 52 52 137 | 53 88 138 | 54 84 139 | 55 54 140 | 56 17 141 | 57 36 142 | 58 69 143 | 59 86 144 | 60 10 145 | 61 35 146 | 62 88 147 | 63 47 148 | 64 65 149 | 65 39 150 | 66 26 151 | 67 80 152 | 68 68 153 | 69 64 154 | 70 61 155 | 71 52 156 | 72 12 157 | 73 33 158 | 74 71 159 | 75 67 160 | 76 91 161 | DEPOT_SECTION 162 | 1 163 | -1 164 | EOF 165 | -------------------------------------------------------------------------------- /data/results/README.txt: -------------------------------------------------------------------------------- 1 | This directory will be filled with result .pkl files. -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | torch-scatter==2.1.1 --extra-index-url https://pytorch-geometric.com/whl/torch-1.12.1+cu113.html 2 | 3 | dgl -f https://data.dgl.ai/wheels/cu113/repo.html 4 | dglgo -f https://data.dgl.ai/wheels-test/repo.html 5 | 6 | networkx==2.8.8 7 | scikit-learn==1.2.1 8 | julia==0.6.1 9 | 10 | python-box==7.0.0 11 | PyYAML==6.0 12 | tqdm 13 | wandb 14 | -------------------------------------------------------------------------------- /src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/src/__init__.py -------------------------------------------------------------------------------- /src/jl/call_julia.jl: -------------------------------------------------------------------------------- 1 | using TSPLIB 2 | using CVRPLIB 3 | # using CVRPSEP 4 | using CPLEX, JuMP 5 | import Base.@kwdef 6 | include("./cvrp_cutting.jl") 7 | 8 | 9 | @kwdef mutable struct CutOptions 10 | use_exact_rounded_capacity_cuts :: Bool = false 11 | use_learned_rounded_capacity_cuts :: Bool = false 12 | use_rounded_capacity_cuts :: Bool = true 13 | end 14 | 15 | 16 | function experiment(name::String) 17 | 18 | include("../jl/cvrp_cutting.jl") 19 | 20 | k = parse(Int, split(name, 'k')[end]) # minimum number of vehicles required 21 | cvrp, vrp_file, sol_file = readCVRP(name) 22 | 23 | cplex = optimizer_with_attributes( 24 | CPLEX.Optimizer, 25 | "CPX_PARAM_SCRIND" => 0, # output level 26 | # "CPX_PARAM_LPMETHOD" => 2, # 1:Primal Simplex, 2: Dual Simplex, 3: Network Simplex, 4: Barrier 27 | # "CPXPARAM_Barrier_ConvergeTol" => 1e-12, 28 | # "CPXPARAM_Simplex_Tolerances_Optimality" => 1e-9 29 | # "CPXPARAM_Advance" => 1, 30 | ) 31 | my_optimizer = cplex 32 | 33 | cut_options = CutOptions( 34 | use_rounded_capacity_cuts = false, 35 | use_learned_rounded_capacity_cuts = false, 36 | use_exact_rounded_capacity_cuts = true, 37 | ) 38 | 39 | @time lowerbound, list_e, list_x, list_s, list_rhs, list_z = generate_data(cvrp, k, my_optimizer, cut_options; max_n_cuts=k) 40 | # @show name, opt, lowerbound 41 | 42 | return cvrp, lowerbound, list_e, list_x, list_s, list_rhs, list_z 43 | end 44 | 45 | 46 | function get_cvrp_data(problem::Any, coords::Matrix, demands::Vector, k::Int, opt::Float64) 47 | include("../jl/cvrp_cutting.jl") 48 | 49 | dimension = Int.(problem.dimension) 50 | depot = problem.depots[1] 51 | dummy = dimension + 1 52 | customers = setdiff(1:(dimension+1), [depot, dummy]) 53 | 54 | weights = Int.(TSPLIB.calc_weights(problem.edge_weight_type, coords)) 55 | 56 | cvrp = CVRP( 57 | problem.name, 58 | dimension, 59 | problem.edge_weight_type, 60 | weights, 61 | problem.capacity, 62 | coords[1:end-1, :], 63 | demands, 64 | depot, 65 | dummy, 66 | customers 67 | ) 68 | 69 | 70 | cplex = optimizer_with_attributes( 71 | CPLEX.Optimizer, 72 | "CPX_PARAM_SCRIND" => 0, # output level 73 | # "CPX_PARAM_LPMETHOD" => 2, # 1:Primal Simplex, 2: Dual Simplex, 3: Network Simplex, 4: Barrier 74 | # "CPXPARAM_Barrier_ConvergeTol" => 1e-12, 75 | # "CPXPARAM_Simplex_Tolerances_Optimality" => 1e-9 76 | # "CPXPARAM_Advance" => 1, 77 | ) 78 | my_optimizer = cplex 79 | 80 | cut_options = CutOptions( 81 | use_rounded_capacity_cuts = false, 82 | use_learned_rounded_capacity_cuts = false, 83 | use_exact_rounded_capacity_cuts = true, 84 | ) 85 | 86 | @time lowerbound, list_e, list_x, list_s, list_rhs, list_z = generate_data(cvrp, k, my_optimizer, cut_options; max_n_cuts=k) 87 | @show opt, lowerbound 88 | 89 | return cvrp, lowerbound, list_e, list_x, list_s, list_rhs, list_z 90 | end 91 | -------------------------------------------------------------------------------- /src/jl/experiment.jl: -------------------------------------------------------------------------------- 1 | 2 | using(Pickle) 3 | include("cvrp_cutting.jl") 4 | 5 | # name = "P-n16-k8"; opt = 450; 6 | # name = "P-n19-k2"; opt = 212; 7 | # name = "E-n13-k4"; opt = 247; 8 | # name = "E-n22-k4"; opt = 375; 9 | # name = "E-n23-k3"; opt = 569; 10 | # name = "P-n101-k4"; opt = 681 11 | 12 | # name = "E-n30-k3"; opt = 534 13 | # name = "E-n33-k4"; opt = 835 14 | # name = "E-n51-k5"; opt = 521 15 | # name = "E-n76-k7"; opt = 682 16 | # name = "E-n76-k8"; opt = 735 17 | # name = "E-n76-k10"; opt = 830 18 | # name = "E-n76-k14"; opt = 1021 19 | # name = "E-n101-k8"; opt = 815 20 | # name = "E-n101-k14"; opt = 1067 21 | 22 | # name = "M-n101-k10"; opt = 820 23 | # name = "F-n45-k4"; opt = 724 24 | # name = "F-n72-k4"; opt = 237 25 | # name = "F-n135-k7"; opt = 1162 26 | 27 | # name = "M-n200-k17"; opt = 1275 28 | 29 | # name = "X-n101-k25"; opt = 27591 30 | # name = "X-n106-k14"; opt = 26362 31 | 32 | instances = [ 33 | ("P-n16-k8", 450) # for build 34 | # ("P-n16-k8", 450) 35 | # ("P-n19-k2", 212) 36 | # ("P-n101-k4", 681) 37 | # ("E-n13-k4", 247) 38 | # ("E-n22-k4", 375) 39 | # ("E-n23-k3", 569) 40 | # ("E-n51-k5", 521) 41 | # ("E-n76-k7", 682) 42 | # ("E-n76-k14", 1021) 43 | # ("E-n101-k8", 815) 44 | # ("E-n101-k14", 1067) 45 | # ("F-n135-k7", 1162) 46 | # ("M-n101-k10", 820) 47 | # ("M-n121-k7", 1034) 48 | # ("M-n151-k12", 1015) 49 | # ("M-n200-k16", 1274) 50 | # ("M-n200-k17", 1275) 51 | # ("X-n101-k25", 27591) 52 | # ("X-n106-k14", 26362) 53 | # ("X-n110-k13", 14971) 54 | # ("X-n115-k10", 12747) 55 | # ("X-n120-k6", 13332) 56 | # ("X-n125-k30", 55539) 57 | # ("X-n129-k18", 28940) 58 | # ("X-n134-k13", 10916) 59 | # ("X-n139-k10", 13590) 60 | # ("X-n143-k7", 15700) 61 | # ("X-n148-k46", 43448) 62 | # ("X-n153-k22", 21220) 63 | # ("X-n157-k13", 16876) 64 | # ("X-n162-k11", 14138) 65 | # ("X-n167-k10", 20557) 66 | # ("X-n172-k51", 45607) 67 | # ("X-n176-k26", 47812) 68 | # ("X-n181-k23", 25569) 69 | # ("X-n186-k15", 24145) 70 | # ("X-n190-k8", 16980) 71 | # ("X-n195-k51", 44225) 72 | # ("X-n200-k36", 58578) 73 | # ("X-n204-k19", 19565) 74 | # ("X-n209-k16", 30656) 75 | # ("X-n214-k11", 10856) 76 | # ("X-n219-k73", 117595) 77 | # ("X-n223-k34", 40437) 78 | # ("X-n228-k23", 25742) 79 | # ("X-n233-k16", 19230) 80 | # ("X-n237-k14", 27042) 81 | # ("X-n242-k48", 82751) 82 | # ("X-n247-k50", 37274) 83 | # ("X-n251-k28", 38684) 84 | # ("X-n256-k16", 18839) 85 | # ("X-n261-k13", 26558) 86 | # ("X-n266-k58", 75478) 87 | # ("X-n270-k35", 35291) 88 | # ("X-n275-k28", 21245) 89 | # ("X-n280-k17", 33503) 90 | # ("X-n284-k15", 20215) 91 | # ("X-n289-k60", 95151) 92 | # ("X-n294-k50", 47161) 93 | # ("X-n298-k31", 34231) 94 | # ("X-n303-k21", 21736) 95 | # ("X-n308-k13", 25859) 96 | # ("X-n313-k71", 94043) 97 | # ("X-n317-k53", 78355) 98 | # ("X-n322-k28", 29834) 99 | # ("X-n327-k20", 27532) 100 | # ("X-n331-k15", 31102) 101 | # ("X-n336-k84", 139111) 102 | # ("X-n344-k43", 42050) 103 | # ("X-n351-k40", 25896) 104 | # ("X-n359-k29", 51505) 105 | # ("X-n367-k17", 22814) 106 | # ("X-n376-k94", 147713) 107 | # ("X-n384-k52", 65928) 108 | # ("X-n393-k38", 38260) 109 | # ("X-n401-k29", 66154) 110 | # ("X-n411-k19", 19712) 111 | # ("X-n420-k130", 107798) 112 | # ("X-n429-k61", 65449) 113 | # ("X-n439-k37", 36391) 114 | # ("X-n449-k29", 55233) 115 | # ("X-n459-k26", 24139) 116 | # ("X-n469-k138", 221824) 117 | # ("X-n480-k70", 89449) 118 | # ("X-n491-k59", 66483) 119 | # ("X-n502-k39", 69226) 120 | # ("X-n513-k21", 24201) 121 | # ("X-n524-k153", 154593) 122 | # ("X-n536-k96", 94846) 123 | # ("X-n548-k50", 86700) 124 | # ("X-n561-k42", 42717) 125 | # ("X-n573-k30", 50673) 126 | # ("X-n586-k159", 190316) 127 | # ("X-n599-k92", 108451) 128 | # ("X-n613-k62", 59535) 129 | # ("X-n627-k43", 62164) 130 | # ("X-n641-k35", 63682) 131 | # ("X-n655-k131", 106780) 132 | # ("X-n670-k130", 146332) 133 | # ("X-n685-k75", 68205) 134 | # ("X-n701-k44", 81923) 135 | # ("X-n716-k35", 43373) 136 | # ("X-n733-k159", 136187) 137 | # ("X-n749-k98", 77269) 138 | # ("X-n766-k71", 114417) 139 | # ("X-n783-k48", 72386) 140 | # ("X-n801-k40", 73305) 141 | # ("X-n819-k171", 158121) 142 | # ("X-n837-k142", 193737) 143 | # ("X-n856-k95", 88965) 144 | # ("X-n876-k59", 99299) 145 | # ("X-n895-k37", 53860) 146 | ("X-n916-k207", 329179) 147 | ("X-n936-k151", 132715) 148 | ("X-n957-k87", 85465) 149 | ("X-n979-k58", 118976) 150 | ("X-n1001-k43", 72355) 151 | ] 152 | 153 | cut_options = CutOptions( 154 | use_exact_rounded_capacity_cuts = false, 155 | use_learned_rounded_capacity_cuts = true, 156 | use_rounded_capacity_cuts = false 157 | ) 158 | 159 | println(cut_options) 160 | 161 | for ins in instances 162 | name = ins[1] 163 | opt = ins[2] 164 | 165 | # println(name) 166 | 167 | k = parse(Int, split(name, 'k')[end]) # minimum number of vehicles required 168 | cvrp, vrp_file, sol_file = readCVRPLIB(name, add_dummy=true) 169 | 170 | cplex = optimizer_with_attributes( 171 | CPLEX.Optimizer, 172 | "CPX_PARAM_SCRIND" => 0, # output level 173 | # "CPX_PARAM_LPMETHOD" => 2, # 1:Primal Simplex, 2: Dual Simplex, 3: Network Simplex, 4: Barrier 174 | # "CPXPARAM_Barrier_ConvergeTol" => 1e-12, 175 | # "CPXPARAM_Simplex_Tolerances_Optimality" => 1e-9 176 | # "CPXPARAM_Advance" => 1, 177 | ) 178 | my_optimizer = cplex 179 | 180 | size = parse(Int, split(split(name, '-')[2], 'n')[end]) - 1 181 | 182 | if size <= 300 183 | max_iter = 200 184 | elseif size <= 500 185 | max_iter = 100 186 | else 187 | max_iter = 50 188 | end 189 | 190 | # if cut_options.use_rounded_capacity_cuts 191 | # max_iter *= 2 192 | # end 193 | 194 | start = time() 195 | @time lowerbound, iter_time, list_time, list_info, iter_cut, const_num, z_list, violations = solve_root_node_relaxation(cvrp, k, my_optimizer, cut_options; max_n_cuts=k, max_iter = max_iter) 196 | root_time = time() - start 197 | @show name, opt, lowerbound 198 | 199 | if cut_options.use_learned_rounded_capacity_cuts 200 | method = "_learned_imp_128_5" 201 | elseif cut_options.use_exact_rounded_capacity_cuts 202 | method = "_exact" 203 | elseif cut_options.use_rounded_capacity_cuts 204 | method = "_heuristic_rci_sparse" 205 | end 206 | 207 | file = string("../../data/results/exe_time_", name, method, ".pkl") 208 | store(file, [lowerbound, root_time, iter_time, list_time, list_info, iter_cut, const_num, z_list, violations]) 209 | 210 | end -------------------------------------------------------------------------------- /src/jl/experiment_with_random_instances.jl: -------------------------------------------------------------------------------- 1 | using(Pickle) 2 | include("cvrp_cutting.jl") 3 | 4 | instances = [ 5 | ("random-24-X-n50", 6686.0, 3) 6 | ("random-4-X-n50", 7684.0, 4) 7 | ("random-28-X-n50", 11557.0, 7) 8 | ("random-0-X-n50", 12735.0, 8) 9 | ("random-16-X-n50", 10190.0, 5) 10 | ("random-20-X-n50", 10126.0, 6) 11 | ("random-32-X-n50", 7483.0, 4) 12 | ("random-12-X-n50", 8317.0, 4) 13 | ("random-36-X-n50", 14188.0, 8) 14 | ("random-8-X-n50", 6733.0, 3) 15 | ("random-2-X-n100", 17242.0, 11) 16 | ("random-30-X-n100", 12151.0, 6) 17 | ("random-14-X-n100", 16934.0, 12) 18 | ("random-6-X-n100", 24832.0, 14) 19 | ("random-34-X-n100", 10752.0, 8) 20 | ("random-26-X-n100", 15654.0, 11) 21 | ("random-18-X-n100", 11171.0, 7) 22 | ("random-22-X-n100", 27022.0, 20) 23 | ("random-38-X-n100", 13766.0, 11) 24 | ("random-10-X-n100", 17727.0, 12) 25 | # ("random-5-X-n1000", 130385.0, 133) 26 | # ("random-1-X-n1000", 86706.0, 81) 27 | # ("random-7-X-n1000", 81052.0, 64) 28 | # ("random-3-X-n1000", 76005.0, 65) 29 | # ("random-9-X-n1000", 81448.0, 57) 30 | # ("random-21-X-n1000", 109492.0, 81) 31 | # ("random-19-X-n1000", 73749.0, 56) 32 | # ("random-15-X-n1000", 112383.0, 88) 33 | # ("random-11-X-n1000", 102522.0, 96) 34 | # ("random-13-X-n1000", 92888.0, 72) 35 | # ("random-6-X-n750", 137429.0, 99) 36 | # ("random-12-X-n750", 81988.0, 56) 37 | # ("random-4-X-n750", 55938.0, 49) 38 | # ("random-14-X-n750", 98971.0, 87) 39 | # ("random-8-X-n750", 54145.0, 37) 40 | # ("random-2-X-n750", 76471.0, 79) 41 | # ("random-16-X-n750", 77111.0, 72) 42 | # ("random-0-X-n750", 137798.0, 115) 43 | # ("random-18-X-n750", 85348.0, 50) 44 | # ("random-10-X-n750", 119393.0, 88) 45 | # ("random-17-X-n500", 134831.0, 128) 46 | # ("random-15-X-n500", 48692.0, 44) 47 | # ("random-19-X-n500", 34861.0, 28) 48 | # ("random-1-X-n500", 40287.0, 41) 49 | # ("random-9-X-n500", 43607.0, 29) 50 | # ("random-13-X-n500", 46414.0, 36) 51 | # ("random-5-X-n500", 85332.0, 67) 52 | # ("random-11-X-n500", 66720.0, 48) 53 | # ("random-3-X-n500", 56591.0, 33) 54 | # ("random-7-X-n500", 48159.0, 32) 55 | # ("random-14-X-n400", 61276.0, 46) 56 | # ("random-6-X-n400", 52025.0, 54) 57 | # ("random-10-X-n400", 59487.0, 47) 58 | # ("random-2-X-n400", 61447.0, 42) 59 | # ("random-12-X-n400", 37545.0, 30) 60 | # ("random-0-X-n400", 77967.0, 61) 61 | # ("random-16-X-n400", 57273.0, 38) 62 | # ("random-18-X-n400", 34643.0, 27) 63 | # ("random-4-X-n400", 29917.0, 27) 64 | # ("random-8-X-n400", 30953.0, 20) 65 | # ("random-18-X-n150", 15269.0, 10) 66 | # ("random-0-X-n150", 32095.0, 23) 67 | # ("random-14-X-n150", 26007.0, 18) 68 | # ("random-4-X-n150", 15782.0, 10) 69 | # ("random-12-X-n150", 18660.0, 12) 70 | # ("random-8-X-n150", 14412.0, 8) 71 | # ("random-10-X-n150", 20688.0, 18) 72 | # ("random-2-X-n150", 22513.0, 16) 73 | # ("random-6-X-n150", 22903.0, 20) 74 | # ("random-16-X-n150", 24903.0, 15) 75 | ("random-19-X-n200", 16102.0, 12) 76 | ("random-27-X-n200", 21609.0, 13) 77 | ("random-23-X-n200", 26556.0, 23) 78 | ("random-7-X-n200", 17182.0, 13) 79 | ("random-11-X-n200", 29495.0, 20) 80 | ("random-35-X-n200", 24854.0, 15) 81 | ("random-15-X-n200", 23121.0, 18) 82 | ("random-3-X-n200", 19644.0, 13) 83 | ("random-31-X-n200", 31684.0, 21) 84 | ("random-39-X-n200", 18271.0, 11) 85 | # ("random-7-X-n250", 22588.0, 16) 86 | # ("random-19-X-n250", 18936.0, 14) 87 | # ("random-3-X-n250", 27692.0, 17) 88 | # ("random-17-X-n250", 65628.0, 65) 89 | # ("random-13-X-n250", 28402.0, 18) 90 | # ("random-15-X-n250", 36240.0, 22) 91 | # ("random-11-X-n250", 26069.0, 24) 92 | # ("random-1-X-n250", 30739.0, 21) 93 | # ("random-9-X-n250", 21845.0, 15) 94 | # ("random-5-X-n250", 34697.0, 34) 95 | ("random-7-X-n300", 27269.0, 19) 96 | ("random-1-X-n300", 30181.0, 25) 97 | ("random-5-X-n300", 53305.0, 40) 98 | ("random-0-X-n300", 55614.0, 46) 99 | ("random-8-X-n300", 20636.0, 15) 100 | ("random-6-X-n300", 42079.0, 40) 101 | ("random-4-X-n300", 24324.0, 20) 102 | ("random-2-X-n300", 47765.0, 32) 103 | ("random-3-X-n300", 23414.0, 20) 104 | ("random-9-X-n300", 21740.0, 17) 105 | # ("random-17-X-n75", 34431.0, 20) 106 | # ("random-21-X-n75", 9726.0, 7) 107 | # ("random-25-X-n75", 10931.0, 6) 108 | # ("random-5-X-n75", 14930.0, 11) 109 | # ("random-9-X-n75", 9361.0, 5) 110 | # ("random-29-X-n75", 11893.0, 7) 111 | # ("random-1-X-n75", 11225.0, 7) 112 | # ("random-13-X-n75", 9652.0, 6) 113 | # ("random-37-X-n75", 9479.0, 4) 114 | # ("random-33-X-n75", 16151.0, 13) 115 | ("random-17-X-n500", 134831.0, 128) 116 | ("random-15-X-n500", 48692.0, 44) 117 | ("random-19-X-n500", 34861.0, 28) 118 | ("random-1-X-n500", 40287.0, 41) 119 | ("random-9-X-n500", 43607.0, 29) 120 | ("random-13-X-n500", 46414.0, 36) 121 | ("random-5-X-n500", 85332.0, 67) 122 | ("random-11-X-n500", 66720.0, 48) 123 | ("random-3-X-n500", 56591.0, 33) 124 | ("random-7-X-n500", 48159.0, 32) 125 | ("random-6-X-n400", 52025.0, 54) 126 | ("random-10-X-n400", 59487.0, 47) 127 | ("random-2-X-n400", 61447.0, 42) 128 | ("random-12-X-n400", 37545.0, 30) 129 | ("random-0-X-n400", 77967.0, 61) 130 | ("random-16-X-n400", 57273.0, 38) 131 | ("random-18-X-n400", 34643.0, 27) 132 | ("random-4-X-n400", 29917.0, 27) 133 | ("random-8-X-n400", 30953.0, 20) 134 | ("random-14-X-n400", 61276.0, 46) 135 | ] 136 | 137 | cut_options = CutOptions( 138 | use_exact_rounded_capacity_cuts = false, 139 | use_learned_rounded_capacity_cuts = true, 140 | use_rounded_capacity_cuts = false, 141 | ) 142 | 143 | println(cut_options) 144 | 145 | for ins in instances 146 | name = ins[1] 147 | opt = ins[2] 148 | k = ins[3] 149 | 150 | path = "../../data/instances/" 151 | cvrp = readCVRP(string(path, name, ".vrp"), add_dummy=true) 152 | 153 | cplex = optimizer_with_attributes( 154 | CPLEX.Optimizer, 155 | "CPX_PARAM_SCRIND" => 0, # output level 156 | # "CPX_PARAM_LPMETHOD" => 2, # 1:Primal Simplex, 2: Dual Simplex, 3: Network Simplex, 4: Barrier 157 | # "CPXPARAM_Barrier_ConvergeTol" => 1e-12, 158 | # "CPXPARAM_Simplex_Tolerances_Optimality" => 1e-9 159 | # "CPXPARAM_Advance" => 1, 160 | ) 161 | my_optimizer = cplex 162 | 163 | size = parse(Int, split(split(name, '-')[end], 'n')[end]) 164 | max_iter = -1 165 | 166 | if size <= 300 167 | max_iter = 200 168 | elseif size <= 500 169 | max_iter = 100 170 | else 171 | max_iter = 50 172 | end 173 | 174 | start = time() 175 | @time lowerbound, iter_time, list_time, list_info, iter_cut, const_num, z_list, violations = solve_root_node_relaxation(cvrp, k, my_optimizer, cut_options; max_n_cuts=k, max_iter = max_iter) 176 | root_time = time() - start 177 | @show name, opt, lowerbound 178 | 179 | if cut_options.use_learned_rounded_capacity_cuts 180 | method = "_neuralsep" 181 | elseif cut_options.use_exact_rounded_capacity_cuts 182 | method = "_exact" 183 | elseif cut_options.use_rounded_capacity_cuts 184 | method = "_cvrpsep" 185 | end 186 | 187 | file = string("../../data/results/exe_time_iter_", name, method, ".pkl") 188 | store(file, [lowerbound, root_time, iter_time, list_time, list_info, iter_cut, const_num, z_list, violations]) 189 | 190 | end 191 | -------------------------------------------------------------------------------- /src/model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/src/model/__init__.py -------------------------------------------------------------------------------- /src/model/autoregressive_agent.py: -------------------------------------------------------------------------------- 1 | import dgl 2 | import torch 3 | import torch.nn as nn 4 | 5 | from torch_scatter import scatter_softmax, scatter 6 | from torch.nn.utils.rnn import pad_sequence 7 | 8 | from src.nn.gnn import GNN 9 | from src.nn.mlp import MLP 10 | 11 | 12 | class ConstructiveBCAgent(nn.Module): 13 | def __init__(self, 14 | node_dim: int, 15 | edge_dim: int, 16 | latent_dim: int, 17 | n_layer: int, 18 | gn_params: dict = {}, 19 | policy_params: dict = {}): 20 | super(ConstructiveBCAgent, self).__init__() 21 | 22 | self.gnn = GNN(node_dim=node_dim, edge_dim=edge_dim, latent_dim=latent_dim, n_layer=n_layer, **gn_params) 23 | self.policy = MLP(input_dim=latent_dim, output_dim=1, **policy_params) 24 | 25 | def forward(self, g: dgl.graph): 26 | unf, uef = self.gnn(g) 27 | 28 | active_nid = g.nodes()[g.ndata['active'].bool().squeeze()] 29 | logits = self.policy(unf[active_nid]) 30 | 31 | return logits, active_nid 32 | 33 | def get_batch_probs(self, g): 34 | with g.local_scope(): 35 | logits, active_nid = self.forward(g) 36 | num_action_per_graph = [a.sum().long() for a in g.ndata['active'].split(g.batch_num_nodes().tolist())] 37 | num_action_per_graph = torch.tensor(num_action_per_graph, device=g.device) 38 | batch_idx = torch.arange(g.batch_size, device=g.device).long() 39 | batch_idx = batch_idx.repeat_interleave(num_action_per_graph, dim=0) 40 | 41 | # batch_idx = batch_idx[active_nid] 42 | probs = scatter_softmax(logits.view(-1), batch_idx) 43 | prob_chunks = probs.split(num_action_per_graph.tolist()) 44 | prob_chunks_padded = pad_sequence(prob_chunks, batch_first=True) 45 | 46 | assert prob_chunks_padded.shape[0] == g.batch_size 47 | assert prob_chunks_padded.shape[1] == int(max(num_action_per_graph)) 48 | 49 | return prob_chunks_padded, num_action_per_graph 50 | 51 | def get_batch_actions(self, gs: dgl.graph, sampling=False, temperature=1.0): 52 | active_nid = torch.nonzero(gs.ndata['active']).view(-1) 53 | 54 | if self.training: # have to select from labels to keep labels valid 55 | dummy = torch.nonzero(gs.ndata['is_dummy']).squeeze() 56 | 57 | labels = gs.ndata['s_hat'].clone().reshape(-1) # gs.ndata['s_hat'][dummy] = 0 58 | active_labels = labels[gs.ndata['active'] == 1] 59 | 60 | # EOS 61 | sum_label = scatter(active_labels, gs.ndata['batch'][gs.ndata['active'] == 1].view(-1), reduce='sum') 62 | done_bid = torch.where(sum_label == 0)[0] 63 | labels[dummy[done_bid]] = 1 64 | active_labels = labels[gs.ndata['active'] == 1] 65 | 66 | num_action_per_graph = [a.sum().long() for a in gs.ndata['active'].split(gs.batch_num_nodes().tolist())] 67 | num_action_per_graph = torch.tensor(num_action_per_graph, device=gs.device) 68 | 69 | label_chunks = active_labels.split(num_action_per_graph.tolist()) 70 | label_chunks_padded = pad_sequence(label_chunks, batch_first=True) 71 | 72 | sum_label = scatter(active_labels, gs.ndata['batch'][gs.ndata['active'] == 1].view(-1), reduce='sum') 73 | prob = label_chunks_padded / sum_label.view(-1, 1) 74 | actions = prob.multinomial(1).view(-1) 75 | selected_prob = prob.gather(1, actions.view(1, -1)) 76 | elif sampling: 77 | with torch.no_grad(): 78 | prob, num_action_per_graph = self.get_batch_probs(gs, temp=temperature) 79 | actions = prob.multinomial(1).view(-1) 80 | selected_prob = prob.gather(1, actions.view(1, -1)) 81 | else: 82 | with torch.no_grad(): 83 | prob, num_action_per_graph = self.get_batch_probs(gs) 84 | selected_prob, actions = prob.max(-1) 85 | 86 | cum_num_actions = torch.cumsum(num_action_per_graph, dim=0) 87 | actions = torch.cat([actions[0].view(-1, 1), (actions[1:] + cum_num_actions[:-1]).view(-1, 1)], dim=0).view(-1) 88 | 89 | return active_nid[actions], selected_prob.view(-1) 90 | -------------------------------------------------------------------------------- /src/model/coarsenig_agent.py: -------------------------------------------------------------------------------- 1 | import dgl 2 | import torch 3 | import torch.nn as nn 4 | from torch.nn.utils.rnn import pad_sequence 5 | 6 | from src.nn.gnn import GNN 7 | from src.nn.mlp import MLP 8 | 9 | EPS = 1e-8 10 | 11 | 12 | class IndependentBCAgent(nn.Module): 13 | def __init__(self, 14 | node_dim: int, 15 | edge_dim: int, 16 | latent_dim: int, 17 | n_layer: int, 18 | gn_params: dict = None, 19 | policy_params: dict = None): 20 | super(IndependentBCAgent, self).__init__() 21 | 22 | if gn_params is None: 23 | gn_params = {} 24 | 25 | if policy_params is None: 26 | policy_params = {'out_act': 'Sigmoid'} 27 | 28 | self.gnn = GNN(node_dim=node_dim, 29 | edge_dim=edge_dim, 30 | latent_dim=latent_dim, 31 | n_layer=n_layer, 32 | **gn_params) 33 | self.policy = MLP(input_dim=latent_dim, 34 | output_dim=1, **policy_params) 35 | 36 | def forward(self, g: dgl.graph) -> torch.tensor: 37 | unf, uef = self.gnn(g) 38 | probs = self.policy(unf) 39 | 40 | return probs 41 | 42 | def get_batch_probs(self, g): 43 | with g.local_scope(): 44 | probs = self.forward(g) 45 | probs = probs.view(-1) 46 | num_nodes_per_graph = g.batch_num_nodes() 47 | 48 | prob_chunks = probs.split(num_nodes_per_graph.tolist()) 49 | prob_chunks_padded = pad_sequence(prob_chunks, batch_first=True) 50 | 51 | assert prob_chunks_padded.shape[0] == g.batch_size 52 | assert prob_chunks_padded.shape[1] == int(max(num_nodes_per_graph)) 53 | 54 | # dist = Categorical(probs=prob_chunks_padded) 55 | 56 | return prob_chunks_padded 57 | 58 | def get_batch_probs_penalty(self, g): 59 | with g.local_scope(): 60 | probs = self.forward(g) 61 | probs = probs.view(-1) 62 | num_nodes_per_graph = g.batch_num_nodes() 63 | 64 | demand = (g.ndata['demand'] / g.ndata['capacity']).view(-1) 65 | demand_chunk = demand.split(num_nodes_per_graph.tolist()) 66 | demand_chunk_padded = pad_sequence(demand_chunk, batch_first=True) 67 | 68 | prob_chunks = probs.split(num_nodes_per_graph.tolist()) 69 | prob_chunks_padded = pad_sequence(prob_chunks, batch_first=True) 70 | 71 | assert prob_chunks_padded.shape[0] == g.batch_size 72 | assert prob_chunks_padded.shape[1] == int(max(num_nodes_per_graph)) 73 | assert demand_chunk_padded.shape[1] == int(max(num_nodes_per_graph)) 74 | 75 | return prob_chunks_padded, demand_chunk_padded.float(), g.ndata['M'][g.ndata['demand'] == 0.] 76 | -------------------------------------------------------------------------------- /src/nn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/src/nn/__init__.py -------------------------------------------------------------------------------- /src/nn/gn.py: -------------------------------------------------------------------------------- 1 | import dgl 2 | import torch 3 | import torch.nn as nn 4 | import torch_scatter 5 | 6 | from src.nn.mlp import MLP 7 | 8 | 9 | class HeteroGN(nn.Module): 10 | def __init__(self, 11 | dim: int, 12 | num_etypes: int = 2, 13 | num_ntypes: int = 2, 14 | residual: bool = True, 15 | updater_params: dict = {}): 16 | super(HeteroGN, self).__init__() 17 | 18 | self.dim = dim 19 | self.num_etypes = num_etypes 20 | self.num_ntypes = num_ntypes 21 | self.residual = residual 22 | 23 | self.outer_em = MLP(input_dim=3*dim, output_dim=dim, **updater_params) # ef + 2nf 24 | self.inter_em = MLP(input_dim=3*dim, output_dim=dim, **updater_params) 25 | 26 | self.cust_nm = MLP(input_dim=(1+self.num_etypes)*dim, output_dim=dim, **updater_params) 27 | if self.num_ntypes > 1: 28 | self.dummy_nm = MLP(input_dim=(1+self.num_etypes)*dim, output_dim=dim, **updater_params) 29 | 30 | def forward(self, g: dgl.graph, nf, ef): 31 | with g.local_scope(): 32 | g.ndata['h'] = nf 33 | g.edata['h'] = ef 34 | 35 | g.apply_edges(func=self.edge_update) 36 | g.update_all(self.msg_func, 37 | self.reduce_function, 38 | self.node_update) 39 | 40 | unf = g.ndata['h'] 41 | uef = g.edata['msg'] 42 | 43 | if self.residual: 44 | unf = unf + nf 45 | uef = uef + ef 46 | 47 | return unf, uef 48 | 49 | def edge_update(self, edges): # for all edges 50 | u_nf, ef, v_nf = edges.src['h'], edges.data['h'], edges.dst['h'] 51 | edge_input = torch.cat([ef, u_nf, v_nf], dim=-1) 52 | msg = torch.zeros((ef.shape[0], self.dim), device=edge_input.device) 53 | idx = edges.data['etypes'].long() 54 | msg[idx == 0] = self.outer_em(edge_input[idx == 0]) 55 | msg[idx == 1] = self.inter_em(edge_input[idx == 1]) 56 | # msg[idx == 2] = self.inner_em(edge_input[idx == 2]) 57 | 58 | return {'msg': msg, 'idx': idx} 59 | 60 | def msg_func(self, edges): 61 | return {'msg': edges.data['msg'], 'idx': edges.data['idx']} 62 | 63 | def reduce_function(self, nodes): 64 | msg = nodes.mailbox['msg'] # (n_node, #incomingedge, hidden_dim) 65 | msg_type = nodes.mailbox['idx'] # (n_node, #incomingedge) 66 | reduced_msg = torch.zeros(msg.shape[0], self.num_etypes, msg.shape[2], device=msg.device).float() 67 | 68 | # aggregate function sum, max, mean 69 | reduced_msg = torch_scatter.scatter_sum(msg, msg_type, out=reduced_msg, dim=-2) # (n_node, # type, hidden_dim) 70 | reduced_msg = reduced_msg.flatten(start_dim=1) 71 | # reduced_msg = torch_scatter.scatter_max(msg, msg_type, out=reduced_msg, dim=-2) 72 | # reduced_msg = reduced_msg[0].flatten(start_dim=1) # (n nodes, # types x hidden) # for scatter_max 73 | return {'agg_m': reduced_msg} # (n_node, # types x hidden_dim) 74 | 75 | def node_update(self, nodes): 76 | agg_m = nodes.data['agg_m'] 77 | nf = nodes.data['h'] 78 | node_input = torch.cat([nf, agg_m], dim=-1) 79 | 80 | unf = torch.zeros((nf.shape[0], self.dim), device=node_input.device) 81 | idx = nodes.data['is_dummy'].long() 82 | unf[idx == 0] = self.cust_nm(node_input[idx == 0]) 83 | unf[idx == 1] = self.dummy_nm(node_input[idx == 1]) 84 | 85 | return {'h': unf} 86 | -------------------------------------------------------------------------------- /src/nn/gnn.py: -------------------------------------------------------------------------------- 1 | import dgl 2 | import torch 3 | import torch.nn as nn 4 | from dgl.nn.pytorch.utils import Sequential 5 | 6 | from src.nn.gn import HeteroGN 7 | 8 | EPS = 1e-8 9 | 10 | 11 | def update_target(source, target, tau): 12 | for src_param, target_param in zip(source.parameters(), target.parameters()): 13 | target_param.data.copy_(tau * src_param.data + (1.0 - tau) * target_param.data) 14 | 15 | 16 | class GNN(nn.Module): 17 | def __init__(self, 18 | node_dim: int, 19 | edge_dim: int, 20 | latent_dim: int, 21 | n_layer: int, 22 | gn_params: dict = None): 23 | super(GNN, self).__init__() 24 | 25 | if gn_params is None: 26 | gn_params = {} 27 | 28 | self.node_encoder = nn.Linear(node_dim, latent_dim) 29 | self.edge_encoder = nn.Linear(edge_dim, latent_dim) 30 | 31 | self.gn_layers = Sequential( 32 | *tuple([HeteroGN(dim=latent_dim, **gn_params) for _ in range(n_layer)]) 33 | ) 34 | 35 | def forward(self, g: dgl.graph) -> torch.tensor: 36 | unf = self.node_encoder(g.ndata['nf'].float()) 37 | uef = self.edge_encoder(g.edata['ef'].float()) 38 | unf, uef = self.gn_layers(g, unf, uef) 39 | 40 | return unf, uef 41 | -------------------------------------------------------------------------------- /src/nn/mlp.py: -------------------------------------------------------------------------------- 1 | from typing import List 2 | import torch.nn as nn 3 | 4 | 5 | class MLP(nn.Module): 6 | def __init__(self, 7 | input_dim: int, 8 | output_dim: int, 9 | hidden: List[int] = [64, 32], 10 | hidden_act: str = 'ReLU', 11 | out_act: str = 'Identity', 12 | bias: bool = True): 13 | super(MLP, self).__init__() 14 | 15 | self.input_dim = input_dim 16 | self.output_dim = output_dim 17 | self.hidden = hidden 18 | self.hidden_act = getattr(nn, hidden_act)() 19 | self.out_act = getattr(nn, out_act)() 20 | 21 | input_dims = [input_dim] + hidden 22 | output_dims = hidden + [output_dim] 23 | 24 | self.layers = nn.ModuleList() 25 | for (in_dim, out_dim) in zip(input_dims, output_dims): 26 | self.layers.append(nn.Linear(in_dim, out_dim, bias=bias)) 27 | 28 | def forward(self, x): 29 | for linear in self.layers[:-1]: # hidden layers and hidden_act 30 | x = linear(x) 31 | x = self.hidden_act(x) 32 | 33 | # last linear layer and out_act 34 | x = self.layers[-1](x) 35 | x = self.out_act(x) 36 | 37 | return x 38 | -------------------------------------------------------------------------------- /src/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyeonahkimm/neuralsep/d181b69ec01a355a4b77b9cdf8c67fe4902c9917/src/utils/__init__.py -------------------------------------------------------------------------------- /src/utils/data_utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pickle 3 | from itertools import combinations 4 | # import pandas as pd 5 | from pathlib import Path 6 | 7 | import dgl 8 | import numpy as np 9 | import ray 10 | import torch 11 | import tsplib95 12 | from dgl.data.utils import save_graphs 13 | from julia import Main 14 | from tqdm import tqdm 15 | 16 | 17 | def get_xml_data(): 18 | # XML CVRP data is generated following Uchoa et al. (2021) 19 | # Queiroga, Eduardo, et al. "10,000 optimal CVRP solutions for testing machine learning based heuristics." 20 | # AAAI-22 Workshop on Machine Learning for Operations Research (ML4OR). 2021. 21 | path = os.path.join(os.pardir, os.pardir, 'data', 'instances') 22 | file_list = os.listdir(path) 23 | instances = [file.split('.')[0] for file in file_list if 24 | file.startswith('random-5') and not file.startswith('random-5-')] 25 | Main.include("../jl/call_julia.jl") 26 | 27 | for instance in tqdm(instances): 28 | file = "../../data/pickles/{}.pickle".format(instance) 29 | exist = os.path.isfile(file) 30 | # if not instance.startswith("XML100_112"): 31 | # continue 32 | 33 | if exist: 34 | print("already done.", instance) 35 | continue 36 | 37 | vrp_path = os.path.join(path, instance + '.vrp') 38 | # sol_path = os.path.join(path, instance + '.sol') 39 | sol_path = os.path.join(path, os.pardir, 'solutions', instance + '.sol') 40 | problem, coords, demands = parse_vrp_file(vrp_path) 41 | tours, opt, _ = parse_sol_file(sol_path) 42 | k = len(tours) 43 | cvrp, lb, list_e, list_x, list_s, list_rhs, list_z = Main.get_cvrp_data(problem, coords, demands, k, opt) 44 | 45 | data = { 46 | 'name': problem.name, 47 | 'k': k, 48 | 'lb': lb, 49 | 'list_e': list_e, 50 | 'list_x': list_x, 51 | 'list_s': list_s, 52 | 'list_rhs': list_rhs, 53 | 'list_z': list_z, 54 | 'demand': cvrp.demand, 55 | 'capacity': cvrp.capacity 56 | } 57 | 58 | # save 59 | with open("../../data/pickles/{}.pickle".format(problem.name.split('.')[0]), 'wb') as f: 60 | pickle.dump(data, f, pickle.HIGHEST_PROTOCOL) 61 | 62 | 63 | def parse_vrp_file(file_path: str): 64 | if not file_path.endswith('.vrp'): 65 | # file_path = file_path.split('.')[0] 66 | file_path += '.vrp' 67 | problem = tsplib95.loaders.load(file_path) 68 | 69 | coords = np.array([v for v in problem.node_coords.values()]) 70 | coords = np.concatenate([coords, np.expand_dims(coords[problem.depots[0]], axis=0)], axis=0) 71 | demands = np.array([v for v in problem.demands.values()] + [0]) 72 | return problem, coords, demands 73 | 74 | 75 | def parse_sol_file(file_path: str): 76 | if not file_path.endswith('.sol'): 77 | # file_path = file_path.split('.')[0] 78 | file_path += '.sol' 79 | 80 | tours = [] 81 | cost = None 82 | run_time = None 83 | 84 | with open(file_path, 'r') as f: 85 | while True: 86 | line = f.readline() 87 | if line.startswith('Route'): 88 | # tours.append([int(st) for st in line.split(':')[1].split(' ') if st.isnumeric()]) 89 | tours.append([int(st) for st in line.split(':')[1].split() if st.isnumeric()]) 90 | if line.startswith('Cost'): 91 | cost = float(line.split(' ')[1]) 92 | if line.startswith('Time'): 93 | run_time = float(line.split(' ')[1]) 94 | if not line: 95 | break 96 | return tours, cost, run_time 97 | 98 | 99 | def get_julia_data(newly_cal=True, name=None): 100 | if newly_cal: 101 | Main.include("../jl/call_julia.jl") 102 | cvrp, lb, list_e, list_x, list_s, list_rhs, list_z = Main.experiment(name) 103 | 104 | data = { 105 | 'name': name, 106 | 'k': int(name.split("-k")[1]), 107 | 'lb': lb, 108 | 'list_e': list_e, 109 | 'list_x': list_x, 110 | 'list_s': list_s, 111 | 'list_rhs': list_rhs, 112 | 'list_z': list_z, 113 | 'demand': cvrp.demand, 114 | 'capacity': cvrp.capacity 115 | } 116 | 117 | # print(Main.cvrp) 118 | 119 | # save 120 | with open("../../data/pickles/{}_m.pickle".format(name), 'wb') as f: 121 | pickle.dump(data, f, pickle.HIGHEST_PROTOCOL) 122 | 123 | else: 124 | # load 125 | with open("../../data/pickles/{}.pickle".format(name), 'rb') as f: 126 | data = pickle.load(f) 127 | return data 128 | 129 | 130 | def save_graphs_sols(complete_g=True, file_name="data"): 131 | path = os.path.join(os.pardir, os.pardir, 'data', 'pickles') 132 | instances = os.listdir(path) 133 | size = 200 134 | instances = [file for file in instances if file.endswith('220311092127.pickle')] 135 | 136 | print(len(instances)) 137 | gs, labels = [], [] # no need to save rhs 138 | for instance in tqdm(instances): 139 | file = "../../data/pickles/{}".format(instance) 140 | if os.path.isfile(file) and not instance.startswith('E'): 141 | data = get_julia_data(newly_cal=False, name=instance.split('.')[0]) 142 | k = data['k'] 143 | capacity = data['capacity'] 144 | # cust_n = len(data['demand'][data['demand'] > 0.0]) 145 | 146 | n = len(data['demand']) - 1 # dummy 147 | demand = data['demand'][:n] 148 | if sum(demand == 0) > 1: 149 | # print(instance, "has 0 demand.") 150 | demand[demand == 0] = 1 151 | demand[0] = 0 152 | # continue 153 | 154 | for step in range(len(data['list_e'])): 155 | e = data['list_e'][step] 156 | x = data['list_x'][step] 157 | s_hat = data['list_s'][step] 158 | 159 | # based on x_bar 160 | cur_e = [(u - 1, v - 1) for u, v in e] 161 | 162 | src, dest, ef = [], [], [] 163 | for idx, (u, v) in enumerate(cur_e): 164 | src.extend([u, v]) 165 | dest.extend([v, u]) 166 | ef.extend([x[idx], x[idx]]) 167 | 168 | if complete_g: 169 | for (u, v) in combinations(range(n), 2): 170 | if (u, v) not in cur_e and (v, u) not in cur_e: 171 | src.extend([u, v]) 172 | dest.extend([v, u]) 173 | ef.extend([0.0, 0.0]) 174 | 175 | g = dgl.graph((torch.tensor(src).long(), torch.tensor(dest).long())) 176 | 177 | g.edata['x_val'] = torch.tensor(ef).view(-1, 1) 178 | g.ndata['demand'] = torch.tensor(demand).view(-1, 1) 179 | g.ndata['capacity'] = torch.tensor([capacity] * n).view(-1, 1) 180 | g.ndata['is_depot'] = torch.tensor(demand == 0.0).int().view(-1, 1) 181 | 182 | # dummy = g.num_nodes() 183 | # g.add_edges([i for i in range(dummy)], [dummy for _ in range(dummy)]) 184 | # g.ndata['is_dummy'] = torch.zeros(g.num_nodes()).int() 185 | # g.ndata['is_dummy'][dummy] = 1 186 | 187 | # solution label (S) 188 | label = [] 189 | for m in range(len(s_hat)): 190 | # label[m][dummy] = 0 191 | # label.append([int(i + 1 in s_hat[m]) for i in range(n + 1)]) 192 | label.append([int(i + 1 in s_hat[m]) for i in range(n)]) 193 | 194 | g.ndata['s_hat'] = torch.tensor(label).T # [N X K] 195 | gs.append(g) # (steps) 196 | print(len(gs)) 197 | save_graphs("../../data/{}.bin".format(file_name), gs) 198 | 199 | 200 | if __name__ == '__main__': 201 | get_xml_data() 202 | # save_graphs_sols(False, "data_random_large") 203 | -------------------------------------------------------------------------------- /src/utils/dataset.py: -------------------------------------------------------------------------------- 1 | import dgl 2 | import torch 3 | import numpy as np 4 | 5 | from torch.utils.data import DataLoader, Dataset 6 | from torch.nn.utils.rnn import pad_sequence 7 | from src.utils.graph_utils import get_graph_label, get_current_g 8 | 9 | 10 | class SeqDataset(Dataset): 11 | def __init__(self, g_list): 12 | # assert all(len(g_list) == t.shape[0] for t in tensors), "Size mismatch between inputs" 13 | # self.g_list = g_list 14 | self.g_list, labels = [], [] 15 | num_actions = [] 16 | for g in g_list: 17 | dummy = g.num_nodes() 18 | g.add_edges([i for i in range(dummy)], [dummy for _ in range(dummy)]) 19 | g.ndata['is_dummy'] = torch.zeros(g.num_nodes()).int() 20 | g.ndata['is_dummy'][dummy] = 1 21 | 22 | for m in range(g.ndata['s_hat'].shape[1]): 23 | s_hat = torch.nonzero(g.ndata['s_hat'][:, m]).view(-1) 24 | for _ in range(min(len(s_hat) ** 2, 10)): 25 | cur_s = [] 26 | for step in range(len(s_hat) + 1): 27 | cur_g = get_current_g(g, cur_s, m) 28 | active_nid = torch.nonzero(cur_g.ndata['active']).view(-1) 29 | num_actions.append(len(active_nid)) 30 | label = torch.tensor([float(v in s_hat and v not in cur_s) for v in range(cur_g.num_nodes())]) 31 | label = label[active_nid] 32 | if len(cur_s) < len(s_hat): 33 | next_v = np.random.choice(list(set(s_hat.tolist()) - set(cur_s)), 1)[0] 34 | cur_s.append(next_v) 35 | else: 36 | label[-1] = 1.0 37 | cur_g.ndata['s_hat'] = torch.zeros((cur_g.ndata['s_hat'].shape[0], 1)) 38 | self.g_list.append(cur_g) 39 | labels.append(label) 40 | 41 | self.labels = labels 42 | self.num_actions = num_actions 43 | self.len = len(self.g_list) 44 | 45 | def __getitem__(self, index): 46 | return self.g_list[index], self.labels[index], self.num_actions[index] 47 | 48 | def __len__(self): 49 | return self.len 50 | 51 | 52 | class SeqDataLoader(DataLoader): 53 | 54 | def __init__(self, *args, **kwargs): 55 | kwargs['collate_fn'] = self.collate_fn 56 | super(SeqDataLoader, self).__init__(*args, **kwargs) 57 | 58 | def collate_fn(self, batch): 59 | out = tuple(map(list, zip(*batch))) 60 | gs = dgl.batch(out[0]) 61 | logits, num_actions = [], out[2] 62 | for l in out[1]: 63 | logits.extend(l) 64 | logits = torch.tensor(logits) 65 | 66 | prob_chunks = [l / l.sum() for l in logits.split(num_actions)] 67 | prob_chunks_padded = pad_sequence(prob_chunks, batch_first=True) 68 | 69 | return gs, prob_chunks_padded 70 | 71 | 72 | class GraphDataset(Dataset): 73 | 74 | def __init__(self, gs): 75 | super().__init__() 76 | self.gs = gs # not processed 77 | self.len = len(gs) 78 | 79 | def __getitem__(self, idx): 80 | return self.gs[idx] 81 | 82 | def __len__(self): 83 | return self.len 84 | 85 | 86 | class GraphDataLoader(DataLoader): 87 | def __init__(self, *args, **kwargs): 88 | self.device = kwargs.pop('device', 'cpu') 89 | self.add_dummy = kwargs.pop('add_dummy', False) 90 | 91 | kwargs['collate_fn'] = self.collate_fn 92 | super().__init__(*args, **kwargs) 93 | 94 | def collate_fn(self, batch): 95 | gs = [] 96 | cum_batch_num = 0 97 | for g in batch: 98 | batched_g = get_graph_label(g, add_dummy=self.add_dummy) 99 | batched_g.ndata['batch'] += cum_batch_num 100 | batched_g.edata['batch'] += cum_batch_num 101 | gs.append(batched_g) 102 | cum_batch_num += batched_g.batch_size 103 | gs = dgl.batch(gs) 104 | return gs.to(self.device) 105 | 106 | -------------------------------------------------------------------------------- /src/utils/train_utils.py: -------------------------------------------------------------------------------- 1 | import random 2 | import numpy as np 3 | import torch 4 | 5 | 6 | def set_seed(seed: int, 7 | use_cuda: bool): 8 | random.seed(seed) 9 | np.random.seed(seed) 10 | torch.random.manual_seed(seed) 11 | if use_cuda: 12 | torch.cuda.manual_seed(seed) 13 | # dgl.seed(seed) 14 | -------------------------------------------------------------------------------- /train_autoregressive_model.py: -------------------------------------------------------------------------------- 1 | import os 2 | import numpy 3 | from datetime import datetime 4 | from os.path import join 5 | from time import perf_counter 6 | 7 | import torch 8 | from box import Box 9 | from dgl.data.utils import load_graphs 10 | from sklearn.model_selection import train_test_split 11 | from torch.optim.lr_scheduler import CosineAnnealingWarmRestarts 12 | from torch_scatter import scatter 13 | 14 | import wandb 15 | from src.model.autoregressive_agent import ConstructiveBCAgent 16 | from src.utils.dataset import GraphDataset, GraphDataLoader 17 | from src.utils.graph_utils import get_cut_value, get_current_gs 18 | from src.utils.train_utils import set_seed 19 | from src.utils.eval_utils import evaluate_auto_regressive 20 | 21 | 22 | def load_and_evaluate(config, file_name): 23 | device = config.train.device if torch.cuda.is_available() else 'cpu' 24 | # device = 'cpu' 25 | 26 | set_seed(seed=config.train.seed, 27 | use_cuda='cuda' in device) 28 | 29 | model = ConstructiveBCAgent(**config.model) 30 | model.load_state_dict(torch.load("./checkpoints/{}.pt".format(file_name), map_location=device)) 31 | model.to(device) 32 | 33 | instance_sizes = [50, 75, 100, 200] 34 | test_size = 100 35 | 36 | print(file_name) 37 | 38 | model.eval() 39 | for size in instance_sizes: 40 | gs, _ = load_graphs("./data/data_test_{}.bin".format(size)) 41 | g_test_index = torch.load("./data/data_test_index_{}.bin".format(size)) 42 | 43 | start = perf_counter() 44 | rst = evaluate_auto_regressive(model, gs, g_test_index, device) # (model, data_list, indices, device) 45 | 46 | tot_time = (perf_counter() - start) / test_size 47 | print(size, tot_time, rst) 48 | 49 | 50 | def evaluate(model, data_list, device): 51 | with torch.no_grad(): 52 | s_pred_list, s_hat_list = [], [] 53 | cut_pred_list, cut_hat_list = [], [] 54 | for graph in data_list: 55 | dl = GraphDataLoader(GraphDataset([graph]), 56 | batch_size=config.train.batch_size, 57 | shuffle=False, 58 | device=device, 59 | add_dummy=True) 60 | for gs in dl: 61 | s_hat = gs.ndata['s_hat'].view(-1) 62 | s_hat_list.append(s_hat) 63 | batch_idx = torch.arange(gs.batch_size, device=device).repeat_interleave(gs.batch_num_nodes()) 64 | start_idx = scatter(gs.nodes(), batch_idx, reduce='min') 65 | done = torch.zeros(gs.batch_size, device=device) 66 | cur_s = [] 67 | 68 | for _ in range(gs.batch_num_nodes().max()): 69 | gs, _ = get_current_gs(gs=gs, cur_s=cur_s, with_label=False) 70 | no_active = 1 - scatter(gs.ndata['active'].view(-1), batch_idx, reduce='max') 71 | done = torch.where(done > no_active, done, no_active) 72 | if done.min().bool(): 73 | break 74 | actions, _ = model.get_batch_actions(gs) 75 | # selected_node = start_idx + actions 76 | dummy_selected = gs.ndata['is_dummy'][actions] 77 | done = torch.where(done > dummy_selected, done, dummy_selected) 78 | # print((1 - done), actions) 79 | cur_s.extend(actions[(1 - done).bool()].tolist()) 80 | 81 | s_pred = torch.tensor([int(i in cur_s) for i in range(gs.num_nodes())], device=device) 82 | s_pred_list.append(s_pred) 83 | 84 | cut_hat = [get_cut_value(graph, s) for s in s_hat.view(gs.batch_size, -1).tolist()] 85 | cut_pred = [get_cut_value(graph, s) for s in s_pred.view(gs.batch_size, -1).tolist()] 86 | 87 | cut_hat_list.extend(cut_hat) 88 | cut_pred_list.extend(cut_pred) 89 | 90 | test_fn = torch.nn.MSELoss() 91 | s_mse = test_fn(torch.cat(s_pred_list).float(), torch.cat(s_hat_list).float()) 92 | cut_mse = test_fn(torch.tensor(cut_pred_list), torch.tensor(cut_hat_list)) 93 | return s_mse.item(), cut_mse.item() 94 | 95 | 96 | def train(config): 97 | now = datetime.now() 98 | training_id = now.strftime('%y%m%d%H%M%S') 99 | 100 | device = config.train.device 101 | if 'cuda' in device: 102 | if not torch.cuda.is_available(): 103 | device = 'cpu' 104 | print("Idiot.") 105 | 106 | set_seed(seed=config.train.seed, 107 | use_cuda='cuda' in device) 108 | 109 | model = ConstructiveBCAgent(**config.model).to(device) 110 | 111 | opt = torch.optim.Adam(model.parameters(), lr=config.opt.lr) 112 | scheduler = CosineAnnealingWarmRestarts(opt, T_0=config.opt.T_0) 113 | loss_fn = getattr(torch.nn, config.train.loss_fn)() 114 | 115 | wandb.init(project='NeuralSEP', 116 | name=training_id, 117 | group='Autoregressive', 118 | reinit=True, 119 | config=config.to_dict()) 120 | 121 | config.to_yaml(filename=join(wandb.run.dir, 'exp_config.yaml')) 122 | 123 | gs, _ = load_graphs("./data/{}.bin".format(config.train.data_file)) 124 | g_train, g_test = train_test_split(gs, 125 | test_size=config.train.test_size, 126 | random_state=config.train.seed) 127 | 128 | n_update = 0 129 | 130 | data = GraphDataset(g_train) 131 | dl = GraphDataLoader(data, 132 | batch_size=config.train.batch_size, 133 | shuffle=config.train.shuffle_dl, 134 | device=device, 135 | add_dummy=True) 136 | 137 | print("Start to train", training_id) 138 | best_cut_mse = float('inf') 139 | for _ in range(config.train.n_epochs): 140 | for train_g in dl: 141 | train_g = train_g.to(device) 142 | batch_idx = torch.arange(train_g.batch_size, device=device).repeat_interleave(train_g.batch_num_nodes()) 143 | cur_s = [] 144 | 145 | for _ in range(train_g.batch_num_nodes().max()): 146 | train_g, train_y = get_current_gs(gs=train_g, cur_s=cur_s, with_label=True) 147 | start = perf_counter() 148 | pred_y, _ = model.get_batch_probs(train_g) 149 | 150 | loss = loss_fn(pred_y, train_y) 151 | 152 | opt.zero_grad() 153 | loss.backward() 154 | opt.step() 155 | scheduler.step() 156 | fit_time = perf_counter() - start 157 | 158 | n_update += 1 159 | 160 | log_dict = { 161 | 'loss': loss.item(), 162 | 'fit_time': fit_time 163 | } 164 | 165 | if n_update % config.train.eval_every == 0: 166 | model.eval() 167 | start = perf_counter() 168 | test_s_mse, test_cut_mse = evaluate(model, g_test[:10], device) 169 | eval_time = perf_counter() - start 170 | model.train() 171 | # log_dict['train_mse'] = train_mse 172 | log_dict['test_mse'] = test_s_mse 173 | log_dict['test_cut_mse'] = test_cut_mse 174 | log_dict['eval_time'] = eval_time 175 | # print(log_dict) 176 | 177 | if test_cut_mse < best_cut_mse: 178 | best_cut_mse = test_cut_mse 179 | torch.save(model.state_dict(), "./checkpoints/autoregressive_{}_best.pt".format(training_id)) 180 | 181 | if n_update % config.train.save_every == 0: 182 | torch.save(model.state_dict(), "./checkpoints/autoregressive_{}.pt".format(training_id)) 183 | torch.save(opt.state_dict(), "./checkpoints/opt_autoregressive_{}.pt".format(training_id)) 184 | 185 | wandb.log(log_dict) 186 | 187 | actions = model.get_batch_actions(train_g) 188 | done = train_g.ndata['is_dummy'][actions] 189 | cur_s.extend(actions[(1 - done).bool()].tolist()) 190 | 191 | 192 | if __name__ == '__main__': 193 | config = Box.from_yaml(filename=join(os.getcwd(), 'config', 'autoregressive_config.yaml')) 194 | train(config) 195 | # load_and_evaluate(config, "autoregressive_pretrained") 196 | --------------------------------------------------------------------------------