Transcript PPT

Chương 3
Tri thức và lập luận
Nội dung chính chương 3
I. Logic – ngôn ngữ của tư duy
Lecture 1
Lecture 2
Lecture 3,4
II. Logic mệnh đề (cú pháp, ngữ nghĩa,
sức mạnh biểu diễn, các thuật toán
suy diễn)
III. Prolog (cú pháp, ngữ nghĩa, lập trình
prolog, bài tập và thực hành)
IV. Logic cấp một (cú pháp, ngữ nghĩa,
sức mạnh biểu diễn, các thuật toán
suy diễn)
Lecture 3
First-order logic
• Syntax
• Semantics
CS 561, Session 12-13
3
Why first-order logic?
• We saw that propositional logic is limited because it only
makes the ontological commitment that the world
consists of facts.
• Difficult to represent even simple worlds like the
Wumpus world;
e.g.,
“don’t go forward if the Wumpus is in front of you”
takes 64 rules
CS 561, Session 12-13
4
FOL: Syntax of basic elements – Cú pháp logic cấp 1
• Constant symbols: 1, 5, A, B, USC, JPL, Alex, Manos, …
• Predicate symbols: >, Friend, Student, Colleague, …
• Function symbols: +, sqrt, SchoolOf, TeacherOf, ClassOf, …
• Variables: x, y, z, next, first, last, …
• Connectives: , , , 
• Quantifiers: , 
• Equality: =
Note:
-Ký hiệu viết hoa, thường
ngược với Prolog!
-Các ký hiệu hàm và
lượng từ  không có trong
prolog
CS 561, Session 12-13
Khác nhau giữa hàm và vị từ
there is a correspondence between
• functions, which return values
• predicates, which are true or false
Function: father_of(Mary) = Bill
Predicate: father_of(Mary, Bill)
CS 561, Session 12-13
6
First-Order Logic (FOL)
Syntax – Cú pháp
User defines these primitives (các ký hiệu do
người dùng đinh nghĩa):
• Constant symbols (i.e., the "individuals" in the world)
Mary, 3
• Function symbols (mapping individuals to individuals)
father-of(Mary) = John, color-of(Sky) = Blue
E.g.,
E.g.,
• Predicate symbols (mapping from individuals to truth values)
E.g., greater(5,3), green(Grass), color(Grass, Green)
First-Order Logic (FOL)
Syntax… Cú pháp …
FOL supplies these primitives (các ký hiệu
từ ngôn ngữ logic cấp 1):
• Variable symbols. E.g., x,y
• Connectives. Same as in PL: not (~), and (^), or (v), implies
(=>), if and only if (<=>)

• Quantifiers: Universal ( ) and Existential ( )

Quantifiers – Các lượng từ  và 
• Universal quantification corresponds to conjunction ("and") in that
(x)P(x) means that P holds for all values of x in the domain associated
with that variable.
• E.g.,
(,x) dolphin(x) => mammal(x)
• Existential quantification corresponds to disjunction ("or") in that ( x)P(x)
means that P holds for some value of x in the domain associated with that
variable.
• E.g.,
( x) mammal(x) ^ lays-eggs(x)
• Universal quantifiers are usually used with "implies" to form "if-then
rules."
• E.g., (x) cs15-381-student(x) => smart(x) means "All cs15-381 students are
smart."
• You rarely use universal quantification to make blanket statements about
every individual in the world: (x)cs15-381-student(x) ^ smart(x) meaning
that everyone in the world is a cs15-381 student and is smart.
Quantifiers …
• Existential quantifiers are usually used with "and" to specify a list of
properties or facts about an individual.
• E.g., ( x) cs15-381-student(x) ^ smart(x) means "there is a cs15-381
student who is smart."
• A common mistake is to represent this English sentence as the FOL
sentence: ( x) cs15-381-student(x) => smart(x)
• Switching the order of universal quantifiers does not change the
meaning: (x)(y)P(x,y) is logically equivalent to (y)(x)P(x,y).
Similarly, you can switch the order of existential quantifiers.
• Switching the order of universals and existentials does change
meaning:
• Everyone likes someone: (x)( y)likes(x,y)
• Someone is liked by everyone: ( y)(x)likes(x,y)
FOL: Atomic sentences (Câu đơn)
AtomicSentence  Predicate(Term, …) | Term = Term
Term  Function(Term, …) | Constant | Variable
• Examples:
• SchoolOf(Manos)
• Colleague(TeacherOf(Alex), TeacherOf(Manos))
• >((+ x y), x)
CS 561, Session 12-13
11
FOL: Complex sentences (câu phức)
Sentence  AtomicSentence
| Sentence Connective Sentence
| Quantifier Variable, … Sentence
|  Sentence
| (Sentence)
• Examples:
• S1  S2, S1  S2, (S1  S2)  S3, S1  S2, S1 S3
• Colleague(Paolo, Maja)  Colleague(Maja, Paolo)
Student(Alex, Paolo)  Teacher(Paolo, Alex)
CS 561, Session 12-13
12
Terms and Examples (hạng thức và ví dụ)
• Constants: object constants refer to individuals
• Alan, Sam, R225, R216
• Variables
• PersonX, PersonY, RoomS, RoomT
• Functions
• father_of(PersonX)
• product_of(Number1,Number2)
CS 561, Session 12-13
13
Sentences and examples (Câu và ví dụ)
• Sentences: make claims about objects
• (Well-formed formulas, (wffs))
• Atomic Sentences (predicate expressions):
• loves(John,Mary), brother_of(John,Ted)
• Complex Sentences (Atomic Sentences
connected by booleans):
• loves(John,Mary)
• brother_of(John,Ted)
• teases(Ted, John)
CS 561, Session 12-13
14
Predicates and Quantifiers (vị từ và lượng từ)
• Predicates
• in(Alan,R225)
• partOf(R225,Pender)
• fatherOf(PersonX,PersonY)
• Quantifiers
• x Dog(x) => Mamm(x) (All dogs are mammals.)
• x Bird(x)  Cannotfly(x) (Some birds can’t fly.)
• [(x,y) Bird(x)  Cannotfly(x)  Bird(y)  Cannotfly(y)]  [x≠y] 
[z Bird(z)  Cannotfly(z) => z=x  z=y] (2 birds can’t fly.)
(chú ý ở đây sử dụng ký hiệu “[“ và “]” cho dễ đọc, đúng ra phải
là ký hiệu “(“ và “)” để đúng cú pháp của logic cấp 1.
CS 561, Session 12-13
15
Semantics of atomic sentences (ngữ nghĩa câu đơn)
• Sentences in FOL are interpreted with respect to a model
• Model contains objects and relations among them
• Terms: refer to objects (e.g., Door, Alex, StudentOf(Paolo))
• Constant symbols: refer to objects
• Predicate symbols: refer to relations
• Function symbols: refer to functional Relations
• An atomic sentence predicate(term1, …, termn) is true iff
the relation referred to by predicate holds between the
objects referred to by term1, …, termn
CS 561, Session 12-13
16
Example model (mô hình)
• Objects: John, James, Marry, Alex, Dan, Joe, Anne, Rich
• Relation: sets of tuples of objects
{<John, James>, <Marry, Alex>, <Marry, James>, …}
{<Dan, Joe>, <Anne, Marry>, <Marry, Joe>, …}
• E.g.:
Parent relation -- {<John, James>, <Marry, Alex>, <Marry, James>}
then Parent(John, James) is true
Parent(John, Marry) is false
CS 561, Session 12-13
17
Universal quantification (for all) - Lượng từ phổ quát
 <variables> <sentence>
• “Every one in the cs561 class is smart”:
 x In(cs561, x)  Smart(x)
•  P corresponds to the conjunction of
instantiations of P
In(cs561, Manos)  Smart(Manos) 
In(cs561, Dan)  Smart(Dan) 
…
In(cs561, Clinton)  Smart(Clinton)
CS 561, Session 12-13
18
 thường đi với 
•  is a natural connective to use with 
• Common mistake: to use  in conjunction with 
e.g:  x In(cs561, x)  Smart(x)
means “every one is in cs561 and everyone is smart”
CS 561, Session 12-13
19
Existential quantification (there exists) - Lượng từ tồn
tại
 <variables> <sentence>
• “Someone in the cs561 class is smart”:
 x In(cs561, x)  Smart(x)
•  P corresponds to the disjunction of
instantiations of P
In(cs561, Manos)  Smart(Manos) 
In(cs561, Dan)  Smart(Dan) 
…
In(cs561, Clinton)  Smart(Clinton)
CS 561, Session 12-13
20
 thường đi với 
•  is a natural connective to use with 
• Common mistake: to use  in conjunction with 
e.g:  x In(cs561, x)  Smart(x)
is true if there is anyone that is not in cs561!
(remember, false  true is valid).
CS 561, Session 12-13
21
Properties of quantifiers
Not all by one
person but
each one at
least by one
Proof?
CS 561, Session 12-13
22
Proof
• In general we want to prove:
 x P(x) <=> ¬  x ¬ P(x)
  x P(x) = ¬(¬( x P(x))) = ¬(¬(P(x1) ^ P(x2) ^ … ^
P(xn)) ) = ¬(¬P(x1) v ¬P(x2) v … v ¬P(xn)) )
  x ¬P(x) = ¬P(x1) v ¬P(x2) v … v ¬P(xn)
 ¬ x ¬P(x) = ¬(¬P(x1) v ¬P(x2) v … v ¬P(xn))
CS 561, Session 12-13
23
Example sentences
• Brothers are siblings
.
• Sibling is transitive
.
• One’s mother is one’s sibling’s mother
.
• A first cousin is a child of a parent’s sibling
.
CS 561, Session 12-13
24
Example sentences
• Brothers are siblings
 x, y Brother(x, y)  Sibling(x, y)
• Sibling is transitive
 x, y, z Sibling(x, y)  Sibling(y, z)  Sibling(x, z)
• One’s mother is one’s sibling’s mother
 m, c
Mother(m, c)  Sibling(c, d)  Mother(m, d)
• A first cousin is a child of a parent’s sibling
 c, d FirstCousin(c, d) 
 p, ps Parent(p, d)  Sibling(p, ps)  Parent(ps, c)
CS 561, Session 12-13
25
Translating English to FOL
• Every gardener likes the sun.
 x gardener(x) => likes(x,Sun)
• You can fool some of the people all of the time.
 x  t (person(x) ^ time(t)) => can-fool(x,t)
CS 561, Session 12-13
26
Translating English to FOL
• You can fool all of the people some of the time.
 x  t (person(x) ^ time(t) =>
can-fool(x,t)
• All purple mushrooms are poisonous.
 x (mushroom(x) ^ purple(x)) =>
poisonous(x)
CS 561, Session 12-13
27
Translating English to FOL…
• No purple mushroom is poisonous.
¬( x) purple(x) ^ mushroom(x) ^ poisonous(x)
or, equivalently,
( x) (mushroom(x) ^ purple(x)) =>
¬poisonous(x)
CS 561, Session 12-13
28
Translating English to FOL…
• There are exactly two purple mushrooms.
( x)( y) mushroom(x) ^ purple(x) ^
mushroom(y) ^ purple(y) ^ ¬(x=y) ^ ( z)
(mushroom(z) ^ purple(z)) => ((x=z) v (y=z))
• Deb is not tall.
¬tall(Deb)
CS 561, Session 12-13
29
Translating English to FOL…
• X is above Y if X is on directly on top of Y or else there is a
pile of one or more other objects directly on top of one
another starting with X and ending with Y.
( x)( y) above(x,y) <=> (on(x,y) v ( z)
(on(x,z) ^ above(z,y)))
CS 561, Session 12-13
30
Higher-order logic?
• First-order logic allows us to quantify over objects (=
the first-order entities that exist in the world).
• Higher-order logic also allows quantification over
relations and functions.
e.g., “two objects are equal iff all properties applied to
them are equivalent”:
 x,y (x=y)  ( p, p(x)  p(y))
• Higher-order logics are more expressive than first-order;
however, so far we have little understanding on how to
effectively reason with
sentences
CS 561,
Session 12-13in higher-order logic. 31