Rules Knowledge Representation Manipulation Artificial Intelligence CMSC 25000

  • Slides: 19
Download presentation
Rules: Knowledge Representation & Manipulation Artificial Intelligence CMSC 25000 January 8, 2002

Rules: Knowledge Representation & Manipulation Artificial Intelligence CMSC 25000 January 8, 2002

Agenda • Knowledge Representation: – Assertions & Rules • Knowledge Manipulation: – Forward &

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

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 A 1, A 2 Then

Representing Knowledge: Rules • If - then rules If A 1, A 2 Then B 1, B 2 Antecedent Consequent

Representing Knowledge: Rules • May include variables, e. g. If (parent-of ? x ?

Representing Knowledge: Rules • May include variables, e. g. If (parent-of ? x ? y), (parent-of ? y ? z), then (grandparent-of ? x ? z) • Variables: ? x, ? y, ? z – Same name => same value

Knowledge Manipulation • Forward chaining: – Reason from “if” antecedents to “then” consequents •

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

Rule-based Systems • Separate knowledge from control – Contrast from typical programming: Integrated Add consequent Assertions Rule Interpreter Select rule Match antecedent Rules

Forward Chaining • Identify triggered rules – Antecedents match assertions – Match variables ->

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 R 1: if (signs (nasal congestion)) R 4: if (temp >100)

Forward Chaining Example R 1: if (signs (nasal congestion)) R 4: if (temp >100) (signs (viremia)) then (signs (fever)) then (diagnosis influenza) R 5: if (headache) R 2: if (runny nose) then (signs (achiness)) then (signs (nasal congestion)) R 6: if (signs (fever)) R 3: if (body-aches) (signs (achiness)) then (signs (achiness)) (cough) Assertions: then (signs (viremia)) F 1: runny nose Execution: F 2: temp = 101. 5 R 2 Fires: Asserts (signs (nasal congestion)) F 3: headache R 4 Fires: Asserts (signs (fever)) R 5 Fires: Asserts (signs (achiness)) R 6 Fires: Asserts (signs (viremia)) R 1 Fires: Asserts (diagnosis influenza)

Forward Chaining with variables IF (parent ? x ? y) (parent ? y ?

Forward Chaining with variables IF (parent ? x ? y) (parent ? y ? z) THEN (grand-parent ? x ? z) (parent A A B C B) C) D) E) (parent ? x ? y) (parent ? y ? z) (grand-parent ? x ? z) (x: A y: B) (y: A z: C) (y: B z: D) (y: C z: E) conflict (x: A y: B conflict in y z: D) in y (x: A y: C) (y: A z: B) (y: A z: C) (y: B z: D) (y: C z: E) conflict (x: A y: C in y z: E) (x: B y: D) (y: A (y: B (y: C z: B) z: C) z: D) z: E) conflict in in y y (x: C y: E) (y: A (y: B (y: C z: B) z: C) z: D) z: E) conflict in in y y

Forward Chaining: Analysis • Reason from antecedents to consequents – Trigger rules if all

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

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

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 R 1: if (signs (nasal congestion)) (signs (viremia)) then (diagnosis influenza)

Backward Chaining Example R 1: if (signs (nasal congestion)) (signs (viremia)) then (diagnosis influenza) R 2: if (runny nose) then (signs (nasal congestion)) R 3: if (body-aches) then (signs (achiness)) R 4: if (temp >100) then (signs (fever)) R 5: if (headache) then (signs (achiness)) R 6: if (signs (fever)) (signs (achiness)) (cough) then (signs (viremia))

Backward Chaining Example Hypothesis: (diagnosis influenza) Diagnosis Influenza AND (Signs (nasal congestion)) (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 OR Yes (Temp > 100) Ask Yes (Body-ache) (Headache) Ask No Yes

Reaction Systems • Deduction systems – Produce new assertions – Keep firing all triggered

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 ?

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 room 1) (move A room 2) • Then the rule would add: (at A room 2) • And, delete: – (at A room 1) (move A room 2)

Conflict Resolution • • • When >1 rule is triggered, which fires? ? First:

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

Conflict Resolution: Deduction • Generally, less important, but • Possible to create infinitely recursive rule – if ? x, (not ? x))…. • Need conflict resolution – Allow other rules to fire • E. g. stop rule