Reinforcement Learning for Solving the Vehicle Routing Problem
We use Reinforcement for solving Travelling Salesman Problem (TSP) and Vehicle Routing Problem (VRP).
Implementation of our paper: Reinforcement Learning for Solving the Vehicle Routing Problem.
How to Run
By default, the code is running in the training mode on a single gpu. For running the code, one can use the following command:
python main.py --task=vrp10
It is possible to add other config parameters like:
python main.py --task=vrp10 --gpu=0 --n_glimpses=1 --use_tanh=False
There is a full list of all configs in the
config.py file. Also, task specific parameters are available in
For running the trained model for inference, it is possible to turn off the training mode. For this, you need to specify the directory of the trained model, otherwise random model will be used for decoding:
python main.py --task=vrp10 --is_train=False --model_dir=./path_to_your_saved_checkpoint
The default inference is run in batch mode, meaning that all testing instances are fed simultanously. It is also possible to do inference in single mode, which means that we decode instances one-by-one. The latter case is used for reporting the runtimes and it will display detailed reports. For running the inference with single mode, you can try:
python main.py --task=vrp10 --is_train=False --infer_type=single --model_dir=./path_to_your_saved_checkpoint
All logs are stored in
result.txt file stored in
Sample CVRP solution
Thanks to pemami4911/neural-combinatorial-rl-pytorch for getting the idea of restructuring the code.