Skip to content
/ VRP-RL Public
forked from OptMLGroup/VRP-RL

Reinforcement Learning for Solving the Vehicle Routing Problem

Notifications You must be signed in to change notification settings

K1t1k/VRP-RL

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reinforcement Learning for Solving the Vehicle Routing Problem

We use Reinforcement for solving Travelling Salesman Problem (TSP) and Vehicle Routing Problem (VRP).

Paper

Implementation of our paper: Reinforcement Learning for Solving the Vehicle Routing Problem.

Dependencies

How to Run

Train

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 task_specific_params.py

Inference

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

Logs

All logs are stored in result.txt file stored in ./logs/task_date_time directory.

Sample CVRP solution

enter image description here

Acknowledgements

Thanks to pemami4911/neural-combinatorial-rl-pytorch for getting the idea of restructuring the code.

About

Reinforcement Learning for Solving the Vehicle Routing Problem

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%