In PDDL2.1 the time-dependent effect of continuous change on a numeric variable is expressed by means of intervals of durative activity. Continuous effects are represented by update expressions that refer to the special variable #t. This variable is a syntactic device that marks the update as time-dependent. For example, consider the following two processes:
:precondition (and (< (temperature) 100) (heating-on))
:effect (increase (temperature) (* #t (heating-rate)))
:precondition (and (< (temperature) 100) (secondaryburner-on))
:effect (increase (temperature) (* #t (additional-heating-rate)))
When these processes are both active (that is, when the water is heating and a secondary burner is applied and the water is not yet boiling) they lead to a combined effect equivalent to:
Actions that have continuous update expressions in their effects represent an increased level of modelling power over that provided by fixed length, discrete, durative actions.
In PDDL+ continuous update expressions are restricted to occur only in process effects. Actions and events, which are instantaneous, are restricted to the expression of discrete change. This introduces the three-part modelling of periods of continuous change: an action or event starts a period of continuous change on a numeric variable expressed by means of a process. An action or event finally stops the execution of that process and terminates its effect on the numeric variable. The goals of the plan might be achieved before an active process is stopped.
Notwithstanding the limitations of durative actions, observed by Boddy boddyComm and McDermott drewComm, for modelling continuous change, the durative action model can be convenient for capturing activities that endure over time but whose internal structure is irrelevant to the plan. This includes actions whose fixed duration might depend on the values of their parameters. For example, the continuous activities of riding a bicycle (whose duration might depend on the start and destination of the ride), cleaning a window and eating a meal might be conveniently modelled using fixed-length durative actions. PDDL+ does not force the modeller to represent change at a lower level of abstraction than is required for the adequate capture of the domain. When such activities need to be modelled fixed duration actions might suffice.
The following durative action, again taken from the Planetary Lander Domain, illustrates how durative actions can be used alongside processes and events when it is unnecessary to expose the internal structure of the associated activity. In this case, the action models a preparation activity that represents pre-programmed behaviour. The constants partTime1 and B-rate are defined in the initial state so the duration and schedule of effects within the specified interval of the behaviour are known in advance of the application of the prepareObs1 action.
:duration (= ?duration (partTime1))
:condition (and (at start (available unit))
(over all (> (soc) (safelevel))))
:effect (and (at start (not (available unit)))
(at start (increase (demand) (B-rate)))
(at end (available unit))
(at end (decrease (demand) (B-rate)))
(at end (readyForObs1)))
Derek Long 2006-10-09