This repository is the official implementation of the paper "Regret-Minimizing Double Oracle for Extensive-Form Games", ICML 2023. [paper]
git clone --recursive https://github.com/xiaohangt/RMDO.git
cd RMDO
git submodule update --init --recursive
conda env create -f environment.yaml
conda activate xodo
or
pip3 install -r requirements.txt
# Starting at the repo root
cd dependencies
export BUILD_WITH_ACPC=ON # to compile with the optional universal poker game variant
./install.sh
pip3 install -e . # This will start a compilation process. Will take a few minutes.
To run Extensive-Form Online Double Oracle (with CFR+ as meta solver):
python rmdo.py --game kuhn_poker --algorithm XODO --meta_solver cfr_plus
To run Extensive-Form Double Oracle (with CFR+ as meta solver) and other baselines.
python baselines.py --game kuhn_poker --algorithm dxdo
python baselines.py --game kuhn_poker --algorithm cfr
python baselines.py --game kuhn_poker --algorithm xfp
To run Periodic Double Oracle (with CFR+ as meta solver):
python rmdo.py --game kuhn_poker --algorithm PDO --meta_solver cfr_plus --meta_iterations 50
Results will be saved in the folder results
as list.