1 / 34

ตรรกะ เพรดิเคต (Predicate Logic)

การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะ เพรดิเคต. ตรรกะ เพรดิเคต (Predicate Logic). ไวยากรณ์และความหมาย (Syntax and Semantic) การอนุมาน ( Inference ) การทำให้เท่ากัน ( Unification ) รี โซลู ชัน ( Resolution ). ตรรกะ เพตดิเคต (Predicate Logic).

Download Presentation

ตรรกะ เพรดิเคต (Predicate Logic)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต ตรรกะเพรดิเคต(Predicate Logic) ไวยากรณ์และความหมาย (Syntax and Semantic) การอนุมาน (Inference) การทำให้เท่ากัน (Unification) รีโซลูชัน (Resolution)

  2. ตรรกะเพตดิเคต(Predicate Logic) • การแทนความรู้ (Knowledge Representation)ทางปัญญาประดิษฐ์มีหลายวิธีเช่น • Rules • Frames • Bayesian Networks • Predicate Logic • อื่นๆ

  3. Syntax และ Semantic • เพรดิเคตลอจิก มีองค์ประกอบดังนี้ • สัญลักษณ์เพรดิเคต (Predicate Symbol) ใช้ตัวอักษร 1 ตัวขึ้นไป ขึ้นต้นด้วยตัวอักษรตัวใหญ่ เช่น P, Q, R, Father หรือ FATHER เป็นต้น • สัญลักษณ์ตัวแปร (Variable Symbol) ใช้ตัวอักษร 1 ขึ้นไป เป็นตัวอักษรตัวเล็ก เช่น x, y และ z เป็นต้น • สัญลักษณ์ฟังก์ชัน (Function Symbol) ใช้ตัวอักษร 1 ขึ้นไป เป็นตัวอักษรตัวเล็ก เช่น f, g และ h เป็นต้น • สัญลักษณ์ค่าคงที่ (Constant Symbol) ใช้ตัวอักษร 1 ตัวขึ้นไป ขึ้นต้นด้วยตัวอักษรตัวใหญ่ เช่น A, B, C, Somchaiหรือ SOMCHAI เป็นต้น • เครื่องหมายวงเล็บ เช่น { }, ( ) และ [ ] เป็นต้น

  4. Syntax และ Semantic (ต่อ) • สูตรที่ถูกต้องตามหลักไวยากรณ์ของตรรกะเพรดิเคต เรียกว่า สูตรรูปดี (well form formula; wff) • สูตรอะตอม (Atomic Formula) คือสูตรที่เล็กที่สุดที่ถูกต้องตามหลักไวยากรณ์เช่น FATHER(SOMCHAI, SOMSRI) SOMCHAI และ SOMSRI คือค่าคงที่ (Constant) Predicate Symbol ใช้แสดงความสัมพันธ์ของสิ่งต่างๆใน domain นั้น เช่น

  5. ตัวอย่างการเขียนเพรดิเคตตรรกะตามหลักไวยากรณ์ตัวอย่างการเขียนเพรดิเคตตรรกะตามหลักไวยากรณ์ • FATHER(x,y) • Daughter(SOMSRI,x) • SOMSRI เป็นค่าคงที่ ส่วน x เป็นตัวแปร • HAS-MONEY(SOMCHAI,salary(SOMCHAI)) • salary เป็นฟังก์ชันที่ใช้หาค่าเงินเดือน xและ y คือตัวแปร (VariableSymbol)

  6. การแปลความหมาย (Interpretation) • การแปลความหมาย คือ การกำหนดค่าให้กับเพรดิเคต ตัวแปร และฟังก์ชัน ใน domain นั้นๆของสูตรอะตอม • เมื่อมีการนิยามการแปลความหมายให้กับสูตรอะตอมแล้ว เราสามารถหาค่าทางตรรกะให้กับสูตรอะตอมนั้นๆได้ ว่าเป็น จริง (True) หรือ เท็จ (False) เช่น FATHER(x,y) • กำหนดให้ FATHER คือความสัมพันธ์เป็นพ่อ โดย x เป็นพ่อของ y และกำหนดให้ x คือนาย ก. และ y คือนาย ข.

  7. ตัวเชื่อม (Connective) • ตัวเชื่อมใช้เชื่อมสูตรอะตอมหลายสูตรเข้าด้วยกันเพื่อเป็นสูตรใหม่ • ตัวเชื่อมในเพรดิเคตตรรกะมีดังนี้ • และ (and) ใช้สัญลักษณ์ • หรือ(or)ใช้สัญลักษณ์ • นิเสธ (not) ใช้สัญลักษณ์ ~ • ถ้า-แล้ว (If-then)(Implication)ใช้สัญลักษณ์ • การใช้ตัวเชื่อมและ • John lives in a yellow house. LIVE(JOHN,HOUSE-1)^COLOR(HOUSE-1,YELLOW)

  8. ตัวเชื่อม (Connective)(ต่อ) • การใช้ตัวเชื่อมนิเสธ • John don’t write computer-chess ~WRITE(JHON,COMPUTER-CHESS) • การใช้ตัวเชื่อมถ้า-แล้ว • If the car belongs to John then it is green OWNS(JHON,CAR-1) COLOR(CAR-1,GREEN)

  9. ตัวบ่งปริมาณ (Quantifier) • ตัวบ่งปริมาณเอกภพ (Universal Quantifier) ใช้สัญลักษณ์ • ตัวบ่งปริมาณมีอยู่ (Existential Quantifier) ใช้สัญลักษณ์ • ตัวอย่างการใช้ตัวบ่งปริมาณ • All Elephants are gray. • There is a person who wrote computer-chess. • เนื้อหาที่จะสอนในเรื่องนี้จะกล่าวถึง First-order predicate logic เท่านั้น

  10. ตัวอย่างการเขียนตรรกะเพรดิเคตตัวอย่างการเขียนตรรกะเพรดิเคต สูตรรูปดีที่ถูกต้อง เช่น สูตรรูปดีที่ไม่ถูกต้อง เช่น

  11. การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต ตรรกะเพรดิเคต(Predicate Logic) ไวยากรณ์และความหมาย (Syntax and Semantic) การอนุมาน (Inference) การทำให้เท่ากัน (Unification) รีโซลูชัน (Resolution)

  12. การอนุมาน (Inference) • กฎโมดัสโพเน็นส์(Modus Ponens) W1 W2 • กฎเจาะจงตัวแปรเอกภาพ (Universal Specialization) W1 W2

  13. ตัวอย่างการอนุมาน Universal Specialization Modus Ponens สูตรใหม่ที่ได้จากการอนุมาน เรียกว่า Theorem

  14. การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต ตรรกะเพรดิเคต(Predicate Logic) ไวยากรณ์และความหมาย (Syntax and Semantic) การอนุมาน (Inference) การทำให้เท่ากัน (Unification) รีโซลูชัน (Resolution)

  15. การแทนค่า (Substitution) • การแทนค่า คือการแทนพจน์ (term)ให้กับตัวแปรในสูตร โดยสูตรที่ได้จากการแทนค่าเรียกว่า ตัวอย่างการแทน (Substitution Instance) • ตัวอย่าง Substitution Instance ของ P(x,f(y),B) เช่น P(z,f(w),B) หรือ P(C,f(A),B) • การแทนค่าสามารถเขียนให้อยู่ในรูปของเซ็ตคู่ลำดับ s = {t1/v1, t2/v2,…,tn/vn} โดย tnคือ term ที่ n นำมาแทนค่าใน variable ที่ n (vn)

  16. การแทนค่า (Substitution) (ต่อ) • ตัวอย่างเซ็ตคู่ลำดับของการแทนค่า • ถ้า Substitution Instance ของ P(x,f(y),B) คือ P(z,f(w),B) สามารถเขียนคู่ลำดับของการแทนค่าได้คือ s1= {z/x, w/y} • ถ้า Substitution Instance ของ P(x,f(y),B) คือ P(C,f(A),B) สามารถเขียนคู่ลำดับของการแทนค่าได้คือ s2= {C/x, A/y} • เราสามารถเขียนสูตรใหม่ที่ได้จากการแทนค่า s ในสูตร E (ตัวอย่างข้างบน)ดังนี้ • P(z,f(w),B) = P(x,f(y),B)s1 • P(C,f(A),B) = P(x,f(y),B)s2

  17. การทำให้เท่ากัน (Unification) • สูตร 2 สูตรใดๆ (สูตร E1และ สูตร E2)สามารถทำให้เท่ากันได้ ถ้ามีตัวแทนค่า (s)ที่ทำให้ (E1)s = (E2)s โดยเราจะเรียก s ว่า ตัวทำให้เท่ากัน (Unifier)ของ E1และ E2 เช่น • E1 = P(x,f(y),B) และ E2= P(x,f(B),B) • Unifier ของ E1 และ E2คือ s = {A/x,B/y} • (E1)s = P(A,f(B),B) และ (E2)s = P(A,f(B),B) • ตัวทำให้เท่ากันกว้างสุด (Most General Unifier; mgu) คือตัวทำให้เท่ากันที่ใช้การแทนค่าที่น้อยที่สุด • mguของ E1 = P(x,f(y),B) และ E2= P(x,f(B),B) คือ s = {B/y} ซึ่งจะได้ (E1)s = (E2)s = P(x,f(B),B)

  18. อัลกอริทึมในการหา mgu Algorithm Unify(L1,L2) 1. IfL1หรือ L2 เป็นตัวแปรหรือค่าคงที่ Then IfL1= L2 Thenคืนค่า NIL Else If L1เป็นตัวแปร Then IfL1ปรากฏใน L2 Thenคืนค่า {Fail} Else คืนค่า {L2/L1} Else IfL2เป็นตัวแปร Then IfL2ปรากฏใน L1 Thenคืนค่า {Fail} Else คืนค่า {L1/L2} Elseคืนค่า {Fail}

  19. อัลกอริทึมในการหา mgu(ต่อ) 2. Ifสัญลักษณ์เพรดิเคต หรือ สัญลักษณ์ฟังก์ชัน ของ L1 ไม่เท่ากับ L2 Thenคืนค่า {Fail} 3. IfL1 มีจำนวน argument ไม่เท่ากับ L2 Thenคืนค่า {Fail} 4. SUBST = NIL 5. Fori =1 to จำนวน argument ของ L1 Do 5.1 เรียก algorithm unify ด้วย argumentตัวที่ iของ L1 และ L2 เก็บผลลัพธ์ที่ S 5.2 If S = Fail Then คืนค่า {Fail} 5.3 If S ไม่เท่ากับ NIL Then 5.3.1 แทนค่าพจน์ (term)ให้กับตัวแปรใน L1 และ L2 ตาม S 5.3.2 SUBST = append(S,SUBST) 6. คืนค่า SUBST

  20. การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต ตรรกะเพรดิเคต(Predicate Logic) ไวยากรณ์และความหมาย (Syntax and Semantic) การอนุมาน (Inference) การทำให้เท่ากัน (Unification) รีโซลูชัน (Resolution)

  21. รีโซลูชัน (Resolution) • รีโซลูชัน เป็นการอนุมานที่ใช้กับสูตรที่เป็นอนุประโยค(Clause) • อนุประโยค (Clause) คือสูตรที่อยู่ในรูป disjunction ของ literals (การ or กันของ atomic formulas) เช่น P(x) v Q(x,y) v ~R(A) • การแปลงตรรกะเพรดิเคตไปเป็นอนุประโยค 1. Eliminate implication symbols : เปลี่ยนรูป ไปเป็น 2.Reduce scope of negation symbols

  22. การแปลงตรรกะเพรดิเคตไปเป็นอนุประโยคการแปลงตรรกะเพรดิเคตไปเป็นอนุประโยค 3. Standardize variables : เปลี่ยนชื่อตัวแปรตามขอบเขตของตัวบ่งปริมาณ 4. Eliminate existential quantifiers : แทนค่าตัวแปรด้วย skolem function 5. Convert to prenex form ย้ายตัวบ่งปริมาณเอกภพมาอยู่หน้าสุด โดยรูปแบบที่ได้ใหม่นี้เรียกว่า prenex form

  23. การแปลงตรรกะเพรดิเคตไปเป็นอนุประโยค (ต่อ) 6. Put prenex form in conjunctive normal form : ทำให้สูตรทุกตัวเชื่อมกันด้วย And (^) 7. Eliminate universal quantifier : ตัดตัวปริมาณเอกภพทิ้งได้เลย เนื่องจากตัวแปรทุกตัวมีตัวบ่งปริมาณเป็น ตัวบ่งปริมาณเอกภพทั้งสิ้น 8. Eliminate ^ symbol : แทนด้วยเซต {X1,X2,…,Xn} โดยที่ Xi เป็น disjunction of literals หรือ อนุประโยคซึ่งจะได้ 3 อนุประโยค

  24. การแปลงตรรกะเพรดิเคตไปเป็นอนุประโยค (ต่อ) 9. Rename variables : เปลี่ยนชื่อตัวแปร เพื่อให้แต่ละอนุประโยคมีตัวแปรไม่ซ้ำกัน

  25. รีโซลูชันของอนุประโยคพื้นฐานรีโซลูชันของอนุประโยคพื้นฐาน • อนุประโยคพื้นฐาน (Ground Clause) คืออนุประโยคที่ไม่มีตัวแปร • ในการทำรีโซลูชันของอนุประโยคพื้นฐานจะรับอนุประโยคพ่อแม่ (Parent Clause) 2 อนุประโยค ส่วนอนุประโยคผลลัพธ์ที่ได้เรียกว่า รีโซเวนท์(Resolvent)

  26. รีโซลูชันของอนุประโยคพื้นฐาน (ต่อ)

  27. รีโซลูชันทั่วไป (General Resolution) • ในการทำรีโซลูชันกับอนุประโยคที่มีตัวแปรนั้น ต้องใช้การทำให้เท่ากัน เพื่อทำให้อนุประโยคพ่อแม่ประกอบด้วยสัจพจน์เติมเต็ม (Complimentary Literals) • สัจพจน์เติมเต็ม คือสัจพจน์ (Literals) ที่ต่างกันเฉพาะเครื่องหมายนิเสธ (~) เช่น • P(x) และ ~P(x)

  28. รีโซลูชันทั่วไป (General Resolution) (ต่อ) การทำรีโซลูชันทั่วไปประกอบด้วยขั้นตอนดังนี้ 1. กำหนดให้ Parent Clause คือ {Li} และ {Mi} 2. {li} และ {mi} เป็นเซ็ตย่อยของ {Li} และ {Mi} ตามลำดับ โดยมี s ซึ่งเป็น mguของ {li} และ {~mi} 3. Resolventของอนุประโยค {Li} และ {Mi}คือ {{Li} - {li}}s{{Mi} - {mi}}s 4. สำหรับ 2 อนุประโยคใดๆ อาจมีการทำ Resolvent มากกว่า 1 ครั้ง ขึ้นอยู่กับการเลือก {li} และ {mi}

  29. ตัวอย่างการทำรีโซลูชันทั่วไปตัวอย่างการทำรีโซลูชันทั่วไป กำหนดให้ {Li} = {P[x,f(A)],P[x,f(y)],Q(y)} {Mi} = {~P[z,f(A)],~Q(z)} {li} = {[P(x,f(A)]} {mi} = {~P[z,f(A)} จาก {li} และ {mi} จะได้ • จะได้ Resolventเป็น {P[z,f(y)], Q(y), ~Q(z)} • แต่ถ้าให้ {li} = {P[x,f(A)],P[x,f(y)]} และ {mi} = {~P[z,f(A)} • จะได้ Resolventเป็น {Q(A),~Q(z)} s = {z/x} s = {z/x,A/y}

  30. การปฏิเสธแบบรีโซลูชัน (Resolution Refutation) • สัจพจน์ (Literals) 2 ตัวใดๆจะขัดแย้งกันหรือไม่ จะดูว่าสัจพจน์ตัวหนึ่งสามารถทำให้เท่ากัน (unify) กับนิเสธของสัจพจน์อีกตัวหนึ่งได้หรือไม่ เช่น • MAN(x) กับ ~MAN(Spot) ขัดแย้งกัน • วิธีการปฏิเสธแบบรีโซลูชัน คือการพิสูจน์ว่าสูตร (wff) W เป็นผลสรุปของเซ็ตของสูตร K ทำได้โดยการพิสูจน์ว่า ขัดแย้งกัน เนื่องจากเราสามารถทำให้ MAN(x) เท่ากันกับ MAN(Spot)

  31. การปฏิเสธแบบรีโซลูชัน (Resolution Refutation) (ต่อ) K = {MAN(Marcus),~MAN(x) V MORTAL(x)} W = MORTAL(Marcus) = {MAN(Marcus),~MAN(x) V MORTAL(x),~MORTAL(Marcus)} ~MORTAL(Marcus) ขัดแย้งกับ MAN(Marcus) และ ~MAN(x) V MORTAL(x) แสดงว่า MORTAL(Marcus) เป็นผลสรุปของ K

  32. การปฏิเสธแบบรีโซลูชัน (Resolution Refutation) (ต่อ) K = {MAN(Marcus),~MAN(x) V MORTAL(x)} W = MORTAL(Marcus) = {MAN(Marcus),~MAN(x) V MORTAL(x),~MORTAL(Marcus)} จากการทำรีโซลูชันระหว่าง ~MAN(x) V MORTAL(x) และ ~MORTAL(Marcus) จะได้ ~MAN(Marcus) ซึ่งขัดแย้งกับอนุประโยคแรก (MAN(Marcus))แสดงว่า MORTAL(Marcus) เป็นผลสรุปของ K

  33. ตัวอย่างการปฏิเสธแบบรีโซลูชันตัวอย่างการปฏิเสธแบบรีโซลูชัน

  34. ตัวอย่างการปฏิเสธแบบรีโซลูชันตัวอย่างการปฏิเสธแบบรีโซลูชัน

More Related