230 likes | 441 Views
Rules: Knowledge Representation & Manipulation. Artificial Intelligence CMSC 25000 January 8, 2002. Agenda. Knowledge Representation: Assertions & Rules Knowledge Manipulation: Forward & Backward Chaining Deduction & Reaction Systems Costs, Choices, and Mechanisms.
E N D
Rules:Knowledge Representation &Manipulation Artificial Intelligence CMSC 25000 January 8, 2002
Agenda • Knowledge Representation: • Assertions & Rules • Knowledge Manipulation: • Forward & Backward Chaining • Deduction & Reaction Systems • Costs, Choices, and Mechanisms
Representing Knowledge • Assertion: • Statement that something is true • “Stretch is a giraffe”,”The sky is blue” • Collection of assertions: “Working Memory”
Representing Knowledge: Rules • If - then rules If A1, A2 Antecedent Then B1, B2 Consequent
Representing Knowledge: Rules • May include variables, e.g. • Variables: ?x,?y,?z • Same name => same value If (parent-of ?x ?y), (parent-of ?y ?z), then (grandparent-of ?x ?z)
Knowledge Manipulation • Forward chaining: • Reason from “if” antecedents to “then” consequents • Backward chaining: • Confirm hypothesis matching “then” patterns by verifying “if” patterns
Rule-based Systems • Separate knowledge from control • Contrast from typical programming: Integrated Add consequent Assertions Rules Rule Interpreter Select rule Match antecedent
Forward Chaining • Identify triggered rules • Antecedents match assertions • Match variables -> rule instances • Select a triggered rule to fire • Conflict resolution strategy: first, random, LRU, combination • Fire a rule • Add consequents to list of assertions (deduction) • Perform action(s) in consequent (reaction)
Forward Chaining Example R1: if (signs (nasal congestion)) (signs (viremia)) then (diagnosis influenza) R2: if (runny nose) then (signs (nasal congestion)) R3: if (body-aches) then (signs (achiness)) R4: if (temp >100) then (signs (fever)) R5: if (headache) then (signs (achiness)) R6: if (signs (fever)) (signs (achiness)) (cough) then (signs (viremia)) Assertions: F1: runny nose F2: temp = 101.5 F3: headache Execution: R2 Fires: Asserts (signs (nasal congestion)) R4 Fires: Asserts (signs (fever)) R5 Fires: Asserts (signs (achiness)) R6 Fires: Asserts (signs (viremia)) R1 Fires: Asserts (diagnosis influenza)
Forward Chaining with variables IF (parent ?x ?y) (parent A B) (parent ?y ?z) (parent A C) THEN (grand-parent ?x ?z) (parent B D) (parent C E) (parent ?x ?y) (parent ?y ?z) (grand-parent ?x ?z) (x:A y:B) (y:A z:B) conflict in y (y:A z:C) conflict in y (y:B z:D) (x:A y:B z:D) (y:C z:E) conflict in y (x:A y:C) (y:A z:B) conflict in y (y:A z:C) conflict in y (y:B z:D) conflict in y (y:C z:E) (x:A y:C z:E) (x:B y:D) (y:A z:B)conflict in y (y:A z:C) conflict in y (y:B z:D) conflict in y (y:C z:E) conflict in y (x:C y:E) (y:A z:B) conflict in y (y:A z:C) conflict in y (y:B z:D) conflict in y (y:C z:E) conflict iny
Forward Chaining: Analysis • Reason from antecedents to consequents • Trigger rules if all antecedents match assertions • Add assertions or do actions in consequents • May be computationally expensive • Many possible deductions to make • Brute force approach: k antecedents, N assertions • N^k!! • Rete method
Backward Chaining • Test hypothesis • Reason from consequents to antecedents • Use assertions and rules • If no assertions or rules give evidence, ask questions
Backchain(G) - Rule interpreter If G matched assertion in database, then return True Else If there are rules whose consequent matches G For each matching rule R For each antecedent C of R If Backchain(C) is true, proceed Else go to next rule. Return True /* when all antecedents are true */ Return False /* when no matching rule succeeds */ Else, ask user if G is true. If answer is “yes” return True, Else return False. From Lozano-Perez, April 00
Backward Chaining Example R1: if (signs (nasal congestion)) (signs (viremia)) then (diagnosis influenza) R2: if (runny nose) then (signs (nasal congestion)) R3: if (body-aches) then (signs (achiness)) R4: if (temp >100) then (signs (fever)) R5: if (headache) then (signs (achiness)) R6: if (signs (fever)) (signs (achiness)) (cough) then (signs (viremia))
Backward Chaining Example Hypothesis: (diagnosis influenza) Diagnosis Influenza AND (Signs (nasal congestion)) (Signs (viremia) AND (Runny nose) (Signs (fever)) (Signs (achiness)) (cough) Ask Ask OR Yes Yes (Temp > 100) Ask Yes (Body-ache) (Headache) Ask Ask No Yes
Reaction Systems • Deduction systems • Produce new assertions • Keep firing all triggered rules • Order less important • Reaction systems • Produce arbitrary actions: assertions, printing, moving, bagging • Side effects -> Order important
Reaction System: Example • For example, IF (at ?x ?y) (move ?x to ?z) ADD (at ?x ?z) DELETE (move ?x to ?z) (at ?x ?y) • Assume an initial database: • (at A room1) (move A room2) • Then the rule would add:(at A room2) • And, delete: • (at A room1) (move A room2)
Conflict Resolution • When >1 rule is triggered, which fires?? • First: Rules are ordered. Fire first triggered. • Random: Randomly select a rule to fire • Most specific: Fire rule with most antecedents • Least recently fired: Avoids rule starvation. • Combination • Design rule set wrt conflict resolution strategy
Conflict Resolution: Deduction • Generally, less important,but • Possible to create infinitely recursive rule • if ?x, (not (not ?x))…. • Need conflict resolution • Allow other rules to fire • E.g. stop rule