GOOSE is a learning for planning framework. It contains various methods for learning representations for planning tasks, and algorithms for using such representations for solving planning tasks. Currently, GOOSE supports classical grounded, classical lifted, and numeric planning.
If you just want to use the WL features, take a look at the WLPlan package.
See references for the corresponding publications.
Install submodules and Apptainer and then build the image
git submodule update --init --recursive
sudo apt-get install apptainer
sudo apptainer build Goose.sif Goose.def
You will need the usual cpp packages
sudo apt-get install build-essential g++ cmake libboost-all-dev
[Optional] For numeric planning, you will also need Python2 as we use Numeric Fast Downward which requires it. To install from source (e.g. for Ubuntu 23.04 and above) and symlink to python2
:
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
sudo tar xzf Python-2.7.9.tgz
cd Python-2.7.9
sudo ./configure --enable-optimizations
sudo make altinstall
sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python2
Create a virtual environment, activate it, install submodules and packages, and build cpp components. The setup has been tested with python versions 3.10 and higher, but should probably work for lower python3 versions as well.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
git submodule update --init --remote --recursive
sh build.sh
In case a virtual environment does not work, you can also try anaconda and specify a Python version:
conda create --name goose python=3.10.4
conda activate goose
pip install -r requirements.txt
git submodule update --init --remote --recursive
sh build.sh
Call Goose.sif train -h
or python3 train.py -h
for arguments, you will need the -s
argument if you want to save the model.
- See below for recommended training configurations.
- To add your own datasets, follow the directory and
.toml
file structure. - If you own a CPLEX license and want to train LP models faster, add it to PYTHONPATH and use the manual installation.
e.g.
./Goose.sif train configurations/data/neurips24/childsnack.toml configurations/model/ccwl/ccwl_rank-lp_1.toml -s numeric_childsnack.model # Apptainer
python3 train.py configurations/data/neurips24/childsnack.toml configurations/model/ccwl/ccwl_rank-lp_1.toml -s numeric_childsnack.model # manual installation
Call Goose.sif plan -h
or python3 plan.py -h
for arguments.
e.g.
./Goose.sif plan benchmarks/neurips24/childsnack/domain.pddl benchmarks/neurips24/childsnack/testing/p2_30.pddl numeric_childsnack.model # Apptainer
python3 plan.py benchmarks/neurips24/childsnack/domain.pddl benchmarks/neurips24/childsnack/testing/p2_30.pddl numeric_childsnack.model # manual installation
For classical planning, train with the configurations/model/wl/wl_rank-lp_3.toml
configuration file.
e.g. with Blocksworld
python3 train.py configurations/data/ipc23lt/blocksworld.toml configurations/model/wl/wl_gpr_4.toml -s blocksworld.model # train
python3 plan.py benchmarks/ipc23lt/blocksworld/domain.pddl benchmarks/ipc23lt/blocksworld/testing/p1_01.pddl blocksworld.model # plan
For numeric planning, train with the configurations/model/ccwl/ccwl_rank-lp_1.toml
configuration file.
e.g. with numeric Childsnack
python3 train.py configurations/data/neurips24/childsnack.toml configurations/model/ccwl/ccwl_rank-lp_1.toml -s numeric_childsnack.model # train
python3 plan.py benchmarks/neurips24/childsnack/domain.pddl benchmarks/neurips24/childsnack/testing/p2_30.pddl numeric_childsnack.model # plan
GOOSE has been published in various venues. Please refer to the releases page to find the latest version to use or code from a specific publication. The relevant publications so far for this repository are listed as follows.
- Dillon Ze Chen and Sylvie Thiébaux. Graph Learning for Numeric Planning. NeurIPS 2024.
- Dillon Ze Chen and Felipe Trevizan and Sylvie Thiébaux. Return to Tradition: Learning Reliable Heuristics with Classical Machine Learning. ICAPS 2024.
- Dillon Ze Chen and Sylvie Thiébaux and Felipe Trevizan. Learning Domain-Independent Heuristics for Grounded and Lifted Planning. AAAI 2024.