Class #13/14 – Tuesday, October 16 / Thursday, October 18

Slides:



Advertisements
Similar presentations
Artificial Intelligence 8. The Resolution Method
Advertisements

First-Order Logic (FOL) aka. predicate calculus
Some Prolog Prolog is a logic programming language
Logic Inference CMSC 471 Chapter 7.5, 9 Chuck Dyer, and Lise Getoor
First-Order Logic.
Inference Rules Universal Instantiation Existential Generalization
Knowledge & Reasoning Logical Reasoning: to have a computer automatically perform deduction or prove theorems Knowledge Representations: modern ways of.
Standard Logical Equivalences
First-Order Logic (FOL) aka. predicate calculus. First-Order Logic (FOL) Syntax User defines these primitives: – Constant symbols (i.e., the "individuals"
Resolution.
Automated Reasoning Systems For first order Predicate Logic.
First Order Logic Resolution
Inference and Reasoning. Basic Idea Given a set of statements, does a new statement logically follow from this. For example If an animal has wings and.
We have seen that we can use Generalized Modus Ponens (GMP) combined with search to see if a fact is entailed from a Knowledge Base. Unfortunately, there.
For Friday No reading Homework: –Chapter 9, exercise 4 (This is VERY short – do it while you’re running your tests) Make sure you keep variables and constants.
13 Automated Reasoning 13.0 Introduction to Weak Methods in Theorem Proving 13.1 The General Problem Solver and Difference Tables 13.2 Resolution.
Resolution in Propositional and First-Order Logic.
Russell and Norvig: Chapters 8 and 9 CMSC421 – Fall 2006
First-Order Logic (FOL) aka. predicate calculus. First-Order Logic (FOL) Syntax User defines these primitives: –Constant symbols (i.e., the "individuals"
Artificial Intelligence Chapter 14. Resolution in the Propositional Calculus Artificial Intelligence Chapter 14. Resolution in the Propositional Calculus.
RESOLUTION: A COMPLETE INFERENCE PROCEDURE. I Then we certainly want to be able to conclude S(A); S(A) is true if S(A) or R(A) is true, and one of those.
Resolution Theorem Prover in First-Order Logic
Outline Recap Knowledge Representation I Textbook: Chapters 6, 7, 9 and 10.
Formal Logic Proof Methods Direct Proof / Natural Deduction Conditional Proof (Implication Introduction) Reductio ad Absurdum Resolution Refutation.
Inference in FOL Copyright, 1996 © Dale Carnegie & Associates, Inc. Chapter 9 Spring 2004.
1 Automated Reasoning Introduction to Weak Methods in Theorem Proving 13.1The General Problem Solver and Difference Tables 13.2Resolution Theorem.
Inference and Resolution for Problem Solving
Inference in First Order Logic
Knoweldge Representation & Reasoning
Inference in First-Order Logic
Inference in FOL Copyright, 1996 © Dale Carnegie & Associates, Inc. Chapter 9 Fall 2004.
Artificial Intelligence
1 Inference in First Order Logic Some material adopted from notes by Tim Finin, Andreas Geyer-Schulz, and Chuck Dyer.
Artificial Intelligence Chapter 14 Resolution in the Propositional Calculus Artificial Intelligence Chapter 14 Resolution in the Propositional Calculus.
Inference in FOL Copyright, 1996 © Dale Carnegie & Associates, Inc. Chapter 9 Spring 2005.
Knowledge & Reasoning Logical Reasoning: to have a computer automatically perform deduction or prove theorems Knowledge Representations: modern ways of.
1 CMSC 671 Fall 2005 Class #11 – Thursday, October 6.
Logical Inference 3 resolution
1 CS 2710, ISSP 2160 Chapter 9 Inference in First-Order Logic.
Inference in First-Order logic Department of Computer Science & Engineering Indian Institute of Technology Kharagpur.
1 © Copyright 2010 Dieter Fensel and Florian Fischer Intelligent Systems Predicate Logic.
For Wednesday Read chapter 10 Prolog Handout 4. Exam 1 Monday Take home due at the exam.
Conjunctive normal form: any formula of the predicate calculus can be transformed into a conjunctive normal form. Def. A formula is said to be in conjunctive.
Logical Inference 2 rule based reasoning
1 Knowledge Representation. 2 Definitions Knowledge Base Knowledge Base A set of representations of facts about the world. A set of representations of.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
© Copyright 2008 STI INNSBRUCK Intelligent Systems Lecture III – xx 2009 Predicate Logic Dieter Fensel and Dumitru.
CS Introduction to AI Tutorial 8 Resolution Tutorial 8 Resolution.
Automated Reasoning Early AI explored how to automated several reasoning tasks – these were solved by what we might call weak problem solving methods as.
Automated Reasoning Early AI explored how to automate several reasoning tasks – these were solved by what we might call weak problem solving methods as.
Automated Reasoning Systems For first order Predicate Logic.
Logical Inference Chapter 9 Some material adopted from notes by Andreas Geyer-Schulz,, Chuck Dyer, and Mary Getoor.
For Wednesday Finish reading chapter 10 – can skip chapter 8 No written homework.
ECE457 Applied Artificial Intelligence R. Khoury (2007)Page 1 Implication Truth Table If α is true, then β must be true for the implication to be true.
1 CSC 463 Fall 2010 Class #13. 2 Logical Inference Chapter 7.5, 9 Some material adopted from notes by Andreas Geyer-Schulz, Chuck Dyer, and Lise Getoor.
1 Section 7.1 First-Order Predicate Calculus Predicate calculus studies the internal structure of sentences where subjects are applied to predicates existentially.
1 Introduction to Artificial Intelligence LECTURE 9: Resolution in FOL Theorem Proving in First Order Logic Unification Resolution.
For Wednesday No reading Homework: –Chapter 8, exercise 24.
1 CMSC 671 Fall 2003 Class #14 – Wednesday, October 15.
1 Inference in First Order Logic Chapter 9 Some material adopted from notes by Tim Finin, Andreas Geyer-Schulz, and Chuck Dyer.
Logical Inference 2 Rule-based reasoning
Resolution in the Propositional Calculus
For Monday Read Prolog handout 4 Homework:
Logical Inference 2 Rule-based reasoning
For Monday Read chapter 10, sections 1-3 Prolog handout 4
April 23 Alan Cheng, Justin Cheng, Matthew Mglej, Anika Raghuvanshi.
Inference in First Order Logic
CMSC 471 Spring 2014 Class #21 Tuesday, April 15 Logical Inference
Logical Inference Chapter 9 Chuck Dyer, and mary Getoor
RESOLUTION.
Presentation transcript:

Class #13/14 – Tuesday, October 16 / Thursday, October 18 CMSC 671 Fall 2001 Class #13/14 – Tuesday, October 16 / Thursday, October 18

Today’s class Inference in first-order logic Inference rules Forward chaining Backward chaining Resolution Unification Proofs Clausal form Resolution as search

Inference in First-Order Logic Chapter 9 Some material adopted from notes by Andreas Geyer-Schulz and Chuck Dyer

Inference rules for FOL Inference rules for propositional logic apply to FOL as well Modus Ponens, And-Introduction, And-Elimination, … New (sound) inference rules for use with quantifiers: Universal elimination Existential introduction Existential elimination Generalized Modus Ponens (GMP)

Universal elimination If (x) P(x) is true, then P(c) is true, where c is any constant in the domain of x Example: (x) eats(Ziggy, x) => eats(Ziggy, IceCream) The variable symbol can be replaced by any ground term, i.e., any constant symbol or function symbol applied to ground terms only

Existential introduction If P(c) is true, then (x) P(x) is inferred. Example eats(Ziggy, IceCream) => (x) eats(Ziggy, x) All instances of the given constant symbol are replaced by the new variable symbol Note that the variable symbol cannot already exist anywhere in the expression

Existential elimination From (x) P(x) infer P(c) Example: (x) eats(Ziggy, x) => eats(Ziggy, Stuff) Note that the variable is replaced by a brand-new constant not occurring in this or any other sentence in the KB Also known as skolemization; constant is a skolem constant In other words, we don’t want to accidentally draw other inferences about it by introducing the constant Convenient to use this to reason about the unknown object, rather than constantly manipulating the existential quantifier

Generalized Modus Ponens (GMP) Apply modus ponens reasoning to generalized rules Combines And-Introduction, Universal-Elimination, and Modus Ponens E.g, from P(c) and Q(c) and (x)(P(x) ^ Q(x)) => R(x) derive R(c) General case: Given atomic sentences P1, P2, ..., PN implication sentence (Q1 ^ Q2 ^ ... ^ QN) => R Q1, ..., QN and R are atomic sentences substitution subst(θ, Pi) = subst(θ, Qi) for i=1,...,N Derive new sentence: subst(θ, R) Substitutions subst(θ, α) denotes the result of applying a set of substitutions defined by θ to the sentence α A substitution list θ = {v1/t1, v2/t2, ..., vn/tn} means to replace all occurrences of variable symbol vi by term ti Substitutions are made in left-to-right order in the list subst({x/IceCream, y/Ziggy}, eats(y,x)) = eats(Ziggy, IceCream)

Automated inference for FOL Automated inference using FOL is harder than PL Variables can potentially take on an infinite number of possible values from their domains Hence there are potentially an infinite number of ways to apply the Universal-Elimination rule of inference Godel's Completeness Theorem says that FOL entailment is only semidecidable If a sentence is true given a set of axioms, there is a procedure that will determine this If the sentence is false, then there is no guarantee that a procedure will ever determine this–i.e., it may never halt

Completeness of some inference techniques Truth Tabling is not complete for FOL because truth table size may be infinite Natural Deduction is complete for FOL but is not practical because the “branching factor” in the search is too large (swe would have to potentially try every inference rule in every possible way using the set of known sentences) Generalized Modus Ponens is not complete for FOL Generalized Modus Ponens is complete for KBs containing only Horn clauses

Horn clauses A Horn clause is a sentence of the form: where (x) P1(x) ^ P2(x) ^ ... ^ Pn(x) => Q(x) where there are 0 or more Pis and 0 or 1 Q the Pis and Q are positive (i.e., non-negated) literals Equivalently: P1(x)  P2(x) …  Pn(x) where the Pi’s are all atomic and at most one of them is positive Prolog is based on Horn clauses Horn clauses represent a subset of the set of sentences representable in FOL

Horn clauses II Special cases These are not Horn clauses: p(a)  q(a) P1 ^ P2 ^ … Pn => Q P1 ^ P2 ^ … Pn => false true => Q These are not Horn clauses: p(a)  q(a) P ^ Q => R  S

Unification Unification is a “pattern-matching” procedure Takes two atomic sentences, called literals, as input Returns “Failure” if they do not match and a substitution list, θ, if they do That is, unify(p,q) = θ means subst(θ, p) = subst(θ, q) for two atomic sentences, p and q θ is called the most general unifier (mgu) All variables in the given two literals are implicitly universally quantified To make literals match, replace (universally quantified) variables by terms

Unification algorithm procedure unify(p, q, θ) Scan p and q left-to-right and find the first corresponding terms where p and q “disagree” (i.e., p and q not equal) If there is no disagreement, return θ (success!) Let r and s be the terms in p and q, respectively, where disagreement first occurs If variable(r) then { Let θ = union(θ, {r/s}) Recurse and return unify(subst(θ, p), subst(θ, q), θ) } else if variable(s) then { Let θ = union(θ, {s/r}) } else return “Failure” end

Unification: Remarks Unify is a linear-time algorithm that returns the most general unifier (mgu), i.e., the shortest-length substitution list that makes the two literals match. In general, there is not a unique minimum-length substitution list, but unify returns one of minimum length A variable can never be replaced by a term containing that variable Example: x/f(x) is illegal. This “occurs check” should be done in the above pseudo-code before making the recursive calls

Unification examples Example: parents(x, father(x), mother(Bill)) parents(Bill, father(Bill), y) {x/Bill, y/mother(Bill)} parents(Bill, father(y), z) {x/Bill, y/Bill, z/mother(Bill)} parents(x, father(x), mother(Jane)) parents(Bill, father(y), mother(y)) Failure

Forward chaining Proofs start with the given axioms/premises in KB, deriving new sentences using GMP until the goal/query sentence is derived This defines a forward-chaining inference procedure because it moves “forward” from the KB to the goal Natural deduction using GMP is complete for KBs containing only Horn clauses

Forward chaining algorithm

Backward chaining Backward-chaining deduction using GMP is complete for KBs containing only Horn clauses Proofs start with the goal query, find implications that would allow you to prove it, and then prove each of the antecedents in the implication, continuing to work “backwards” until you arrive at the axioms, which we know are true Example: Does Ziggy eat fish (x) eats(Ziggy, x) => eats(Ziggy, Stuff)

Backward chaining algorithm

Completeness of GMP GMP (using forward or backward chaining) is complete for KBs that contain only Horn clauses It is not complete for simple KBs that contain non-Horn clauses The following entail that S(A) is true: (x) P(x) => Q(x) (x) ~P(x) => R(x) (x) Q(x) => S(x) (x) R(x) => S(x) If we want to conclude S(A), with GMP we cannot, since the second one is not a Horn form It is equivalent to P(x)  R(x)

Resolution Resolution is a sound and complete inference procedure for FOL Resolution Rule for PL: P1  P2  ...  Pn ~P1  Q2  ...  Qm Resolvent: P2  ... v Pn  Q2  ...  Qm Examples P and ~P  Q, derive Q (Modus Ponens) (~P  Q) and (~Q  R), derive ~P  R P and ~P, derive False [contradiction!] (P  Q) and (~P  ~Q), derive True

FOL resolution Given sentences P1  ...  Pn Q1  ...  Qm where each Pi and Qi is a literal, i.e., a positive or negated predicate symbol with its terms, if Pj and ~Qk unify with substitution list θ, then derive the resolvent sentence: subst(θ, P1 ...  Pj-1  Pj+1 ... Pn  Q1  …Qk-1  Qk+1 ...  Qm) Example From clause P(x, f(a))  P(x, f(y))  Q(y) and clause ~P(z, f(a))  ~Q(z), derive resolvent clause P(z, f(y))  Q(y)  ~Q(z) using θ = {x/z}

A resolution proof tree

Resolution refutation proofs Given a consistent set of axioms KB and goal sentence Q, show that KB |= Q Proof by contradiction: Add ~Q to KB and try to prove false. i.e., (KB |- Q) <=> (KB  ~Q |- False) Resolution can establish that a given sentence Q is entailed by KB, but can’t (in general) be used to generate all logical consequences of a set sentences Also, it cannot be used to prove that Q is not entailed by KB. Resolution won’t always give an answer since entailment is only semidecidable And 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

Procedure procedure resolution(KB, Q) ;; KB is a set of consistent, true FOL sentences, Q is a goal sentence ;; to derive. Returns success if KB |- Q, and failure otherwise KB = union(KB, ~Q) while false  KB do Choose 2 sentences, S1 and S2, in KB that contain literals that unify if none, return “Failure” resolvent = resolution-rule(S1, S2) KB = union(KB, resolvent) return “Success” end

Refutation resolution proof tree

Resolution – issues Resolution is only applicable to sentences in clausal form, e.g. P1  P2 ...  Pn where Pis are negated or non-negated atomic predicates Issues: Can we convert every FOL sentence into this form? Yes – as we will see shortly How to pick which pair of sentences to resolve? Determines the “search” strategy of the prover – more later How to pick which pair of literals, one from each sentence, to unify? Again, part of the search strategy

Example proof Did Curiosity kill the cat? Jack owns a dog. Every dog owner is an animal lover. No animal lover kills an animal. Either Jack or Curiosity killed the cat, who is named Tuna. Did Curiosity kill the cat? The axioms can be represented as follows: A. (x) Dog(x) ^ Owns(Jack,x) B. (x) ((y) Dog(y) ^ Owns(x, y)) => AnimalLover(x) C. (x) AnimalLover(x) => (y) Animal(y) => ~Kills(x,y) D. Kills(Jack,Tuna)  Kills(Curiosity,Tuna) E. Cat(Tuna) F. (x) Cat(x) => Animal(x)

Example proof, cont. Did Curiosity kill the cat? Convert to implicative normal form A1. [True => ] Dog(D) A2. [True => ] Owns(Jack,D) B. Dog(y) ^ Owns(x, y) => AnimalLover(x) C. AnimalLover(x) ^ Animal(y) ^ Kills(x,y) => False D. [True => ] Kills(Jack,Tuna) v Kills(Curiosity,Tuna) E. [True => ] Cat(Tuna) F. Cat(x) => Animal(x) Add the query: Q. Kills(Curiosity, Tuna) => False

Example proof III Did Curiosity kill the cat? The Proof G. A1, B, {y/D}: Owns(x,D) => AnimalLover(x) H. A2, G, {x/Jack}: [True => ] AnimalLover(Jack) I. E,F, {x/Tuna}: [True => ] Animal(Tuna) J. C,I, {y/Tuna}: AnimalLover(x) ^ Kills(x,Tuna) => False K. H,J: {x/Jack} Kills(Jack,Tuna) => False L. D,Q: [True => ] Kills(Jack,Tuna) M. L,K: [True => ] False

Curiosity Killed the Cat

Converting to clausal form The canonical (standard) form for resolution is Conjunctive Normal Form (conjunction of disjunctions), or equivalently, Implicative Normal Form (conjunction implies disjunction) Example: If John’s house is big, then it is a lot of work, unless he has a housekeeper and does not have a garden FOL: Big(h) ^ House(h,j) => Work(h)  (Cleans(c,h) ^ ~Garden(g,h)) Implicative Normal Form: Big(h) ^ House(h,j) => Work(h)  Cleans(c,h) Big(h) ^ House(h,j) ^ Garden(g,h) => Work(h)

Converting sentences to clausal form 1. Eliminate all <=> connectives (P <=> Q) ==> ((P => Q) ^ (Q => P)) 2. Eliminate all => connectives (P => Q) ==> (~P v Q) 3. Reduce the scope of each negation symbol to a single predicate ~~P ==> P ~(P v Q) ==> ~P ^ ~Q ~(P ^ Q) ==> ~P v ~Q ~(x)P ==> (x)~P ~(x)P ==> (x)~P 4. Standardize variables: rename all variables so that each quantifier has its own unique variable name

Converting sentences to clausal form Skolem constants and functions 5. Eliminate existential quantification by introducing Skolem constants/functions (x)P(x) ==> P(c) c is a Skolem constant (a brand-new constant symbol that is not used in any other sentence) (x)(y)P(x,y) ==> (x)P(x, f(x)) since  is within the scope of a universally quantified variable, use a Skolem function f to construct a new value that depends on the universally quantified variable f must be a brand-new function name not occurring in any other sentence in the KB. E.g., (x)(y)loves(x,y) ==> (x)loves(x,f(x)) In this case, f(x) specifies the person that x loves

Converting sentences to clausal form 6. Remove universal quantifiers by (1) moving them all to the left end; (2) making the scope of each the entire sentence; and (3) dropping the “prefix” part Ex: (x)P(x) ==> P(x) 7. Put into conjunctive normal form (conjunction of disjunctions) (P ^ Q)  R ==> (P  R) ^ (Q  R) (P  Q)  R ==> (P  Q  R) 8. Split conjuncts into a separate clauses 9. Standardize variables so each clause contains only variable names that do not occur in any other clause

An example (x)(P(x) => ((y)(P(y) => P(f(x,y))) ^ ~(y)(Q(x,y) => P(y)))) 2. Eliminate => (x)(~P(x)  ((y)(~P(y)  P(f(x,y))) ^ ~(y)(~Q(x,y)  P(y)))) 3. Reduce scope of negation (x)(~P(x)  ((y)(~P(y)  P(f(x,y))) ^ (y)(Q(x,y) ^ ~P(y)))) 4. Standardize variables (x)(~P(x)  ((y)(~P(y)  P(f(x,y))) ^ (z)(Q(x,z) ^ ~P(z)))) 5. Eliminate existential quantification (x)(~P(x) ((y)(~P(y)  P(f(x,y))) ^ (Q(x,g(x)) ^ ~P(g(x))))) 6. Drop universal quantification symbols (~P(x)  ((~P(y)  P(f(x,y))) ^ (Q(x,g(x)) ^ ~P(g(x)))))

Example 7. Convert to conjunction of disjunctions (~P(x)  ~P(y)  P(f(x,y))) ^ (~P(x)  Q(x,g(x))) ^ (~P(x)  ~P(g(x))) 8. Create separate clauses ~P(x)  ~P(y)  P(f(x,y)) ~P(x)  Q(x,g(x)) ~P(x)  ~P(g(x)) 9. Standardize variables ~P(z)  Q(z,g(z)) ~P(w)  ~P(g(w))

Resolution TP as search Resolution can be thought of as the bottom-up construction of a search tree, where the leaves are the clauses produced by KB and the negation of the goal When a pair of clauses generates a new resolvent clause, add a new node to the tree with arcs directed from the resolvent to the two parent clauses Resolution succeeds when a node containing the False clause is produced, becoming the root node of the tree A strategy is complete if its use guarantees that the empty clause (i.e., false) can be derived whenever it is entailed

Breadth-first search Level 0 clauses are the original axioms and the negation of the goal Level k clauses are the resolvents computed from two clauses, one of which must be from level k-1 and the other from any earlier level Compute all possible level 1 clauses, then all possible level 2 clauses, etc. Complete, but very inefficient

Strategies There are a number of general (domain-independent) strategies that are useful in controlling a resolution theorem prover We’ll briefly look at the following Breadth first Set of support Unit resolution Input resolution Ordered resolution Subsumption

Set of support At least one parent clause must be the negation of the goal or a “descendant” of such a goal clause (i.e., derived from a goal clause) Complete (assuming all possible set-of-support clauses are derived) Gives a goal-directed character to the search

Unit resolution Prefer resolution steps in which at least one parent clause is a “unit clause,” i.e., a clause containing a single literal Not complete in general, but complete for Horn clause KBs

Input resolution At least one parent must be one of the input sentences (i.e., either a sentence in the original KB or the negation of the goal) Not complete in general, but complete for Horn clause KBs Linear resolution Extension of input resolution One of the parent sentences must be an input sentence or an ancestor of an input sentece Complete

Ordered resolution Search for resolvable sentences in order (left to right) This is how Prolog operates Resolve the first element in the sentence first This forces the user to define what is important in generating the “code” The way the sentences are written controls the resolution

Subsumption Eliminate all sentences that are subsumed by (more specific than) an existing sentence to keep the KB small Like factoring, this is just removing things that merely clutter up the space and will not affect the final result E.g., if P(x) is already in the KB, adding P(A) makes no sense – P(x) is a superset of P(A) Likewise adding P(A)  Q(B) would add nothing to the KB

Proof tree that West is a criminal

A failed proof tree

Sketch of a completeness proof for resolution