The fact that Cassandra allows decision-rules that do not fully differentiate between outcomes of an uncertainty raises a somewhat subtle issue. Consider the partial plan for opening a locked door shown in Figure 12. The action of kicking a door has, let us say, two possible outcomes, one in which the lock is broken and one in which the agent's foot is broken. A plan for the contingency in which the lock is broken is simply to open the door. A plan for the alternative contingency is to pick the lock and then open the door.
Since the second plan does not depend causally on any outcome of the uncertainty (the agent's foot does not have to be broken in order for it to pick the lock and open the door), the decision-rules based on the above discussion would be:
Notice that in this case the pick
action depends on the lock
being intact, while the kick
action may have the effect that
the lock is no longer intact. In other words, the kick
action
potentially clobbers the precondition of pick
. However, the
planner can arguably ignore this clobbering, because the two actions
belong to different contingencies. This is valid, though, only if the
structure of the decision-rules guarantees that the agent will not
choose to execute the contingency involving pick
when the
outcome of kick
is that the lock is broken. The decision-rules
above clearly do not enforce this. The solution in such a case is to
augment the decision-rule for the contingency in which the lock is not
broken to test whether the lock is in fact intact. This results in
the following decision-rules (the plan is shown in
Section A.7):
Cassandra augments decision-rules in this way whenever a direct effect of an uncertainty could clobber a link in a different contingency.