Chapter 5

43
Using Predicate Logic Chapter 5 Chapter 5 Chapter 5 Chapter 5

Transcript of Chapter 5

Page 1: Chapter 5

Using Predicate LogicChapter 5Chapter 5Chapter 5Chapter 5

Page 2: Chapter 5

2

Using Propositional LogicRepresenting simple facts

It is rainingRAINING

It is sunnySUNNY

It is windyWINDY

If it is raining, then it is not sunnyRAINING → ¬SUNNY

Page 3: Chapter 5

3

Using Propositional Logic• Theorem proving is decidable

• Cannot represent objects and quantification

Page 4: Chapter 5

4

Using Predicate Logic• Can represent objects and quantification

• Theorem proving is semi-decidable

Page 5: Chapter 5

5

Using Predicate Logic1. Marcus was a man.2. Marcus was a Pompeian.3. All Pompeians were Romans.4. Caesar was a ruler.5. All Pompeians were either loyal to Caesar or hated him.6. Every one is loyal to someone.7. People only try to assassinate rulers they are not loyal to.8. Marcus tried to assassinate Caesar.

Page 6: Chapter 5

6

Using Predicate Logic1. Marcus was a man.

man(Marcus)

Page 7: Chapter 5

7

Using Predicate Logic2. Marcus was a Pompeian.

Pompeian(Marcus)

Page 8: Chapter 5

8

Using Predicate Logic3. All Pompeians were Romans.

∀x: Pompeian(x) → Roman(x)

Page 9: Chapter 5

9

Using Predicate Logic4. Caesar was a ruler.

ruler(Caesar)

Page 10: Chapter 5

10

Using Predicate Logic5. All Pompeians were either loyal to Caesar or hated him.

inclusive-or∀x: Roman(x) → loyalto(x, Caesar) ∨ hate(x, Caesar)

exclusive-or∀x: Roman(x) → (loyalto(x, Caesar) ∧ ¬hate(x, Caesar)) ∨

(¬loyalto(x, Caesar) ∧ hate(x, Caesar))

Page 11: Chapter 5

11

Using Predicate Logic6. Every one is loyal to someone.

∀x: ∃y: loyalto(x, y) ∃y: ∀x: loyalto(x, y)

Page 12: Chapter 5

12

Using Predicate Logic7. People only try to assassinate rulers they are not loyal to.

∀x: ∀y: person(x) ∧ ruler(y) ∧ tryassassinate(x, y) → ¬loyalto(x, y)

Page 13: Chapter 5

13

Using Predicate Logic8. Marcus tried to assassinate Caesar.

tryassassinate(Marcus, Caesar)

Page 14: Chapter 5

14

Using Predicate LogicWas Marcus loyal to Caesar?

man(Marcus)ruler(Caesar)tryassassinate(Marcus, Caesar)

⇓ ∀x: man(x) → person(x)¬loyalto(Marcus, Caesar)

Page 15: Chapter 5

15

Using Predicate Logic• Many English sentences are ambiguous.• There is often a choice of how to represent

knowledge.

• Obvious information may be necessary for reasoning

• We may not know in advance which statements to deduce (P or ¬P).

Page 16: Chapter 5

16

Reasoning1. Marcus was a Pompeian.2. All Pompeians died when the volcano erupted in 79 A.D.3. It is now 2008 A.D.

Is Marcus alive?

Page 17: Chapter 5

17

Reasoning1. Marcus was a Pompeian.

Pompeian(Marcus)2. All Pompeians died when the volcano erupted in 79 A.D.

erupted(volcano, 79) ∧ ∀x: Pompeian(x) → died(x, 79)3. It is now 2008 A.D.

now = 2008

Page 18: Chapter 5

18

Reasoning1. Marcus was a Pompeian.

Pompeian(Marcus)2. All Pompeians died when the volcano erupted in 79 A.D.

erupted(volcano, 79) ∧ ∀x: Pompeian(x) → died(x, 79)3. It is now 2008 A.D.

now = 2008∀x: ∀t1: ∀t2: died(x, t1) ∧ greater-than(t2, t1) → dead(x, t2)

Page 19: Chapter 5

19

ResolutionRobinson, J.A. 1965. A machine-oriented logic based on the resolution principle. Journal of ACM 12 (1): 23-41.

Page 20: Chapter 5

20

ResolutionThe basic ideas

KB |= α ⇔⇔⇔⇔ KB ∧ ¬α |= false

Page 21: Chapter 5

21

ResolutionThe basic ideas

KB |= α ⇔ KB ∧ ¬α |= false

(α ∨ ¬β) ∧ ( γ ∨ β) ⇒⇒⇒⇒ (α ∨ γ)

Page 22: Chapter 5

22

ResolutionThe basic ideas

KB |= α ⇔ KB ∧ ¬α |= false

(α ∨ ¬β) ∧ ( γ ∨ β) ⇒⇒⇒⇒ (α ∨ γ) sound and complete

Page 23: Chapter 5

23

Resolution in Propositional Logic1. Convert all the propositions of KB to clause form (S).2. Negate α and convert it to clause form. Add it to S.3. Repeat until either a contradiction is found or no progress can

be made.a. Select two clauses (α ∨ ¬P) and ( γ ∨ P).b. Add the resolvent (α ∨ γ) to S.

Page 24: Chapter 5

24

Resolution in Propositional LogicExample:

KB = {P, (P ∧ Q) → R, (S ∨ T) → Q, T}α = R

Page 25: Chapter 5

25

Resolution in Predicate LogicExample:KB = {P(a), ∀x: (P(x) ∧ Q(x)) → R(x), ∀y: (S(y) ∨ T(y)) → Q(y), T(a)}α = R(a)

Page 26: Chapter 5

26

Resolution in Predicate LogicUnification:

UNIFY(p, q) = unifier θ where SUBST(θ, p) = SUBST(θ, q)

Page 27: Chapter 5

27

Resolution in Predicate LogicUnification:∀x: knows(John, x) → hates(John, x)knows(John, Jane)∀y: knows(y, Leonid)∀y: knows(y, mother(y))∀x: knows(x, Elizabeth)

UNIFY(knows(John, x), knows(John, Jane)) = {Jane/x}UNIFY(knows(John, x), knows(y, Leonid)) = {Leonid/x, John/y}UNIFY(knows(John, x), knows(y, mother(y))) = {John/y, mother(John)/x}UNIFY(knows(John, x), knows(x, Elizabeth)) = FAIL

Page 28: Chapter 5

28

Resolution in Predicate LogicUnification: Standardization

UNIFY(knows(John, x), knows(y, Elizabeth)) = {John/y, Elizabeth/x}

Page 29: Chapter 5

29

Resolution in Predicate LogicUnification: Most general unifier

UNIFY(knows(John, x), knows(y, z)) = {John/y, John/x, John/z}= {John/y, Jane/x, Jane/z}= {John/y, v/x, v/z}= {John/y, z/x, Jane/v}= {John/y, z/x}

Page 30: Chapter 5

30

Resolution in Predicate LogicUnification: Occur check

UNIFY(knows(x, x), knows(y, mother(y))) = FAIL

Page 31: Chapter 5

31

Conversion to Clause Form1. Eliminate →.

P → Q ≡ ¬P ∨ Q

2. Reduce the scope of each ¬ to a single term.¬(P ∨ Q) ≡ ¬P ∧ ¬Q¬(P ∧ Q) ≡ ¬P ∨ ¬Q¬∀x: P ≡ ∃x: ¬P¬∃x: p ≡ ∀x: ¬P¬¬ P ≡ P

3. Standardize variables so that each quantifier binds a unique variable.

(∀x: P(x)) ∨ (∃x: Q(x)) ≡ (∀x: P(x)) ∨ (∃y: Q(y))

Page 32: Chapter 5

32

Conversion to Clause Form4. Move all quantifiers to the left without changing their relative order.

(∀x: P(x)) ∨ (∃y: Q(y)) ≡ ∀x: ∃y: (P(x) ∨ (Q(y))

5. Eliminate ∃ (Skolemization).∃x: P(x) ≡ P(c) Skolem constant∀x: ∃y P(x, y) ≡ ∀x: P(x, f(x)) Skolem function

6. Drop ∀.∀x: P(x) ≡ P(x)

7. Convert the formula into a conjunction of disjuncts.(P ∧ Q) ∨ R ≡ (P ∨ R) ∧ (Q ∨ R)

8. Create a separate clause corresponding to each conjunct.9. Standardize apart the variables in the set of obtained clauses.

Page 33: Chapter 5

33

Conversion to Clause Form1. Eliminate →.2. Reduce the scope of each ¬ to a single term.3. Standardize variables so that each quantifier binds a unique

variable.4. Move all quantifiers to the left without changing their relative

order.5. Eliminate ∃ (Skolemization).6. Drop ∀.7. Convert the formula into a conjunction of disjuncts.8. Create a separate clause corresponding to each conjunct.9. Standardize apart the variables in the set of obtained clauses.

Page 34: Chapter 5

34

Example1. Marcus was a man.2. Marcus was a Pompeian.3. All Pompeians were Romans.4. Caesar was a ruler.5. All Pompeians were either loyal to Caesar or hated him.6. Every one is loyal to someone.7. People only try to assassinate rulers they are not loyal to.8. Marcus tried to assassinate Caesar.

Page 35: Chapter 5

35

Example1. Man(Marcus).2. Pompeian(Marcus).3. ∀x: Pompeian(x) → Roman(x).4. ruler(Caesar).5. ∀x: Roman(x) → loyalto(x, Caesar) ∨ hate(x, Caesar).6. ∀x: ∃y: loyalto(x, y).7. ∀x: ∀y: person(x) ∧ ruler(y) ∧ tryassassinate(x, y)

→ ¬loyalto(x, y).8. tryassassinate(Marcus, Caesar).

Page 36: Chapter 5

36

ExampleProve:

hate(Marcus, Caesar)

Page 37: Chapter 5

37

Question Answering1. When did Marcus die?2. Whom did Marcus hate?3. Who tried to assassinate a ruler?4. What happen in 79 A.D.?. 5. Did Marcus hate everyone?

Page 38: Chapter 5

38

Question AnsweringPROLOG:• Only Horn sentences are acceptable

Page 39: Chapter 5

39

Question AnsweringPROLOG:• Only Horn sentences are acceptable• The occur-check is omitted from the unification: unsound

test ← P(x, x) P(x, f(x))

Page 40: Chapter 5

40

Question AnsweringPROLOG:• Only Horn sentences are acceptable• The occur-check is omitted from the unification: unsound

test ← P(x, x) P(x, f(x))

• Backward chaining with depth-first search: incompleteP(x, y) ← Q(x, y) P(x, x)Q(x, y) ← Q(y, x)

Page 41: Chapter 5

41

Question AnsweringPROLOG:• Unsafe cut: incomplete

A ← B, C ← A

B ← D, !, E

D ← ← B, C

← D, !, E, C

← !, E, C

Page 42: Chapter 5

42

Question AnsweringPROLOG:• Unsafe cut: incomplete

A ← B, C ← A

B ← D, !, E

D ← ← B, C

← D, !, E, C

← !, E, C

• Negation as failure: ¬P if fails to prove P

Page 43: Chapter 5

43

HomeworkExercises 1-13, Chapter 5, Rich&Knight AI Text Book