CMSC 471 Fall 2002: Class #15/16 - Monday, October 21 / Wednesday, October 23
CMSC 471 Fall 2002: Class #15/16 - Monday, October 21 / Wednesday, October 23
Todays class
Inference in first-order logic
Inference rules Forward chaining Backward chaining Resolution
Unification Proofs Clausal form Resolution as search
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 dont 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
7
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)
8
10
Horn clauses
A Horn clause is a sentence of the form:
(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 Pis 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
11
Horn clauses II
Special cases
P1 ^ P2 ^ Pn => Q P1 ^ P2 ^ Pn => false true => Q
12
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
13
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}) Recurse and return unify(subst(, p), subst(, q), ) } else return Failure end
14
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 pseudocode before making the recursive calls
15
Unification examples
Example:
parents(x, father(x), mother(Bill)) parents(Bill, father(Bill), y) {x/Bill, y/mother(Bill)}
Example:
parents(x, father(x), mother(Bill)) parents(Bill, father(y), z) {x/Bill, y/Bill, z/mother(Bill)}
Example:
parents(x, father(x), mother(Jane)) parents(Bill, father(y), mother(y)) Failure
16
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
17
18
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)
19
20
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)
21
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
22
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}
23
24
Resolution can establish that a given sentence Q is entailed by KB, but cant (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 wont always give an answer since entailment is only semidecidable
And you cant 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
25
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
26
27
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 literals, one from each sentence, to unify?
Again, part of the search strategy
28
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)
29
32
4. Standardize variables: rename all variables so that each quantifier has its own unique variable name
34
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
36
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))))
4. Standardize variables
(x)(~P(x) ((y)(~P(y) P(f(x,y))) ^ (z)(Q(x,z) ^ ~P(z))))
37
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)))
9. Standardize variables
~P(x) ~P(y) P(f(x,y)) ~P(z) Q(z,g(z)) ~P(w) ~P(g(w))
38
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
39
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
40
Strategies
There are a number of general (domain-independent) strategies that are useful in controlling a resolution theorem prover Well briefly look at the following Breadth first Set of support Unit resolution Input resolution Ordered resolution Subsumption
41
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
42
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
43
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
44
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
45
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
46
47
48
49