Title: Inferencing
1Inferencing
- Finding solution to queries
- Propositionalization
- (For reference only, may leave slides 2 to 7)
- Unification
- Forward Chaining
- Backward Chaining
- Resolution
2Lugers BookChapter 2andChapter 12(upto
12.2)
3Propositionalization
- Brute Force Approach
- Apply all possible bindings to the variables.
- Add every clause in the sentence as a proposition
to the knowledge base. - Search for the required proposition (Goal
proposition)
4Reduction to propositional inference
- Suppose the KB contains just the following
- ?X wealthy(X) ? greedy(X) ? bad(X)
- wealthy(arif)
- greedy(arif)
- cousins(shahid,arif)
- Instantiating the universal sentence in all
possible ways, we have - wealthy(arif) ? greedy(arif) ? bad(arif)
- wealthy(shahid) ? greedy(shahid) ? bad(shahid)
- wealthy(arif)
- greedy(arif)
- cousins(shahid,arif)
Universal Instantiation
- The new KB is propositionalized proposition
symbols are - wealthy(arif), greedy(arif), bad(arif),
wealthy(shahid), - greedy(shahid), bad(shahid), cousins(shahid,arif).
5Reduction contd.
- Every FOL KB can be propositionalized so as to
preserve entailment (entailments are
dependencies)
- (A ground sentence is entailed by new KB iff
entailed by original KB)
- Idea propositionalize KB and query, apply
resolution, return result
- Problem with function symbols, there are
infinitely many ground terms, - e.g., Father(Father(Father(John)))
6Reduction contd.
- Theorem Herbrand (1930). If a sentence a is
entailed by an FOL KB, it is entailed by a finite
subset of the propositionalized KB
- Idea For n 0 to 8 do
- create a propositional KB by instantiating
with depth-n terms - see if a is entailed by this KB
- Problem works if a is entailed, loops if a is
not entailed
- Theorem Turing (1936), Church (1936) Entailment
for FOL is semidecidable (algorithms exist that s
ay yes to every entailed sentence, but no
algorithm exists that also says no to every
nonentailed sentence.)
7Problems 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 produces lots of facts such
as Greedy(Richard) that are irrelevant
- With p k-ary predicates and n constants, there
are pnk instantiations.
8Unification
- It is an algorithm for determining the
substitutions needed to make two predicate
calculus expressions match - The process of universal/existential
instantiation require substitutions
9Unification
- Unify(a,ß) ? if a? ß?
- p q ?
- knows(ali,X) knows(ali,sana)
- knows(ali,X) knows(Y,hira)
- knows(ali,X) knows(Y,mother(Y))
- knows(ali,X) knows(X,hira)
- Standardizing apart eliminates overlap of
variables, e.g., the fourth sentence can have
knows(Z,hira)
10Unification
- Unify(a,ß) ? if a? ß?
- p q ?
- knows(ali,X) knows(ali,sana) sana/X
- knows(ali,X) knows(Y,hira)
- knows(ali,X) knows(Y,mother(Y))
- knows(ali,X) knows(X,hira)
- Standardizing apart eliminates overlap of
variables, e.g., the fourth sentence can have
knows(Z,hira)
11Unification
- Unify(a,ß) ? if a? ß?
- p q ?
- knows(ali,X) knows(ali,sana) sana/X
- knows(ali,X) knows(Y,hira) hira/X,ali/Y
- knows(ali,X) knows(Y,mother(Y))
- knows(ali,X) knows(X,hira)
- Standardizing apart eliminates overlap of
variables, e.g., the fourth sentence can have
knows(Z,hira)
12Unification
- Unify(a,ß) ? if a? ß?
- p q ?
- knows(ali,X) knows(ali,sana) sana/X
- knows(ali,X) knows(Y,hira) hira/X,ali/Y
- knows(ali,X) knows(Y,mother(Y))
ali/Y,mother(ali) - knows(ali,X) knows(X,hira)
- Standardizing apart eliminates overlap of
variables, e.g., the fourth sentence can have
knows(Z,hira)
13Unification
- Unify(a,ß) ? if a? ß?
- p q ?
- knows(ali,X) knows(ali,sana) sana/X
- knows(ali,X) knows(Y,hira) hira/X,ali/Y
- knows(ali,X) knows(Y,mother(Y))
ali/Y,mother(ali) - knows(ali,X) knows(X,hira) fail
- Standardizing apart eliminates overlap of
variables, e.g., the fourth sentence can have
knows(Z,hira)
14Unification - MGU
- To unify knows(ali,X) and knows(Y,Z)
- ? ali/Y, Z/X or ? ali/Y, ali/X, ali/Z
- (if only ali is present in the data base of
facts) - The first unifier is more general than the
second.
- There is a single Most General Unifier (MGU) that
is unique up to renaming of variables.
- MGU ali/Y, Z/X
15Implementation of Unification
- Â UsingList format
- PC Syntax List Syntax
- p(a,b) (p a b)
- Â
- p(f(a), g(X,Y)) (p(f a)(g X Y))
- Â
- p(x) q(y) ((p x) (q y))
16Unification Examples
- Unify
- ((parents X(father X) (mother bill)), (parents
bill (father bill)Y)). - Â Complete Substitution
- bill/X, mother (bill)/Y
17(No Transcript)
18(No Transcript)
19(No Transcript)
20Logic Based Financial Advisor To help a user
decide whether to invest in a saving A/C or the
stock market or both
21- Policy
- Saving inadequate - should invest in saving A/c
regardless of income - Â
- Saving adequateand adequate income - More
profitable option of stock investment - Â
- Low Income adequate savings - Split surplus
between saving and stock investment
22Defining Constraints
- Adequate Savings/Income
- Income Rs 15000/month
- extra Rs 4000/ dependent/month
- Saving Rs 25,000/year
- extra Rs 5000/dependent/year
23Calculating Adequacy
- Define Functions to calculate the minimum income
and savings - Minimum Savings min_saving(X)
- min_saving(X)250005000X
- where X are the number of dependents
- Minimum Income min_income(X)
- min_income(X)150004000X
24 Outputs  Investment (savings) Investment
(stocks) Investment (combination) Â Â How can we
represent outputs?
25Rules      saving_acc (inadequate) ? investment
(savings) Â Â Â Â saving_acc(adequate)
income(adequate) ? investment(stocks) Â Â Â
 saving_acc (adequate) income (inadequate) ?
investment (combination)
26What next?
- Define Saving adequate
- Define saving inadequate
- Define income adequate
- Define income inadequate
27Savings
- Check if saved amount is greater than the minimum
saving required
28Income
- Check if the income is greater than the minimum
income
29Try firing rules with 9, 10, 11
30Example knowledge base
- The law says that it is a crime for an American
to sell weapons to hostile nations. The country
Nono, an enemy of America, has some missiles, and
all of its missiles were sold to it by Colonel
West, who is American. - Prove that Col. West is a criminal
31Example 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., ?X Owns(Nono,X) ?
Missile(X)
- owns(nono,m1) and missile(m1)
- all of its missiles were sold to it by Colonel
West - missile(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)
32Example knowledge base contd.
- Rule Base
- ... it is a crime for an American to sell weapons
to hostile nations - R1 american(X) ? weapon(Y) ? sells(X,Y,z) ?
hostile(z) ? criminal(X) - Nono has some missiles, i.e.,
- R2 ?X owns(nono,X) ? missile(X)
- all of its missiles were sold to it by Colonel
West - R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - Missiles are weapons
- R4 missile(X) ? weapon(X)
- An enemy of America counts as "hostile
- R5 enemy(X,america) ? hostile(X)
Database of Facts owns(nono,m1) and
missile(m1) West, who is American
american(west) The country Nono, an enemy of
America enemy(nono,america)
33- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
- START FROM THE FACTS
- THINK WHICH RULES APPLY
Be careful about the convention constants start
with capital letters and variables with
small (applicable to next few slides)
1. FORWARD CHAINING
34- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
R5 nono/X
R4 m1/X
R3 m1/X
35- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
R1 west/X , m1/Y , nono/Z
362. BACKWARD CHAINING
- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
- START FROM THE CONCLUSION
- THINK IS THE RULE SUPPORT AVAILABLE
37Backward chaining example
- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
38Backward chaining example
- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
39Backward chaining example
- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
40Backward chaining example
- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
41Backward chaining example
- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
42Backward chaining example
- R1 american(X) ? weapon(Y) ? sells(X,Y,Z) ?
hostile(Z) ? criminal(X) - R2 ?X owns(nono,X) ? missile(X)
- R3 missile(X) ? owns(nono,X) ?
sells(west,X,nono) - R4 missile(X) ? weapon(X)
- R5 enemy(X,america) ? hostile(X)
433. Modus Ponen Based Solution
- 6 with 3 suggests, through Modus Ponens
- weapons(m1) m1/X
- 2. From 4 and 9
- hostile(nono) nono/X
- From 2, 5, 6, Modus Ponens
- sells(west,nono,m1)m1/X
- 4. From 2,3,4,5,6, and 9
- criminal(west)
- west/X, m1/Y, nono/Z
- ?X,Y,Zamerican(X)weapon(Y)nation(Z)hostile(Z)
sells(X,Z,Y) ? criminal(X) - ?X owns(nono,X)missiles(X) ? sells(west,nono,X)
- ?X missiles(X) ? weapons (X)
- ?X enemy(X,america) ?hostile(X)
- owns(nono,m1)
- missiles(m1)
- american(west)
- nation(nono)
- enemy(nono,america)
- nation(america)
44Composition
- Find Overall Substitutions
- Given two or more sets of substitutions
45Example
- S1A/K
- S2a/A, H/J
- What set would represent overall substitutions
- S1.S2a/K, H/J
- Algorithm?
46Example
- S1A/K S2a/A, H/J
- S1.S2a/K, H/J
- Algorithm
- Apply S2 to S1 (find overall substitution)
- Add S2 to S1
- Drop all substitutions in S2 which have common
denominators with S1
47Example
- S1A/K S2a/A, H/J
- Algorithm
- Apply S2 to S1 (find overall substitution)
- Apply a/A to A/K would lead to a/K
- Apply H/J to A/K cannot be applied
- S1.S2a/K
- Add S2 to S1
- S1.S2a/K a/A,H/J
- Drop all substitutions in S2 which have common
denominators with S1 - nothing gets dropped, hence the answer is
a/K,a/A,H/J
48Example
- S1D/A
- S2a/D
- S12a/A, a/D
- S1D/A,S/G
- S2x/X, f/D, q/S,w/A
- S1.S2f/A,q/G, x/X, f/D, q/S,w/A
- S1.S2f/A,q/G, x/X,q/S (w/A gets dropped)
- S1.S2f/A,q/G, x/X,q/S
49Is S1.S2 same as S2.S1
- S1D/A
- S2a/D
- S21a/A, D/A?a/A where as S12a/A, a/D
- S1D/A,S/G
- S2x/X, f/D, q/S,w/A
- S2.S1x/X, f/D, q/S, w/A D/A,S/G
- S2.S1x/X, f/D, q/S, w/A, S/G (D/A gets
dropped) - Hence generally speaking S1.S2 not equal to S2.S1
50Is S12 same as S21
- S1D/A
- S2X/A
- S12D/A, X/A
- S12D/A
- S21X/A,D/A
- S21X/A
51Example
- S1D/A, d/F,S/E
- S2g/D
- S12g/A, d/F,S/E, g/D
- S12g/A, d/F,S/E, g/D
- S21g/D, D/A, d/F,S/E
52Substitution Discussion
- Domain Variables in the substitution together
form the domain (denominators) - Replacements Terms are the replacements
(numerators) - Pure Vs Impure Substitutions
- A pure substitution is if all replacements are
free of the variables in the domain of the
substitution. Otherwise impure - s/X, t/I, j/G (pure)
- The composition of pure substitutions may be
impure and vice versa - Composability
- A substitution S1 and S2 are composable if and
only if the variables in the domain of S1 do not
appear among the replacements of S2, otherwise
they are noncomposable. - S1a/X,b/Y,z/V S2U/X,b/V composable
- S1a/X,b/Y,z/V S2X/U, b/V noncomposable
53Application Example
- Knowledge base
- knows(ali,sana) knows(X,shahid) knows(X,Y)
- We also know
- knows(ali,X) ? hates(ali,X)
- Unify the conditions to find ali hates whom
- unify(knows(ali,X) , knows(ali,sana)) sana/X
- Using the binding and the rule ali hates sana
- unify(knows(ali,X) , knows(X,shahid))
ali/X,shahid/X This would fail as X cannot have
two values at the same time - As the composition of ali/X with shahid/X or
vice versa will result in only one valid
substitution - unify(knows(ali,X) , knows(X,Y)) ali/X,X/Y
- This would mean that ali knows everyone
including himself, therefore hates everyone.