Logic Programming

Download Report

Transcript Logic Programming

Logic Programming
โปรแกรมเชิงตรรกะ
Characteristics
 ไม่ตอ้ งให้รายละเอียดทุกขั้นตอน
 สะสมข้อมูลเป็ นฐานความรู ้ (Knowledge base)
 ตัวอย่าง
นาย ก. เป็ นพี่นาย ข.
นาย ข. เป็ นพี่นาย ค.
นาย ก. เป็ นพี่นาย ค. ด้วย
สรุป
ภาษา LP
 องค์ประกอบของภาษา
Object : สิ่ งที่เราสนใจ
Relation : อธิบายคุณสมบัติ/ความสัมพันธ์ของ Obj.
รู ปแบบ relation-name (list of object names)
ตัวอย่าง FATHER(TOM, JANE).
LARGER(2,1).
MALE(ROBERT).
COST(CAR1, 256000).
ภาษา LP (ต่อ)
 วิธีการเขียนโปรแกรม
ประโยคคาสัง่ 3 รู ปแบบ
• เป้ าหมาย/คาถาม (Goal)
• ข้อเท็จจริ ง/ฐานความรู ้ (Facts)
• กฎเกณฑ์ (Rules)
แต่ละประโยคคัน่ ด้วย “.”
แต่ละโปรแกรมต้องมีอย่างน้อย 1 คาถาม ข้อเท็จจริ ง
และกฏเกณฑ์มีมากกว่าหนึ่งได้
ภาษา LP (ต่อ)
 คาถาม (Goal) มี 2 ประเภท
ไม่มีตวั แปร : จริ ง / เท็จ โดยใช้ขอ้ เท็จจริ งและกฎเกณฑ์
ตัวอย่าง ?FATHER(JOHN,SUE).
TRUE
มีตวั แปร : object ทั้งหมดที่สอดคล้องกับข้อเท็จจริ งที่กาหนด
ตัวอย่าง ?ADJACENT(x,CALIFORNIA).
x = OREGON
x = NEVADA
x = ARIZONA
ภาษา LP (ต่อ)
 ข้อเท็จจริ ง (Fact) มี 2 ประเภท
ไม่มีตวั แปร : ความสัมพันธ์ระหว่าง object
ตัวอย่าง FATHER(JOHN,SUE).
มีตวั แปร : ความสัมพันธ์ของ obj. ทั้งหมดของโปรแกรม
ตัวอย่าง FEMALE(person).
FRIENDS(x, JACK).
ภาษา LP (ต่อ)
 กฎเกณฑ์ (Rule)
ประกอบด้วย Fact และ List of facts
รู ปแบบ c if h1, h2, …, hn for n > 0
ตัวอย่าง
PARENT(JOHN,SUE) if FATHER(JOHN,SUE).
PARENT(x,y) if FATHER(x,y).
MOTHER(x,y) if PARENT(x,y), FEMALE(x).
ภาษาโปรลอก
 PROLOG : PROgramming in LOGic
 Alian Colmerauer
ชาวฝรั่งเศสสร้างเมื่อ 1972
 นิ ยมใช้ในงานวิจยั ด้านคอมพิวเตอร์ ในยุโรปและญี่ปุ่น
 คล้ายกับภาษา LP แตกต่างกันเล็กน้อยในด้านการเขียน
โปรแกรม
ภาษาโปรลอก (ต่อ)
 ชื่อของ Object และ relation ขึ้นต้นด้วยอักษรตัวเล็ก
 ชื่อตัวแปร ขึ้นต้นด้วยอักษรตัวใหญ่
 คาถาม ขึ้นต้นด้วย
? กฎเกณฑ์มีรูปแบบดังนี้
c :- h1, h2,…,hn for n > 0
Imperative Language
 imperare = to command
 แนวคิดพื้นฐานตามสถาปั ตยกรรมแบบ Von Neumann
 ประกอบด้วยชุดคาสัง่ ที่เปลี่ยนค่าในหน่วยความจา
 ลักษณะสาคัญ
 ตัวแปร (variables)
 การกาหนดค่า (Assignment)
 การทาซ้ า (Repetition)