ai-apoc, chapter 08, fol

80
Chapter 08 Predicate Logic Instructor LE Thanh Sach, Ph.D.

Upload: dineshvashist

Post on 12-Nov-2014

59 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ai-Apoc, Chapter 08, Fol

Chapter 08Predicate Logic

Instructor

LE Thanh Sach, Ph.D.

Page 2: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 2

Instructor’s InformationLE Thanh Sach, Ph.D.Office:

Department of Computer Science,

Faculty of Computer Science and Engineering,

HoChiMinh City University of Technology.

Office Address:

268 LyThuongKiet Str., Dist. 10, HoChiMinh City, Vietnam.

E-mail: [email protected]

E-home: http://cse.hcmut.edu.vn/~ltsach/

Tel: (+84) 83-864-7256 (Ext: 5839)

Page 3: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 3

AcknowledgmentThe slides in this PPT file are composed using the materials supplied by�Prof. Stuart Russell and Peter Norvig: They are currently from University of California, Berkeley. They are also the author of the book “Artificial Intelligence: A Modern Approach”, which is used as the textbook for the course

�Prof. Tom Lenaerts, from Université Libre de Bruxelles

Page 4: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 4

Outline�Why FOL?

�Syntax and semantics of FOL

�Using FOL

�Wumpus world in FOL

�Knowledge engineering in FOL

Page 5: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 5

Why FOL?Pros and cons of propositional logic

☺ Propositional logic is declarative ☺ Propositional logic allows partial/disjunctive/negated information

� (unlike most data structures and databases)

☺ Propositional logic is compositional :� meaning of B1,1 ∧ P1,2 is derived from meaning of B1,1 and of P1,2

☺ Meaning in propositional logic is context- independent� (unlike natural language, where meaning depends on context)

� Propositional logic has very limited expressive power� (unlike natural language)� E.g., cannot say "pits cause breezes in adjacent squares“

� except by writing one sentence for each square

Page 6: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 6

Why FOL?First-order logic

�Whereas propositional logic assumes the world contains facts,

�first-order logic (like natural language) assumes the world contains

�Objects: people, houses, numbers, colors, baseball games, wars, …

�Relations: red, round, prime, brother of, bigger than, part of, comes between, …

�Functions: father of, best friend, one more than, plus, …

Page 7: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 7

Prepositional Logic: Examples

MORTALMANAll men are mortal

PLATOMANPlato is a man

SOCRATESMANSocrates is a man

Sentence in Prepositional LogicSentence in natural language

Disadvantages:1. Socrates and Plato are human, but the representa tion is not similar2. Can not state that each person is mortal���� Difficult for reasoning.

Page 8: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 8

Predicate Logic: Examples

∀X (man(X) � mortal(X))All men are mortal

man(plato)Plato is a man

man(socrates)Socrates is a man

Sentence in Predicate LogicSentence in natural language

� Using predicate logic

Page 9: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 9

Predicate Logic: Examples

�Ability of reasoning

All men are mortalSocrates is mortal

Socrates is a man

ConclusionSentence in natural language

∀X (man(X) � mortal(X))mortal(socrates)

man(socrates)

ConclusionSentence in Predicate Logic

Page 10: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 10

Predicate Logic: Examples

1,3, MPmortal(socrates)4.

man(socrates)�mortal(socrates)

∀X (man(X) � mortal(X))

man(socrates)

Representation

2, X= “socrates”, UI3

Axiom2.

Axiom1.

Rule#

Socrates is mortal.

Backward mapping (to natural language)

Page 11: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 11

Syntax of FOL: Basic elements� Constants:

� KingJohn, 2, NUS,...

� Predicates :� Brother, >,...

� Functions:� Sqrt, LeftLegOf,...

� Variables:� x, y, a, b,...

� Connectives:� ¬, ⇒, ∧, ∨, ⇔

� Equality:� =

� Quantifiers:� Universal Quantifier: ∀� Existential Quantifier: ∃

Page 12: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 12

Atomic sentencesTerm : function (term1,...,termn)

or constant or variable

Atomic sentence: predicate (term1,...,termn) or term1 = term2

� E.g., � Brother(KingJohn,RichardTheLionheart)

� > (Length(LeftLegOf(Richard)), Length(LeftLegOf(KingJohn)))

Page 13: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 13

Complex sentences� Complex sentences are made from atomic sentences using

connectives, examples:� ¬S � S1 ∧ S2� S1 ∨ S2� S1 ⇒ S2� S1 ⇔ S2

E.g. Sibling(KingJohn,Richard) ⇒ Sibling(Richard,KingJohn)

>(1,2) ∨ ≤ (1,2)

>(1,2) ∧ ¬ >(1,2)

Page 14: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 14

Truth in first-order logic� Sentences are true with respect to a modeland an interpretation

� Model contains objects (domain elements ) and relations among them

� Interpretation specifies referents forconstant symbols → objects predicate symbols → relations function symbols → functional relations

� An atomic sentence predicate(term1,...,termn) is trueiff the objects referred to by term1,...,termn

are in the relationreferred to by predicate

Page 15: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 15

Universal quantification� ∀<variables> <sentence >

Everyone at NUS is smart:∀x At(x,NUS) ⇒ Smart(x )

� ∀x P is true in a model m iff P is true with x being each possible object in the model

� Roughly speaking, equivalent to the conjunctionof instantiationsof P

At(KingJohn,NUS) ⇒ Smart(KingJohn) ∧ At(Richard,NUS) ⇒ Smart(Richard) ∧ At(NUS,NUS) ⇒ Smart(NUS) ∧ ...

Page 16: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 16

A common mistake to avoid� Typically, ⇒ is the main connective with ∀

� Common mistake: using ∧ as the main connective with ∀:∀x At(x,NUS) ∧ Smart(x)

means “Everyone is at NUS and everyone is smart”

Page 17: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 17

Existential quantification� ∃<variables> <sentence>

� Someone at NUS is smart:� ∃x At(x,NUS) ∧ Smart(x )$

� ∃x P is true in a model m iff P is true with x being some possible object in the model

� Roughly speaking, equivalent to the disjunctionof instantiationsof P

At(KingJohn,NUS) ∧ Smart(KingJohn) ∨ At(Richard,NUS) ∧ Smart(Richard) ∨ At(NUS,NUS) ∧ Smart(NUS) ∨ ...

Page 18: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 18

Another common mistake to avoid� Typically, ∧ is the main connective with ∃

� Common mistake: using ⇒ as the main connective with ∃ :

∃x At(x,NUS) ⇒ Smart(x )

is true if there is anyone who is not at NUS!

Page 19: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 19

Properties of quantifiers� ∀x ∀y is the same as ∀y ∀x

� ∃x ∃y is the same as ∃y ∃x

� ∃x ∀y is not the same as ∀y ∃x

� ∃x ∀y Loves(x,y)� “There is a person who loves everyone in the world”

� ∀y ∃x Loves(x,y)� “Everyone in the world is loved by at least one person”

� Quantifier duality : each can be expressed using the other� ∀x Likes(x,IceCream) ¬∃x ¬Likes(x,IceCream )� ∃x Likes(x,Broccoli) ¬∀x ¬Likes(x,Broccoli )

Page 20: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 20

Equality� term1 = term2 is true under a given interpretation if and

only if term1 and term2 refer to the same object

� E.g., definition of Sibling in terms of Parent :∀x,y Sibling(x,y) ⇔ [¬(x = y) ∧ ∃m,f ¬ (m = f) ∧ Parent(m,x)

∧ Parent(f,x) ∧ Parent(m,y) ∧ Parent(f,y)]

Page 21: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 21

Using FOL The kinship domain:

� Brothers are siblings∀x,y Brother(x,y) ⇔ Sibling(x,y)

� One's mother is one's female parent∀m,c Mother(c) = m ⇔ (Female(m) ∧ Parent(m,c))

� “Sibling” is symmetric∀x,y Sibling(x,y) ⇔ Sibling(y,x)

Page 22: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 22

Predicate Logic: Representation

� Representing the following sentences in Predicate Logic:

1. Marcus was a man.

2. Macus was a Pompeian.

3. All Pompians were Romans.

4. Caesar was a ruler.

5. All Romans were either loyal to Caesar or hated hime.

6. Everyone is loyal to someone.

7. People only try to assassinate rulers they are not loyal to.

8. Marcus tried to assassinate Caesar.

Page 23: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 23

Predicate Logic: Representation1. Marcus was a man.

man(Marcus)

2. Macus was a Pompeian.

Pompeian(Marcus)

3. All Pompeians were Romans.

∀X: Pompeian(X) � Roman(X)

4. Caesar was a ruler.

ruler(Caesar)

Page 24: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 24

Predicate Logic: Representation5. All Romans were either loyal to Caesar or hated hime.

“or” mean “inclusive or” - OR:

∀X: Roman(X) � loyalto(X, Caesar) v hate(X, Caesar)

“or” mean “exclusive or” - XOR:

∀X: Roman(X) � [ (loyalto(X, Caesar) v hate(X, Caesar)) ^

¬(loyalto(X, Caesar) ^ hate(X, Caesar))]

or:

∀X: Roman(X) � [ (loyalto(X, Caesar) ^ ¬hate(X, Caesar)) v

(¬loyalto(X, Caesar) ^ hate(X, Caesar))]

Page 25: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 25

Predicate Logic: Representation

6. Everyone is loyal to someone.

∀X: ∃Y: loyalto(X,Y).

7. People only try to assassinate rulers they are not loyal to.

∀X: ∀Y: person(X) ^ ruler(Y) ^ tryassassinate(X,Y) �¬loyalto(X,Y)

Page 26: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 26

Predicate Logic: Representation

8. Marcus tried to assassinate Caesar.

tryassassinate(Marcus, Caesar).

Page 27: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 27

Predicate Logic: Representation

� Given the above sentences, can we make a conclusion as follows:

“Marcus was not loyal to Caesar ?”

or:

¬loyalto(Marcus,Caesar)

Page 28: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 28

Predicate Logic: Proof¬loyalto(Marcus,Caesar)

person(Marcus) ruler(Caesar) tryassassinate(Marcus, Caesar)

(7, Substitute)

(4) (8)

?

(Rule: What?)

Add an implicit sentence:9. “All men are people”

or:

∀∀∀∀X: man(X) ���� X: man(X) ���� person(X)

Page 29: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 29

Predicate Logic: Proof¬loyalto(Marcus,Caesar)

person(Marcus) ruler(Caesar) tryassassinate(Marcus, Caesar)

(7, Substitute)

(4) (8)(9, Substitute)

man(Marcus)

(1)

Page 30: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 30

Predicate Logic: Exception

� How to represent exceptions, example ?

“Paulus was a Pompeian. Paulus was neither loyal nor hated Caesar”

Page 31: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 31

Predicate Logic: Exception

� Exception representation:� Semantic Net: Simple!, by adding links

(properties) to subclasses or instances.

� Predicate Logic: Not so simple!, like

Pompeian(Paulus) ^ ¬[loyalto(Paulus, Caesar) v hate(Pualus, Caesar)]

Page 32: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 32

Predicate Logic: Exception

� Exception representation:Not so simple Because there is conflict between:

Pompeian(Paulus) ^ ¬[loyalto(Paulus, Caesar) v hate(Pualus, Caesar)]

and

∀X: Pompeian(X) � loyalto(X, Caesar) v hate(X, Caesar)

Page 33: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 33

Predicate Logic: Exception

� Exception representation:� A Better way:

∀X: Roman(X) ^ ¬eq(X, Paulus)� loyalto(X, Caesar) v hate(X, Caesar

Exception

Page 34: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 34

Predicate Logic: Function + Computable Predicate

� In the case of describing relations between numbers, example:

� 1 < 2� 2 <3� 7 > 3 +2,� 3 > 1� ….

⇒ Should not explicitly describe:lt(1,2), lt(2,3), …

Page 35: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 35

Predicate Logic: Function + Computable Predicate

⇒ Need functions and computable predicates.

⇒ For example,� Call a function to compute (3+2)� Pass the result to the predicate “gt”: gt(7, 3+2)� Get the final result (True)

Page 36: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 36

Predicate Logic: Function + Computable Predicate, Example

� Facts:1. Marcus was a man.

man(Marcus)

2. Marcus was a Pompeian.

Pompeian(Marcus)

3. Marcus was born in 40 A.D

born(Marcus,40)

4. All men are mortal.

∀X: man(X) � mortal(X)

Page 37: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 37

Predicate Logic: Function + Computable Predicate, Example

� Facts:5. All Pompeian died when the vocano erupted in 79 AD.

erupted(vocano, 79) ^ ∀X: [Pompeian(X) � died(X, 79)]

6. No mortal lives longer then 150 years.

∀X: ∀T1: ∀T2 : mortal(X) ^ born(X, T1) ^ gt(T2 – T1, 150) � dead(X, T2)

7. It is now 1991

now = 1991

Page 38: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 38

Predicate Logic: Function + Computable Predicate, Example

� Question:Is Marcus alive?

Or

alive(Marcus, now)or¬¬¬¬alive(Marcus, now)

Page 39: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 39

Predicate Logic: Function + Computable Predicate, Example

� Add implicit knowledge:

� Relation between “dead” and “alive”

8. Alive means not dead.

∀X: ∀T: [alive(X,T) � ¬dead(X,T)] ^ [¬dead(X,T) � alive(X,T)]

Page 40: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 40

Predicate Logic: Function + Computable Predicate, Example

� Add implicit knowledge:� Time properties of an event, for example “dead”

9. Is someone dies, the he is dead at all later times

∀X: ∀T1: ∀T2: died(X,T1) ^ gt(T2, T1) � dead(X, T2)

Page 41: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 41

Predicate Logic: Function + Computable Predicate, Example

� Summary of facts:1. man(Marcus)

2. Pompeian(Marcus)

3. born(Marcus, 40)

4. ∀X: man(X) � mortal(X)

5. ∀X: Pompeian(X) � died(X, 79)

6. erupted(volcano, 79)

7. ∀X: ∀T1: ∀T2 : mortal(X) ^ born(X, T1) ^ gt(T2 – T1, 150) � dead(X, T2)

8. now = 1991

9. ∀X: ∀T: [alive(X,T) � ¬dead(X,T)] ^ [¬dead(X,T) � alive(X,T)]

10. ∀X: ∀T1: ∀T2: died(X,T1) ^ gt(T2, T1) � dead(X, T2)

Page 42: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 42

¬alive(Marcus, now)

dead(Marcus, now)

(9, Substitute)

died(Marcus, T1) gt(now, T1)

(10, Substitute)

Pompeian(Marcus) gt(now, 79)

(5, Substitute)(5, Substitute)

(2)gt(1991, 79)

(8, Substitute)

(computation)

*s*s

Page 43: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 43

Universal instantiation (UI)� Every instantiation of a universally quantified sentence is enta iled by it:

∀v α

Subst({v/g}, α)

for any variable v and ground term g

� E.g., ∀x King(x) ∧ Greedy(x) ⇒ Evil(x ) yields:King(John) ∧ Greedy(John) ⇒ Evil(John)

King(Richard) ∧ Greedy(Richard) ⇒ Evil(Richard)

King(Father(John)) ∧ Greedy(Father(John)) ⇒ Evil(Father(John))

.

.

.

Page 44: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 44

Existential instantiation (EI)� For any sentence α, variable v, and constant symbol k that

does not appear elsewhere in the knowledge base:∃v α

Subst({v/k}, α )

� E.g., ∃x Crown(x) ∧ OnHead(x,John) yields:

Crown(C1) ∧ OnHead(C1,John )

provided C1 is a new constant symbol, called a Skolemconstant

Page 45: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 45

Reduction to propositional inference Suppose the KB contains just the following:

∀x King(x) ∧ Greedy(x) ⇒ Evil(x)King(John)Greedy(John)Brother(Richard,John)

� Instantiating the universal sentence in all possibleways, we have:King(John) ∧ Greedy(John) ⇒ Evil(John)King(Richard) ∧ Greedy(Richard) ⇒ Evil(Richard)King(John)Greedy(John)Brother(Richard,John )

� The new KB is propositionalized : proposition symbols are

King(John), Greedy(John), Evil(John), King(Richard ), etc.

Page 46: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 46

Reduction contd.� Every FOL KB can be propositionalized so as to preserve entailment

� (A ground sentence is entailed by new KB iff entailed by original KB)

� Idea: propositionalize KB and query, apply resolution, return result

� Problem: with function symbols, there are infinitely many groundterms,� e.g., Father(Father(Father(John )))

Page 47: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 47

Resolution

� Convert to clause form, example:

“All Romans who know Marcus either hate Caesar or think that anyone who hates anyone is crazy”

∀X: [roman(X) ^ know(X, Marcus)] �

[hate(X, Ceasar) v

(∀Y: ∃Z: hate(Y,Z) �thinkcrazy(X,Y))]

Page 48: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 48

Resolution

1. Remove �using the equivalence: a � b = ¬a v b

Page 49: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 49

Resolution

1. Remove �using the equivalence: a � b = ¬a v b

∀X: [roman(X) ^ know(X, Marcus)] �

[hate(X, Ceasar) v

(∀Y: ∃Z: hate(Y,Z) � thinkcrazy(X,Y))]

=

∀X: ¬[roman(X) ^ know(X, Marcus)] v

[hate(X, Ceasar) v

(∀Y: ¬(∃Z: hate(Y,Z)) v thinkcrazy(X,Y))]

Page 50: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 50

Resolution

2. Move ¬ next to terms:Using the following equivalence:a. Double negative:

¬(¬p) = pb. DeMorgan:

¬(a v b) = ¬a ^ ¬b¬(a ^ b) = ¬a v ¬b

c. Equivalence of qualifiers :¬∀X: P(X) = ∃X: ¬P(X)¬∃X: P(X) = ∀X: ¬P(X)

Page 51: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 51

Resolution

2. Move ¬ next to terms:

∀X: ¬[roman(X) ^ know(X, Marcus)] v

[hate(X, Ceasar) v

(∀Y: ¬(∃Z: hate(Y,Z)) v thinkcrazy(X,Y))]

=

∀X: [¬roman(X) v ¬know(X, Marcus)]v

[hate(X, Ceasar) v

(∀Y: ∀Z: ¬hate(Y,Z) vthinkcrazy(X,Y))]

Page 52: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 52

Resolution

3. Change name of variables as follows:

∀X: P(X) v ∀X: Q(X)

=

∀X: P(X) v ∀Y: Q(Y)

Page 53: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 53

Resolution

4. Move qualifier to left, don’t change the their order

∀X: [¬roman(X) v ¬know(X, Marcus)]v

[hate(X, Ceasar) v

(∀Y: ∀Z: ¬hate(Y,Z) vthinkcrazy(X,Y))]

=

∀X:∀Y:∀Z: [¬roman(X) v ¬know(X, Marcus)] v

[hate(X, Ceasar) v

(¬hate(Y,Z) v thinkcrazy(X,Y))]

Page 54: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 54

Resolution

5. Replace existence qualifier using Skolemfunction, as follows:

Skolem Function:

∀X: ∀Y: ∃Z : P(X,Y,Z)

=

∀X: ∀Y: P(X,Y,f(X,Y))� Variable of existence qualifier = function of all

the preceding variables in the every qualifier

Page 55: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 55

Resolution

6. Remove every qualifiers (the default qualifier is every)

∀X:∀Y:∀Z: [¬roman(X) v ¬know(X, Marcus)] v

[hate(X, Ceasar) v

(¬hate(Y,Z) v thinkcrazy(X,Y))]

=[¬roman(X) v ¬know(X, Marcus)] v

[hate(X, Ceasar) v

(¬hate(Y,Z) v thinkcrazy(X,Y))]

Page 56: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 56

Resolution

7. Convert to CNF.

Using distribution rule of v and ̂

Examples:

(a ^ b) v c = (a v c) ^ (b v c)

(a ^ b) v (c ^ d) = (a v c) ^ (a v d) ^ (b v c) ^ (b v d)

Page 57: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 57

Resolution

7. Convert to CNF.

[¬roman(X) v ¬know(X, Marcus)] v

[hate(X, Ceasar) v

(¬hate(Y,Z) v thinkcrazy(X,Y))]

=

¬roman(X) v ¬know(X, Marcus) v

hate(X, Ceasar) v ¬hate(Y,Z) v thinkcrazy(X,Y)

Page 58: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 58

Resolution

8. Separate clauses.� If having the clause form:

(a v ¬b) ^ (¬a v c v d) ^ (a v ¬c v e)

Then:

1. (a v ¬b)

2. (¬a v c v d)

3. (a v ¬c v e)

Page 59: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 59

Resolution

9. Add every qualifier to clause:

That is:

(∀X: P(X) ^ Q(X) )

=

∀X: P(X) ^ ∀X: Q(X)

Page 60: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 60

Resolution

Exercises:

� Convert to clause form for sentences in previous example.

� Convert to clause form for:

1. ∀X A(X) v ∃X B(X) � ∀XC(X) ^ ∃X D(X)

2. ∀X (p(X) v q(X)) � ∀X p(X) v ∀X q(X)

3. ∃X p(X) ^ ∃X q(X) �∃X(p(X) ^ q(X))

4. ∀X ∃Y p(X,Y) � ∃Y ∀X p(X,Y)

5. ∀X (p(X, f(X)) � p(X,Y))

Page 61: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 61

Substitution and Unification

� X: Variable, t: term.� x/t: value of x will be t OR x is replaced by t.

� A substitution = {x1/t1, x2/t2, .., xn/tn}

� Empty substitution: ε

� E: Predicate expression

� θ: A substitution.

Page 62: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 62

Substitution and Unification

� θ: A substitution.� Eθ: Apply θ to E.

� Example: E = p(X,Y,f(X)),θ = {X/a, y/f(b)}Then: Eθ = p(a, f(b), f(a))

� Union ofθ andδ� E is a expression then:

E(θδ) = (Eθ)δ

Page 63: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 63

Substitution and Unification

� Union ofθ andδ:� θ = {x1/t1, x2/t2, .., xn/tn}

� δ = {y1/s1, y2/s2, .., yn/sn}

� θδ is calculated as follows:

Page 64: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 64

Substitution and Unification

� Union ofθ andδ:� θδ is calculated as follows:

1. Apply δ to denominator of θ: {x1/t1δ, x2/t2δ, .., xn/tnδ}

2. Remove all the form: xi/xi from 1.

3. Remove from δ the form: yi/siif yi ∈ {x1,x2, .., xn}

4. θδ = union( line 2 and 3)

Page 65: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 65

Substitution and Unification

� Union ofθ andδ:� θ , δ : substitution.

� ε : empty substitution.

� E: Expression.

� Properties:

1. E(θδ) = (Eθ)δ.

2. Eε = E

3. θε = εθ = θ

Page 66: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 66

Substitution and Unification

� Unification:� If θ The most general unifier of S containing

expression, then: Sθ is a set having single element.

Page 67: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 67

Substitution and Unification

� mgu: most general unifier

� S: set of expressions.

� θ: mgu of S if:� Given any unifier δ of S then.� ∃ α such that:δ = θα

Page 68: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 68

Substitution and Unification

� Dis-set:� S: Set of expressions.

� Find the common longest substring from the begining of each expression in S.

� Dis-set = set of right next term in all the expressions.

Page 69: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 69

Substitution and Unification

� Dis-set:� Example:

S = {p(X, f(X), y), p(X,Y,Z), p(X, f(a), b)}

� Common longest substring = “p(X,”

� Dis-set = {f(X), Y, f(a)}

Page 70: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 70

Substitution and Unification� Unification algorithm:

� Input: S = {atoms}

� Output: mgu(S) or not unifiable(S).

1. Set K =0 and θ0 = ε. Goto 2

2. Compute Sθk .If it is a set having single element� stop: mgu = θk.Else Dk = dis-set(Sθk). Goto 3.

3. If Dk contains variable V and a term t,and V is not in term t, Then compute θk+1 = θk {V/t} , set K = K + 1. Goto 2.

Page 71: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 71

Substitution and Unification

� Clause’s properties:1. There is no common variable between two

clauses.

2. There exist one or many atoms: L1, L2, .., Lk in a clause, one or many literals ¬M1, ¬M2, .., ¬Mn in another clause so that there is a mgu for set {L1, L2, .., Lk , M1, M2, .., Mn }

Page 72: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 72

Substitution and Unification

� Resolution rule:.

N) - (D vN) - (C

D vM v... v

C vL v... v

n1

k1

¬∴¬¬

θθM

L

N = Liθ

= Mjθ

Page 73: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 73

Substitution and Unification

� Resolution rule:1. Verify the difference of variable name between

two clauses.

2. Find mgu, θ, for: {L1, L2, .., Lk , M1, M2, .., Mn }

3. Apply θ into C và D.

4. Compute: N = L1θ

5. Remove N from Cθ

6. Remove ¬N from Dθ7. Compute union of 5 and 6, and result resovant.

Page 74: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 74

Substitution and Unification

� Resolution rule:

� Properties of resolvants:

E, F are two clauses.

G is their resolvant.

{E,F} is unsatisfiable if and only if {E,F,G} is unsatisfiable.

Page 75: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 75

Substitution and Unification

� Proof with resolution rule:� Set of expression F

� Prove: P

� Procedure:

1. Convert F into clauses.

2. Take ¬P, convert ¬P into clauses. Add to result of Step 1.

3. Apply resolution rule to produce empty set, i.e., find a contradiction.

Page 76: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 76

Substitution and Unification

� Example:

Tryassassinate(Marcus, Caesar)8

¬man(X4) v ¬ruler(Y1) v ¬tryassassinate(X4, Y1) v loyalto(X4, Y1)7

Loyalto(X3, f1(X3))6

¬Roman(X2) v loyalto(X2, Caesar) v hate(X2, Caesar)5

Ruler(Caesar)4

¬Pompiean(X1) v Roman(X1)3

Pompiean(Marcus)2

man(Marcus)1

ClausesSTT

Prove: “Marcus hate Caesar.” orhate(Marcus, Ceasar).

Page 77: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 77

3,10: X1 = Marcus¬Pompiean(Marcus) v loyalto(Marcus, Caesar) 11

Pman(Marcus)1

PPompiean(Marcus)2

P¬Pompiean(X1) v Roman(X1)3

PRuler(Caesar)4

P¬Roman(X2) v loyalto(X2, Caesar) v hate(X2, Caesar)5

PLoyalto(X3, f1(X3))6

P¬man(X4) v ¬ruler(Y1) v ¬tryassassinate(X4, Y1) v ¬loyalto(X4, Y1)

7

PTryassassinate(Marcus, Caesar)8

P¬hate(Marcua, Ceasar).9

5,9: X2= Marcus¬Roman(Marcus) v loyalto(Marcus, Caesar) 10

NoteClauses#

Proof

Page 78: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 78

15,8□16

14,4¬tryassassinate(Marcus, Ceasar) 15

13,1¬ruler(Ceasar) v ¬tryassassinate(Marcus, Ceasar)

14

12,7:X4=Marcus, y1=Ceasar¬man(Marcus) v ¬ruler(Ceasar) v ¬tryassassinate(Marcus, Ceasar)

13

2,11:loyalto(Marcus, Ceasar)12

Ghi chúClausesSTT

Proof

Page 79: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 79

Prove: ¬alive(Marcus, now) from the previous examp le.

Homeworks

Page 80: Ai-Apoc, Chapter 08, Fol

Artificial Intelligence: Predicate Logic Slide: 80

Exercises�You know:

�All people living in PMH are rich.

�Rich people have much money

�People who work only in government sector (or called government staff) do not have much money.

� An is a government staff

�Prove:� An does not live in PMH.