1 / 37

CS498-EA Reasoning in AI Lecture #7

CS498-EA Reasoning in AI Lecture #7. Professor: Eyal Amir Fall Semester 2011. Today. Until now: First-order logic basics TODAY: Resolution refutation for FOL Applications: Spatial reasoning, formal verification, mathematics, planning, NLP, …

harvellw
Télécharger la présentation

CS498-EA Reasoning in AI Lecture #7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS498-EAReasoning in AILecture #7 Professor: Eyal Amir Fall Semester 2011

  2. Today • Until now: • First-order logic basics • TODAY: Resolution refutation for FOL • Applications: • Spatial reasoning, formal verification, mathematics, planning, NLP, … • Our example: situation calculus & projection to the future

  3. Resolution Theorem Proving • Given: • KB – a set of first-order sentences • Query Q – a logical sentence • Calling procedure: • Add Q to KB • Convert KB into clausal form • Run theorem prover. If we prove contradiction, return T.

  4. Resolution Theorem Proving • Add Q to KB • Convert KB into clausal form • Run theorem prover. If we prove contradiction, return T. Deduction theorem: KB Q iff KB  Q FALSE ╨ ╨

  5. Resolution Theorem Proving • Add Q to KB • Convert KB into clausal form • Run theorem prover. If we prove contradiction, return T. Deduction theorem: KB Q iff KB  Q FALSE ╨ ╨

  6. First-Order Resolution • Resolution inference rule: C1: P(t1,…,tk)  C1’(t1,…,tk) C2: P(s1,…,sk)  C2’(s1,…,sk) mgu(<t1,…,tk>,<s1,…,sk>) = {r1,…,rn} -------------------------------------------- C3: (C1’  C2’) {r1,…,rn}

  7. First-Order Resolution • Resolution algorithm (saturation): • While there are unresolved C1,C2: • Select C1, C2 in KB • If C1, C2 are resolvable, resolve them into a new clause C3 • Add C3 to KB • If C3={ } return T. • STOP C1: P(t1,…,tk)  C1’(t1,…,tk) C2: P(s1,…,sk)  C2’(s1,…,sk) mgu(<t1,…,tk>,<s1,…,sk>) = {r1,…,rn} -------------------------------------------- C3: (C1’  C2’) {r1,…,rn}

  8. Resolution in Action C1: P(t1,…,tk)  C1’(t1,…,tk) C2: P(s1,…,sk)  C2’(s1,…,sk) mgu(<t1,…,tk>,<s1,…,sk>) = {r1,…,rn} -------------------------------------------- C3: (C1’  C2’) {r1,…,rn} On board KB Negated Query

  9. Resolution in Action C1: P(t1,…,tk)  C1’(t1,…,tk) C2: P(s1,…,sk)  C2’(s1,…,sk) mgu(<t1,…,tk>,<s1,…,sk>) = {r1,…,rn} -------------------------------------------- C3: (C1’  C2’) {r1,…,rn} On board KB Negated Query

  10. First-Order Resolution • Resolution algorithm (saturation): • While there are unresolved C1,C2: • Select C1, C2 in KB • If C1, C2 are resolvable, resolve them into a new clause C3 • Add C3 to KB • If C3={ } return T. • STOP C1: P(t1,…,tk)  C1’(t1,…,tk) C2: P(s1,…,sk)  C2’(s1,…,sk) mgu(<t1,…,tk>,<s1,…,sk>) = {r1,…,rn} -------------------------------------------- C3: (C1’  C2’) {r1,…,rn}

  11. First-Order Resolution Rule (2) If C1, C2 are resolvable, resolve them into a new clause C3 If C1,C2 have two literals l1,l2 with same predicates (P) and opposite polarity, and If l1= P(t1,…,tk), l2= P(s1,…,sk), unifiable with mgu (most general unifier) {r1,…,rn}, then… C1: P(t1,…,tk)  C1’(t1,…,tk) C2: P(s1,…,sk)  C2’(s1,…,sk) mgu(<t1,…,tk>,<s1,…,sk>) = {r1,…,rn} -------------------------------------------- C3: (C1’  C2’) {r1,…,rn}

  12. Unification …P(t1,…,tk),P(s1,…,sk), unifiable with mgu (most general unifier) σ={r1,…rk} • Substitution: replace vars. by terms • Term: constant, variable, or a function of terms • Composition of substitutions {x/g(w,v)} {w/A,v/f(B,z)} = {x/g(A,f(B,z),w/A,v/f(B,z)} {x/B,y/z} {x/B,y/z,x/w} {x/B,y/z,z/w} (P(x) v Q(f(x)) v P(g(B,x)) v P(f(y))) {x/B,y/z} (P(B) v Q(f(B)) v P(g(B,B)) v P(f(z)))

  13. Unification • Unification: find a substitution σ for • C1: P(t1,…,tk)  C1’(t1,…,tk) • C2: P(s1,…,sk)  C2’(s1,…,sk) such that P(t1,…,tk)σ = P(s1,…,sk)σ P(A,y,g(x,y)){y/f(A)} = P(z,f(z),g(x,f(w))){z/A,w/A} σ={y/f(A),z/A,w/A} P(A,y,g(x,y)){y/f(w)} = P(z,f(w),g(x,f(w))){z/A} σ={y/f(w),z/A} Most general unifier

  14. Unification • Substitution σ1 more general than σ2 if there is substitution γ such that σ1 γ = σ2 P(A,y,g(x,y)){y/f(A)} = P(z,f(z),g(x,f(w))){z/A,w/A} σ={y/f(A),z/A,w/A} P(A,y,g(x,y)){y/f(w)} = P(z,f(w),g(x,f(w))){z/A} σ={y/f(w),z/A} Most general unifier

  15. Unification • Substitution σ1 more general than σ2 if there is substitution γ such that σ1 γ = σ2 σ2={y/f(A),z/A,w/A} γ={w/A} σ1={y/f(w),z/A} Most general unifier

  16. Finding the MGU Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

  17. Finding the MGU Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

  18. Finding the MGU Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

  19. Finding the MGU Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

  20. Finding the MGU Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

  21. Finding the MGU Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ Occurs check F x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w)) part(3,x) = y part(3,y) = f(w) part(1,x) = P part(1,y) = P part(2,x) = A part(2,y) = z part(4,x) = g(x,f(w)) part(4,y) = g(v,w)

  22. Finding the MGU: another example Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

  23. Finding the MGU: another example Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

  24. Finding the MGU: another example Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

  25. Finding the MGU: another example Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

  26. Finding the MGU: another example Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

  27. Finding the MGU: another example Procedure MGU(x,y) • If x=y, return { } • If x or y are vars., return MGUvar(x,y) • If x or y are const.,or Len(x)=/=Len(y), return F. • σ ← { }; For i ← 1 to Len(x) • s ← MGU(part(i,x),part(i,y)); if s=F, return F. • σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ); • Return σ x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w))) part(3,x) = y part(3,y) = f(w) part(1,x) = P part(1,y) = P part(2,x) = A part(2,y) = z part(4,x) = g(x,f(w)) part(4,y) = g(v,f(w)) σ={y/f(w),z/A,v/x}

  28. Correctness of FOL Resolution • Soundness: Resolution is sound for first-order inference • Refutation Completeness: Resolution will find the empty clause, if FALSE is entailed • No guarantee of termination (saturation), if FALSE not entailed: FOL semi-decidable

  29. Simple Efficiency Improvements • Subsumption between clauses: • If clause C subsumes clause D (C entails D), then we can remove D from the KB. {P(A)} {P(A),P(B)} {P(A)} {~P(A)} {P(f(x),A),Q(g(x),B)} {P(f(v),y),Q(g(v),y)} • Algorithm for checking subsumption? ╨ ╨ ╨ {P(A)} {P(t)} ╨

  30. Simple Efficiency Improvements • Subsumption within the clause: • If literal a subsumes literal b (a entails b), then we can remove a from the clause… • But, notice the variables’ scope {P(A),P(t)} {P(A),~P(B),P(t)} {P(A,x),P(y,B)} {P(x),Q(x),P(A)} {P(A)} {P(A),~P(B)} {P(A,x),P(y,B)} {P(x),Q(x),P(A)}

  31. Properties of Resolution • Unifying two literals of length n O(n2) – because of occurs check • Finding two resolvable clauses from m clauses of length n: O(m2n2) – the simple bound • Overall algorithm: • Semi-decidable • Unbounded length of proof as function of n,m

  32. Related to FOL Resolution • Clause selection and restriction strategies • Consequence finding • Constraint Satisfaction Problem • Reasoning with equality • DPLL in FOL • Decidable fragments of FOL • BDDs in FOL

  33. Summary So Far • Resolution theorem proving allows us to find contradictions and explanation. • The deduction theorem tells us how to ask queries from Resolution • Next: Temporal Reasoning

  34. Situation Calculus • A first-order language for describing the effects of actions and events over time • Constants: S0 – initial state; action constants • Functions: result(<action>,<situation>) • Predicates: “fluents” – properties that change over time at(1, S0) at(x,s) at(x+1,result(move_fwd,s)) Query: at(1+1,s’)  ans(s’) ? at(1+1,s’)  ans(s’)

  35. Situation Calculus • Requires axioms describing effects and non-effects of actions/events • Can be used for planning, projection, diagnosis, filtering (tracking) • Frame Problem: the compact and natural-language-like specification of effects of actions • Qualification Problem: the preconditions of actions

  36. Notations • Substitutions • φσσ = {x1/t1,…,xk/tk} • φσσ = [x1/t1,…,xk/tk]

  37. Next Time • Conversion to Clausal Form • Resolution Strategies

More Related