### Example of the Recognition Act Architecture used to Clear the Bottom Block in a Stack of Four Blocks

In order to illustrate the operation of the Recognition Act Architecture we consider a very simple problem where the goal is to clear a particular block, that is, to have no blocks covering it.

 Starting State A Goal State

The figure to the left illustrates this very simple problem that we will consider in this example. There are six blocks and in the starting state they are arranged into two stacks. The goal is to have block D, the blue block, clear. In the starting state block A is on block B, B is on block C and C is on block D. The figure to the right illustrates one of the possible goal states. in this case the stack of 4 blocks has been completely unstacked. In fact, any state in which block D is clear will satisfy this problem.

We assume that blocks can be "unstacked" but only one at a time. And we will assume that the only thing that we can do in this world is to unstack a block.

The figure below illustrates the general form of the production rules used in this example. LHS refers to the left hand side or Condition Side of the rule; and, RHS refers to the right hand side or action portion of the rules. The form used here mirrors the form that was used in the lab for this course, and, in fact, this software was used to generate this example.
In this form, the RHS is divided into two portions: the first line, here shown in red, lists those expressions which are deleted from working memory, WM, (the Delete List) and the second line here shown in blue, lists those expressions which are added to working memory, WM (the Add List).

 Notice that the form is very similar to the STRIP's type rules that were discussed when the topic of search was considered. The main difference is the introduction of the idea of a working memory. All conditions are tested against, and all actions performed on, an area of memory that Newell refers to as Working Memory. The figure to the left shows the specific production rules that are used in this example. The first, unstacks or makes a block clear if we have already established the goal of clearing that block. The condition portion of the unstack rule states that: if we have a goal to clear some x (?x) and some y (?y) is on x and that y is clear and the action portion instructs us to: then delete the goal of clearing x and the assertion that y is on x and add the assertion that x is clear. The second rule introduces a goal of clearing a block that is currently not clear. It states that: if we have a goal of clearing x and y is on x then add the goal of clearing y Note that in this architecture we have explicitly introduced "meta" relations; e.g. the 'goal' relation, for use in controlling the action of the recognition act system. The figure to the right provides an animation of the activity of this system using these rules. The illustration includes three components. To the far right is a depiction of the "World." The world starts in the state where there are two stacks of blocks; the Stack ABCD, and the Stack FG. The goal is to clear block D. As the animation proceeds, the rule applied on a particular cycle together with the bindings that were found for the rule in the match phase are shown in the gray box. Note, that the world in the lower right is changed to depict the state of the "world" that corresponds to the expressions in WM at that point. The box on the left depicts the working memory (WM). The contents of working memory are shown as a stack of expressions that refer either to the current state of the world or the agent's current goals. In this depiction, those items shown in darkened colors indicate items that either are not yet present or are no longer active or relevant. The currently active elements are shown in bright colors. When the process begins the contents of WM include a description of the initial state of the world. These expressions are shown n bright yellow. WM also contains the goal of clearing d which is shown in bright green. Next what you will observe is that the rule that introduces additional goals will be satisfied. Since C is on D, the goal of clearing C is first introduced. Next, since B is on C the goal of clearing B is introduced. No further goals are introduced since A is clear.  Consequently, the unstacking actions begin. As the clearing goals are satisfied these goals return to a dark green color. Similarly, the colors of the descriptions of the state of the world are altered as the unstacking actions are carried out. Notice that at no time did we retain more than nine items in working memory. Contrast this with the possible memory requirements that might be needed to carry out a breadth first search....note that each possible state in this simple blocks world requires from six (when each is clear) to nine expressions.