1 rule based systems introduction to production system architecture
TRANSCRIPT
2
Rules and ‘Productions’
• ‘Production’ - a rule for changing grammar
• Englishs regular verbs– regular_verb + (past) --> verb + ‘ed’
• Pig-latin productions– consontant string string + consonant + ‘ay’
– vowel + string string + ay
• Is this enough? What do we have to add?
• Can you reverse it?
4
Rules
• Form– IF antecedent THEN conclusion
– IF condition THEN action
– IF antecedent THEN goal
• Interpreters– Backward chaining
» Trigger on conclusion/goal
– Forward chaining» Trigger on antecedent/condition
5
Rules and Logic
• Rules are really statement in logic– About what we believe to be true
– About what should occur
• Translation 1 - situations– IF may_rain THEN should_take_umbrella
s. Situation s May_rain s Take_umbrella s
“For all s, if s is a situation & s is a may_rain situation, then s is a take_umbrella situation.
6
Rules and Logic
• Translation 2 - implied objects– IF may_rain THEN should_take_umbrella
wp. Weather w Person p May_rain w Out_in p w Take_umbrella p
“For all w and p, if w is a weather and w is may_rain weather and p is a person and p is out in w, then p (should) take an umbrella.”
• Translations: be careful of the words– The words are just symbols
» They have no meaning except help human know what the symbols are for
» Just like variable names - could all be x,y,z... wp. W w P p M w O p w T p
7
Forward and Backward Chaining
• Rules– r1: IF may_rain THEN should_take_umbrella
– r2: IF cloudy THEN may_rain
• Questions– “Should I take an umbrella?”
– “What should I do if it is cloudy?”
• How did you answer the questions?– Which part of the rule did you look for? (‘match’)
8
Backward Chaining
• Rules– R1: IF may_rain THEN should_take_umbrella
– R2: IF cloudy THEN may_rain
• “Should I take an umbrella?”– “Do the rules indicate I should take an umbrella?
» Is there a rule about “taking umbrellas”?• R1: goal: should_take_umbrella
» How can I prove that goal?• What has to be true for r1 to hold?
– may_rain is the antecedent of r1
» Can I prove that it may_rain?• R2: goal: may_rain
» How can I prove that goal2• What has to be true for r2 to hold
– cloudy is the antecedent of r2
» How can I prove ‘cloudy’?
9
Backward Chaining
Goal_1 Goal_2
Goal_2 Goal_3
Goal_3 Goal_4
Goal_4 Goal_5
Question
rules
Dir
ecti
on
of
reas
on
ing
10
Backward Chaining
• Rules– R1: IF may_rain THEN should_take_umbrella
– R2: IF cloudy THEN may_rain
– R3: IF may_be_intense_sun THEN should_take_umbrella
– R4: IF summer AND in_tropics THEN may_be_intense_sun
• “Should I take an umbrella?”– “Do the rules indicate I should take an umbrella?
» Is there are rule about “taking umbrellas”?• R1: goal: should_take_umbrella
» What is antecedent for r1?• R1:antecedent may_rain
» Can I prove that it may_rain?• R2: goal: may_rain
» How can I prove may_rain• R2:antecedent: cloudy
» BUT NOT CLOUDY!
11
Backward Chaining: Backtracking
• Rules– R1: IF may_rain THEN should_take_umbrella
– R2: IF cloudy THEN may_rain
– R3: IF may_be_intense_sun THEN should_take_umbrella
– R4: IF summer AND in_tropics THEN may_be_intense_sun
• “Should I take an umbrella?”» Are there any other rules about umbrellas?
• R3: goal: should_take_umbrella
» What is antecedent of R3?• R3:antecedent: summer AND in tropics
12
Backwards Chaining with Backtracking
Goal_1 Goal_2
Goal_2 Goal_3
Goal_3 Goal_4
Goal_4 Goal_5
Question
rulesfail
Goal_6 Goal_4
Goal_7 Goal_6
Goal_8 Goal 7
Dir
ecti
on
of
reas
on
ing
13
Backwards Chaining Systems
• MYCIN– ‘The original expert system’
» Diagnosis of acute infections (Meningitis, blood infections)• Still a good example of how it works
» Also used • uncertain reasoning
• Explanation
– ‘How’ did you prove that?
– ‘Why’ are you asking me that?
» Never used ‘for real’
• PROLOG– One of the two standard AI languages
» A simple backwards chaining engine with backtracking
14
Backwards Chaining Engines usually written ‘backwards’
• Goal Antecedent– Umbrella may_rain
– may_rain cloudy
• Prolog ‘Edinburgh’ notation– umbrella :- may_rain.
– may_rain :- cloudy.
NB upper and lower case very important in Prolog
• In KnowledgeWorks – (defrule r1 :backward <body>)
» Or special functions ‘any’, ‘test’, and ‘not’• Awkward - don’t try it first time.
15
Forward Chaining
• Rules– R1: IF may_rain THEN should_take_umbrella
– R2: IF cloudy THEN may_rain
• “What should I do if it is cloudy?”– “What do the rules indicate I should do if it is cloudy?”
» Is there a rule that applies when it is cloudy?• R2: antecedent: cloudy
» What do I conclude from that antecedent, ‘cloudy’• R2: conclusion: may_rain
» Is there a rule that applies when it may_rain?• R1: antecedent: may_rain
» What do I conclude from that antecedent: ‘may_rain’• R1: conclusion: should_take_umbrella
16
Forward chaining
‘Production Systems’– Vocabulary used differently on west and east coast of US
for many years» On east coast, ‘production systems’ means forward
chaining
» On west coast, ‘production systems’ just means rule based systems
– Usually, and in this course, ‘Production System’ means ‘forward chaining’
• Classic system is OPS5
• Basic strategy of KnowledgeWorks
17
Forward Chaining
Fact_1 Fact_2
Fact_2 Fact_3
Fact_3 Fact_4
Fact_4 Fact_5
Action=Fact_5
rules
Directio
n o
f reaso
nin
g
Fact_1
18
Consider
R1: IF sky=cloudy THEN expect=rain
R2: IF expect=?X THEN weather=?X
R3: IF sky=cloudy AND temperature=freezing THEN expect=snow
R4: IF weather=rain THEN termperature=above_freezing
What happens if ‘sky=cloudy’?What happens if ‘sky=cloudy and ‘temperature=freezing’?
Conflict Resolution
19
Production system interpreter
• Objectives:– Fire rules as the facts come in to the knowledge base
– Never fire a rule unless its conditions are satisfied
– Fire every rule whose conditions are satisfied
• Are these objectives consistent. – Forward chaining rules sometimes called ‘demons’
» From a system called “Pandemonium”
– How can they be made consistent?
21
Production System Cycle
1 Test all rules
2 Put all rules satisfied into the ‘conflict set’
3 Choose one rule from the conflict set
4 Fire the rule
5 Update the dynamic database
6 Repeat until goal reached or no more rules satisfied
22
Conflict Resolution
R1: IF sky=cloudy THEN expect=rain
R2: IF expect=?X THEN weather=?X
R3: IF sky=cloudy AND temperature=freezing THEN expect=snow
R4: IF weather=rain THEN termperature=above_freezing
What happens if ‘sky=cloudy’?What happens if ‘sky=cloudy and ‘temperature=freezing’?
23
Possible Conflict Resolution Strategies
• Specificity
• Priority
• Lexical Ordering
• Source file ordering
• Explicit rules for conflict resolution– a rule based system within a rule based system
24
Basic Production System Architecture
Dynamic Memory
Rule Store
Conflict Set
Rule Execution
tickle
check satisfactionSelect(resolve conflicts)
execute
25
Modules (Contexts) & Agendas
• How to modularise RBSs
• Agenda = Sequence of modules (Stack)
• Module = Named Set of rules– (Rule MODULE::rule_name
IF ...THEN...)
• Contexts popped off stack when finished.
26
Agenda/Modules Example
• focus search stuck
• defrule search::r1IF hero is at ?Place-1 &
?Place-1 gives_access_to ?Place-2THEN move hero to ?Place-2
• defrule stuck::r1IF context stuck &
hero is at ?Placenot ?Place = goal
THEN ask-user “What do I do now?”
27
Expert SystemsConfiguring systems
• defrule BACKPLANE_STRUCTURE::R1IF the_processor IS in placeAND the_devices_to_mount INCLUDE
?DeviceTHEN mount ?Device
• defrule BACKPLANE_STRUCTURE::R1IF mount ?DeviceAND ?Slot_1 IS_A backplane_slotAND NOT lower_number_available_than
?Slot_1 ?Slot_2THEN ?Slot_1 is_occupied_by ?DeviceAND ?Device is_mounted.
28
The Structure of Heuristics
• Trigger
• Constraints
• Antecedents
• Actions
• Conclusions
• Control
29
Formalising Heuristics
• Triggers– quick & sensitive
• Constraints– quick & specific
• Antecedents– complete and sufficient
• Actions
• Conclusions
• Control