Re: How to handle processes that must occur

> [Jeff Dalton]
> 
> Would it skip?  I'd have thought, perhaps naively, that in a sequence,
> if a precondition of a step was not satisfied, then execution could not
> advance beyond that point.  The execution engine would do something
> such as wait, or signal an error, or ask someone what to do.

You're assuming that the execution engine can check whether an
arbitrary precondition is true.  But suppose a planner created a plan
to achieve goal G by instanting plan A.  A has H as a precondition
and G as an effect.  The planner finds another action B that has H as
an effect.  It produces the plan

      {B; A}

Now it may be that there is no easy way to verify that H is true after
B, but the plan still may be correct.  For instance, G might be
"customer has paid"; A might be "charge to credit card"; H might be
"credit card is valid"; B might be "verify with credit-card company."
The presence of B doesn't make the precondition H go away, it just
obviates any steps to check that it's true.

There are other occasions when it might make sense to insert plan
steps to verify that a condition really holds.  But an agent obviously
can't do this for every condition, or we'd have an infinite regress of
steps inserted to verify the preconditions of previously inserted
steps.  


                                             -- Drew

-- 
                                             -- Drew McDermott
                                                Yale University CS Dept.

Received on Wednesday, 21 April 2004 16:16:24 UTC