งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Knowledge Representation

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Knowledge Representation"— ใบสำเนางานนำเสนอ:

1 Knowledge Representation

2 องค์ความรู้ (Knowledge)
องค์ความรู้ เกิดจากการรวบรวมข้อมูลเพื่อนำมาแปลงสภาพก่อนนำไปใช้ประโยชน์ องค์ความรู้สามารถนำมาใช้ใน AI เพื่อช่วยในการแก้ปัญหาได้ จำเป็นต้องใช้เครื่องมือหรือวิธีการบางอย่างเพื่อจะนำองค์ความรู้ที่มีอยู่หลายรูปแบบมาเก็บใน ฐานองค์ความรู้ (Knowledge based (KB)) กระบวนการที่ทำให้ AI สามารถเข้าใจถึงองค์ความรู้ได้ เรียกว่า การแทนองค์ความรู้ (Knowledge representation) ศาสตร์สำคัญที่ใช้ในการแทนองค์ความรู้คือ ตรรกศาสตร์ (Logic)

3 นำไปใช้แก้ปัญหาต่างๆ
องค์ความรู้ (2) องค์ความรู้เป็นส่วนสำคัญใน AI สามารถนำไปใช้เป็นข้อมูลเพื่อคิดหรือตัดสินใจ ซึ่งมีคำสำคัญดังนี้ ข้อมูล (Data) คือ ข้อเท็จจริงเกี่ยวกับสิ่งต่างๆ ที่ยังไม่ถูกประมวลผลซึ่งอาจเก็บอยู่ในรูปของตัวเลข ข้อความ หรือสื่ออื่นๆ ข้อมูลที่ดีควรจะถูกต้อง สมบูรณ์ และน่าเชื่อถือ สารสนเทศ (Information) คือ ข้อมูลที่ผ่านการประมวลผลและถูกจัดการให้มีความถูกต้องและทันสมัย ข้อมูลเหล่านี้จะอยู่เก็บให้เหมาะสมกับงาน องค์ความรู้ (Knowledge) คือ สารสนเทศที่ผ่านการคัดเลือก เพื่อนำมาใช้ในการแก้ปัญหาในสถานการณ์ต่างๆ ตามความต้องการได้อย่างมีประสิทธิภาพ การประมวลผล สารสนเทศ ข้อมูล นำไปใช้แก้ปัญหาต่างๆ กระบวนการคัดเลือก องค์ความรู้

4 ตรรกสัญลักษณ์ ตรรกสัญลักษณ์ (Symbolic logic) แบ่งได้ 2 ประเภท
ตรรกะที่ว่าด้วยประพจน์ (Propositional Logic) เป็นตรรกศาสตร์ที่ว่าด้วยการทดสอบประโยคหรือเนื้อหา ที่เรียกว่า ประพจน์ เพื่อหาข้อเท็จจริงหรือความสมเหตุสมผลของประพจน์ลักษณะต่างๆ ทั้งที่เป็นประพจน์เชิงเดี่ยว และ ประพจน์เชิงซ้อน ตรรกะที่ว่าด้วยภาคขยาย (Predicate Logic) เป็นตรรกศาสตร์ที่ทดสอบประโยคกล่าวอ้างที่เกี่ยวข้องกับประโยคทั่วไป และ ประพจน์เชิงเดี่ยว เพื่อหาความสมเหตุสมผลของประโยคกล่าวอ้าง

5 Propositional Logic ประพจน์ คือ ประโยคที่มีเหตุผลและพิจารณาได้ว่าเป็นจริงหรือเท็จ มีกฎ 3 ข้อ ประพจน์ต้องเป็นจริงหรือเท็จเท่านั้น กรุงเทพเป็นเมืองหลวงของประเทศไทย (ประพจน์เป็นจริง) ประพจน์จะเป็นจริงหรือเท็จพร้อมกันไม่ได้ กรุงเทพเป็นเมืองหลวงของประเทศไทยตั้งอยู่ที่ภาคเหนือ ประพจน์เชิงซ้อน จะหาค่าความจริงโดยรวม ประเทศไทยอยู่ในทวีปเอเซียมีกรุงเทพเป็นเมืองหลวง

6 ข้อจำกัดของ Propositional Logic
ทบทวน Propositional Logic เป็นการแทนประโยคด้วยสัญลักษณ์ เช่น สมชายเป็นคน (P) สมปองเป็นคน (Q) สมหญิงเป็นคน (R) จะเห็นได้ว่าจะต้องใช้สัญลักษณ์ 1 ตัวเพื่อแทนประโยค 1 ประโยคไม่สามารถจะเข้าถึงค่าที่มีคุณลักษณ์เหมือนกันเฉพาะตัวได้ Predicate calculus (Predicate Logic) สามารถที่จะทำให้ประโยคที่มีคุณลักษณะเหมือนกันเข้าถึงค่าเฉพาะแต่ละตัวได้ Human(สมชาย), Human(สมปอง), Human(สมหญิง) Human( ) เรียกว่า Predicate

7 Tanasanee Phienthrakul

8 Tanasanee Phienthrakul

9 Tanasanee Phienthrakul

10 Tanasanee Phienthrakul

11 Tanasanee Phienthrakul

12 Predicate Logic บางครั้งเรียกว่า Predicate Calculus
เป็นกระบวนการตรรกะที่มีความซับซ้อนกว่า Propositional Logic แต่มีการอนุมานเพื่อให้ได้ค่าความจริงใหม่จากค่าความจริงที่มีอยู่แล้ว องค์ประกอบพื้นฐานของ Predicate Logic จะประกอบด้วย ตัวอักษร (Alphabet) ส่วนแสดงความสัมพันธ์ (Predicate) ตัวเชื่อม (Connective) ตัวบ่งปริมาณ (Quantifier)

13 Predicate Logic : ตัวอักษร
ค่าคงที่ (Constant) เป็นค่าที่ใช้บอกถึงความหมายที่ชัดเจนแน่นอน เช่น GARFIELD แทนความหมายของแมว SURASAK แทนความหมายของคน เพศชาย ตัวแปร (Variable) คือ การระบุถึงความหมายในภาพรวม ไม่เฉพาะเจาะจง cat หมายถึงสัตว์ที่เป็นแมว แต่ไม่ได้ระบุถึงพันธุ์ father หมายถึงพ่อคน แต่ไม่ได้ระบุว่าพ่อใคร ฟังก์ชัน (Function) คือส่วนที่ใช้ในการบ่งบอกโดเมนขององค์ประกอบ cat(GARFIELD) เป็นฟังก์ชันสำหรับหาว่า GARFIELD เป็นแมวพันธุ์อะไร father(SURASAK) เป็นฟังก์ชันสำหรับหาว่าพ่อของ SURASAK คือใคร

14 Predicate Logic : ส่วนแสดงความสัมพันธ์
เป็นส่วนที่ใช้แสดงความสัมพันธ์ระหว่างองค์ประกอบ ซึ่งจะช่วยขยายความเข้าใจในค่าที่แสดงว่ามีความสัมพันธ์กันอย่างไร เช่น MAN(SURASAK) SURASAK เป็นผู้ชาย LIKES(BOB, PUI) BOB ชอบ PUI OLDER(SURASAK, father(CHAI)) SURASAK แก่กว่าพ่อของ CHAI

15 Predicate Logic : ตัวเชื่อม
นิเสธ () ทำให้กลับค่าความจริง และ () เช่น บ๊อบหล่อและนิสัยดี เขียนได้เป็น HANDSOME(BOB)  NICE(BOB) หรือ () เช่น กรแก่กว่าบ๊อบหรือส้ม OLDER(KORN, BOB)  OLDER(KORN, SOM) ถ้า ... แล้ว () เช่น ถ้าบ๊อบดำแล้วบ๊อบจะหล่อ BLACK(BOB)  HANDSOME(BOB) ก็ต่อเมื่อ () เช่น บ๊อบจะบวชก็ต่อเมื่ออายุ 25 ปี MONK(BOB)  AGE25(BOB)

16 Predicate Logic : ตัวบ่งปริมาณ
เป็น ค่าที่ใช้ชี้วัดปริมาณของประโยค เพื่อใช้ในการบ่งชี้ถึงจำนวนหรือขนาด ใน Predicate Logic ทำให้เกิด First Order Logic มีอยู่ 2 ประเภทคือ ตัวบ่งปริมาณสากล(Universal Quantifier) บางครั้งเรียก “For All” จะใช้เครื่องหมาย  จะเป็นจริงเมื่อทุกค่าเป็นจริง คนไทยจะเลือกตั้งได้ตอนอายุ 18 ปี x(THAI18(x)  VOTE(x)) ตัวบ่งปริมาณบางส่วน(Existential Quantifier) บางครั้งเรียก “For Some” จะใช้เครื่องหมาย  จะเป็นจริงถ้าค่าบางค่าเป็นจริง คนบางคนเล่น facebook และ twitter x(FACEBOOK(x)  TWITTER(x))

17 ค่าควรระวังในการใช้ Quantifier
ปกติการใช้  ประโยคหลักจะเชื่อมกันด้วย  ไม่ใช่  ตัวอย่าง : นักศึกษาทุกคนที่เรียน ECT จะเก่ง x( At(x, ECT)  smart(x) ) ผิดเพราะจะหมายความว่า “ทุกคนที่เรียน ECT และ ทุกคนเก่ง” x( At(x, ECT)  smart(x) ) ถูก ปกติการใช้  ประโยคหลักจะเชื่อมกันด้วย  ไม่ใช่  ตัวอย่าง : นักศึกษาบางคนที่เรียน ECT จะเก่ง x( At(x, ECT)  smart(x) ) ผิดเพราะประโยคสามารถเป็นจริงได้ ถึงคนที่เก่งจะไม่เรียน ECT x( At(x, ECT)  smart(x) ) ถูก

18 ความสัมพันธ์ของ  และ 
x P(x)  x P(x) x P(x)  x P(x) x P(x)  x P(x) x P(x)  x P(x) ตัวอย่าง : ทุกคนชอบไอศครีม x Loves(x, ICE-CREAM) สามารถเขียนได้อีกอย่าง x  Loves(x, ICE-CREAM)

19 Nested Quantifier บางครั้งความต้องการที่จะแสดงประโยคที่ซับซ้อนมากขึ้น จะมีการใช้ตัวบ่งปริมาณหลายตัว เช่น พี่น้องคือญาติ x y Brother(x,y)  Sibling(x,y) x y  y x สามารถเขียน x,y ได้เพื่อให้ดูง่ายขึ้น x y  y x สามารถเขียน x,y ได้เพื่อให้ดูง่ายขึ้น x y ไม่เหมือนกับ y x x y Loves(x,y) มีบางคนที่รักทุกๆคนในโลก y x Loves(x,y) ทุกๆคนในโลกนี้ถูกใครบางคนรัก

20 Normal Form เพื่อให้คอมพิวเตอร์สามารถทำการอนุมานได้ง่ายขึ้น ควรจะเปลี่ยนประโยคต่างๆให้อยู่ในรูปของ “Normal Form” ทุกประโยคใน FOL สามารถที่จะแปลงให้อยู่ในรูปของ Normal Form ได้ Conjunctive normal form (CNF) ทุกประโยคจะเกิดจากเชื่อมต่อกันของประโยคย่อยด้วย conjunction () และในประโยคย่อยจะประกอบด้วยคำที่เชื่อมต่อกันด้วย disjunction () (P(x)  R(x,y))  (S(y)  R(y,z))  T(y)

21 การอนุมานใน First Order Logic (FOL)
เราไม่สามารถใช้ Truth table เพื่อแก้ไขปัญหาของ FOL เนื่องจากใน FOL มีตัวแปร(variables) ทำให้ตาราง Truth table สามารถมีค่าความเป็นไปได้เป็น infinity Robinson (1965) เสนอวิธีแก้ไขปัญหาการพิสูจน์ค่าใน FOL ด้วย algorithm ที่ชื่อว่า resolution refutation (ซึ่งสามารถใช้กับ propositional logic ก็ได้) Resolution (A  B)  (B  C) อนุมานได้เป็น (A  C) (A  B)  (B  C) อนุมานได้เป็น (A  C)

22 Resolution Refutation
การพิสูจน์ประโยค p สามารถอนุมานจากเซ็ตของประโยคใน KB เปลี่ยน p และประโยคใน KB ให้อยู่ในรูปของ CNF ทำซ้ำจนกระทั่งได้ประโยคว่าง หาประโยคย่อย 2 ประโยคที่สามารถทำ resolution ได้และยังไม่เคยถูกใช้มาก่อน นำ 2 ประโยคย่อยนั้นเข้ากฎ resolution เพิ่งสร้างประโยคย่อยใหม่ ถ้าการทำงานสิ้นสุดลงด้วยประโยคว่างเปล่า(null, false) ถือว่าพิสูจน์ p ได้ไม่เช่นนั้นก็คือ p ไม่สามารถพิสูจน์ได้ ปัญหาของ Resolution Refutation กับ FOL จะเปลี่ยนประโยคให้อยู่ในรูป CNF ได้อย่างไรเมื่อมี Quantifier ? จะรู้ได้อย่างไรว่าประโยค 2 ประโยคขัดแย้งกันในเมื่อมีตัวแปรอยู่ ?

23 การเปลี่ยนประโยคให้อยู่ในรูป CNF (1)
1. กำจัดตัวเชื่อม  ด้วยการใช้กฎ Material Equivalent (Equiv) P  Q  (P  Q)  (Q  P) 2. กำจัดตัวเชื่อม  ด้วยการใช้กฎ Material Implication (Impl) P  Q  P  Q 3. นำตัว negation () กระจายเข้าไปข้างในประโยค  P  P Double negation (P  Q)  P  Q Demorgan (P  Q)  P  Q Demorgan x P(x)  x P(x) x P(x)  x P(x)

24 การเปลี่ยนประโยคให้อยู่ในรูป CNF (2)
4. ทำ standardize โดยการเปลี่ยนชื่อตัวแปรของแต่ละประโยคย่อยไม่ให้ซ้ำกัน x(P(x))  x(Q(x))  x(P(x))  y(Q(y)) 5. เลื่อน Quantifier ทุกตัวมาทางด้านซ้ายของประโยคโดยรักษาลำดับไว้ x(P(x))  y(Q(y))  xy(P(x)  Q(y)) 6. ใช้วิธี Skolemization เพื่อกำจัด  7. ลบ  ออกจากประโยคให้หมด 8. ใช้ Distributive law เปลื่ยนให้อยู่ในรูปของ CNF P  (Q  R)  (P  Q)  (P  R) 9. แยกประโยคใหญ่ออกเป็นประโยคย่อยๆโดยใช้  เป็นตัวแยก 10. ทำ standardize ตัวแปรของแต่ละประโยคย่อยอีกรอบหนึ่ง

25 วิธี Skolemization เป็นวิธีที่ใช้เปลี่ยนประโยคที่มี Existential Quantifier() เป็นประโยคที่ไม่มี  จะทำการกำจัด  ด้วยการแทนที่ตัวแปรของ  ด้วย skolem function ซึ่ง argument ของ function จะเป็นตัวแปรของ universal quantifier  ที่อยู่ใน scope ของ  ที่จะกำจัด ถ้า  ที่ต้องการจะกำจัดไม่อยู่ใน scope ของ universal quantifier  ตัวใดเลย ก็จะแทนที่ด้วย skolem function ที่ไม่มี argument ซึ่งก็คือ ค่าคงที่

26 ตัวอย่าง : Skolemization
xy (Person(x)  Person(y))  Loves(x,y) y อยู่ภายใต้ x ดังนั้นแทนที่ y ด้วย skolem function ที่มี argument คือ x เปลี่ยนได้เป็นx (Person(x)  Person(f(x)))  Loves(x,f(x)) x P(x) เป็น P(A) ค่าคงที่ A xyz P(x,y,z) เปลี่ยนเป็น xy P(x, y, f(x,y)) xyz P(x,y,z) เปลี่ยนเป็น xz P(x, f(x), z)

27 ตัวอย่าง : การแปลงประโยคให้อยู่ในรูป CNF (1)
(x)([a(x)  b(x)]  [c(x,i)  (y)((z)[c(y,z)]  d(x,y))])  (x)(e(x)) 1. กำจัด  (x)([a(x)  b(x)]  [c(x,i)  (y)((z)[c(y,z)]  d(x,y))])  (x)(e(x)) 2. นำตัว  กระจายเข้าไปข้างในประโยค (x)( [a(x)  b(x)]  [c(x,i)  (y)((z)[c(y,z)]  d(x,y))])  (x)(e(x)) 3. ทำ standardize ชื่อตัวแปร (x)( [a(x)  b(x)]  [c(x,i)  (y)((z)[c(y,z)]  d(x,y))])  (w)(e(w)) 4. เลื่อน quantifier มาอยู่ด้านซ้ายของประโยค (x)(y)(z) (w)([a(x)  b(x)]  [c(x,i)  (c(y,z)  d(x,y))]  e(w)

28 ตัวอย่าง : การแปลงประโยคให้อยู่ในรูป CNF (2)
(x)(y)(z) (w)([a(x)  b(x)]  [c(x,i)  (c(y,z)  d(x,y))]  e(w) 5. กำจัด  (x)(z) (w)([a(x)  b(x)]  [c(x,i)  (c(f(x),z)  d(x,f(x)))]  e(w) 6. ปลดตัว  ออกจากประโยค [a(x)  b(x)]  [c(x,i)  (c(f(x),z)  d(x,f(x)))]  e(w) 7. ทำ Distribution law [a(x)  b(x)]  e(w)  [c(x,i)  (c(f(x),z)  d(x,f(x)))] [a(x)  b(x)  e(w)  c(x,i)]  [a(x)  b(x)  e(w)  c(f(x),z)  d(x,f(x))]

29 ตัวอย่าง : การแปลงประโยคให้อยู่ในรูป CNF (3)
8. ใช้ตัว conjunction () เป็นตัวแยกประโยคใหญ่ออกเป็นประโยคย่อยๆ [a(x)  b(x)  e(w)  c(x,i)] [a(x)  b(x)  e(w)  c(f(x),z)  d(x,f(x))] 9. ใช้ตัวทำ standardize อีกรอบของแต่ละประโยคย่อยไม่ให้ซ้ำกัน [a(u)  b(u)  e(v)  c(f(u),z)  d(u,f(u))] แบบฝึกหัด: จงแปลงประโยคต่อไปนี้ให้อยู่ในรูป CNF x(P(x))  yx(Q(x,y))

30 การพิสูจน์ด้วย Resolution Refutation (1)
กลับมาที่ propositional logic ที่ไม่มีค่าตัวแปรให้วุ่นวาย ตัวอย่าง: ต้องการพิสูจน์ a จากสมมุติฐาน b  c  a b d  e  c e  f d  f (b  c)  a b  c  a b  c  a b d  e  c e  f d f (d  e)  c d  e  c f d

31 การพิสูจน์ด้วย Resolution Refutation (2)
(A  B)  (B  C) อนุมานได้เป็น (A  C) (A  B)  (B  C) อนุมานได้เป็น (A  C) a b  c  a กำหนด a b  c  a b d  e  c e  f d f b  c b d  e  c c d  e e  f f d  f d d

32 Unification (1) จะเห็นว่าสำหรับ Propositional Logic จะง่ายมากในการดู 2 ประโยคที่ขัดกัน (p และ p) แต่สำหรับ FOL การเทียบกันจะซับซ้อนขึ้นเนื่องจากจะต้องพิจารณา argument ของ predicate ด้วยเช่น MAN(JOHN) และ MAN(JOHN) ขัดแย้งกัน MAN(JOHN) และ MAN(SPOT) ไม่ขัดแย้งกัน ในการตรวจสอบความขัดแย้งกันของประโยคใน FOL จะต้องมีการ แทนที่(substitution) ค่าของตัวแปร ซึ่งเรียกว่า Unification Notation : car/x หมายถึงการแทนค่า car ให้กับตัวแปร x

33 Unification (2) ถ้ามีประโยค
Knows(John, x) แล้วแทนที่ด้วย {Paul/x} จะทำให้ประโยคที่ได้เป็น Knows(John, Paul) ถ้าไม่สามารถหาค่ามาแทนตัวแปรได้ถือว่าการทำ unification ล้มเหลว ตัวอย่าง : foo(x, A, goo(y)) {Fred/x, z/y} => foo(Fred, A, goo(z)) {w/x, Jack/y} => foo(w, A, goo(Jack)) {z/x, moo(z)/y} => foo(z, A, goo(moo(z)))

34 ตัวอย่าง1: สร้างประโยคในรูปแบบของ FOL
จากประโยคต่อไปนี้ คนที่สอบวิชาประวัติศาสตร์ผ่านและถูกลอตเตอรี่จะมีความสุข แต่ถ้าใครที่เรียนอยู่หรือโชคดีจะผ่านวิชาที่เรียนทุกวิชา สมชายไม่ได้เรียนแต่สมชายโชคดี ใครที่โชคดีจะถูกลอตเตอรี่ ถามว่าสมชายมีความสุขไหม ? คนที่สอบวิชาประวัติศาสตร์ผ่านและถูกลอตเตอรี่จะมีความสุข x(Pass(x, HISTORY)  Win(x, LOTTERY)  Happy(x)) ใครที่เรียนอยู่หรือโชคดีจะผ่านวิชาที่เรียนทุกวิชา xy (Study(x)  Lucky(x)  Pass(x,y)) สมชายไม่ได้เรียนแต่สมชายโชคดี Study(สมชาย)  Lucky(สมชาย) ใครที่โชคดีจะถูกลอตเตอรี่ x(Lucky(x)  Win(x, LOTTERY))

35 ตัวอย่าง1: เปลี่ยนประโยคให้อยู่ในรูป CNF
กำจัด  x(Pass(x, HISTORY)  Win(x, LOTTERY)  Happy(x)) x([Pass(x, HISTORY)  Win(x, LOTTERY)]  Happy(x)) xy (Study(x)  Lucky(x)  Pass(x,y)) xy ([ Study(x)  Lucky(x)]  Pass(x,y)) Study(สมชาย)  Lucky(สมชาย) x(Lucky(x)  Win(x, LOTTERY)) x( Lucky(x)  Win(x, LOTTERY))

36 ตัวอย่าง1: เปลี่ยนประโยคให้อยู่ในรูป CNF (1)
กระจาย  เข้าไปในประโยค x([Pass(x, HISTORY)  Win(x, LOTTERY)]  Happy(x)) x(Pass(x, HISTORY)  Win(x, LOTTERY)  Happy(x)) xy ([ Study(x)  Lucky(x)]  Pass(x,y)) xy ([Study(x)  Lucky(x)]  Pass(x,y)) Study(สมชาย)  Lucky(สมชาย) x( Lucky(x)  Win(x, LOTTERY)) Standardize : ไม่มีให้ทำ เลื่อน Quantifier ไปด้านซ้ายของประโยค : ไม่ต้องทำ ทำ Skolemization : ไม่ต้องทำ

37 ตัวอย่าง1: เปลี่ยนประโยคให้อยู่ในรูป CNF (2)
ตัด universal quantifier ออก Pass(x, HISTORY)  Win(x, LOTTERY)  Happy(x) (Study(x)  Lucky(x))  Pass(x,y) Study(สมชาย)  Lucky(สมชาย)  Lucky(x)  Win(x, LOTTERY) ทำ Distribution (Study(x)  Pass(x,y))  (Lucky(x)  Pass(x,y))

38 ตัวอย่าง1: เปลี่ยนประโยคให้อยู่ในรูป CNF (3)
จาก Pass(x, HISTORY)  Win(x, LOTTERY)  Happy(x) (Study(x)  Pass(x,y))  (Lucky(x)  Pass(x,y)) Study(สมชาย)  Lucky(สมชาย)  Lucky(x)  Win(x, LOTTERY) แยกออกเป็นประโยคย่อยได้ (Study(x)  Pass(x,y)) (Lucky(x)  Pass(x,y)) Study(สมชาย) Lucky(สมชาย)

39 ตัวอย่าง1: เปลี่ยนประโยคให้อยู่ในรูป CNF (4)
จาก Pass(x, HISTORY)  Win(x, LOTTERY)  Happy(x) (Study(x)  Pass(x,y)) (Lucky(x)  Pass(x,y)) Study(สมชาย) Lucky(สมชาย)  Lucky(x)  Win(x, LOTTERY) Standardize ตัวแปรของแต่ละประโยคย่อยได้ Pass(x1, HISTORY)  Win(x1, LOTTERY)  Happy(x1) (Study(x2)  Pass(x2,y1)) (Lucky(x3)  Pass(x3,y2))  Lucky(x4)  Win(x4, LOTTERY)

40 ตัวอย่าง1: พิสูจน์ (1) จากสมมุติฐานที่ได้
Pass(x1, HISTORY)  Win(x1, LOTTERY)  Happy(x1) Study(x2)  Pass(x2,y1) Lucky(x3)  Pass(x3,y2) Study(สมชาย) Lucky(สมชาย)  Lucky(x4)  Win(x4, LOTTERY) ต้องการพิสูจน์ว่า สมชายมีความสุข Happy(สมชาย) ดังนั้นให้กลับค่าความเป็นจริงเป็นพิสูจน์ Happy(สมชาย)

41 พิสูจน์ได้ว่า สมชายมีความสุข Happy(สมชาย)
ตัวอย่าง1: พิสูจน์ (2) Happy(สมชาย) Pass(x1, HISTORY)  Win(x1, LOTTERY)  Happy(x1) {สมชาย/x1} Pass(สมชาย, HISTORY)  Win(สมชาย, LOTTERY)  Lucky(x4)  Win(x4, LOTTERY) {สมชาย/x4} Pass(สมชาย, HISTORY)  Lucky(สมชาย) Lucky(สมชาย) Lucky(x3)  Pass(x3,y2) Pass(สมชาย, HISTORY) {สมชาย/x3, HISTORY/y2} Lucky(สมชาย) Lucky(สมชาย) พิสูจน์ได้ว่า สมชายมีความสุข Happy(สมชาย)

42 ตัวอย่าง2: จากข้อมูลต่อไปนี้ จงพิสูจน์ Marcus is not alive ?
Marcus was a man Marcus was a Pompeian Marcus was born in 40 AD. All men are mortal All Pompeians died when the volcano erupted in 79 AD. No mortal lives longer than 150 years It’s now 2011 Alive means not dead If someone dies, then he’s dead at all later times. จงพิสูจน์ Marcus is not alive ?

43 ตัวอย่าง2: สร้างประโยคในรูปแบบของ FOL (1)
Marcus was a man man(Marcus) Marcus was a Pompeian pompeian(Marcus) Marcus was born in 40 AD. born(Marcus, 40) All men are mortal x (man(x)  mortal(x)) All Pompeians died when the volcano erupted in 79 AD. erupted(Volcano, 79)  x(pompeian(x) died(x, 79))

44 ตัวอย่าง2: สร้างประโยคในรูปแบบของ FOL (2)
No mortal lives longer than 150 years x t1 t2 (mortal(x)  born(x, t1)  gt(t2-t1, 150)  dead(x, t2)) It’s now 2011 now = 2011 Alive means not dead x t ([alive(x, t)  dead(x, t)]  [dead(x,t)  alive(x, t)]) If someone dies, then he’s dead at all later times. x t1 t2 (died(x, t1)  gt(t2, t1)  dead(x, t2)) จงพิสูจน์ Marcus is not alive ? alive(Marcus, now)

45 ตัวอย่าง2: เปลี่ยนประโยคให้อยู่ในรูป CNF (1)
กำจัด  x (man(x)  mortal(x)) x ( man(x)  mortal(x)) erupted(Volcano, 79)  x(pompeian(x) died(x, 79)) erupted(Volcano, 79)  x( pompeian(x)  died(x, 79)) x t1 t2 (mortal(x)  born(x, t1)  gt(t2-t1, 150)  dead(x, t2)) x t1 t2 ( (mortal(x)  born(x, t1)  gt(t2-t1, 150) )  dead(x, t2)) x t ([alive(x, t)  dead(x, t)]  [dead(x,t)  alive(x, t)]) x t ([alive(x, t)  dead(x, t)]  [ dead(x,t)  alive(x, t)]) x t1 t2 (died(x, t1)  gt(t2, t1)  dead(x, t2)) x t1 t2 ( (died(x, t1)  gt(t2, t1))  dead(x, t2)) man(Marcus) pompeian(Marcus) born(Marcus, 40) now = 2011

46 ตัวอย่าง2: เปลี่ยนประโยคให้อยู่ในรูป CNF (2)
กระจาย  x t1 t2 ( (mortal(x)  born(x, t1)  gt(t2-t1, 150) )  dead(x, t2)) x t1 t2 (mortal(x)  born(x, t1)  gt(t2-t1, 150)  dead(x, t2)) x t1 t2 ( (died(x, t1)  gt(t2, t1))  dead(x, t2)) x t1 t2 ( died(x, t1)   gt(t2, t1)  dead(x, t2)) man(Marcus) pompeian(Marcus) born(Marcus, 40) now = 2011 x ( man(x)  mortal(x)) erupted(Volcano, 79)  x( pompeian(x)  died(x, 79)) x t ([alive(x, t)  dead(x, t)]  [ dead(x,t)  alive(x, t)])

47 ตัวอย่าง2: เปลี่ยนประโยคให้อยู่ในรูป CNF (3)
Standardization : ไม่มี เลื่อน Quantifier ไปด้านซ้าย : ทุกประโยคอยู่ด้านซ้ายหมดแล้ว ทำ Skolemization เพื่อกำจัด  : ไม่มี  ถอด  ออกจากประโยค man(Marcus) pompeian(Marcus) born(Marcus, 40)  man(x)  mortal(x) erupted(Volcano, 79)  ( pompeian(x)  died(x, 79)) mortal(x)  born(x, t1)  gt(t2-t1, 150)  dead(x, t2)) now = 2011 (alive(x, t)  dead(x, t))  ( dead(x,t)  alive(x, t))  died(x, t1)   gt(t2, t1)  dead(x, t2)

48 ตัวอย่าง2: เปลี่ยนประโยคให้อยู่ในรูป CNF (4)
แยกออกเป็นประโยคย่อย man(Marcus) pompeian(Marcus) born(Marcus, 40)  man(x)  mortal(x) erupted(Volcano, 79)  pompeian(x)  died(x, 79) mortal(x)  born(x, t1)  gt(t2-t1, 150)  dead(x, t2)) now = 2011 alive(x, t)  dead(x, t)  dead(x,t)  alive(x, t)  died(x, t1)   gt(t2, t1)  dead(x, t2)

49 ตัวอย่าง2: เปลี่ยนประโยคให้อยู่ในรูป CNF (5)
Standardization ตัวแปร man(Marcus) pompeian(Marcus) born(Marcus, 40)  man(x1)  mortal(x1) erupted(Volcano, 79)  pompeian(x2)  died(x2, 79) mortal(x3)  born(x3, t1)  gt(t2-t1, 150)  dead(x3, t2)) now = 2011 alive(x4, t3)  dead(x4, t3)  dead(x5,t4)  alive(x5, t4)  died(x6, t5)   gt(t6, t5)  dead(x6, t6)

50 ตัวอย่าง2: พิสูจน์ พิสูจน์ alive(Marcus, now) โดยตรวจสอบจาก alive(Marcus, now) alive(Marcus, now) 9 {Marcus/x4, now/t3} dead(Marcus, now) 11 {Marcus/x6, now/t6} 6  died(Marcus, t5)   gt(now, t5) {Marcus/x2, 79/t5}  gt(now, 79)   pompeian(Marcus) {now = 2011}  gt(2011, 79)   pompeian(Marcus) 2  pompeian(Marcus) สรุป Now, Marcus is not alive

51 Resolution Proof Axioms in clause form: 1. man(marcus) 2. pompeian(marcus) 3.  pompeian(X1) v roman(X1) 4. ruler(caesar) 5.  roman(X2) v loyalto(X2, caesar) v hate(X2, caesar) 6. loyalto(X3, f1(X3)) 7.  man(X4) v  ruler(Y1) v  tryassassinate(X4, Y1) v  loyalto (X4, Y1) 8. tryassassinate(marcus, caesar)

52 Resolution Proof Prove: hate(marcus, caesar) hate(marcus, caesar) 5
marcus/X2 3 roman(marcus) V loyalto(marcus,caesar) marcus/X1 pompeian(marcus) V loyalto(marcus,caesar) 2 7 loyalto(marcus,caesar) marcus/X4, caesar/Y1 1 man(marcus) V  ruler(caesar) V  tryassassinate(marcus, caesar)  ruler(caesar) V  tryassassinate(marcus, caesar) 4  tryassassinate(marcus, caesar) 8

53 Resolution Proof “Exciting Life”
1. All people who are not poor and are smart are happy. "X(Øpoor(X) Ù smart(X) ® happy(X)) 2. Those people who read are not stupid. "Y(read(Y) ® smart(Y)) {assume "X(smart(X) º Østupid(X))} 3. John can read and is wealthy. read(john) Ù Øpoor(john) {assume "Y(wealthy(Y) º Øpoor(Y))} 4. Happy people have exciting lives. "Z(Happy(Z) ® exciting(Z)) 5. Negate the conclusion. “Can anyone be found with an exciting life?” $X(exciting(W))

54 Resolution Proof Clause forms of “exciting life”
1. poor(X) Ú Øsmart(X) Ú happy(X) 2. Øread(Y) Ú smart(Y) 3. read(john) Øpoor(john) 4. Øhappy(Z) Ú exciting(Z) 5. Øexciting(W)


ดาวน์โหลด ppt Knowledge Representation

งานนำเสนอที่คล้ายกัน


Ads by Google