Skip to content

Large Neighborhood Search based on Neural Construction Heuristics

License

Notifications You must be signed in to change notification settings

jokofa/JAMPR_plus

Repository files navigation

JAMPR+ LNS

This repo implements the Large Neighborhood Search based on Neural Construction Heuristics of the corresponding paper.


It is evaluated on the DIMACS VRP-TW track and is a

  • reworked and improved version of the original JAMPR model
  • using the JAMPR model as a neural construction heuristic
  • in combination with simple destruction heuristics and an additional local search routine
  • in a Large Neighborhood Search framework.

Please cite us:

@article{falkner2022large,
  title={Large Neighborhood Search based on Neural Construction Heuristics},
  author={Falkner, Jonas K and Thyssens, Daniela and Schmidt-Thieme, Lars},
  journal={arXiv preprint arXiv:2205.00772},
  year={2022}
}

Setup

Install the requirements as conda environment

conda env create -f requirements.yml

Training

Train the JAMPR model for type 1 instances with low TW frequency

python run_jampr.py meta=train env=all_1_low

Train the JAMPR model for type 2 instances with high TW frequency

python run_jampr.py meta=train env=all_2_high

LNS

Run the LNS on the Solomon instance c103 with a time limit of 60s

python run_lns.py data_path=./data/solomon_txt/c1/c103.txt time_limit=60

All runs are configured via hydra through the config files in the config and config_lns directories. A configuration summary can also be found via

python run_jampr.py -h

and

python run_lns.py -h

VRP Challenge

Run the controller with LNS for instance R101 (override time limit for testing). Requires a corresponding customized controller from the DIMACS challenge!

python run_controller.py --id R101 --time_limit_override 20