Children's Addition Simulation

Christopher R. Waterson
waterson@eecs.umich.edu
Last Updated August 30, 1996

1. Overview

This document describes a simple Soar simulation for children's addition strategies, including

  1. SUM, where the child counts out both addends, then counts up both hands to compute the total.

  2. SHORTCUT-SUM, where the child counts out the first addend on one hand, then counts up on the second hand until the second addend is also represented, reporting the final count as the answer.

  3. FIRST, where the child simply says the first addend to represent it, then counts up from this value to represent the second addend, reporting the final count as the answer.

  4. MIN, where the child says the value of the larger addend, and counts up from this value to represent the smaller addend, reporting the final count as the total.

Our goal in modeling these strategies was to attempt to identify the key pieces knowledge that allows an agent to shift from one to another. We have attempted to create our model in a psychologically plausible way, making use of both an "internal" cognitive engine and "external" perceptual/motor systems.

This simulation exists as an implemented software system: the final sections of this document describe how to install and use the simulation software.

Note. Currently, the SUM and SHORTCUT-SUM strategies have been modeled. The FIRST and MIN strategies are still under construction.

2. Simulation Structure

This section describes the structure of the simulation, including the input representation, the output command language, and the internal operators used for problem solving.

2.1 Input Representation

The input representation consists of the stimuli available to the agent from the outside world. We have chosen to use a simple attribute-value representation, structured as follows:

(P1 ^instance-of problem ^addend A1 ^addend A2)
(A1 ^instance-of addend ^value { one two three four five })
(A2 ^instance-of addend ^value { one two three four five })

(A1 ^instance-of agent ^hand H1 ^hand H2
    ^aural-buffer { empty one two three ... ten }
    ^attended-object { F1 F2 F3 .. F10 })

(H1 ^instance-of hand ^side left
    ^finger F1 ^finger F2 ^finger F3 ^finger ^F4 ^finger F5
    ^fist { yes no } ^subitized-count { one two three four five })

(F1 ^name thumb  ^raised { yes no })
(F2 ^name index  ^raised { yes no })
(F3 ^name middle ^raised { yes no })
(F4 ^name ring   ^raised { yes no })
(F5 ^name pinkie ^raised { yes no })

(H2 ^instance-of hand ^side right
    ^finger F6 ^finger F7 ^finger F8 ^finger ^F9 ^finger F10
    ^fist { yes no } ^subitized-count { one two three four five })

(F6  ^name thumb  ^raised { yes no })
(F7  ^name index  ^raised { yes no })
(F8  ^name middle ^raised { yes no })
(F9  ^name ring   ^raised { yes no })
(F10 ^name pinkie ^raised { yes no })

Uppercase identifiers (e.g., P and A1two, yes) represent constant values for attributes. Values contained in braces (e.g., { yes no }) represent multiple values that an attribute may take on.

Note that

  1. The ^aural-buffer feature on the agent represents the value of the word that has last been spoken.

  2. The ^attended-object is the object in the world (in this case, exclusively fingers) to which the agent is currently attending.

  3. The ^subitized-count feature on each hand corresponds the perceived number of raised fingers on that hand, either via a perceptual subitizing mechanism, or through some proprioceptive awareness.

2.2 Output Commands

Via the use of motor commands, the agent may alter the world or change the stimuli that it receives. We have made the following output commands available to our agent:

2.3 Operators

The agent uses a problem-space representation to compute the answers to the addition problems that it is posited. The operators that are available include:

3. Strategies

This section describes in detail how each strategy is performed in the simulator. An actual trace is provided for the specified strategy.

3.1 Summary of Strategy Differences

The key differences in strategy between SUM, SHORTCUT-SUM, and FIRST/MIN are:

  1. SUM and SHORTCUT-SUM differ in REPRESENT-SECOND-ADDEND's proposal condition; specifically, the requirement that the aural buffer be empty is dropped in SHORTCUT-SUM's version of REPRESENT-SECOND-ADDEND.

  2. SHORTCUT-SUM and FIRST/MIN differ in both the termination criteria and implementation of the REPRESENT-FIRST-ADDEND operator. In FIRST/MIN, the requirement that the subitized count equal the addend has been dropped, and a new requirement that the aural buffer equal the addend has been added. (In our table, I have also dropped the requirement that all raised fingers have been counted, but clearly this is insignificant if no fingers have yet been raised.)

    I hypothesize that this change in the termination criteria leads to the change in the operator's implementation. Specifically, if the agent has available explicit knowledge of the termination conditions for REPRESENT-SECOND-ADDEND, then it can alter the structure of the implementation subspace. In this case, knowing that the only requirement for termination is that the aural buffer contain the value of the first addend could lead to the immediate selection of an operator that would satisfy that condition.

Each strategy's key features are summarized below.

Proposal Conditions
Strategy Represent-First-Addend Represent-Second-Addend
SUM AuralBuffer = empty
MarkerSet created
AuralBuffer = empty
MarkerSet created
Shortcut-SUM AuralBuffer = empty
MarkerSet created
MarkerSet created
FIRST/MIN AuralBuffer = empty
MarkerSet created
MarkerSet created
Termination Criteria
SUM Raised fingers counted
SubitizedCount = Addend
Raised fingers counted
SubitizedCount = Addend
Shortcut-SUM Raised fingers counted
SubitizedCount = Addend
Raised fingers counted
SubitizedCount = Addend
FIRST/MIN AuralBuffer = Addend Raised fingers counted
SubitizedCount = Addend
Implementation
SUM MakeFist
RaiseFinger
CountFinger
MakeFist
RaiseFinger
CountFinger
Shortcut-SUM MakeFist
RaiseFinger
CountFinger
MakeFist
RaiseFinger
CountFinger
FIRST/MIN Say FirstAddend MakeFist
RaiseFinger
CountFinger

3.2 The SUM Strategy

In the SUM strategy, the child (1) counts out the first addend on his or her left hand, (2) counts out the second addend on his or her right hand, and (3) counts up both hands to report the answer. A trace on the problem "3 + 2 = ?" is shown below.

     0: ==>S: S1 
     1:    O: O2 (assign-addend) (I46 I6)
     2:    O: O5 (assign-addend) (I51 I25)
     3:    O: O6 (start-count)
     4:    O: O8 (represent-first-addend) (I46)
     5:    ==>S: S2 (operator no-change)
     6:       O: O10 (make-fist) (I6)
     7:       O: O11 (raise-finger) (I6 thumb)
     8:       O: O12 (attend-to-finger) (I10)
     9:       O: O13 (count-finger) (I10 one)
    10:       O: O14 (raise-finger) (I6 index)
    11:       O: O15 (attend-to-finger) (I13)
    12:       O: O17 (count-finger) (I13 two)
    13:       O: O18 (raise-finger) (I6 middle)
    14:       O: O19 (attend-to-finger) (I16)
    15:       O: O21 (count-finger) (I16 three)
    16:    O: O7 (start-count)
    17:    O: O25 (represent-second-addend) (I51)
    18:    ==>S: S3 (operator no-change)
    19:       O: O29 (make-fist) (I25)
    20:       O: O30 (raise-finger) (I25 thumb)
    21:       O: O31 (attend-to-finger) (I29)
    22:       O: O32 (count-finger) (I29 one)
    23:       O: O33 (raise-finger) (I25 index)
    24:       O: O34 (attend-to-finger) (I32)
    25:       O: O36 (count-finger) (I32 two)
    26:    O: O24 (start-count)
    27:    O: O40 (count-out-hands)
    28:    ==>S: S4 (operator no-change)
    29:       O: O41 (attend-to-finger) (I10)
    30:       O: O46 (count-finger) (I10 one)
    31:       O: O42 (attend-to-finger) (I13)
    32:       O: O48 (count-finger) (I13 two)
    33:       O: O43 (attend-to-finger) (I16)
    34:       O: O50 (count-finger) (I16 three)
    35:       O: O44 (attend-to-finger) (I29)
    36:       O: O52 (count-finger) (I29 four)
    37:       O: O45 (attend-to-finger) (I32)
    38:       O: O54 (count-finger) (I32 five)
    39:    O: O55 (report-answer) (five)
    40:    O: O56 (halt)

The child initially assigns the addends to each hand. In this strategy, the REPRESENT-FIRST-ADDEND operator has two preconditions: (1) that there is a set of markers that can be used for counting, and (2) that the aural buffer is empty. Therefore, REPRESENT-FIRST-ADDEND is not proposed until after the START-COUNT operator fires. REPRESENT-ADDEND enters a subgoal which terminates when three fingers (the value of the first addend) are raised and each finger has been counted.

For the second addend, REPRESENT-SECOND-ADDEND must wait until the aural buffer has been cleared (just as with REPRESENT-FIRST-ADDEND), so START-COUNT is proposed first, having the effect of both clearing the aural buffer and creating a new, empty set of markers for counting. Now REPRESENT-SECOND-ADDEND can be proposed, and the second hand is counted out just like the first.

COUNT-OUT-HANDS will be proposed when (1) there are no addends left to represent and (2) the aural buffer is clear. START-COUNT fires first, clearing the aural buffer, so now COUNT-OUT-HANDS is proposed. Because it is an abstract operator, a subgoal is entered which terminates when all the raised fingers have been marked as counted.

At this point, REPORT-ANSWER will be proposed, it's proposal contingent on the fact that (1) both addends have been represented, and (2) every raised finger is present in the marker set. This terminates problem solving with the correct answer.

3.3 The SHORTCUT-SUM Strategy

In the SHORTCUT-SUM strategy, the child (1) counts out the first addend on his or her left hand, and then (2) counts up from the first addend to represent the value of the second addend on his or her right hand. The answer reported is then the last number spoken once the count is complete. A trace is shown below.

     0: ==>S: S1 
     1:    O: O2 (assign-addend) (I46 I6)
     2:    O: O5 (assign-addend) (I51 I25)
     3:    O: O6 (start-count)
     4:    O: O9 (represent-addend) (I51)
     5:    ==>S: S2 (operator no-change)
     6:       O: O10 (make-fist) (I25)
     7:       O: O11 (raise-finger) (I25 thumb)
     8:       O: O12 (attend-to-finger) (I29)
     9:       O: O13 (count-finger) (I29 one)
    10:       O: O14 (raise-finger) (I25 index)
    11:       O: O15 (attend-to-finger) (I32)
    12:       O: O17 (count-finger) (I32 two)
    13:    O: O8 (represent-addend) (I46)
    14:    ==>S: S3 (operator no-change)
    15:       O: O19 (make-fist) (I6)
    16:       O: O20 (raise-finger) (I6 thumb)
    17:       O: O21 (attend-to-finger) (I10)
    18:       O: O23 (count-finger) (I10 three)
    19:       O: O24 (raise-finger) (I6 index)
    20:       O: O25 (attend-to-finger) (I13)
    21:       O: O27 (count-finger) (I13 four)
    22:       O: O28 (raise-finger) (I6 middle)
    23:       O: O29 (attend-to-finger) (I16)
    24:       O: O31 (count-finger) (I16 five)
    25:    O: O33 (report-answer) (five)
    26:    O: O34 (halt)

As with SUM, the child initially assigns the addends to each hand. In this strategy, REPRESENT-FIRST-ADDEND has not changed, so it's proposal and implementation is identical to that in SUM. As with SUM, REPRESENT-FIRST-ADDEND enters a subgoal, counting out the first addend on one hand. Also as in SUM, it terminates when it detects that both (1) the number of fingers raised on the hand equals the value of the addend and (2) no finger has gone uncounted.

At this point, however, SUM and SHORTCUT-SUM diverge. Because the proposal of REPRESENT-SECOND-ADDEND in SHORTCUT-SUM is not contingent on the aural buffer being clear, it is immediately proposed for the second addend after counting has completed for the first addend.

As the second REPRESENT-SECOND-ADDEND is entered, counting continues from three rather than being re-started at one as in SUM. However, the subgoal's termination conditions remain the same as in SUM: namely, that the number of fingers raised on the hand equals the value of the addend, and that each finger has been counted.

Once the second addend has been represented, REPORT-ANSWER will immediately be proposed because the marker set will contain all the fingers, and each addend will have been represented. Hence, SHORTCUT-SUM terminates with the correct answer.

3.4 The FIRST Strategy

Not yet implemented!

3.5 The MIN Strategy

Not yet implemented!

3.6 Analysis

If these models are correct, then there are a couple of conclusions that can be drawn. First, The SUM-to-SHORTCUT-SUM shift couldn't occur because of any kind of correlational learning. In every case when the operator is successfully executed, the aural buffer will be empty, hence it would strongly enforce the necessity of this feature. Therefore, it would seem that there would have to be a metacognitive realization of some sort to introduce this change, which would unfortunately be quite complex. [I need to go back and compare this implementation with Randy's to see how he got the shift to occur.]

Second, it seems fairly obvious that the condition AuralBuffer = Addend could be added to the termination criteria of REPRESENT-FIRST-ADDEND through a correlational mechanism. In every case where REPRESENT-FIRST-ADDEND would be executed, the value of the aural buffer would exactly equal the value of the first addend. On the other hand, it's not clear to me how the other two could be dropped without some kind of metacognitive analysis.

Finally, once the termination criteria for REPRESENT-FIRST-ADDEND have been altered, it would seem to be pretty straightfoward to alter the operator's implementation, given that there was some kind of declarative access to the termination criteria. Specifically, if it becomes clear that the most important criteria for termination is that the addend's value is represented in the aural buffer, and knowledge was available that said, "if you want value X in the aural buffer, then say X", the implementation could immediately be changed.

4. Running the Simulator

This section briefly describes how to install and use the simulator. 4.1 Installation

Note that this requires Soar 7.0.3 to run properly.

Installing the software is pretty easy. The only strangeness is that there is a separate set of "generic" Soar utility files that you also need to install, and you then have to tell the SUM-TO-MIN software how to find them...

  1. Download, un-gzip, and un-tar sum-to-min.tar.gz and utilities.tar.gz. Each of these will create a directory beneath which the actual program files will be stored.

  2. Modify simulator.tcl, line 145, which specifies the variable UTILITIES_DIR. Set this variable to the directory where you unpacked the utilities.tar.gz files to.

4.2 Using the Simulator

The user interface is pretty simple right now.

  1. In the bottom left-hand corner are two pop-up buttons that let you specify the two addends for the problem.

  2. In the bottom right-hand corner is a "control panel":

  3. Choose Exit from the File menu when you're done.

  4. Of course, you can always look at what's going on by interacting directly with the Soar interpreter.

As you run the simulation, you'll see fingers lowered and raised on the hand. A clear "outlined" finger is lowered, a filled finger in raised, and an object that is filled in red is the object that is currently being attended to. Above both hands is the aural buffer, which contains the value of the last word that was spoken.