Next: Tossing a Coin Up: Cassandra's Plans Previous: Fetching a Package

## Fetching Another Package

The plan in Figure 9, discussed in Section 4.1.3, has two sources of uncertainty and two decision-steps. There are four possible ways of achieving the goal, one for each combination of the outcomes of the two sources of uncertainty.

```Initial:       When [CAR0S: C2] (AVAILABLE CAR-2)
When [CAR0S: C1] (AVAILABLE CAR-1)
When [LOC0S: B] (PACKAGE-AT LOCATION-2)
When [LOC0S: A] (PACKAGE-AT LOCATION-1)
(AND (IS-CAR CAR-1) (IS-CAR CAR-2) (LOCATION LOCATION-1)
(LOCATION LOCATION-2))

(KNOW-IF (AVAILABLE CAR-2))
0 -> (IS-CAR CAR-2)
(KNOW-IF (AVAILABLE CAR-1))
0 -> (IS-CAR CAR-1)

Step  2 (4): (DECIDE CAR0S)                       YES: [LOC0S: A B]
(and (AVAILABLE CAR-2)
T                ) => [CAR0S: C2]
(and (AVAILABLE CAR-1)
T                ) => [CAR0S: C1]
1 -> (KNOW-IF (AVAILABLE CAR-2))
1 -> (KNOW-IF (AVAILABLE CAR-1))

(KNOW-IF (PACKAGE-AT LOCATION-2))
0 -> (LOCATION LOCATION-2)
(KNOW-IF (PACKAGE-AT LOCATION-1))
0 -> (LOCATION LOCATION-1)

Step  4 (1): (DECIDE LOC0S)                       YES: [CAR0S: C2 C1]
(and (PACKAGE-AT LOCATION-2)
T                ) => [LOC0S: B]
(and (PACKAGE-AT LOCATION-1)
T                ) => [LOC0S: A]
3 -> (KNOW-IF (PACKAGE-AT LOCATION-2))
3 -> (KNOW-IF (PACKAGE-AT LOCATION-1))

Step  5 (8): (DRIVE CAR-2 LOCATION-1)             YES: [LOC0S: A][CAR0S: C2]
NO : [CAR0S: C1]
(AT LOCATION-1)
0 -> (AVAILABLE CAR-2)          NO : [CAR0S: C1]

Step  6 (6): (DRIVE CAR-2 LOCATION-2)             YES: [LOC0S: B][CAR0S: C2]
NO : [CAR0S: C1]
(AT LOCATION-2)
0 -> (AVAILABLE CAR-2)          NO : [CAR0S: C1]

Step  7 (7): (DRIVE CAR-1 LOCATION-1)             YES: [LOC0S: A][CAR0S: C1]
NO : [CAR0S: C2]
(AT LOCATION-1)
0 -> (AVAILABLE CAR-1)          NO : [CAR0S: C2]

Step  8 (3): (DRIVE CAR-1 LOCATION-2)             YES: [LOC0S: B][CAR0S: C1]
NO : [CAR0S: C2]
(AT LOCATION-2)
0 -> (AVAILABLE CAR-1)          NO : [CAR0S: C2]

Goal:        (AND (AT ?LOC) (PACKAGE-AT ?LOC))

GOAL                                 YES: [LOC0S: A][CAR0S: C2]
5 -> (AT LOCATION-1)            NO : [CAR0S: C1]
0 -> (PACKAGE-AT LOCATION-1)    NO : [LOC0S: B]

GOAL                                 YES: [LOC0S: B][CAR0S: C2]
6 -> (AT LOCATION-2)            NO : [CAR0S: C1]
0 -> (PACKAGE-AT LOCATION-2)    NO : [LOC0S: A]

GOAL                                 YES: [LOC0S: B][CAR0S: C1]
8 -> (AT LOCATION-2)            NO : [CAR0S: C2]
0 -> (PACKAGE-AT LOCATION-2)    NO : [LOC0S: A]

GOAL                                 YES: [LOC0S: A][CAR0S: C1]
7 -> (AT LOCATION-1)            NO : [CAR0S: C2]
0 -> (PACKAGE-AT LOCATION-1)    NO : [LOC0S: B]

Complete!
```

Next: Tossing a Coin Up: Cassandra's Plans Previous: Fetching a Package

Louise Pryor <louisep@aisb.ed.ac.uk>;