This is the codebase accompanying the NeurIPS2020 paper "Influence-Augmented Online Planning for Complex Environments" by Jinke He, Miguel Suau and Frans A. Oliehoek.
Disclaimer: the codebase has only been tested on Ubuntu and Arch Linux.
Update: We fixed a few minor bugs found in the codebase and updated part of the results in the arxiv paper.
- Singularity
- libtorch (C++ version of PyTorch):
download and unzip libtorch into third-party/libtorch
- yaml-cpp:
git clone https://github.com/jbeder/yaml-cpp third-party/yaml-cpp
- python3
- pytorch
- matplotlib
- jupyter notebook
- instructions for training the influence predictors will be added soon.
- pretrained influence predictors are available under models/.
We implemented our online planning experiments in C++ and provided a Singularity definition (singularity/FADMEN.def) file to resolve the dependencies.
To run the code, first build the singularity container with the command: sudo singularity build singularity/FADMEN.sif singularity/FADMEN.def
.
To execute a command under the singularity container, use ./run
+ command.
./run bash scripts/build.sh
./run ./scripts/run_benchmark
+ path to config file
for example, ./scripts/run_benchmark configs/GAC/5agent/global.yaml
./run ./scripts/run_benchmark configs/GAC/{X}agent/{Y}.yaml
for X in num_agents=[5,9,17,33,65,129]
and
for Y in algos=["global", "inf_gru_H8_D1000", "inf_rand"]
./run ./scripts/run_benchmark configs/GAC-coupling/p{X}/{Y}.yaml
for X in [01,02,03,04,05,06,07,08,09]
and
for Y in algos=["global", "inf_gru_H8_D1000SPLIT[0-3]", "inf_rand"]
./run ./scripts/run_benchmark configs/GTC/{X}sec/{Y}.yaml
for X in seconds=[1,2,4,8,16,32,48,64]
and
for Y in algos=["global", "inf_rnn_H2_D1000SPLIT[0-*]", "inf_rand"]
see notebooks/Plot-Results.ipynb
This project had received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No. 758824 — INFLUENCE).