Content deleted Content added
+ref |
No edit summary |
||
Line 14:
In addition to <code>always</code>, other constructs based on [[linear temporal logic]] are also supported, such as <code>sometime</code> (at least once during the plan), <code>sometime-after</code> (to be planned after a particular state) and <code>at-most-once</code> (the preference holds during at most one sequence of states in the plan).
=== Plan quality ===
In addition to determining whether a preference is satisfied, we also need to compute the quality of a plan based on how many preferences are satisfied. For this purpose, PDDL 3.0 includes an expression called <code>is-violated <name></code> which is equal to "the number of distinct preferences with the given name that are not satisfied in the plan".<ref name="pddl3"/> For a plan, a value can now be computed using a metric function, which is specified with <code>:metric</code>:
:<code>(:metric minimize (+ (* 5 (is-violated pref1)) (* 7 (is-violated pref2)))</code>
This example metric function specifies that the calculated value of the plan should be minimized (i.e., a plan with value ''v1'' and a plan with value ''v2'' such that ''v1'' < ''v2'', the former plan is preferred). The value of a plan is computed by the given function. In this case, violation of the second preference has been given a greater penalty compared to the first preference.
== Constraints satisfaction problem ==
|