Skip to content

melahi/enhanced-action-splitter

Repository files navigation

Enhanced Action Splitter (EAS)

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

Dependencies

pypy3 -m pip install -r requirements.txt
  • python3 also can be used instead of pypy3
  • For pypy3, probably it is needed to install apt install pypy3-dev beforehand.

Splitting:

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

Merging plan:

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

Notes

  • 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.

About

Splitting PDDL action schemas

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published