| Intelligent Systems And Their Societies | Walter Fritz |
Lets follow through the activity of the program while it
runs in this mode. In an endless loop, the program notes
the interior situation, looks for an applicable interior rule
and activates the program function related to that rule.
Also it combines two successive "present situation" into a
rule of type experience. Thus, when the person presents
two successive situation to the program it learns a rule,
composed of these situations.
The loop is only terminated when the person activates the
asleep mode using the menu. The following are the rules
that are activated in sequence:
Read Text
At the start, the internal situation is "awake". The program
gets the applicable internal rule which is "Read Text", it
reads the keyboard input, creates one concept for each
word, and puts those concepts into the concept "TEXT".
Then it changes the internal situation.
Vision
Now the program looks for an internal rule that is
applicable to the new internal situation and finds
"Vision". The C program function connected to this rule
converts what is seen by the camera into vision concepts.
These vision concepts are stored in the concept
"VISION". At present we are working only with a few
geometrical figures on a piece of paper. The content of a
vision concept now is a shape, colour, size, x position and
y position.
Make Present Situation
Similarly the rule "Make Present Situation" is called and
stores all sense concepts in sequence into the concept
"EXTERN_SIT".
Learn Rule
Now, due to the present internal situation, the program
activates the rule "Learn Rule" that creates a new
external rule with the previous "present situation" as Sit1
and the present situation as FutSit. This rule is of type
"experience". Experience rules are external rules, and are
needed to respond to sense inputs.
Make Exterior Rule List
Next this rule is activated by the internal situation. It
extracts a list of rules from memory that are applicable to
the present external situation. "Applicable" means that
they have some concept of the present situation in their
Sit1.
These rules are stored, ordered by usefulness (value), in
the concept "RUL_CAND_LIST" and their value is stored
in the concept "RUL_VAL_LIST"
Their value is determined by this formula:
value = rule value + hit - miss
"rule value" is the value of the rule itself.
"hit" is the value of the concept of the Sit1 of the rule that
was found in the present situation.
"miss" is double the value of the concept of Sit1 of the
rule that was not found in the present situation.
Select Rule
This rule selects one of the rules from
RUL_CAND_LIST; at present the rule with the highest
value in the RUL_VAL_LIST, and stores it in the concept "SEL_RULE". In a
previous version of the program, it selected most often the
highest value and less often rules with lower values. This
was useful while learning to play board games on the
computer screen, such as tick-tack-toe. It learned the
game in a shorter time.
Do Exterior Rule
This rule performs the action part of the selected rule. It
checks in a given sequence how well the selected rule fits
the present situation, makes modifications to the rule and
performs an action.
Below, we talk about "CoRules" and "PatRules". A PatRule is a rule where some concepts in the Sit1and FutSit are replaced by a "joker", a place holder, that indicates what has to be done in this spot. This place holder we call a CoRule, because it is a rule, that specifies an action and that has to be done when using the PatRule. This is one use of a CoRule. Another is as follows: The sleep mode attached a CoRule to a concept. If this concept occurs in a Sit1 of a selected rule, the CoRule makes changes that have to be done to the FutSit, and creates a new rule with these changes. In the sleep mode we give more details about PatRules and CoRules.
Lets get back to the "Do Exterior Rule".
The sequence of activation in the program function attached to "Do
Exterior Rule" is:
If the SEL_RULE is a PatRule:
It looks up the spot in the Sit1 of the SEL_RULE, where
the CoRule is located. It then takes the concept that is in
this spot in the present situation. It places this concept in
the spot in the FutSit of the SEL_RULE, where another
CoRule is located.
For instance: The present situation is "I am Fred". Here
"Fred" is an unknown name. The PatRule has as Sit1 "I
am CoRule" and as FutSit is "Hi CoRule". Here the
FutSit is modified into: "Hi Fred" by substituting "Fred"
for "CoRule".
Else if all concepts of the present situation are identical to the concepts of Sit1 of the SEL_RULE, it leaves the SEL_RULE unchanged.
Else if the Sit1 of the SEL_RULE has a concept with a
CoRule attached, it modifies the FutSit of the SEL_RULE
according to indications of the CoRule.
For instance: The program sees a triangle and knows it
should answer with the word "triangle". But it also sees
that the object is red. It has another rule with input of a
red object and output of the word "red". It now combines
the two rules and generates as output "red triangle".
Else if all or some concepts of Sit1 exist in the present situation, it leaves the SEL_RULE unchanged.
Else the program signals that no applicable rule was
found.
Finally the rule does the concrete action, based on the FutSit of the SEL_RULE.
Here the program returns to the beginning of the loop.
For continuos reading, like a book - continue
here
Jump to the e-book Contents /
Intelligent Systems document /
Robot Brain /
top of the page.
Copyright © New Horizons Press