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))
Step 1 (5): (ASK-ABOUT-CAR) YES: [LOC0S: A B]
(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))
Step 3 (2): (ASK-ABOUT-PACKAGE) YES: [CAR0S: C2 C1]
(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!