SOAR

Philosophy

The SOAR project was started at CMU by Newell, Laird and Rosenbloom as a testbed for Newell's theories of cognition.

Keeping with Newell's definition of intelligence as the ability to use ones knowledge to achieve ones goals, SOAR was designed to use all of its knowledge on each problem. There is one main memory structure into which all long-term memories are to fit. All queries use all of it.


Architecture:

SOAR's memory is a production system that was modelled after OPS-5. Long term memories are stored as productions in a production memory. Short term memories are stored in working memory (WM). Each production associates a condition with an action: if a condition is met then the action is done. Conditions and actions are given as list-based structures that may contain variables or constants. Conditions structures are matched against the structures in WM: if they match the action portion is placed in WM. Productions may give the WM which desirability information about other productions.

During elaboration, productions fire until quiescence when no more match. After quiescence, a new action is chosen based on the preferences given during elaboration.

An impasse results if there is no one action is uniquely specified. SOAR then subgoals, setting up another problem state to find a unique action.

Learning results from chunking which is the aggregation of the relevant preconditions of an elaboration cycle that yield changes in WM after it. Chunking may be done by one problem state on the results returned by a lower one. Over time, information migrates up the problem state hierarchy.


Agent Properties:

SOAR represents its data in a uniform, symbolic, global manner. That it uses a production system, and that productions cannot examine each other means that it has procedural knowledge and black-box control.

Learning (when it is on) is done reflexively through chunking. It does not use logic, so its memory need-not be consistent in the same manner. This allows it to learn non-monotonically.

The architecture is centralized one. It makes no commitment on eager or lazy sensing policys and its speed is a function of the number and complexity of the items in working memory and production memory (cf. Environment and Agent Body)


Capabilities:

SOAR has demonstrated many capabilities. perception is implemented by allowing sensors to add things to working memory (WM). Once inside, they may cause attending productions to fire. Similarly, action is implemented by activating actuators when some structure appears in WM. The generality of SOAR's production system may preclude having to use outside modules to convert between low and high level sensor and actuator data. The conversions may be implemented in productions themselves.

SOAR learns by chunking. Although chunking itself if

SOAR has been tested in many domains. It has demonstrated some natural language ability as NL-Soar, a subsystem that allows SOAR agents to interpret textual English commands and even learn new words. It has demonstrated some ability to cooperate with other agents as TacAir-Soar. In this domain SOAR agents must send and receive instructions for and from friendly agents, and react to the actions of fully-capable opponent agents. All of this must happen in real-time.

Because all production memory is hidden from other productions, implementing meta-reasoning is not straightforward. In SOAR the utility problem manifests itself as expensive chunks.


Environment and Agent Body:

SOAR's is may be used in dynamic and unpredictable environments. Indeed, SOAR has been used in both real and simulated environments.

The preferences specified by productions provide a natural way to attend to environmental conditions with different levels of importance.

The main work done by SOAR is production matching via the Rete algorithm, so SOAR's computation limitations are dictated by it. For matching a single production the algorithm has worst case running time O(W^(2C-1) + P) where:

	W is the size of working memory
	C is the number of clauses in the production
	P is the number of productions in memory


Issues:

Newell undertook the SOAR project (in part) to test his theories of cognition. SOAR realizes the cognitive band of a symbolic architecture. These theories were meant to be generalizable to humans, so often SOAR's performance is compared with human's to gauge Psychological validity. Two examples are the Einstellung Effect and the Power Law of Learning.

A problematic engineering question for SOAR is programming for chunking. Chunking is SOAR's only learning mechanism, but sometimes designing SOAR agents in a hierarchical fashion with learning on leads to bad chunks. One solution, turning learning off, loses much of SOAR's power.


Other Architectures

Back to the Title Page