Allows the inclusion of a
:function block which represent numeric variables in the domain. e.g.
(:functions (battery-amount ?r - rover) )
Note that this overrides the definition in PDDL1.2 in most planners.
Allows the use of
durative-action in the domain definition. Durative actions are actions which have a duration they take to complete.
(:durative-action move :parameters (<arguments>) :duration (= ?duration 5) :condition (logical_expression) :effect (logical_expression) )
Note that this does not imply
Allows the use of inequalities to express a duration. Rather than expressing that an action has a fixed length of time we can express that an action has a duration range using an inequality.
Allows the use of continuous effects on numerics within durative actions. Because durative actions take a period of time, we could model the change in a numeric value as some function of time. In reality support for this shaky. Linear functions are relatively easy for planners but non-linear effects are still an area of research.
Allows the use of
not in preconditions. The way some planners model actions mean they are not capable of handling negative preconditions. This is more an inconvenience that a serious design flaw as for every predicate their is an opposing predicate which is true when it’s false. I.e.
rover-not-charged are mutually exclusive. In the event where negative preconditions are not support we can introduce a second predicate which represents the negation of the predicate we want to express a negative precondition on.
- PDDL - The Planning Domain Definition Language, [Ghallab, M. Howe, A. Knoblock, C. McDermott, D. Ram, A. Veloso, M. Weld, D. Wilkins, D.]
- PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains, [Fox, M. Long, D.]
- PDDL Examples
- OPTIC - Optimising Preferences and Time Dependent Costs