This repository contains code and supplementary material for Kokel et al. 2023.
Planning tasks succinctly represent labeled transition systems, with each ground action corresponding to a label. This granularity, however, is not necessary for solving planning tasks and can be harmful, especially for model-free methods. In order to apply such methods, the label sets are often manually reduced. In this work, we propose automating this manual process. We characterize a valid label reduction for classical planning tasks and propose an automated way of obtaining such valid reductions by leveraging lifted mutex groups. Our experiments show a significant reduction in the action label space size across a wide collection of planning domains. We demonstrate the benefit of our automated label reduction in two separate use cases: improved sample complexity of model-free reinforcement learning algorithms and speeding up successor generation in lifted planning.
This code has been tested on Ubuntu 20.04
and RHEL 8.5
for Python 3.8
.
It may not work on MacOS due to a known issue in one of the dependencies.
git clone git@github.com:IBM/Parameter-Seed-Set.git
conda create -n pss python=3.8
conda activate pss
cd Parameter-Seed-Set
pip install -r requirement.txt
pip install -e .
This code makes system calls to the following libraries.
- CPDDL
- Forbid Iterative Planner
❗ If you already have CPDDL or a PDDL-based Planner, skip to step 3.
Build CPDDL. Following packages are required for successful build unzip automake autotools-dev
```
sudo apt-get install unzip automake autotools-dev
git submodule update --init --recursive -- ./dependencies/cpddl
cd ./dependencies/cpddl
./scripts/build.sh
cd ../..
```
Build ForbidIterative planner
```
git submodule update --init --recursive -- ./dependencies/forbiditerative
cd ./dependencies/forbiditerative
python ./build.py
cd ../..
```
Skip this part if the CPDDL and Planner were installed as part of step 2.
Otherwise, configure your respective path to pddl-lifted-mgroups
and fast-downward.py
by declaring following environment variables.
# For CPDDL Lifted Mutex Groups
export CPDDL_LMGS_PATH=./dependencies/cpddl/bin/pddl-lifted-mgroups
# For Fast Downward planner
export FAST_DOWNWARD_PATH=./dependencies/forbiditerative/fast-downward.py
$ python ./runner.py \
--domain-file ~/downward-benchmark/blocks.pddl \
--problem-dir ~/downward-benchmark/blocks \
--use-grounding
Repository
├── README.md # this file
├── LICENSE # license file
├── pss/ # contains core code
| ├── util/ # utility files interfacing dependencies
| ├── evaluation.py # evaluation code
| └── parameter_seed_set.py # core formulation and solution.
├── runner.py # main runner file
├── unittests/ # unit test cases
├── dependencies/ # git submodules
└── scripts/ # scripts to replicate empirical results
If you build on this code or the ideas of this paper, please use the following citation.
@inproceedings{KokelLKSS23,
title={Action Space Reduction for Planning Domains},
journal={IJCAI},
author={Kokel, Harsha and Lee, Junkyu and Katz, Michael and Srinivas, Kavitha and Sohrabi, Shirin},
year={2023}
}
This code is licensed under the Eclipse Public License, Version 1.0 (EPL-1.0).