Document

Inference in first-order logic
Chapter 9- Part2
Modified by Vali Derhami
1/19
‫‪Backward chaining algorithm‬‬
‫))‪SUBST(COMPOSE(θ1, θ2), p) = SUBST(θ2, SUBST(θ1, p‬‬
‫ترکیب جایگزینی معادل تاثیر به کارگیری هر یک از جایگزینها به نوبت است‬
‫‪2/19‬‬
Backward chaining example
3/19
Backward chaining example
R1: American(x)  Weapon(y)  Sells(x,y,z)  Hostile(z)  Criminal(x)
R2: Missile(x1)  Owns(Nono,x1)  Sells(West,x1,Nono)
R3: Missile(x2)  Weapon(x2)
R4: Enemy(x3,America)  Hostile(x3)
Owns(Nono,M1)
Missile(M1)
American(West)
Enemy(Nono,America)
4/19
Backward chaining example
5/19
Backward chaining example
6/19
Backward chaining example
7/19
Backward chaining example
8/19
Backward chaining example
9/19
Backward chaining example
10/19
Properties of backward chaining
• Depth-first recursive proof search: space is linear in size
of proof
• Incomplete due to infinite loops (even for Datalog)
–  fix by checking current goal against every goal on stack
• Inefficient due to repeated subgoals (both success and
failure)
–  fix using caching of previous results (extra space)
‫ در هنگام تکرار هدفهای فرعی‬،‫(جوابهای هدفهای فرعی در حین تولید نگهداری‬
)‫از انها استفاده‬
• Widely used for logic programming
11/19
Logic programming: Prolog
• Algorithm = Logic + Control
• Basis: backward chaining with Horn clauses
• Uses uppercase letters for variables and lowercase for constants.
• Clauses are written with the head preceding the body; ": -" is used
for left- implication, commas separate literals in the body, and ‘.’ for
end of a sentence.
• Widely used in Europe, Japan
• 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
12/19
Resolution: brief summary
• Full first-order version:
•
l1  ···  lk,
m1  ···  mn
(l1  ···  li-1  li+1  ···  lk  m1  ···  mj-1  mj+1  ···  mn)θ
where Unify(li, mj) = θ.
• The two clauses are assumed to be standardized apart so that they
share no variables.
.‫ استاندارد شده اند به گونه اي كه شامل متغیر یكساني نباشند‬clause ‫فرض مي شود كه دو‬
• For example: Rich(x)  Unhappy(x) Rich(Ken)
Unhappy(Ken)
with θ = {x/Ken}
• Apply resolution steps to CNF(KB  α); complete for FOL
14/19
Conversion to CNF
• Everyone who loves all animals is loved by
someone:
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 ≡ x p,  x p ≡ x
p
x [y (Animal(y)  Loves(x,y))]  [y Loves(y,x)]
x [y Animal(y)  Loves(x,y)]  [y Loves(y,x)]
x [y Animal(y)  Loves(x,y)]  [y Loves(y,x)]
15/19
Conversion to CNF contd.
3.
4.
Standardize variables: each quantifier should use a different one
x [y Animal(y)  Loves(x,y)]  [z Loves(z,x)]
Skolemize: a more general form of existential instantiation.
Each existential variable is replaced by a Skolem function of the enclosing
universally quantified variables:
x [Animal(F(x))  Loves(x,F(x))]  Loves(G(x),x)
5.
6.
Drop universal quantifiers:
[Animal(F(x))  Loves(x,F(x))]  Loves(G(x),x)
Distribute  over  :
[Animal(F(x))  Loves(G(x),x)]  [Loves(x,F(x))  Loves(G(x),x)]
16/19
Resolution proof: definite clauses
R1: American(x)  Weapon(y)  Sells(x,y,z) 
Hostile(z)  Criminal(x)
R2: Missile(x1)  Owns(Nono,x1) 
Sells(West,x1,Nono)
R3: Missile(x2)  Weapon(x2)
R4: Enemy(x3,America)  Hostile(x3)
Owns(Nono,M1)
Missile(M1)
American(West)
Enemy(Nono,America)
17/19
Resolution proof: definite clauses
R1: American(x)  Weapon(y) 
Sells(x,y,z)  Hostile(z) 
Criminal(x)
R2: Missile(x1)  Owns(Nono,x1) 
Sells(West,x1,Nono)
R3: Missile(x2)  Weapon(x2)
R4: Enemy(x3,America) 
Hostile(x3)
Owns(Nono,M1)
Missile(M1)
American(West)
Enemy(Nono,America)
18/19
‫• تمارین فصل ‪ 18 ،9 ،4 :9‬و سواالت تستی‬
‫‪19/19‬‬