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
© Copyright 2025 Paperzz