Knowledge Representation

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ข้อสรุปหลักสูตรการอบรมการผลิต รายการเด็ก TV4Kids.
Advertisements

เป็นการนำความรู้ด้าน Microsoft Excel ที่มีความพิเศษตรงที่สามารถ กำหนดสูตรการคำนวณในแต่ละเซลล์ ของ Sheet งานนั้นๆได้ โดยอาศัย ความแม่นยำในการคีย์ข้อมูลเข้าไป.
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
ประโยคในภาษาไทย การเขียนประกอบด้วยประโยคต่าง ๆ หลายรูปแบบ หากเข้าใจโครงสร้างของประโยค จะทำให้สื่อความหมายได้ชัดเจน ไม่สับสน ไม่คลุมเครือ และไม่ขาดตกบกพร่อง.
เทคนิคการเขียนข่าว การเขียนข่าวเพื่อการประชาสัมพันธ์เบื้องต้น มีโครงสร้างการเขียนข่าว ประกอบด้วย 1.พาดหัวข่าว (Headline) 2.ความนำ (Lead) 3.ส่วนเชื่อม (Neck/Bridge)
การใช้งานโปรแกรม SPSS
ผู้วิจัย : นางธนิตา ขาวทอง วิทยาลัยอาชีวศึกษาบริหารธุรกิจวิทยา สงขลา
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
หน่วยที่ 5 การเวียนเกิด
ความหมายของโครงการ โครงการ (PROJECT) โครงการ (PROJECT) กระบวนการ ทำงานที่ประกอบด้วยกิจกรรมหลาย ๆ กิจกรรม ซึ่งมีการทำโครงการเป็นไปตามลำดับ โดยการ ทำงานจะต้องเป็นไปตามวัตถุประสงค์ที่ตั้งไว้
การพัฒนาผลสัมฤทธิ์ทางการเรียน วิชาการใช้โปรแกรมนำเสนอข้อมูล เรื่องการเชื่อมโยง ภาพนิ่ง ด้วยโปรแกรม Powerpoint2007 โดยใช้ สื่อคอมพิวเตอร์ช่วยสอน CAI ของนักเรียนระดับชั้น.
Adaptive Software Development. วงจรชีวิตของการพัฒนาซอฟแวร์ หรือ Software Development Life Cycle (SDLC) เป็นโครง ร่างหรือแนวทางวิธีการ เพื่อใช้ทำความเข้าใจและเพื่อ.
การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ ครูชาญณรงค์ ปานเลิศ โรงเรียนพระบางวิทยา ครูชาญณรงค์
คำสั่งควบคุมการทำงาน
Project Management by Gantt Chart & PERT Diagram
ระเบียบคณะกรรมการพลังงานปรมาณูเพื่อสันติว่าด้วยวิธีการรักษาความมั่นคงปลอดภัยของวัสดุนิวเคลียร์และสถานประกอบการทางนิวเคลียร์พ.ศ วันที่ประกาศในราชกิจจานุเบกษา.
ง21101 การงานอาชีพและเทคโนโลยี ม. 1 เจตคติต่อการประกอบอาชีพ
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
นำเสนอวิธีปฏิบัติที่ดี ด้านกิจกรรมพัฒนานักศึกษา
เกม คณิตคิดเร็ว.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การทำ Normalization 14/11/61.
แรงแบ่งได้เป็น 2 ลักษณะ คือ 1. แรงสัมผัส ( contact force )
สมการเชิงเส้น (Linear equation)
บทที่ 7 การหาปริพันธ์ (Integration)
ระดับความเสี่ยง (QQR)
คณิตศาสตร์เพิ่มเติม ตรรกศาสตร์เบื้องต้น คุณครูจักรินทร์ ทะสะระ.
โครงสร้างภาษา C Arduino
กลุ่มคำและประโยค ภาษาไทย ม. ๓
บทที่ 4 การอินทิเกรต (Integration)
Presentation การจัดการข้อร้องเรียนในธุรกิจบริการ Customer Complaint Management for Service.
บทที่ 1 ระบบสารสนเทศ (Information System)
บทที่ 8 การควบคุมโครงการ
กรณีศึกษา : นักเรียน ระดับ ปวช.2 สาขาวิชาการบัญชี
เริ่มทำแบบทดสอบ แบบทดสอบก่อนเรียน หนังสืออิเล็กทรอนิกส์
เริ่มทำแบบทดสอบ แบบทดสอบก่อนเรียน หนังสืออิเล็กทรอนิกส์
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
กำหนดกรอบระยะเวลาการขึ้นทะเบียนปี2556/57 1. ข้าว
พื้นฐานการออกแบบ กราฟิก หมายถึง ศิลปะแขนงหนึ่งซึ่งใช้การสื่อความหมาย ด้วยเส้น สัญลักษณ์ รูปวาด ภาพถ่าย กราฟ แผนภูมิ การ์ตูน ฯลฯ เพื่อให้สามารถสื่อความหมายของข้อมูลได้ถูกต้องตรง.
ข้อมูลและสารสนเทศ.
โครงการจัดทำระบบฐานข้อมูล วัตถุเสพติดของกลาง (ระยะที่1)
การประชุมเชิงปฏิบัติการพัฒนาศักยภาพบุคลากรทางการศึกษาด้านการสอบด้วยคอมพิวเตอร์ (Computer-based Assessment) การรู้เรื่องการอ่าน ด้านคณิตศาสตร์และด้านวิทยาศาสตร์
บริษัท พัฒนาวิชาการ (2535) จำกัด
SMS News Distribute Service
สมการพหุนาม ที่มีความซับซ้อนมากขึ้น
คณิตศาสตร์ 1 รหัสวิชา
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
การวิจัยทางการท่องเที่ยว
การเปลี่ยนแปลงประมาณการทางบัญชี และข้อผิดพลาด
งานนำเสนอสำหรับโครงการ นิทรรศการวิทยาศาสตร์
หน่วยการเรียนรู้ที่ 2 การกำหนดประเด็นปัญหา
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
การวัดและประเมินผลด้านพุทธิพิสัย (ตามลำดับขั้นการเรียนรู้ของ Benjamin Bloom) รศ. บรรพต พรประเสริฐ.
เล่าเรื่องอย่างผู้นำ Coaching by story
รูปนิสิต บทคัดย่อ ผลการทดลอง วัตถุประสงค์ วิธีการที่นำเสนอ บทนำ
ฟังก์ชันของโปรแกรม Computer Game Programming
การเติบโตของฟังก์ชัน (Growth of Functions)
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
โครงการถ่ายทอดเทคโนโลยีถนนรีไซเคิลเพื่อลดขยะพลาสติกใน 4 ภูมิภาค
ทายสิอะไรเอ่ย ? กลม เขียวเปรี้ยว เฉลย ทายสิอะไรเอ่ย ? ขาว มันจืด เฉลย.
Predicate calculus First order Logic
การวิเคราะห์สถานะคงตัวของ วงจรที่ใช้คลื่นรูปไซน์
กระดาษทำการ (หลักการและภาคปฏิบัติ)
สื่อประกอบการเรียนการสอน
ใบสำเนางานนำเสนอ:

Knowledge Representation

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

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

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

Propositional Logic ประพจน์ คือ ประโยคที่มีเหตุผลและพิจารณาได้ว่าเป็นจริงหรือเท็จ มีกฎ 3 ข้อ ประพจน์ต้องเป็นจริงหรือเท็จเท่านั้น กรุงเทพเป็นเมืองหลวงของประเทศไทย (ประพจน์เป็นจริง) ประพจน์จะเป็นจริงหรือเท็จพร้อมกันไม่ได้ กรุงเทพเป็นเมืองหลวงของประเทศไทยตั้งอยู่ที่ภาคเหนือ ประพจน์เชิงซ้อน จะหาค่าความจริงโดยรวม ประเทศไทยอยู่ในทวีปเอเซียมีกรุงเทพเป็นเมืองหลวง http://choopanr.staff.kmutnb.ac.th/030523111.php

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

Tanasanee Phienthrakul https://docs.google.com/file/d/0B7tG7Yp3et7QdVNTZk90QWF4Uzg/edit

Tanasanee Phienthrakul https://docs.google.com/file/d/0B7tG7Yp3et7QdVNTZk90QWF4Uzg/edit

Tanasanee Phienthrakul https://docs.google.com/file/d/0B7tG7Yp3et7QdVNTZk90QWF4Uzg/edit

Tanasanee Phienthrakul https://docs.google.com/file/d/0B7tG7Yp3et7QdVNTZk90QWF4Uzg/edit

Tanasanee Phienthrakul https://docs.google.com/file/d/0B7tG7Yp3et7QdVNTZk90QWF4Uzg/edit

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

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

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

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

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)) http://choopanr.staff.kmutnb.ac.th/030523111.php

ค่าควรระวังในการใช้ 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) ) ถูก http://choopanr.staff.kmutnb.ac.th/030523111.php

ความสัมพันธ์ของ  และ  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) http://choopanr.staff.kmutnb.ac.th/030523111.php

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) ทุกๆคนในโลกนี้ถูกใครบางคนรัก http://choopanr.staff.kmutnb.ac.th/030523111.php

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) http://choopanr.staff.kmutnb.ac.th/030523111.php

การอนุมานใน 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) http://choopanr.staff.kmutnb.ac.th/030523111.php

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

การเปลี่ยนประโยคให้อยู่ในรูป 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) http://choopanr.staff.kmutnb.ac.th/030523111.php

การเปลี่ยนประโยคให้อยู่ในรูป 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 ตัวแปรของแต่ละประโยคย่อยอีกรอบหนึ่ง http://choopanr.staff.kmutnb.ac.th/030523111.php

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

ตัวอย่าง : 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) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง : การแปลงประโยคให้อยู่ในรูป 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) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง : การแปลงประโยคให้อยู่ในรูป 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))] http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง : การแปลงประโยคให้อยู่ในรูป 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)) http://choopanr.staff.kmutnb.ac.th/030523111.php

การพิสูจน์ด้วย 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 http://choopanr.staff.kmutnb.ac.th/030523111.php

การพิสูจน์ด้วย 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 http://choopanr.staff.kmutnb.ac.th/030523111.php

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 http://choopanr.staff.kmutnb.ac.th/030523111.php

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))) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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)) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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)) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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 : ไม่ต้องทำ http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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)) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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(สมชาย) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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(สมชาย)

พิสูจน์ได้ว่า สมชายมีความสุข 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(สมชาย) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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 ? http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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)) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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 http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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)]) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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) http://choopanr.staff.kmutnb.ac.th/030523111.php

ตัวอย่าง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 http://choopanr.staff.kmutnb.ac.th/030523111.php

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)

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

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))

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)