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
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.
For example with Apptainer:
./Goose.sif train configurations/data/neurips24/childsnack.toml configurations/model/ccwl/ccwl_rank-lp_1.toml -s numeric_childsnack.model
or with a manual installation:
python3 train.py configurations/data/neurips24/childsnack.toml configurations/model/ccwl/ccwl_rank-lp_1.toml -s numeric_childsnack.model
Call Goose.sif plan -h
or python3 plan.py -h
for arguments.
For example with Apptainer:
./Goose.sif plan benchmarks/neurips24/childsnack/domain.pddl benchmarks/neurips24/childsnack/testing/p2_30.pddl numeric_childsnack.model
or with a manual installation:
python3 plan.py benchmarks/neurips24/childsnack/domain.pddl benchmarks/neurips24/childsnack/testing/p2_30.pddl numeric_childsnack.model
For classical planning, train with the configurations/model/wl/wl_rank-lp_3.toml
configuration file.
For numeric planning, train with the configurations/model/ccwl/ccwl_rank-lp_1.toml
configuration file.
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.