EAS is an open-source Python tool that efficiently splits PDDL action schemas into smaller actions suitable for grounding. This is particularly helpful when the number of grounded actions for action schemas becomes too large for grounding-based planners to handle, effectively enabling them to solve problems they otherwise couldn't.
Paper: Optimizing the Optimization of Planning Domains by Automatic Action Schema Splitting
pypy3 -m pip install -r requirements.txt
python3
also can be used instead ofpypy3
- For
pypy3
, probably it is needed to installapt install pypy3-dev
beforehand.
The following command produces the split version of the problem instance in the example
directory:
pypy3 ./split.py example/domain.pddl example/problem.pddl example/split_domain.pddl example/split_problem.pddl
After solving the split instance, its plan (split_plan
) can be merged to construct a solution for the original problem by the following command:
pypy3 ./merge_plan.py example/domain.pddl example/problem.pddl example/split_domain.pddl example/split_problem.pddl split_plan
- This project leverages the well-known Fast Downward PDDL translator for efficient parsing and invariant synthesis capabilities.
- In our experiments, we used a slightly modified version of the BFWS planner. The patch file can be found in
BFWS_memory_enhancement_patch.zip
.