This compiler takes a PDDL problem with state-dependent action costs and generates a PDDL problem with constant costs, based on the action-compilation with edge-valued multi-values decision diagrams (EVMDDs), as described in Delete Relaxations for Planning with State-Dependent Action Costs.
An example PDDL domain file can be found here and the BNF grammar for cost functions can be found here. Note that the compiler currently does not support real numbers and the forall/exists language constructs.
We also have a working plugin for the Planning.Domains editor, thanks to Christian Muise. This link immediately loads the compiler plugin and changes the underlying planner to Fast Downward with lm-cut. Note that the online compiler has a 15 seconds timeout, keep this in mind for complex cost functions.
This project is still in a very early stage and therefore is not stable and bug-free. It is currently built into the translator tool of Fast Downward. While we definitely need the translator tool, we plan to decouple the first major version of our compiler. We are currently rewriting most parts of the code and hope to ship the first fully functional version around July.
- Python 3
- Python NetworkX library
- Optional: xdot for EVMDD visualization
./compile.py path/to/domainfile path/to/problemfile [--viz]
This generates domain-out.pddl and problem-out.pddl, the compiled PDDL files with constant action cost.
Optional arguments:
- --viz: EVMDD visualization for action cost functions
Example:
- ./compile.py example/domain-sdac.pddl example/prob02.pddl --viz
This compiler uses the following external tools:
- Fast Downward translator
- pyevmdd as decision diagram library.
- SymPy to minimize cost function terms.
Copyright (C) 2016 Florian Geißer and Robert Mattmüller
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/