You are on page 1of 6

Problem Solving Architectures 

A number of different types of problem solving architecture for different domains


have been proposed.  For example, connectionist systems that can solve problems of
distinguishing one pattern from another, or genetic algorithms systems that can solve
problems of optimization.  These are known as sub-symbolic architectures.  However
in areas where manipulation of complete symbols are modelled, the main cognitive
architectures that have been proposed are based around production systems.

Production Systems
Production systems as a computational model were first developed by the American
logician, Emil Post in the 1930's.  It is simply one of a whole range of mathematical
and machine concepts  (Church's lambda calculus, Kleene's recursive functions,
Turing's universal machine) devised to explore problems of computability, which
have all been shown to be equivalent. (Harel p222.)  However, the specific architecture
of the production system has been used in cognitive modelling because its
implementation by the brain is, in some way, psychologically plausible � essentially
it embodies a stimulus-response mechanism.

A production system consist of:

1. a workspace � containing a representation of the state of the world


relevant to the problem being worked on.
2. production rules � a set of condition/action rules that encode the
behaviour of the system.
3. an evaluator � a method of matching the condition of the production
rules to the workspace contents, selecting a particular rule and applying
its action.

Examples of sets of production rules might be:


... 
If you are approaching traffic lights which are red, then stop. 
If you are approaching traffic lights which are amber and you are closer than 30 feet
from the junction, then carry on. 
If you are approaching traffic lights which are amber and you are greater than 30 feet
from the junction, then stop. 
If you are approaching traffic lights which are green, then carry on. 
...
... 
If the bicycle veers to the right, then lean to the left. 
If the bicycle veers to the left, then lean to the right. 
...

A more extensive set of production rules are given in the example below:

The Farmer's Problem

An example of a production rules that actually solve a (very simple) problem. 


A farmer must move a chicken, bag of grain and fox from one bank of the river to the
other by boat.  The boat can hold only the farmer and one other object at a time.  If the
chicken is left unattended on a bank with the grain, it will eat it.  The fox will also eat
the chicken if they are left unattended.

One solution sequence:

                          Source Bank |   | Destination Bank 


                         |   | 
Farmer Chicken Grain Fox |�  | 
                         |   | 
               Grain Fox |  �| Farmer Chicken 
                         |   | 
        Farmer Grain Fox |�  | Chicken 
                         |   | 
                     Fox |  �| Farmer Chicken Grain 
                         |   | 
      Farmer Chicken Fox |�  | Grain 
                         |   | 
                 Chicken |  �| Farmer Grain Fox 
                         |   | 
          Farmer Chicken |�  | Grain Fox 
                         |   | 
                         |  �| Farmer Chicken Grain Fox 
  
Production rules to generate these moves are given below.  Each rule must be tested
against the current state of the world, in sequence, 1 to 6, and the first rule that
matches must be applied.  Then the rules are matched again.

1. If Farmer, Chicken, Grain and Fox are on the destination bank, then
STOP!
2. If Farmer, Grain and Fox are on the source bank, and Chicken on the
destination bank, then Farmer row Grain to the destination bank.
3. If Farmer, Chicken and Grain are on the destination bank, and Fox on
the source bank, then Farmer row Chicken to the source bank.
4. If Farmer, Chicken and Fox are on the source bank, and Grain on the
destination bank, then Farmer row Fox to the destination bank.
5. If Farmer and Chicken are on the source bank, then Farmer row Chicken
to the destination bank.
6. If Farmer is on the destination bank, then Farmer row to the source bank.

How can a set of production rules be developed so as to generate a particular sequence


of actions?  A method for doing this is described below.  However, it requires that the
sequence has already been specified, i.e., the problem has already been solved!  This
is intended just as a demonstration of how a set of production rules can be created. 
An architecture capable of actually solving the problem, and generating the sequence
of moves from scratch will be described later.

List the basic states and state modifications:

1 [Goal D] [Farmer S] [Chicken S] [Grain S] [Fox S] -> [Farmer D] [Chicken D] 


2 [Goal D] [Grain S] [Fox S] [Farmer D] [Chicken D] -> [Farmer S] 
3 [Goal D] [Farmer S] [Grain S] [Fox S] [Chicken D] -> [Farmer D] [Grain D] 
4 [Goal D] [Fox S] [Farmer D] [Chicken D] [Grain D] -> [Farmer S] [Chicken S] 
5 [Goal D] [Farmer S] [Chicken S] [Fox S] [Grain D] -> [Farmer D] [Fox D] 
6 [Goal D] [Chicken S] [Farmer D] [Grain D] [Fox D] -> [Farmer S] 
7 [Goal D] [Farmer S] [Chicken S] [Grain D] [Fox D] -> [Farmer D] [Chicken D] 
 

Set them out as a decision table:

This table recognizes the conditions as objects on specific banks.  I.e., the predicate
�on same bank� is not used.
 1  2  3  4  5  6  7
 Goal  D  D  D  D  D  D  D
 Farm
 S  D  S  D  S  D  S
er
 Chick
 S  D  D  D  S  S  S
en
 Grain  S  S  S  D  D  D  D
 Fox  S  S  S  S  S  D  D
 Actio  Fa,C  Fa  Fa,G  Fa,C  Fa,F  Fa  Fa,C
n :D :S :D :S :D :S :D
 

Simplified the table:

1. Delete all rows which are constant for all columns.


2. For each pair of columns with the same action, delete all condition
entries which differ, and combine the columns.

N.B., if you end up with two columns that have identical condition entries but
different actions, then an additional element in the environment that will provide an
extra condition element, and will differ between the two rules, is required. 
 
 1,7  2,6  3  4  5
 Goal
 Farmer  S  D  S  D  S
 Chicken  S  D  D  S
 Grain  S  D  D
 Fox  S  S  S
 Action  DFa,C:  Fa:S  DFa,G:  Fa,C:
S
 Fa,F:D
 

Turn the decision table into productions and prioritize them:

The productions are ordered by specificity (i.e., number of conditions), the most
specific first.

3 [Farmer S] [Chicken D] [Grain S] [Fox S]  -> [Farmer D] [Grain D] 


4 [Farmer D] [Chicken D] [Grain D] [Fox S]  -> [Farmer S] [Chicken S] 
5 [Farmer S] [Chicken S] [Grain D] [Fox S]  -> [Farmer D] [Fox D] 
1,7                 [Farmer S] [Chicken S]  -> [Farmer D] [Chicken D] 
2,6                             [Farmer D]  -> [Farmer S]  
 

Add a terminating production:

However there is still a problem with this.  Once all of the items are on the destination
bank, this set of production rules will compel the farmer to row on his own to the
source bank!  This can be prevented with a rule that recognizes the goal state and
terminates the system.
[Farmer D] [Chicken D] [Grain D] [Fox D]  -> [STOP]
This rule must be given the highest priority.

Domain-General Production Systems

The productions described above are obviously only relevant in the very specific
situation described.  Also, they are unlikely to be much use for solving new problems. 
(And how were they acquired in the first place?)  What is needed are productions that
encode general problem solving behaviour.

For example, the means-ends strategy, described earlier, can be encoded thus:

Means-Ends Strategy Productions

This example is taken from (Anderson pp220-221.)

P1  IF the goal is to transform the current state into the goal state 
       and D is the largest difference between the states 
  THEN set as subgoals: 
       1) To eliminate the difference D. 
       2) To convert the resulting state into the goal state.

P2  IF the goal is to eliminate a difference D 


       and O is an operator relevant to reducing the difference 
  THEN set as a subgoal: 
       1) To apply O.

P3  IF the goal is to apply an operator O 


       and D is the most important difference between the application 
           condition of O and the current state 
  THEN set as subgoals: 
       1) To eliminate the difference D. 
       2) To apply the operator O.

The preceding rules generate the embedding of goals and subgoals.  Eventually, an
operator may be applied � done by the following rule.

P4  IF the goal is to apply operator O 


       and there are no differences between the application condition of O and
the 
           current state 
       and operator O calls for action A 
  THEN set as a goal: 
       1) To perform A.
Goal A would be a domain specific production, such as in the problem above, e.g.,

P5  IF the goal is to move an object to a bank 


    THEN set as subgoals: 
         1) Place object in boat. 
         2) Row boat to bank.

The cognitive architecture SOAR incorporates a production system running general


problem solving rules not unlike those described above � but considerably more
sophisticated, giving greater flexibility and power.  This will be described in the next
lecture.

References
Anderson, J. R.  1985  "Cognitive Psychology and Its Implications" (Second Edition). 
W.H. Freeman and Company, New York.

Harel, D.,  1987  "Algorithmics:  The spirit of computing"  Addison-Wesley. 


  
  
  

You might also like