1106 602 prolog (artificial intelligence) · introduction to prolog ubon ratchathani university,...

7
บทที่ 7 โปรแกรมภาษาโปรลอกเบื้องตน Introduction to Prolog Ubon Ratchathani University, Mukdahan Campus : อ.วรยุทธ วงศ์นิล 1 1106 602 (Artificial Intelligence) Prolog PROLOG มาจากคําว0า Programming in Logic เป3นภาษาคอมพิวเตอร<ที่ใชBแกBปDญหาทางดBานสัญลักษณ< ใชBพื้นฐานของ predicate logic จัดเป3น descriptive language ใชBอธิบาย object และความสัมพันธ< SWI-Prolog เป3น interpreter download ไดBจาก www.swi-prolog.org/download/stable 2 Example 1 Clauses: has(jack, apples). has(ann, plums). has(dan, money). fruit(apples). fruit(plums). 3 Example 1 4

Upload: others

Post on 19-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1106 602 Prolog (Artificial Intelligence) · Introduction to Prolog Ubon Ratchathani University, Mukdahan Campus : อ.วรยุทธ วงศ์นิล 1 1106 602 (Artificial

บทที่ 7 โปรแกรมภาษาโปรลอกเบื้องต�นIntroduction to PrologUbon Ratchathani University, Mukdahan Campus : อ.วรยทุธ วงศน์ิล

1

1106 602(Artificial Intelligence)

Prolog

� PROLOG มาจากคําว0า Programming in Logic

� เป3นภาษาคอมพิวเตอร<ที่ใชBแกBปDญหาทางดBานสัญลักษณ< ใชBพื้นฐานของ

predicate logic

� จัดเป3น descriptive language ใชBอธิบาย object และความสัมพันธ<

� SWI-Prolog เป3น interpreter download ไดBจาก

www.swi-prolog.org/download/stable

2

Example 1

Clauses:

has(jack, apples).

has(ann, plums).

has(dan, money).

fruit(apples).

fruit(plums).

3

Example 1

4

Page 2: 1106 602 Prolog (Artificial Intelligence) · Introduction to Prolog Ubon Ratchathani University, Mukdahan Campus : อ.วรยุทธ วงศ์นิล 1 1106 602 (Artificial

Knowledge Base

5

Knowledge Base

6

Knowledge Base 2

7

Knowledge Base นี้ ประกอบดBวย

� 5 clauses

� 2 facts

� 3 rules

Expressing Conjunction

เครื่องหมาย ‘,’ คือตัวเชื่อม ‘และ’

‘:-’ แทนคําว0า ‘ถBา’

ทุกประโยคจบดBวย ‘.’

8

Page 3: 1106 602 Prolog (Artificial Intelligence) · Introduction to Prolog Ubon Ratchathani University, Mukdahan Campus : อ.วรยุทธ วงศ์นิล 1 1106 602 (Artificial

Expressing Conjunction

9

Expressing Conjunction

10

Knowledge Base 3 : Asking Alternatives

11

Knowledge Base 3 : Asking Alternatives

12

Page 4: 1106 602 Prolog (Artificial Intelligence) · Introduction to Prolog Ubon Ratchathani University, Mukdahan Campus : อ.วรยุทธ วงศ์นิล 1 1106 602 (Artificial

Knowledge Base 3 :

13

Knowledge Base 3 :

14

Knowledge Base 4

15

Prolog Syntax

16

Page 5: 1106 602 Prolog (Artificial Intelligence) · Introduction to Prolog Ubon Ratchathani University, Mukdahan Campus : อ.วรยุทธ วงศ์นิล 1 1106 602 (Artificial

Atoms

� คือ สายอักขระที่ประกอบไดBจาก อักษรภาษาอังกฤษตัวเล็ก, ตัวใหญ0, ตัวเลข แต0ตBองขึ้นตBนดBวยอักษรตัวเล็กเท0านั้น

เช0น butch, big_kahuna_burger, playGuitar

� สายอักขระที่เกิดจากการกําหนดเองใหBเขียนไวBในเครื่องหมายฝนทองเช0น ‘Vincent’, ‘Five dollar shake’

� สัญลักษณ<พิเศษ

เช0น : , . :-

17

Numbers

� Integers : 12, -34, 22342

� Floats : 34.5678

18

Variables

� คือ สายอักขระที่ประกอบไดBจาก อักษรภาษาอังกฤษตัวใหญ0, ตัวเล็ก,

ตัวเลข หรือ underscore แต0ตBองขึ้นตBนดBวยอักษรตัวใหญ0หรือ

underscore เท0านั้น

เช0น X, Y, Variable, Vincent, _tag

19

Complex Terms

Complex terms เกิดจากการประกอบดBวย Atoms, numbers

และ variables

ตัวอย0างเช0น

playAirGurtar(jody)

loves(Vincent, mia)

hide(X, father(father(father(butch))))

20

Page 6: 1106 602 Prolog (Artificial Intelligence) · Introduction to Prolog Ubon Ratchathani University, Mukdahan Campus : อ.วรยุทธ วงศ์นิล 1 1106 602 (Artificial

Prolog Syntax

21

การทํางานของ Prolog

22

Example : Search tree

23

Another Example

24

Page 7: 1106 602 Prolog (Artificial Intelligence) · Introduction to Prolog Ubon Ratchathani University, Mukdahan Campus : อ.วรยุทธ วงศ์นิล 1 1106 602 (Artificial

Tower of Hanoi

หอคอยแห0งฮานอย หรือ ทาวเวอร<ออฟฮานอย (Tower of Hanoi) เป3นเกมคณิตศาสตร< ประกอบดBวยเสา 3 เสา และ จานกลมแบนขนาดต0างๆ ซึ่งมีรูตรงกลางสําหรับใหBเสาลอด เกมเริ่มจากจานทั้งหมดวางอยู0ที่เสาเดียวกัน โดยเรียงตามขนาดจากใหญ0ที่สุดอยู0ทางดBานล0างจนถึงจานขนาดเล็กที่สุดอยู0ดBานบนสุด เป3นลักษณะกรวยคว่ําตามรูป

เป{าหมายของเกมคือ พยายามยBายกองจานทั้งหมดไปไวBที่อีกเสาหนึ่ง โดยการเคลื่อนยBายจานจะตBองเป3นไปตามกติกา คือ

- สามารถยBายจานไดBเพียงครั้งละ 1 ใบ

- ไม0สามารถวางจานใหญ0ไวBบนจานที่มีขนาดเล็กกว0าไดB

25

Tower of Hanoi

Recursive algorithm

ถBาใหBเสาหลักเป3น A, B, C ตามลําดับจากซBายไปขวา และมีแผ0นจานหนึ่งแผ0น ก็จะยBายจากเสา A ไปยังเสา C การแกBปDญหานี้สามารถใชBแกBปDญหาแผ0นจานจํานวน n-1 เพื่อแกBปDญหา n แผ0นจะง0ายเมื่อใชB recursive ดังนี้

1. ยBายแผ0นจานจํานวน n-1 ที่อยู0บนสุดจากเสาหลัก A ไปไวBยังเสา B โดยมีเสา C ทําหนBาที่ช0วยเหลือในการสลับแผ0น

2. ยBายจานขนาดใหญ0สุด (จานที่ n) ที่เหลืออยู0จากเสา A ไปเสา C

3. ยBายจานจํานวน n-1 จากเสา B ไปเสา C

26

Tower of Hanoi

จากทดลองของปDญหานี้ : http://www.dynamicdrive.com/dynamicindex12/towerhanoi.htm27