m09 inference
Post on 30-May-2018
227 Views
Preview:
TRANSCRIPT
-
8/9/2019 m09 Inference
1/43
Inference in first-order logicChapter 9
-
8/9/2019 m09 Inference
2/43
Outline
Reducing first-order inference topropositional inference
Unification Generalized Modus Ponens Forward chaining
Backward chaining Resolution
-
8/9/2019 m09 Inference
3/43
Universal instantiation (UI) Every instantiation of a universally quantified sentence is entailed by
it:
v
Subst({v/g}, )
for any variable vand ground term g
E.g., xKing(x) Greedy(x) Evil(x) yields:
King(John) Greedy(John) Evil(John)
King(Richard) Greedy(Richard) Evil(Richard)
-
8/9/2019 m09 Inference
4/43
Existential instantiation (EI)
For any sentence , variable v, and constantsymbol kthat does not appear elsewhere in theknowledge base:
vSubst({v/k}, )
E.g.,
x Crown
(x) OnH
ead(x,John
) yields:Crown(C1) OnHead(C1,John)
provided C1 is a new constant symbol, called a
-
8/9/2019 m09 Inference
5/43
Reduction to propositional
inferenceSuppose the KB contains just the following:x King(x) Greedy(x) Evil(x)King(John)Greedy(John)
Brother(Richard,John)
Instantiating the universal sentence in all possible ways, we have:King(John) Greedy(John) Evil(John)King(Richard) Greedy(Richard) Evil(Richard)King(John)Greedy(John)Brother(Richard,John)
The new KB is propositionalized: proposition symbols are
King(John), Greedy(John), Evil(John), King(Richard), etc.
-
8/9/2019 m09 Inference
6/43
Reduction contd.
Every FOL KB can be propositionalized so as topreserve entailment
(A ground sentence is entailed by new KB iff entailed byoriginal KB)
Idea: propositionalize KB and query, apply resolution,return result
Problem: with fu
nction symbols, there are infinitely many
-
8/9/2019 m09 Inference
7/43
-
8/9/2019 m09 Inference
8/43
Problems with propositionalization
Propositionalization seems to generate lots of irrelevant sentences.
E.g., from:
x King(x) Greedy(x) Evil(x)King(John)y Greedy(y)Brother(Richard,John)
it seems obvious that Evil(John), but propositionalization produceslots of facts such as Greedy(Richard) that are irrelevant
Withp k-ary predicates and n constants, there are pnkinstantiations.
-
8/9/2019 m09 Inference
9/43
Unification We can get the inference immediately if we can find a substitution
such that King(x) and Greedy(x) match King(John) and Greedy(y)
= {x/John,y/John} works
Unify(,) = if =
p q Knows(John,x) Knows(John,Jane)Knows(John,x) Knows(y,OJ)Knows(John,x) Knows(y,Mother(y))Knows(John,x) Knows(x,OJ)
-
8/9/2019 m09 Inference
10/43
Unification We can get the inference immediately if we can find a substitution
such that King(x) and Greedy(x) match King(John) and Greedy(y)
= {x/John,y/John} works
Unify(,) = if =
p q Knows(John,x) Knows(John,Jane) {x/Jane}}Knows(John,x) Knows(y,OJ)Knows(John,x) Knows(y,Mother(y))Knows(John,x) Knows(x,OJ)
-
8/9/2019 m09 Inference
11/43
Unification We can get the inference immediately if we can find a substitution
such that King(x) and Greedy(x) match King(John) and Greedy(y)
= {x/John,y/John} works
Unify(,) = if =
p q Knows(John,x) Knows(John,Jane) {x/Jane}}Knows(John,x) Knows(y,OJ) {x/OJ,y/John}}Knows(John,x) Knows(y,Mother(y))Knows(John,x) Knows(x,OJ)
-
8/9/2019 m09 Inference
12/43
Unification We can get the inference immediately if we can find a substitution
such that King(x) and Greedy(x) match King(John) and Greedy(y)
= {x/John,y/John} works
Unify(,) = if =
p q Knows(John,x) Knows(John,Jane) {x/Jane}}Knows(John,x) Knows(y,OJ) {x/OJ,y/John}}Knows(John,x) Knows(y,Mother(y)) {y/John,x/Mother(John)}}Knows(John,x) Knows(x,OJ)
-
8/9/2019 m09 Inference
13/43
Unification We can get the inference immediately if we can find a substitution
such that King(x) and Greedy(x) match King(John) and Greedy(y)
= {x/John,y/John} works
Unify(,) = if =
p q Knows(John,x) Knows(John,Jane) {x/Jane}}Knows(John,x) Knows(y,OJ) {x/OJ,y/John}}Knows(John,x) Knows(y,Mother(y)) {y/John,x/Mother(John)}}Knows(John,x) Knows(x,OJ) {fail}
-
8/9/2019 m09 Inference
14/43
Unification
To unify Knows(John,x) and Knows(y,z),
= {y/John, x/z } or = {y/John, x/John, z/John}
The first unifier is more general than the second.
There is a single most general unifier(MGU) thatis unique up to renaming of variables.
MGU = { y/John, x/z }
-
8/9/2019 m09 Inference
15/43
The unification algorithm
-
8/9/2019 m09 Inference
16/43
The unification algorithm
-
8/9/2019 m09 Inference
17/43
Generalized Modus Ponens
(GMP)p1', p2', , pn', ( p1 p2 pn q)q
p1' is King(John) p1 is King(x)p2' is Greedy(y) p2 is Greedy(x)
is {x/John,y/John} q is Evil(x)q is Evil(John)
GMP used with KB ofdefinite clauses (exactly one positive literal)
All variables assumed universally quantified
where pi' = pi for all i
-
8/9/2019 m09 Inference
18/43
Soundness of GMP Need to show that
p1', , pn', (p1 pn q) q
provided that pi' = pi for all I
Lemma: For any sentence p, we have p p by UI
1. (p1 pn q) (p1 pn q) = (p1 pn q)2.2. p1', \; , \;pn' p1' pn' p1' pn'3. From 1 and 2, q follows by ordinary Modus Ponens4.
-
8/9/2019 m09 Inference
19/43
Example knowledge base
The law says that it is a crime for an American to sellweapons to hostile nations. The country Nono, anenemy of America, has some missiles, and all of its
missiles were sold to it by Colonel West, who isAmerican.
Prove that Col. West is a criminal
-
8/9/2019 m09 Inference
20/43
Example knowledge base
contd.... it is a crime for an American to sell weapons to hostile nations:American(x) Weapon(y) Sells(x,y,z) Hostile(z) Criminal(x)
Nono has some missiles, i.e., xOwns(Nono,x) Missile(x):
Owns(Nono,M1) andMissile(M1)
all of its missiles were sold to it by Colonel WestMissile(x) Owns(Nono,x) Sells(West,x,Nono)
Missiles are weapons:
Missile(x) Weapon(x)
An enemy of America counts as "hostile:Enemy(x,America) Hostile(x)
West, who is American
American(West)
The country Nono, an enemy of America
Enemy(Nono,America)
-
8/9/2019 m09 Inference
21/43
Forward chaining algorithm
-
8/9/2019 m09 Inference
22/43
Forward chaining proof
-
8/9/2019 m09 Inference
23/43
Forward chaining proof
-
8/9/2019 m09 Inference
24/43
-
8/9/2019 m09 Inference
25/43
Properties of forward chaining
Sound and complete for first-order definite clauses
Datalog = first-order definite clau
ses + no fu
nctions FC terminates for Datalog in finite number of iterations
May not terminate in general if is not entailed
This is unavoidable: entailment with definite clauses issemidecidable
-
8/9/2019 m09 Inference
26/43
Efficiency of forward chaining
Incremental forward chaining: no need to match a rule oniteration kif a premise wasn't added on iteration k-1
match each rule whose premise contains a newly added positiveliteral
Matching itself can be expensive:Database indexing allows O(1) retrieval of known facts
e.g., query Missile(x) retrieves Missile(M1)
Forward chaining is widely used in deductive databases
-
8/9/2019 m09 Inference
27/43
Hard matching example
Colorable
() is inferred iff the CS
P has a solu
tion CSPs include 3SAT as a special case, hencematching is NP-hard
Diff(wa,nt) Diff(wa,sa) Diff(nt,q)
Diff(nt,sa) Diff(q,nsw) Diff(q,sa)
Diff(nsw,v) Diff(nsw,sa) Diff(v,sa)
Colorable()
Diff
(Red,Blue) D
iff(Red,Gree
n)Diff(Green,Red) Diff(Green,Blue)
Diff(Blue,Red) Diff(Blue,Green)
-
8/9/2019 m09 Inference
28/43
Backward chaining algorithm
SUBST(COMPOSE(1, 2), p) = SUBST(2,SUBST(1, p))
-
8/9/2019 m09 Inference
29/43
Backward chaining example
-
8/9/2019 m09 Inference
30/43
Backward chaining example
-
8/9/2019 m09 Inference
31/43
Backward chaining example
-
8/9/2019 m09 Inference
32/43
Backward chaining example
-
8/9/2019 m09 Inference
33/43
Backward chaining example
-
8/9/2019 m09 Inference
34/43
Backward chaining example
-
8/9/2019 m09 Inference
35/43
Backward chaining example
-
8/9/2019 m09 Inference
36/43
Backward chaining example
-
8/9/2019 m09 Inference
37/43
Properties of backward chaining
Depth-first recursive proof search: space islinear in size of proof
Incomplete due to infinite loops
fix by checking current goal against every goal onstack
Inefficient due to repeated subgoals (bothsuccess and failure) fixusing caching of previous results (extra space)
-
8/9/2019 m09 Inference
38/43
Logic programming: Prolog Algorithm = Logic + Control
Basis: backward chaining with Horn clauses + bells & whistlesWidely used in Europe, Japan (basis of 5th Generation project)
Compilation techniques 60 million LIPS
Program = set of clauses = head :- literal1, literaln.criminal(X) :- american(X), weapon(Y), sells(X,Y,Z), hostile(Z).
Depth-first, left-to-right backward chaining Built-in predicates for arithmetic etc., e.g., X is Y*Z+3 Built-in predicates that have side effects (e.g., input and output predicates, assert/retract predicates)
Closed-world assu
mption ("negation as failu
re") -
-
8/9/2019 m09 Inference
39/43
Prolog Appending two lists to produce a third:
append([],Y,Y).
append([X|L],Y,[X|Z]) :- append(L,Y,Z).
query: append(A,B,[1,2]) ?
answers: A=[] B=[1,2]
A=[1] B=[2]
A=[1,2] B=[]
-
8/9/2019 m09 Inference
40/43
Resolution: brief summary Full first-order version:
l1 lk, m1 mn
(l1
l
i-1
l
i+1
l
k
m
1
m
j-1
m
j+1
m
n
)where Unify(li, mj) = .
The two clauses are assumed to be standardized apart so that theyshare no variables.
For example,
Rich(x) Unhappy(x)Rich(Ken)
Unhappy(Ken)
-
8/9/2019 m09 Inference
41/43
Conversion to CNF
Everyone who loves all animals is loved bysomeone:
x [y Animal(y) Loves(x,y)] [y Loves(y,x)]
1. Eliminate biconditionals and implications
x [y Animal(y) Loves(x,y)] [y Loves(y,x)]
2. Move inwards: x p xp, x p xp
x
[
y
(Anim
al
(y) L
oves(x,y))]
[
yLoves(y,x)]
-
8/9/2019 m09 Inference
42/43
-
8/9/2019 m09 Inference
43/43
Resolution proof: definite clauses
top related