45
UIUC CS 497: Section EA Lecture #3 Reasoning in Artificial Intelligence Professor: Eyal Amir Spring Semester 2004

UIUC CS 497: Section EA Lecture #3 Reasoning in Artificial Intelligence Professor: Eyal Amir Spring Semester 2004

Embed Size (px)

Citation preview

UIUC CS 497: Section EALecture #3

Reasoning in Artificial Intelligence

Professor: Eyal Amir

Spring Semester 2004

Last Time

• SAT checking using DPLL (instantiate, propagate, backtrack)

• Entailment/SAT checking using Resolution (create more and more clauses until KB is saturated)

• Formal verification uses mainly SAT checking such as DPLL, but also sometimes resolution

From Homework You Should Know

• Deduction theorem for FOL

• Language of FOL

• Soundness, completeness, and incompleteness theorems

• Models of FOL

Today

• Reasoning procedure for FOL– Proving entailment using Resolution

• Application du jour: Temporal Reasoning

• Applications we will not touch– Spatial reasoning, formal verification,

mathematics, planning, NLP, …

First-Order Theories• Signature L:

– Function symbols (f(x,y))– Predicate (relation) symbols (P(x,A))– Constant symbols (A,B,C,…)

• FOL language: quantification over objects

))),()(()((

)),()()((

)),()()((

wmlovesmmanmwwomanw

wmlovesmmanwwomanmw

wmlovesmmanwwomanmw

Model Theory: Reminder

• Structure/Interpretation: <U,I>– U = Universe of elements– I = Mapping of

• Constant symbols to elements in U• Predicate symbols to relations over U• Function symbols to functions over U

• M T - M satisfies T– T is a theory, i.e., a set of FOL sentences in

language L for which M is an interpretation

Logical Entailment

))),()(()((

)),()()((

)),()()((

wmlovesmmanmwwomanw

wmlovesmmanwwomanmw

wmlovesmmanwwomanmw

?

L={man, woman, loves} M1=<U1,I1>U1={Sue,Kim,Pat}I1[man]={Pat}I1[woman]={Sue,Kim}I1[loves]={<Pat,Kim>,<Pat,Sue>}

?

M1

M1

Clausal Form

• Every FOL formula is consistency-equivalent to conjunction of F.O. clauses.

• First-order clause– Only universal quantifiers (which are implicit)– Disjunction of literals (atoms or their negation)

))),()(()(( wmlovesmmanmwwomanw

))),(()(

))(()(

vvSKmlovesvwoman

wSKmmanwwoman

Conversion to Clausal Form

1. “” replaced by “”, ””2. Negations in front of atoms

3. Standardize variables (unique vars.)

4. Eliminate existentials (Skolemization)

5. Drop all universal quantifiers

6. Move disjunctions in (put into CNF)

7. Rename vars. (standardize vars. apart)

))),()(()(( wmlovesmmanmwwomanw ))),()(()(( wmlovesmmanmwwomanw ))),()(()(( wmlovesmmanmwwomanw

)))),(())((()(( wwSKmloveswSKmmanwwomanw ))),(())((()( wwSKmloveswSKmmanwwoman

)))),(()(()))(()((wwSKmloveswwoman

wSKmmanwwoman

)))),(()((

)))(()((vvSKmlovesvwoman

wSKmmanwwoman

))),()(()(( wmlovesmmanmwwomanw

Take a Breath

• Until now: – First-order logic basics– How to convert a general FOL sentence to

clausal form

• From now: Resolution theorem proving– Search in the space of proofs

• Later: Temporal reasoning

Resolution Theorem Proving

• Given:– KB – a set of first-order sentences– Query Q – a logical sentence

• Calling procedure:1. Add Q to KB

2. Convert KB into clausal form

3. Run theorem prover. If we prove contradiction, return T.

Resolution Theorem Proving

1. Add Q to KB

2. Convert KB into clausal form

3. Run theorem prover. If we prove contradiction, return T.

Deduction theorem:

KB Q iff KB Q FALSE

╨ ╨

Resolution Theorem Proving

1. Add Q to KB

2. Convert KB into clausal form

3. Run theorem prover. If we prove contradiction, return T.

Deduction theorem:

KB Q iff KB Q FALSE

╨ ╨

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}

First-Order Resolution

• Resolution algorithm (saturation):1. While there are unresolved C1,C2:

(1) Select C1, C2 in KB(2) If C1, C2 are resolvable, resolve them

into a new clause C3(3) Add C3 to KB(4) If C3={ }

return T.

2. 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}

Resolution in Action

)()()(

)()()()()()()()()(

)()()()(

AaBfAc

BfCercwfCezaBfycAa

tfsaxcxa

On board

Negated Query

KB

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}

Resolution in Action

)()()(

)()()()()()()()()(

)()()()(

AaBfAc

BfCercwfCezaBfycAa

sfsaxcxa

On board

Negated Query

KB

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}

First-Order Resolution

• Resolution algorithm (saturation):1. While there are unresolved C1,C2:

(1) Select C1, C2 in KB(2) If C1, C2 are resolvable, resolve them

into a new clause C3(3) Add C3 to KB(4) If C3={ }

return T.

2. 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}

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}

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)}(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)))

{x/B,y/z} {x/B,y/z,x/w} {x/B,y/z,z/w}

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

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

Unification

• Substitution σ1 more general than σ2 if there is substitution γ such that

σ1 γ = σ2

σ2={y/f(A),z/A,w/A}

σ1={y/f(w),z/A}

Most general unifier

γ={w/A}

Finding the MGUProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

Finding the MGUProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

Finding the MGUProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

Finding the MGUProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))

Finding the MGUProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

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) = Ppart(2,x) = A part(2,y) = z

Finding the MGUProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,w))part(4,x) = g(x,f(w)) part(4,y) = g(v,w)

FOccurs check

Finding the MGU: another exampleProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

Finding the MGU: another exampleProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

Finding the MGU: another exampleProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

Finding the MGU: another exampleProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

Finding the MGU: another exampleProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. 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) = Ppart(2,x) = A part(2,y) = z

Finding the MGU: another exampleProcedure MGU(x,y)

1. If x=y, return { }

2. If x or y are vars., return MGUvar(x,y)

3. If x or y are const.,or Len(x)=/=Len(y), return F.

4. σ ← { }; For i ← 1 to Len(x)1. s ← MGU(part(i,x),part(i,y)); if s=F, return F.

2. σ ← compose(σ,s); x ← subst(x,σ); y ← subst(y,σ);

5. Return σ

part(4,x) = g(x,f(w)) part(4,y) = g(v,f(w))σ={y/f(w),z/A,v/x}

x = P(A,y,g(x,y)) y = P(z,f(w),g(v,f(w)))

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

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)}╨

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)}

Properties of Resolution

• Unifying two literals of length nO(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

Related to FOL Resolution

• Clause selection and restriction strategies for resolution (lecture #5, paper #19)

• Consequence finding (paper #3)

• Constraint Satisfaction Problem (paper #5)

• Reasoning with equality (paper #6)

• DPLL in FOL (paper #7)

• Decidable fragments of FOL (paper #8)

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

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’)

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

Notations

• Substitutions– φσ σ = {x1/t1,…,xk/tk}

– φσ σ = [x1/t1,…,xk/tk]

Next Time

• Description Logics

• Requires prior knowledge of:– FOL theorem proving– Tableau theorem proving – will be useful– Frame systems – will be useful