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