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 2024 Paperzz