Download presentation
Presentation is loading. Please wait.
Published byRoy Lawrence Modified over 9 years ago
1
1/19 Inference in first-order logic Chapter 9- Part2 Modified by Vali Derhami
2
2/19 Backward chaining algorithm SUBST(COMPOSE(θ 1, θ 2 ), p) = SUBST(θ 2, SUBST(θ 1, p)) ترکیب جایگزینی معادل تاثیر به کارگیری هر یک از جایگزینها به نوبت است
3
3/19 Backward chaining example
4
4/19 Backward chaining example
5
5/19 Backward chaining example
6
6/19 Backward chaining example
7
7/19 Backward chaining example
8
8/19 Backward chaining example
9
9/19 Backward chaining example
10
10/19 Backward chaining example
11
11/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
12
12/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 :- literal 1, … literal n. 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
13
13/19 Prolog Built-in predicates that have side effects (e.g., input and output predicates, assert/retract predicates) Closed-world assumption ("negation as failure") –e.g., given alive(X) :- not dead(X). –alive(joe) succeeds if dead(joe) fails 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=[]
14
14/19 Resolution: brief summary Full first-order version: l 1 ··· l k, m 1 ··· m n ( l 1 ··· l i-1 l i+1 ··· l k m 1 ··· m j-1 m j+1 ··· m n )θ where Unify ( l i, m j ) = θ. The two clauses are assumed to be standardized apart so that they share no variables. For example: Rich(x) Unhappy(x) Rich(Ken) Unhappy(Ken) with θ = {x/Ken} Apply resolution steps to CNF(KB α); complete for FOL
15
15/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)]
16
16/19 Conversion to CNF contd. 3.Standardize variables: each quantifier should use a different one x [ y Animal(y) Loves(x,y)] [ z Loves(z,x)] 4.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.Drop universal quantifiers: [Animal(F(x)) Loves(x,F(x))] Loves(G(x),x) 6.Distribute over : [Animal(F(x)) Loves(G(x),x)] [ Loves(x,F(x)) Loves(G(x),x)]
17
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
18/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)
19
19/19 تمارین فصل 9: 4، 9، 18 و سوالات تستی
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.