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

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

LOGIC PROGRAMMING การโปรแกรมเชิงตรรกะ. หลักการทำโปรแกรมเชิงตรรกะ 2  เป็นการทำโปรแกรมเชิงประกาศ (Declarative Programming) โปรแกรมเมอร์ไม่ต้องระบุขั้นตอนการ.

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


งานนำเสนอเรื่อง: "LOGIC PROGRAMMING การโปรแกรมเชิงตรรกะ. หลักการทำโปรแกรมเชิงตรรกะ 2  เป็นการทำโปรแกรมเชิงประกาศ (Declarative Programming) โปรแกรมเมอร์ไม่ต้องระบุขั้นตอนการ."— ใบสำเนางานนำเสนอ:

1 LOGIC PROGRAMMING การโปรแกรมเชิงตรรกะ

2 หลักการทำโปรแกรมเชิงตรรกะ 2  เป็นการทำโปรแกรมเชิงประกาศ (Declarative Programming) โปรแกรมเมอร์ไม่ต้องระบุขั้นตอนการ ค้นหาข้อมูล เพียงแต่ระบุจุดมุ่งหมายที่ต้องการ กลไก ภายในของภาษาจะตรวจสอบหาคำตอบมาให้  มักนิยมใช้ในงานด้าน ………………………………. ใช้ หลักทางตรรกะศาสตร์ …………………………………………  ตัวอย่าง นาย ก เป็นพ่อนาย ข นาย ข เป็นพ่อนาย ค นาง ง เป็นแม่นาย ก

3 ประเภทของตรรกศาสตร์ 3  ตรรกศาสตร์พรอพโพซิชัน (Propositional Logic)  ตรรกศาสตร์พริดิเคต (Predicate Logic)

4 ตรรกศาสตร์พรอพโพซิชัน 4  คือ ประโยค หรือ ข้อความทางตรรกะศาสตร์ที่ ให้ค่าความจริงเป็น จริง หรือ เท็จ  ประโยคที่ไม่สามารถหาค่าความจริงได้ ไม่ เรียกว่า พรอพโพซิชัน เช่น ประโยคคำถาม

5 ตรรกศาสตร์พรอพโพซิชัน 5  ถ้า P และ Q เป็นพรอพโพซิชันแล้ว ข้อความ ต่อไปนี้เป็นพรอพโพซิชัน

6 ตรรกศาสตร์พรอพโพซิชัน 6  ตารางค่าความจริง

7 ตรรกศาสตร์เพรดิเคต 7  ปรับปรุงเพิ่มเติมจากตรรกศาสตร์พรอพโพซิชัน โดยเพิ่ม  ตัวแปรประเภทอื่นๆ เช่น integer, real, string  ฟังก์ชันที่ให้ค่าตรรกะ ( หรือ relation) หมายถึงฟังก์ชันที่ส่งค่ากลับเป็นจริง หรือ เท็จ เช่น speak(a, Thai) ให้ค่าเป็นจริง เมื่อ a สามารถพูดภาษาไทยได้ มิฉะนั้นจะให้ ค่าเป็นเท็จ  ตัวบ่งปริมาณ (Quatifier)

8 ตัวบ่งปริมาณ 8  ตัวบ่งปริมาณ (quantifiers)  X(P) หมายถึง สำหรับ X ทุกตัวจะทำให้ P เป็นจริง  X(P) หมายถึง สำหรับ X บางตัวเท่านั้นที่จะทำให้ P เป็นจริง ตัวอย่าง ……..(woman(X)  human(X)) …………………………………………………………… …………. ……..(mother(natalee, X)  male(X)) …………………………………………………………… ………….

9 ตัวอย่างเพรดิเคต และค่าของเพรดิเคต 9

10 ข้อความรูปแบบของฮอร์น 10  Horn Clause จัดเป็นข้อความตรรกศาสตร์เพรดิ เคต อยู่ในรูปแบบ implication ( ถ้า - แล้ว ) ดังนี้ …………………………………………  มีความหมายว่า H จะเป็นจริง ก็ต่อเมื่อ p 1, p 2, …, p n เป็นจริง หรือ ถ้า p 1, p 2, …, p n เป็น จริงแล้ว H จะเป็นจริง  เครื่องหมาย “,” แทนความหมาย AND ( และ )  เรียก H ว่าเป็น เพรดิเคตส่วนหัว ( ผล )  เรียก p 1, p 2, …, p n ว่าเป็น เพรดิเคตส่วนบอดี้ ( เหตุ )

11 ตัวอย่างข้อความรูปแบบฮอร์น 11 ตัวอย่างข้อความรูปแบบฮอร์น  likes(bob, salmon)  likes(bob, fish), fish(salmon)  sunny(cpc)  day(cpc), hot(cpc) แปลงเป็นตรรกศาสตร์เพรดิเคต ( รูปแบบของ Implication)  likes(bob, fish)  fish(salmon)  likes(bob, salmon)  …………………………………………………… …….

12 12 ภาษาโปรล็อก

13 13  PROLOG : PROgramming in LOGic  Alian Colmerauer ชาวฝรั่งเศสสร้างเมื่อ 1972  เป็นภาษาคอมพิวเตอร์ที่ใช้ในการทำ โปรแกรมเชิงตรรกะ

14 การเขียนโปรแกรมภาษาโปรล็อก 14  ชื่อของ Object และ relation ใช้ ตัวอักษรตัวเล็ก  ชื่อตัวแปร ขึ้นต้นด้วยอักษรตัวใหญ่  คำถาม ขึ้นต้นด้วย ?-  กฎเกณฑ์มีรูปแบบดังนี้ c :- h 1, h 2,…,h n for n > 0  สัญลักษณ์ :- มีความหมายเดียวกันกับ  ใน ข้อความรูปแบบฮอร์น

15 ภาษาโปรล็อก 15  ส่วนประกอบของภาษาโปรล็อก แบ่งออกเป็น 3 ส่วน ข้อเท็จจริง / ฐานความรู้ (Facts) กฎเกณฑ์ (Rules) เป้าหมาย / คำถาม (Goal) แต่ละประโยคคั่นด้วย “.”

16 Fact 16  ข้อเท็จจริง (Fact) คือ ข้อความที่เป็นจริงแบบ ไม่มีเงื่อนไข เช่น male(jake). female(mary). father(jake, mary). **(Fact คือ เพรดิเคตส่วนหัว นั่นเอง )

17 Rule 17  กฎเกณฑ์ (Rule) ประกอบด้วย Fact และ List of facts รูปแบบ c :- h 1, h 2, …, h n for n > 0 ตัวอย่าง parent(X,Y) :- mother(X,Y), female(X). หมายถึง

18 Goal 18  คำถาม (Goal) ใช้สอบถาม prolog ว่าจริงหรือ เท็จ หรือถามในสิ่งที่สัมพันธ์กันเช่น ?-food(meat). Yes ?-adjacent(X,bangkok). X = nontha buri X= patum thani

19 การทำนิรนัย (deduction) และ ยูนิฟิเค ชัน (Unification) 19  คือ การประมวลผลโปรแกรม ที่เป็นการสรุป ความจริงใหม่ จากความจริงเดิมที่มีอยู่ การสรุป ความจริงใหม่นี้ เรียกว่า การทำนิรนัย (deduction)  การทำนิรนัยเพื่อให้ได้ความจริงใหม่ จะใช้ วิธีการที่เรียกว่า การทำยูนิฟิ - เคชัน (Unification) คือ การแทนค่าตัวแปรเพื่อให้ เพรดิเคตมีรูปแบบที่เหมือนกัน

20 การย้อนกลับ (Backtracking) 20  การย้อนกลับ (Backtracking) เกิดขึ้นใน ขั้นตอนของการพิสูจน์ความจริงของคำถาม เมื่อ มีกฎที่อ้างถึงมากกว่า 1 กฎ โปรล็อกจะใช้กฎ แรกก่อนในกระบวนการพิสูจน์ ถ้ากฎแรก ตรวจสอบแล้วพบว่า fail โปรล็อกจะย้อนกลับ ตัวแปรที่เคยถูกแทนค่านั้น แล้วทำกระบวนการ พิสูจน์ต่อไป

21 ตัวอย่าง Backtracking 21  ตัวอย่างการใช้กฎแสดงความสัมพันธ์ในครอบครัว mother(mary, bill). mother(mary, sue). mother(sue, nancy). mother(sue, jiff). mother(jane, ron). father(john, sue). father(john, bill). father(bob, nancy). father(bob, jiff). father(bill, ron). parent(A, B) :- father(A, B). parent(A, B) :- mother(A, B). grandparent(A, C) :- parent(A, B), parent(B, C)

22 ตัวอย่าง Backtracking ( ต่อ ) 22

23 ตัวอย่าง Backtracking ( ต่อ ) 23  ถ้าถามว่า ?-grandparent(mary, ron) C

24 ตัวอย่าง Backtracking ( ต่อ ) LOGO 24

25 ตัวอย่าง Backtracking ( ต่อ ) 25

26 26 ตัวอย่างโปรแกรมโปรล็อก  mother_child(trude, sally).  mother_child(trude, bunny).  father_child(tom, sally).  father_child(ted, sally).  father_child(ted, erica).  father_child(mike, tom).  sibling(X, Y) :- parent_child(Z, X), parent_child(Z, Y).  parent_child(X, Y) :- father_child(X, Y).  parent_child(X, Y) :- mother_child(X, Y).  จงตั้งคำถามเพื่อตรวจสอบว่า sally เป็น sibling กับ erica หรือไม่  จงตั้งคำถามเพื่อตรวจสอบว่า sally เป็น sibling กับ bunny หรือไม่  จงตั้งคำถามเพื่อตรวจสอบว่า mike เป็น sibling กับ sally หรือไม่

27 27 ตัวอย่างโปรแกรมโปรล็อก fred eats meat. wilma eats meat. betty eats vegetables. wilma eats vegetables. barney eats meat. barney eats vegetables. If someone eats meat then they are a carnivore. If someone eats meat and vegetables then they are an omnivore. If someone eats X then X is food Is meat a food? Is Fred a carnivore? Is dirt a food? Who are omnivores? What are foods?


ดาวน์โหลด ppt LOGIC PROGRAMMING การโปรแกรมเชิงตรรกะ. หลักการทำโปรแกรมเชิงตรรกะ 2  เป็นการทำโปรแกรมเชิงประกาศ (Declarative Programming) โปรแกรมเมอร์ไม่ต้องระบุขั้นตอนการ.

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


Ads by Google