310 likes | 569 Views
Rule Based Systems Introduction to Production System Architecture. 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’
E N D
Rule Based SystemsIntroduction to Production System Architecture
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?
Work through this production system to decode the result • z lu pp hlw lloq rv wr e • uqzv ??
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
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.
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
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’)
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’?
Backward Chaining Goal_1 Goal_2 Goal_2 Goal_3 rules Direction of reasoning Goal_3 Goal_4 Goal_4 Goal_5 Question
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!
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
Backwards Chaining with Backtracking Goal_1 Goal_2 Goal_8 Goal 7 Goal_2 Goal_3 Goal_7 Goal_6 rules fail Direction of reasoning Goal_3 Goal_4 Goal_6 Goal_4 Goal_4 Goal_5 Question
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
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.
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
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
Forward Chaining Fact_1 Fact_1 Fact_2 Fact_2 Fact_3 rules Direction of reasoning Fact_3 Fact_4 Fact_4 Fact_5 Action=Fact_5
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’? ConflictResolution
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?
Production System Strategy • All rules tested at each cycle • Only one rule fires at a time
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
ConflictResolution 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’?
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
Basic Production System Architecture Dynamic Memory execute tickle Rule Execution Rule Store Select (resolve conflicts) check satisfaction Conflict Set
Modules (Contexts) & Agendas • How to modularise RBSs • Agenda = Sequence of modules (Stack) • Module = Named Set of rules • (Rule MODULE::rule_nameIF ...THEN...) • Contexts popped off stack when finished.
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 ?Place not ?Place = goalTHEN ask-user “What do I do now?”
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.
The Structure of Heuristics • Trigger • Constraints • Antecedents • Actions • Conclusions • Control
Formalising Heuristics • Triggers • quick & sensitive • Constraints • quick & specific • Antecedents • complete and sufficient • Actions • Conclusions • Control
Formalising Heuristics • Triggers • Constraints • Antecedents • Actions • Things effecting the outside world • Conclusions • New facts for the dynamic data base • Control • changes to agenda