## Actions

Action definitions and goal descriptions have the same syntax as in PDDL2.1.

 action-def ::= ( :action action symbol [:parameters ( typed list (variable) )] action-def body ) action symbol ::= name action-def body ::= [:precondition GD] [:effect effect] GD ::= atomic formula (term)  |  ( and GD* ) | :equality ( = term term ) | :equality ( not ( = term term ) ) | :negative-preconditions ( not atomic formula (term) ) | :disjunctive-preconditions ( not GD ) | :disjunctive-preconditions ( or GD* ) | :disjunctive-preconditions ( imply GD GD ) | :existential-preconditions ( exists ( typed list (variable) ) GD ) | :universal-preconditions ( forall ( typed list (variable) ) GD ) | :fluents f-comp atomic formula (x) ::= ( predicate x* )  |  predicate term ::= name  |  variable f-comp ::= ( binary-comp f-exp f-exp ) binary-comp ::= <  |  <=  |  =  |  >=  |  > f-exp ::= number  |  f-head (term) | ( binary-op f-exp f-exp )  |  ( - f-exp ) f-head (x) ::= ( function symbol x* )  |  function symbol binary-op ::= +  |  -  |  *  |  /

A number is a sequence of numeric characters, possibly with a single decimal point (“.”) at any position in the sequence. Negative numbers are written as (- number ).

The syntax for effects has been extended to allow for probabilistic effects, which can be arbitrarily interleaved with conditional effects and universal quantification.

 effect ::= p-effect  |  ( and effect* ) | :conditional-effects ( forall ( typed list (variable) ) effect ) | :conditional-effects ( when GD effect ) | :probabilistic-effects ( probabilistic prob-effect + ) p-effect ::= atomic formula (term)  |  ( not atomic formula (term) ) | :fluents ( assign-op f-head (term) f-exp ) | :rewards ( additive-op reward fluent f-exp ) prob-effect ::= probability effect assign-op ::= assign  |  scale-up  |  scale-down  |  additive-op additive-op ::= increase  |  decrease reward fluent ::= ( reward )  |  reward

A probability is a number with a value in the interval [0, 1].

Håkan L. S. Younes
2005-12-06