Stochastic orienteering problem self-play pipeline leveraging GNNs with MCTS
TODO List:
- Add support for torch dataloader
- MILP script, maybe add multithreading
- Proper experiment pipeline
- MCTS ACO Implementation
- Create a new environment (ex. w/ conda)
conda create -n <ENV_NAME> python=3.10
conda activate <ENV_NAME>- Install packages in requirements.txt
pip install -r requirements.txt- Install Pytorch and PyG w/ torch_scatter & torch_sparse from links
Using Linux (Ubuntu) install nvidia-toolkit
sudo apt install ubuntu-drivers-common
sudo ubuntu-drivers devices
sudo apt install nvidia-driver-XXX
sudo reboot nowWhere XXX is based on recommended version listed in second command.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit nvidia-container-toolkit
sudo reboot nowAdd the following to your rc file of your shell of choice:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.<version>/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}Where <version> is the version you find in /usr/local/.
After you've added this, make sure to source your rc file.
make build
make bashThis will run improve_heuristic.py.
make runTo generate a dataset
make datasetYou can find the outputs in data/.
To use precommit checks, make sure that you install pre-commit and initialize your repo.
If you're using Linux you can make repo-init and it will install all hooks into your local .git folder.
If not, install pre-commit and then pre-commit install to initialize the repo.
For example on Mac, brew install pre-commit will do the trick.