jacklu2016 / stepwise-CVRP-TRP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Step-wise Deep Learning Models for Solving Routing Problems

Liang Xin, Wen Song, Zhiguang Cao, and Jie Zhang. Step-wise Deep Learning Models for Solving Routing Problems, IEEE Transactions on Industrial Informatics, vol. 17, no. 7, pp. 4861-4871, 2021. doi: 10.1109/TII.2020.3031409.[https://ieeexplore.ieee.org/document/9226142]

To download the pretrained models and data

python download.py;
tar -zxvf data.tar.gz;
cd SWTAM; tar -zxvf SWTAM_pretrained.tar.gz;
cd ../ASWTAM; tar -zxvf ASWTAM_pretrained.tar.gz;
cd ..;

Step-wise Transformer Attention Model (SW-TAM)

To train the SW-TAM models for tsp and cvrp, respectively

python run.py --graph_size 20 --baseline rollout --run_name 'tsp20_rollout' --val_dataset ../data/tsp20.pkl
python run.py --graph_size 20 --baseline rollout --run_name 'vrp20_rollout' --val_dataset ../data/vrp20.pkl --problem="cvrp"

To eval with pretrained models for tsp and cvrp, respectively

python3 run.py --graph_size 20 --load_path pretrained/tsp_20/epoch-99.pt --val_dataset ../data/tsp20.pkl --eval_only
python3 run.py --graph_size 20 --load_path pretrained/cvrp_20/epoch-99.pt --val_dataset ../data/vrp20.pkl --problem="cvrp" --eval_only

Approximate Step-wise Transfomer Attention Model (ASW-TAM)

To train ASW-TAM;

python run.py --graph_size 20 --baseline rollout --run_name 'tsp20_rollout' --val_dataset ../data/tsp20.pkl

To eval with pretrained models

python3 eval.py ../data/tsp20.pkl --model pretrained/tsp_20/epoch-99.pt --decode_strategy greedy

Step-wise Pointer Network (SW-PtrNet)

To train SW-PtrNet

python -u main.py --hidden_dim=256 --log_step=1000 --checkpoint_secs=30000

To eval with pretrained_models

python -u main.py --hidden_dim=256 --log_step=1000 --checkpoint_secs=30000 --load_path pretrained/tsp_2019-08-19_14-04-45/model.ckpt-18000000 --is_train=False

Dependencies

  • Python==3.6
  • NumPy
  • PyTorch==1.4.0
  • tqdm
  • tensorboard_logger

SWTAM and ASWTAM are developed based on https://github.com/wouterkool/attention-learn-to-route SWPtrNet are developed based on https://github.com/devsisters/pointer-network-tensorflow

About


Languages

Language:Python 94.0%Language:C++ 5.6%Language:Shell 0.3%