We now present a detailed example of how PRODIGY4.0, ROGUE and Xavier interact in a two goal problem: (has-item mitchell delivermail) and (has-item jhm deliverfax). The second (higher priority) goal arrives while ROGUE is executing the first action for the first goal.
Figure 7 shows the planning graph generated by PRODIGY4.0. We describe below the details of how it is generated. This example shows:
Figure 7: Plan for
a two-task problem; goal nodes are in ovals, required actions are in rectangles.
We assume for the purposes of this example that no failures occur during execution. The example is perhaps overly detailed for a reader familiar with back-chaining planners; those readers could skip to the next section without loss of continuity.
We show the algorithmic sequence of steps of PRODIGY4.0. At each step, we
show the lists of pending goals, PG, applicable operators,
Applicable-Ops, and executed operators, Executed-Ops
.
(needs-item mitchell delivermail)
(pickup-loc mitchell r-5303)
(deliver-loc mitchell r-5313)
PG is (has-item mitchell delivermail)
Applicable-Ops is nil
Executed-Ops is nil
PG is (and (robot-has-item mitchell delivermail) (robot-in-room r-5313))
Applicable-Ops is nil
Executed-Ops is nil
PG is nil
Applicable-Ops is (and (GOTO-DELIVER-LOC mitchell r-5313) (GOTO-PICKUP-LOC mitchell r-5303))
Executed-Ops is nil
PG is nil
Applicable-Ops is (GOTO-DELIVER-LOC mitchell r-5313)
Executed-Ops is nil
ROGUE does not interfere with the currently executing action, namely (GOTO-PICKUP-LOC mitchell r-5303). Goodwin [1994] discusses methods to decide when to interfere.
PG is (has-item jhm deliverfax)
Applicable-Opsis (GOTO-DELIVER-LOC mitchell r-5313)
Executed-Ops is nil
PG is (has-item jhm deliverfax)
Applicable-Ops is (and (GOTO-DELIVER-LOC mitchell r-5313) (ACQUIRE-ITEM r-5303 mitchell delivermail))
Executed-Ops is (GOTO-PICKUP-LOC mitchell r-5303)
PG is nil
Applicable-Ops is (and (GOTO-DELIVER-LOC mitchell r-5313)
(ACQUIRE-ITEM r-5303 mitchell delivermail)
(GOTO-PICKUP-LOC jhm r-5311))
Executed-Ops is (GOTO-PICKUP-LOC mitchell r-5303)
PG is nil
Applicable-Ops is (and (GOTO-DELIVER-LOC mitchell r-5313) (GOTO-PICKUP-LOC jhm r-5311))
Executed-Ops is (GOTO-PICKUP-LOC mitchell r-5303)
(ACQUIRE-ITEM r-5303 mitchell deliver-mail)
PG is nil
Applicable-Ops is (and (GOTO-DELIVER-LOC mitchell r-5313) (ACQUIRE-ITEM r-5311 jhm deliverfax))
Executed-Ops is (GOTO-PICKUP-LOC mitchell r-5303)
(ACQUIRE-ITEM r-5303 mitchell deliver-mail)
(GOTO-PICKUP-LOC jhm r-5311)
The final execution order described in this example is shown in Figure 8. This example illustrates the asynchronous handling of goals in ROGUE.
Karen Zita Haigh