next up previous
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))

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!


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

Louise Pryor <louisep@aisb.ed.ac.uk>;
Last modified: Mon Mar 18 18:31:28 1996