1 / 37

Knowledge Repn. & Reasoning Lec. #6: First-Order Inference

Knowledge Repn. & Reasoning Lec. #6: First-Order Inference. UIUC CS 498: Section EA Professor: Eyal Amir Fall Semester 2004. Today. Until now: First-order logic basics Clausal form for FOL Resolution refutation for FOL Application du jour: Temporal Reasoning

nicki
Télécharger la présentation

Knowledge Repn. & Reasoning Lec. #6: First-Order Inference

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. Knowledge Repn. & ReasoningLec. #6: First-Order Inference UIUC CS 498: Section EA Professor: Eyal AmirFall Semester 2004

  2. Today • Until now: • First-order logic basics • Clausal form for FOL • Resolution refutation for FOL • Application du jour: Temporal Reasoning • Applications we will not touch • Spatial reasoning, formal verification, mathematics, planning, NLP, …

  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 • Resolution Strategies

More Related