PDDL versions compared
PDDL has been extended for several editions of the International Planning Competition. Each version adds to the last, and in practice a planner supports a set of features more than a version number.
At a glance
| Version | Published | What it added | Written for |
|---|---|---|---|
| PDDL 1.2 | 1998 | The language itself: STRIPS actions, types, ADL | IPC 1998 |
| PDDL 2.1 | 2003 | Numeric fluents, plan metrics, durative actions | IPC 2002 |
| PDDL 2.2 | 2004 | Derived predicates, timed initial literals | IPC 2004 |
| PDDL 3.0 | 2005 | State-trajectory constraints, preferences | IPC 2006 |
| PDDL 3.1 | 2008 | Object fluents, action costs | IPC 2008 |
| PDDL+ | 2002, 2006 | Processes and events | A separate line of work |
How they relate
- PDDL 1.2 was far larger than what was used. Its hierarchical actions and axioms were not taken up by the competitions, which kept to STRIPS and ADL.
- PDDL 2.1 came in levels: 1 for the STRIPS fragment, 2 for numbers, 3 for discretised durative actions, 4 for continuous durative actions, and 5 for all of these with processes and events. IPC 2002 used levels 1 to 3.
- PDDL 2.2 took levels 1 to 3 as its base, and added derived predicates to all three and timed initial literals to level 3.
- PDDL 3.0 moved from what a plan must achieve to how it may do so, and how good it is.
- PDDL 3.1 added a more direct way to model a value that is an object. It renamed the numeric flag, and defined action costs as a restricted use of numbers.
- PDDL+ grew out of level 5 of PDDL 2.1. It builds on the discrete fragment of PDDL 2.1 and timed initial literals, and adds a world that changes by itself.
Which feature came when
| Feature | Version | In Autoplan |
|---|---|---|
| STRIPS actions, types | 1.2 | Yes |
| Disjunctions, quantifiers, conditional effects (ADL) | 1.2 | Yes |
| Numeric fluents, numeric conditions and effects | 2.1 | Yes |
| Plan metrics | 2.1 | Yes |
| Durative actions, duration inequalities | 2.1 | Yes |
| Continuous effects | 2.1 | Yes |
| Derived predicates | 2.2 | Yes |
| Timed initial literals | 2.2 | Yes |
| State-trajectory constraints | 3.0 | Yes |
| Preferences | 3.0 | Not yet |
| Action costs | 3.1 | Yes |
| Object fluents | 3.1 | Not yet |
| Processes and events | PDDL+ | Not yet |
The features page compares this support with other planners, feature by feature.
Which should I use?
Use the smallest set of features your problem needs: more planners will read it, and they will usually be faster. If your problem has quantities, you need numeric fluents. If steps overlap or deadlines matter, you need durative actions, and timed initial literals for known events. If it has continuous change that actions start and stop, continuous effects may be enough; if the world changes by itself, you need PDDL+.