1 / 56

Foundations of Artificial Intelligence

Outline. History of Reasoning FOL Inference Rules Generalized Modus Ponens Unification and MGU Soundness and Completeness Forward and Backward Chaining using GMP. A Brief History of Reasoning. 450BCE Stoics PL, inference (?) 32BCE Aristotle inference rules (syllogisms), quantifiers1

filomena
Télécharger la présentation

Foundations of Artificial Intelligence

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Foundations of Artificial Intelligence

    2. Outline History of Reasoning FOL Inference Rules Generalized Modus Ponens Unification and MGU Soundness and Completeness Forward and Backward Chaining using GMP

    3. A Brief History of Reasoning 450BCE Stoics PL, inference (?) 32BCE Aristotle inference rules (syllogisms), quantifiers 1565 Cardano PL + uncertainty (probability theory) 1847 Boole PL (again) 1879 Frege FOL 1922 Wittgenstein proof using truth table 1930 Gödel complete algo for FOL exists 1930 Herbrand complete algo for FOL (reduce to PL) 1931 Gödel complete algo doesn't exist if induction used 1960 Davis/ practical algo for PL Putnam 1965 Robinson practical algo for FOL (resolution)

    4. Inference Rules for FOL Universal Elimination, UE variable substituted with ground term "x Eats(Jim,x) infer Eats(Jim,Cake) UE: ground term can be any constant symbol or function symbol applied to only ground terms EE: constant symbol must not exist in the KB or else accidental inferences may be drawn Ex Mother(x,Joy) infer with EE Mother(Joy,Joy) leads to an illogical inferenceUE: ground term can be any constant symbol or function symbol applied to only ground terms EE: constant symbol must not exist in the KB or else accidental inferences may be drawn Ex Mother(x,Joy) infer with EE Mother(Joy,Joy) leads to an illogical inference

    5. PL Inference Rules also for FOL Implication Elimination (IE) (Modus Ponens, MP) AE if jointly true then separately true AI if separately true then jointly true OI if at least one true then disjointly trueAE if jointly true then separately true AI if separately true then jointly true OI if at least one true then disjointly true

    6. PL Inference Rules also for FOL Unit Resolution (UR) monotonicity: set of entailed sentences can only increase as information is added to the KB adding a new sentence to KB does not affect what can be entailed from the original KB and does not invalidate old sentencesmonotonicity: set of entailed sentences can only increase as information is added to the KB adding a new sentence to KB does not affect what can be entailed from the original KB and does not invalidate old sentences

    7. A Simple FOL Proof using Natural Deduction Jim is a turtle. Turtle(Jim) Deb is a rabbit. Rabbit(Deb) Turtles outlast Rabbits. "x,y Turtle(x) Ù Rabbit(y) Þ Outlast(x,y) Query: Jim outlasts Deb. Outlast(Jim,Deb)

    8. A Simple FOL Proof using Natural Deduction And Introduction AI 1. & 2. Turtle(Jim) Ù Rabbit(Deb) Universal Elimination UE 3. {x/Jim, y/Deb} Turtle(Jim) Ù Rabbit(Deb) Þ Outlast(Jim,Deb) Modus Ponens MP 4. & 5. Outlast(Jim,Deb) AI, UE, MP is a common inference pattern. Automated inference harder with FOL than PL. Variables can take on a potentially infinite number of possible values from their domain and thus UE can be applied in a potentially infinite number of ways to KB. Propositionalization runs into problems with FOL functions since then the set of ground term substitutions becomes infinite. Fortunately Herbrand proved that only a finite subset of of the propositionalized KB is required to prove a sentence that is entailed by the FOL KBPropositionalization runs into problems with FOL functions since then the set of ground term substitutions becomes infinite. Fortunately Herbrand proved that only a finite subset of of the propositionalized KB is required to prove a sentence that is entailed by the FOL KB

    9. Proof as Search using Inference Rules Operators are inference rules States are the KB Goal test checks if query in KB

    10. Generalized Modus Ponens (GMP) Unify rule premises with known facts and apply unifier to conclusion. Rule: "x,y Turtle(x) Ù Rabbit(y) Þ Outlast(x,y) Known facts: Turtle(Jim), Rabbit(Deb) Unifier: {x/Jim, y/Deb} Apply unifier to conclusion: Outlast(Jim,Deb)

    11. Generalized Modus Ponens (GMP) Combines AI, UE, and MP (IE) into a single rule

    12. Generalized Modus Ponens (GMP) Combines AI, UE, and MP (IE) into a single rule

    13. Generalized Modus Ponens (GMP) Combines AI, UE, and MP (IE) into a single rule

    14. Unification Substitution q unifies p1' and p1 if SUBST(q,p1' ) = SUBST(q, p1). assume all variables universally quantified Turtle(x) means x is a turtle Hears(x,y) means x hears yassume all variables universally quantified Turtle(x) means x is a turtle Hears(x,y) means x hears y

    15. Unification Substitution q unifies p1' and p1 if SUBST(q,p1' ) = SUBST(q, p1). assume all variables universally quantified must standardize apart the variables (third example) Turtle(x) means x is a turtle Hears(x,y) means x hears y Eats(x,y) means x eats y Sees(x,y,z) means x sees y at z assume all variables universally quantified must standardize apart the variables (third example) Turtle(x) means x is a turtle Hears(x,y) means x hears y Eats(x,y) means x eats y Sees(x,y,z) means x sees y at z

    16. Unification: Simplified Algorithm //see figure 9.1 of text for full implementation //returns a unifier or null if failure //assumes predicates match and variables are separated apart List unify (Literal m, Literal n, List theta) { scan m and n left-to-right and find the first corresponding terms where m and n are not the same if (no difference in terms) return theta; //success else {r = term in m; s = term in n;} //where term r != term s if (isVariable(r)) { theta = unionOf(theta,{r/s});//should fail if r occurs in s unify(substitute(theta, m), substitute(theta, n), theta); } else if (isVariable(s)) { theta = unionOf(theta,{s/r});//should fail if s occurs in r unify(substitute(theta, m), substitute(theta, n), theta); } else return null; //failure } scan looks at terms of functions too: P(F(x)) and P(F(y)) OC: Everyone that helps themselves is successful. Helps(x,x) => Successful(x) Everyone helps their mother. Helps(y, Mother(y)) unify without OC {y/Mother(y)} Successful(Mother(y)) Everyone's mother is successful!!! or SUBST is infinite recursion Mother(Mother(Mother(Mother(…scan looks at terms of functions too: P(F(x)) and P(F(y)) OC: Everyone that helps themselves is successful. Helps(x,x) => Successful(x) Everyone helps their mother. Helps(y, Mother(y)) unify without OC {y/Mother(y)} Successful(Mother(y)) Everyone's mother is successful!!! or SUBST is infinite recursion Mother(Mother(Mother(Mother(…

    17. Unification Unify returns q a most general unifier (MGU) shortest length substitution list to make a match in general, more than one MGU AIMA algorithm recursively explores the two expressions and simultaneously builds q. Occurs-Check prevents a variable from replacing a term that contains that variable, e.g. prevents {x/F(x)}. this slows down the unify algorithm Unify with the occurs-check has a time complexity of O(n2) where n is the size of the expressions. MGU: Knows(Anne,x) Knows(y,z) {y/Anne, x/z} {y/Anne, z/x} {y/Anne, x/w, z/w} {y/Anne, x/Deb, z/Deb} {y/Anne, x/Deb, z/Deb, w/Jim}MGU: Knows(Anne,x) Knows(y,z) {y/Anne, x/z} {y/Anne, z/x} {y/Anne, x/w, z/w} {y/Anne, x/Deb, z/Deb} {y/Anne, x/Deb, z/Deb, w/Jim}

    18. Soundness of Generalized Modus Ponens (GMP) Show: p1', p2', …, pn', (p1 Ù p2 Ù…Ù pn Þ q) ¦ qq provided that unification succeeds (i.e. pi'q = piq for all i where aq is SUBST(q,a)) Lemma: for any Horn clause p, p ¦ pq by UE (p1 Ù …Ù pn Þ q) ¦ (p1 Ù …Ù pn Þ q)q = (p1q Ù…Ù pnq Þ qq) (by lemma) p1', …, pn‘ ¦ p1' Ù …Ù pn‘ (by AI) p1' Ù …Ù pn' ¦ p1'q Ù…Ù pn'q (by lemma) qq (by MP 1 & 3, since pi'q = piq for all i)

    19. Completeness of FOL Automated Inference Truth table enumeration: incomplete for FOL table may be infinite in size for infinite domain Natural Deduction: complete for FOL but impractical since branching factor too large GMP: incomplete for FOL not every sentence can be converted to Horn form GMP: complete for FOL KB in HNF forward chaining: move from KB to query backward chaining: move from query to KB

    20. Forward Chaining (FC) with GMP Move "forwards" from KB to query Simplified FC Algorithm (see figure 9.3): Assume query q is asked of KB repeat until no new sentences are inferred initialize NEW to empty for each rule that can have all of its premises satisfied apply composed substitution to the conclusion add the new conclusion to NEW if it's not just a renaming done if the new conclusion unifies with the query add sentences in NEW to KB return false since q never concluded

    21. Forward Chaining (FC) with GMP In Class FC Example Production systems earliest form of forward-chaining systems XCON (1980s) used several thousand rules to configure DEC systems ACT (1983), SOAR (1987) popular form of cognitive architecture working memory models short-term memory productions model long-term memory

    22. Backward Chaining (BC) with GMP Move "backwards" from query to KB Simplified BC Algorithm (see figure 9.6): Assume query q is asked of KB if a matching fact q' is known, return unifier (base case) for each rule whose consequent q' matches q (recursive) attempt to prove each premise of the rule by BC (depth first) (Complication added to keep track of unifiers, i.e. composition) (Further complications help avoid infinite loops)

    23. Backward Chaining (BC) with GMP In Class BC Example BC versions find any solution find all solutions BC is basis for logic programming, e.g. Prolog: a program is a set of logic sentences in HNF, which is called the database it is executed by specifying a query to be proved

    24. Limits of GMP FC and BC are complete for Horn KBs but are incomplete for general FOL KBs: PhD(x) Þ HighlyQualified(x) ØPhD(x) Þ EarlyEarnings(x) HighlyQualified(x) Þ Rich(x) EarlyEarnings(x) Þ Rich(x) Query: Rich(Me) What is the problem with the example above? Is there a complete inferencing algorithm that works for any FOL knowledge base? Yes! Resolution Refutation Assume variables universally quantified second sentence cannot be converted to HNFAssume variables universally quantified second sentence cannot be converted to HNF

    25. Resolution Refutation Resolution refutation is an inferencing technique that requires a CNF representation. Any FOL KB can be converted into CNF. CNF: Conjunctive Normal Form conjunction of clauses where CNF clause: a disjunction of literals e.g. Hot(x) Ú Warn(x) Ú Cold(x) Literal: an atom either positive (unnegated) or negative (negated) e.g. ØHappy(Sally), Rich(x)

    26. Resolution Refutation: The Inference Rule PL Resolution Rule (R) resolution reminder: if it's not expensive I can buy it, if I can buy it I'll be happy, deduce: if it's not expensive I'll be happy GR can equivalently be written as implicationsresolution reminder: if it's not expensive I can buy it, if I can buy it I'll be happy, deduce: if it's not expensive I'll be happy GR can equivalently be written as implications

    27. Resolution Refutation: GMP Example

    28. Resolution Refutation: Proofs Resolution proofs are a refutation technique: to prove KB¦ a show that KB Ù Øa is unsatisfiable Resolution refutation repeatedly combines two clauses to make a new one until the empty clause is derived. the new clauses are called resolvents empty clause: False, unsatisfiable, a contradiction Entailment in FOL is only semidecidable: can prove a if KB¦ a cannot always prove that KB doesn't¦ a (halting) Given a consistent set of axioms KB and query Q, we want to show that KB |= Q. This means that every interpretation I that satisfies KB, satisfies Q. But we know that any interpretation I satisfies either Q or ~Q, but not both. Therefore if in fact KB |= Q, an interpretation that satisfies KB, satisfies Q and does not satisfy ~Q. Hence KB union {~Q} is unsatisfiable, i.e., that it's false under all interpretations. In other words, (KB |- Q) <=> (KB ^ ~Q |- False) To show Q is entailed by KB use resolution refutation to show a finite subset of sentences is unsatisfiable. To show Q isn't entailed by KB use resolution to generate all logical consequences and show Q isn't one of them. In general, it cannot be used to generate all logical consequences of KB. Thus entailment in FOL is only semidecidable. This is a nuisance since we generally don't know if Q is entailed by KB until it is proved. If a sentence isn't entailed the proof procedure can go on and on (the halting problem) Note you can't just run two proofs in parallel, one trying to prove Q and the other trying to prove ~Q, since KB might not entail either one. If you have a KB of sports facts, it won't entail whether or not Picasso is a painter.Given a consistent set of axioms KB and query Q, we want to show that KB |= Q. This means that every interpretation I that satisfies KB, satisfies Q. But we know that any interpretation I satisfies either Q or ~Q, but not both. Therefore if in fact KB |= Q, an interpretation that satisfies KB, satisfies Q and does not satisfy ~Q. Hence KB union {~Q} is unsatisfiable, i.e., that it's false under all interpretations. In other words, (KB |- Q) <=> (KB ^ ~Q |- False) To show Q is entailed by KB use resolution refutation to show a finite subset of sentences is unsatisfiable. To show Q isn't entailed by KB use resolution to generate all logical consequences and show Q isn't one of them. In general, it cannot be used to generate all logical consequences of KB. Thus entailment in FOL is only semidecidable. This is a nuisance since we generally don't know if Q is entailed by KB until it is proved. If a sentence isn't entailed the proof procedure can go on and on (the halting problem) Note you can't just run two proofs in parallel, one trying to prove Q and the other trying to prove ~Q, since KB might not entail either one. If you have a KB of sports facts, it won't entail whether or not Picasso is a painter.

    29. Resolution Refutation: Simplified Algorithm //returns true if KB |- q, false otherwise //KB is a set of consistent, true FOL sentences //q is the query to be proved //requires KB and q are in CNF boolean resolutionRefutation(CNFlist KB, CNFsentence q) { KB = unionOf(KB, logicalNegationOf(q)); while (False not in KB) { pick two sentences s1 and s2 in KB with literals that unify // different strategies can limit the choice of s1 and s2 if (none) return false; //failure CNFsentence resolvent = resolutionRule(s1, s2); KB = unionOf(KB, resolvent); } return true; //success }

    30. Resolution Refutation: Short Example KB: PhD(x) Þ HighlyQualified(x) ØPhD(x) Þ EarlyEarnings(x) HighlyQualified(x) Þ Rich(x) EarlyEarnings(x) Þ Rich(x) Prove: KB¦ Rich(Me) Negate query and convert to CNF. ØRich(Me) Add query to CNF KB. Must convert KB sentences above into CNF. Infer a contradiction, i.e., False.

    31. Resolution Refutation: Converting KB to CNF Replace implications: PhD(x) Þ HighlyQualified(x) becomes? ØPhD(x) Ú HighlyQualified(x) ØPhD(x) Þ EarlyEarnings(x) becomes? PhD(x) Ú EarlyEarnings(x) HighlyQualified(x) Þ Rich(x) becomes… Ø HighlyQualified(x) Ú Rich(x) EarlyEarnings(x) Þ Rich(x) becomes… Ø EarlyEarnings(x) Ú Rich(x) In Class Resolution Refutation Example

    32. Converting FOL Sentences to CNF Replace Û with equivalent (added step) convert P Û Q to P Þ Q Ù Q Þ P Example: "x,y {Above(x,y) Û (OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)})} Becomes? "x,y { [ Above(x,y) Þ (OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) ] Ù [ (OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) Þ Above(x,y) ] }

    33. Converting FOL Sentences to CNF Replace Þ with equivalent convert P Þ Q to ØP Ú Q "x,y { [ Above(x,y) Þ (OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) ] Ù [ (OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) Þ Above(x,y) ] } Becomes? "x,y { [ ØAbove(x,y) Ú (OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) ] Ù [ Ø(OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) Ú Above(x,y) ] }

    34. Converting FOL Sentences to CNF Reduce scope of Ø to single literals convert ØØP to P (DNE) convert Ø(P Ú Q) to ØP Ù ØQ (de Morgan's) convert Ø(P Ù Q) to ØP Ú ØQ (de Morgan's) convert Ø"x P to $x ØP convert Ø$x P to "x ØP "x,y { [ ØAbove(x,y) Ú (OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) ] Ù [ Ø(OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) Ú Above(x,y) ] } Highlighted part becomes in stages: (ØOnTop(x,y) Ù Ø$z {OnTop(x,z) Ù Above(z,y)}) (de Morgan's) "z Ø {OnTop(x,z) Ù Above(z,y)} (Ø$x P to "x ØP) {Ø OnTop(x,z) Ú Ø Above(z,y)} (de Morgan's) Highlighted part result: (ØOnTop(x,y) Ù "z{Ø OnTop(x,z) Ú Ø Above(z,y)})

    35. Converting FOL Sentences to CNF Standardize variables apart each quantifier must have a unique variable name which avoids confusion in steps 5 and 6 e.g. convert "x P Ú $x Q to "x P Ú $y Q "x,y { [ ØAbove(x,y)Ú(OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) ] Ù [ (ØOnTop(x,y) Ù "z{ØOnTop(x,z) Ú ØAbove(z,y)}) Ú Above(x,y) ] } Becomes? "x,y { [ ØAbove(x,y) Ú (OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) ] Ù [ (ØOnTop(x,y) Ù "w{ØOnTop(x,w) Ú ØAbove(w,y)}) Ú Above(x,y) ] }

    36. Converting FOL Sentences to CNF Eliminate existential quantifiers (Skolemize) convert $x P(x) to P(K) (EE) K must be a new constant (Skolem constant) convert "x,y $z P(x,y,z) to "x,y P(x,y,F(x,y)) F() must be a new function (Skolem function) its arguments are all enclosing universally quantified variables e.g. Everyone has a name. "x Person(x)Þ $y Name(y)Ù Has(x,y) wrong: "x Person(x)Þ Name(K)Ù Has(x,K) Everyone has the same name K. Want everyone to have a name based on who they are. right: "x Person(x)Þ Name(F(x))Ù Has(x,F(x))

    37. Converting FOL Sentences to CNF Eliminate existential quantifiers (Skolemize) convert "x,y $z P(x,y,z) to "x,y P(x,y,F(x,y)) F() must be a new function (Skolem function) its arguments are all enclosing universally quantified variables "x,y { [ ØAbove(x,y)Ú(OnTop(x,y) Ú $z{OnTop(x,z) Ù Above(z,y)}) ] Ù [ (ØOnTop(x,y) Ù "w{ØOnTop(x,w) Ú ØAbove(w,y)}) Ú Above(x,y) ] } Becomes? "x,y { [ØAbove(x,y)Ú(OnTop(x,y)Ú(OnTop(x,F(x,y))ÙAbove(F(x,y),y)))] Ù [ (ØOnTop(x,y) Ù "w{ØOnTop(x,w) Ú ØAbove(w,y)}) Ú Above(x,y) ] }

    38. Converting FOL Sentences to CNF Drop quantifiers after step 5. all variables are universally quantified e.g. convert "x P(x) Ú "y Q(y) to P(x) Ú Q(y) all variables in KB assumed to be universally quantified "x,y { [ØAbove(x,y)Ú(OnTop(x,y)Ú(OnTop(x,F(x,y))ÙAbove(F(x,y),y)))] Ù [(ØOnTop(x,y) Ù "w{ØOnTop(x,w) Ú ØAbove(w,y)}) Ú Above(x,y)] } Becomes? [ØAbove(x,y)Ú(OnTop(x,y)Ú(OnTop(x,F(x,y))ÙAbove(F(x,y),y)))] Ù [(ØOnTop(x,y) Ù (ØOnTop(x,w) Ú ØAbove(w,y))) Ú Above(x,y)]

    39. Converting FOL Sentences to CNF Distribute Ù over Ú done to get conjunction of disjunctions convert (P Ù Q)Ú R to (P Ú R)Ù(Q Ú R) [ØAbove(x,y)Ú(OnTop(x,y)Ú(OnTop(x,F(x,y))ÙAbove(F(x,y),y)))] Ù [ (ØOnTop(x,y) Ù (ØOnTop(x,w) Ú ØAbove(w,y))) Ú Above(x,y) ] Highlighted part becomes in stages: given A Ú (B Ú (C Ù D)) converts to A Ú ((B Ú C) Ù (B Ú D)) converts to (A Ú (B Ú C)) Ù (A Ú (B Ú D)) Highlighted part result: [ (ØAbove(x,y) Ú (OnTop(x,y) Ú OnTop(x,F(x,y)))) Ù (ØAbove(x,y) Ú (OnTop(x,y) Ú Above(F(x,y),y))) ]

    40. Converting FOL Sentences to CNF Distribute Ù over Ú done to get conjunction of disjunctions convert (P Ù Q)Ú R to (P Ú R)Ù(Q Ú R) [ØAbove(x,y)Ú(OnTop(x,y)Ú(OnTop(x,F(x,y))ÙAbove(F(x,y),y)))] Ù [(ØOnTop(x,y) Ù (ØOnTop(x,w) Ú ØAbove(w,y))) Ú Above(x,y)] Highlighted part becomes in stages: given (A Ù B) Ú C converts to (A Ú C) Ù (B Ú C) Highlighted part result: [ (ØOnTop(x,y) Ú Above(x,y) ) Ù ((ØOnTop(x,w) Ú ØAbove(w,y)) Ú Above(x,y) ) ]

    41. Converting FOL Sentences to CNF Flatten nested conjunctions and disjunctions convert (P Ù Q)Ù R to (P Ù Q Ù R) convert (P Ú Q)Ú R to (P Ú Q Ú R) [ (ØAbove(x,y) Ú (OnTop(x,y) Ú OnTop(x,F(x,y)))) Ù (ØAbove(x,y) Ú (OnTop(x,y) Ú Above(F(x,y),y))) ] Ù [ (ØOnTop(x,y) Ú Above(x,y)) Ù ((ØOnTop(x,w) Ú ØAbove(w,y)) Ú Above(x,y)) ] Becomes? (ØAbove(x,y) Ú OnTop(x,y) Ú OnTop(x,F(x,y))) Ù (ØAbove(x,y) Ú OnTop(x,y) Ú Above(F(x,y),y)) Ù (ØOnTop(x,y) Ú Above(x,y)) Ù (ØOnTop(x,w) Ú ØAbove(w,y) Ú Above(x,y))

    42. Converting FOL Sentences to CNF Separate each conjunct (added step) split at Ù's so each conjunct is now a CNF clause (ØAbove(x,y) Ú OnTop(x,y) Ú OnTop(x,F(x,y))) Ù (ØAbove(x,y) Ú OnTop(x,y) Ú Above(F(x,y),y)) Ù (ØOnTop(x,y) Ú Above(x,y)) Ù (ØOnTop(x,w) Ú ØAbove(w,y) Ú Above(x,y)) Becomes? ØAbove(x,y)Ú OnTop(x,y)Ú OnTop(x,F(x,y)) ØAbove(x,y)Ú OnTop(x,y)Ú Above(F(x,y),y) ØOnTop(x,y)Ú Above(x,y) ØOnTop(x,w)Ú ØAbove(w,y)Ú Above(x,y)

    43. Converting FOL Sentences to CNF Standardize variables apart in each clause (added) so each clause in KB contains unique variable names during unification the standardize apart step need only be done on deduced clauses (i.e. resolvents) ØAbove(x,y)Ú OnTop(x,y)Ú OnTop(x,F(x,y)) ØAbove(x,y)Ú OnTop(x,y)Ú Above(F(x,y),y) ØOnTop(x,y)Ú Above(x,y) ØOnTop(x,w)Ú ØAbove(w,y)Ú Above(x,y) Becomes?: ØAbove(a,b)Ú OnTop(a,b)Ú OnTop(a,F(a,b)) ØAbove(c,d)Ú OnTop(c,d)Ú Above(F(c,d),d) ØOnTop(e,f)Ú Above(e,f) ØOnTop(g,h)Ú ØAbove(h,i)Ú Above(g,i)

    44. Resolution Strategies Resolution refutation proofs can be thought of as search: reversed construction of search tree (leaves to root) leaves are KB clauses and Øquery resolvent is new node with arcs to parent clauses root is a clause containing False A search is complete if it guarantees the empty clause can be derived whenever KB¦ q.

    45. Resolution Strategies: Idea Goal is to design a complete search that efficiently finds a contradiction (i.e. empty clause, False). Instead of resolving any two clauses in the KB, we’ll limit the choice to be from some subset of clauses in the KB. Different resolution strategies specify what is in the subset.

    46. Resolution Strategies Breadth First: level 0 clauses: KB clauses and Øquery level k clauses: resolvents computed from 2 clauses: one of which must be from level k-1 other from any earlier level compute all possible level 1 clauses, then all possible level 2 clauses, etc. complete but very inefficient

    47. Resolution Strategies Unit Preference: prefer resolutions where 1 sentence is a single literal, a unit clause goal is to produce the empty clause, focus search by producing resolvents that are shorter complete but too slow for medium sized problems Unit Resolution: requires at least 1 clause to be a unit clause resembles forward chaining complete for FOL KB in HNF

    48. Resolution Strategies Set-of-Support (SoS): identify some subset of sentences, called SoS P and Q can be resolved if one is from SoS resolvent is added to the SoS common approach: Øquery is the initial SoS, resolvents are added assumes KB is true (i.e. consistent, jointly satisfiable) complete if KB is jointly satisfiable without SoS

    49. Resolution Strategies Input Resolution: P and Q can be resolved if at least one is from the set of original clauses, i.e. KB and Øquery proof trees have a single "spine" (see fig 9.11) Modus Ponens is a form of input resolution since each step a rule (input) is used to generate a new fact complete for FOL KB in HNF Linear Resolution: a slight generalization of input resolution P and Q can be resolved if: at least 1 is from the set of original clauses or P must be an ancestor of Q in the proof tree complete

    50. Dealing with Equality Limitation of unification: can't unify different terms that refer to same object uses syntactic matching doesn't do semantic test of sameness Equational Unification axiomizes properties of =: reflexivity: "x x = x symmetricity: "x,y x = y Þ y = x transitivity: "x,y,z x = y Ù y = z Þ x = z for all Pi "x,y x = y Þ Pi(x) Û Pi(y) etc… Terms are unifiable if they're provably equal under some substitution.

    51. Dealing with Equality: Paramodulation Another approach is to use a special inference rule: Paramodulation:

    52. Sentences to be paramodulated: L(v) Ú F(H,v) = F(J,v), M(J) Ú N(F(H,I)) Predicates: L, M, N Function: F Variable: v Constants: H, I, J x = y is F(H,v) = F(J,v) where x is F(H,v) and y is F(J,v) mn[z] is N(F(H,I)) where z is F(H,I) UNIFY(x, z) result in q = {v/I} SUBST(q, L(v) Ú M(J)Ú N(F(J,v)) results in: L(I) Ú M(J)Ú N(F(J,I)) Dealing with Equality: Paramodulation

    53. Summary FOL is a more expressive language but inferencing is more complicated Inferencing in FOL can be done by: Propositionalizing the FOL KB (universal and existential elimination rules) and using sound inference rules from PL complete for FOL but impractical Converting KB to Horn Normal Form and using Generalized Modus Ponens rule complete for HNF, but not all FOL KBs can be converted to HNF Converting KB to Conjunctive Normal Form and using Resolution Refutation complete, all FOL KB can be converted to CNF

    54. Summary: Converting FOL Sentences to CNF Replace Û with equivalent (added step) convert P Û Q to P Þ Q Ù Q Þ P Replace Þ with equivalent: convert P Þ Q to ØP Ú Q Reduce scope of Ø to single literals convert ØØP to P (DNE) convert Ø(P Ú Q) to ØP Ù ØQ (de Morgan's) convert Ø(P Ù Q) to ØP Ú ØQ (de Morgan's) convert Ø"x P to $x ØP convert Ø$x P to "x ØP Standardize variables apart each quantifier must have a unique variable name avoids confusion in steps 5 and 6 e.g. convert "x P Ú $x Q to "x P Ú $y Q

    55. Summary: Converting FOL Sentences to CNF Eliminate existential quantifiers (Skolemize) convert $x P(x) to P(C) (EE) C must be a new constant (Skolem constant) convert "x,y $z P(x,y,z) to "x,y P(x,y,F(x,y)) F() must be a new function (Skolem function) with arguments that are all enclosing universally quantified variables Drop quantifiers all variables are only universally quantified after step 5 e.g. convert "x P(x) Ú "y Q(y) to P(x) Ú Q(y) all variables in KB will be assumed to be universally quantified Distribute Ù over Ú to get conjunction of disjunctions convert(P Ù Q)Ú R to(P Ú R)Ù(Q Ú R)

    56. Summary: Converting FOL Sentences to CNF Flatten nested conjunctions and disjunctions convert (P Ù Q)Ù R to (P Ù Q Ù R) convert (P Ú Q)Ú R to (P Ú Q Ú R) Separate each conjunct (added step) split at Ù's so each conjunct is now a CNF clause Standardize variables apart in each clause (added step) each clause in KB must contain unique variable names now during unification the standardize apart step need only be done on deduced clauses (i.e. resolvents)

More Related