Next: 4.2 Cleaning the execution trace Up: 4. Memory of Coordinated Behavior Previous: 4. Memory of Coordinated Behavior

4.1 A simple learned coordinated procedure

The simplest plan that lifters learn that their first-principles planner does not construct is to load a box onto a hand-truck and later unload it and load it onto a truck at the behest of a hand-truck operator. This cannot be generated by the first-principles planner because initially lifters lack knowledge of hand-trucks and the behaviors of hand-truck operators. This plan can get created from the following snippet of activity involving medium-sized box MBOX3.

First, a high-level description of the execution history:

1.
Hand-truck operator HTO asks lifter L1 to get MBOX3 onto hand-truck HANDTR2. L1 agrees and does so via lifting and loading the box. L1 next fails in an attempt to lift large box LBOX2 by herself, does nothing for a round since she has no plan, and lifts small box SBOX5 while HTO tilts, pushes to the street, and stands up HANDTR2.
2.
HTO asks L1 to get MBOX3 onto truck TRUCK1. L1 agrees, puts SBOX5 back down, moves to the street, unloads the box from the hand-truck and then loads it onto the truck.

L1 records her behavior internally, including information about active goals, cooperation agreements, states of the world, attempted actions, reasons for attempting the actions, and results of the attempts. These internal structures contain too much data to show fully, but the gist of them is clear in the following listing of the relevant portion of L1's execution trace:

(<agreed to achieve (ON MBOX3 HANDTR2) for HTO>
 <executed (LIFT MBOX3)>
 <executed (LOAD MBOX3 HANDTR2)>
 <failed to (LIFT LBOX2)>
 <executed (NO-OP)>
 <executed (LIFT SBOX5)>
 <agreed to achieve (ON MBOX3 TRUCK1) for HTO>
 <executed (PUT-DOWN SBOX5)>
 <executed (MOVE STREET)>
 <executed (UNLOAD MBOX3 HANDTR2)>
 <executed (LOAD MBOX3 TRUCK1)>)

The cleaning process removes the idle step, the failed attempt and the two actions involving SBOX5 (they are each subsequently rendered irrelevant - see Section 4.2 for details). Segmentation is not needed in this example since all of the remaining actions are achieving the same goal of (ON MBOX3 TRUCK1). At this point, the trace is:

(<agreed to achieve (ON MBOX3 HANDTR2) for HTO>
 <executed (LIFT MBOX3)>
 <executed (LOAD MBOX3 HANDTR2)>
 <agreed to achieve (ON MBOX3 TRUCK1) for HTO>
 <executed (MOVE STREET)>
 <executed (UNLOAD MBOX3 HANDTR2)>
 <executed (LOAD MBOX3 TRUCK1)>)

The summarization of this grouping removes any action that is planner-reconstructible, leaving:

(<agreed to achieve (ON MBOX3 HANDTR2) for HTO>
 <executed (LOAD MBOX3 HANDTR2)>
 <agreed to achieve (ON MBOX3 TRUCK1) for HTO>
 <executed (LOAD MBOX3 TRUCK1)>)

Finally, the preparation of this segment makes representational changes, including augmenting the (not shown) preconditions and binding information for the constituent actions. The stored procedure is then:

(<WAIT-FOR ?ACTOR (ON ?BOX ?HANDTR)>
 <LOAD ?BOX ?HANDTR>
 <WAIT-FOR ?ACTOR (ON ?BOX ?TRUCK)>
 <LOAD ?BOX ?TRUCK>)


Next: 4.2 Cleaning the execution trace Up: 4. Memory of Coordinated Behavior Previous: 4. Memory of Coordinated Behavior
Last Update: March 10, 1999 by Andy Garland