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

VersionPublishedWhat it addedWritten for
PDDL 1.21998The language itself: STRIPS actions, types, ADLIPC 1998
PDDL 2.12003Numeric fluents, plan metrics, durative actionsIPC 2002
PDDL 2.22004Derived predicates, timed initial literalsIPC 2004
PDDL 3.02005State-trajectory constraints, preferencesIPC 2006
PDDL 3.12008Object fluents, action costsIPC 2008
PDDL+2002, 2006Processes and eventsA 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

FeatureVersionIn Autoplan
STRIPS actions, types1.2Yes
Disjunctions, quantifiers, conditional effects (ADL)1.2Yes
Numeric fluents, numeric conditions and effects2.1Yes
Plan metrics2.1Yes
Durative actions, duration inequalities2.1Yes
Continuous effects2.1Yes
Derived predicates2.2Yes
Timed initial literals2.2Yes
State-trajectory constraints3.0Yes
Preferences3.0Not yet
Action costs3.1Yes
Object fluents3.1Not yet
Processes and eventsPDDL+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+.