ikp213-05-prolog
Click here to load reader
-
Upload
anung-ariwibowo -
Category
Technology
-
view
580 -
download
0
Transcript of ikp213-05-prolog
![Page 1: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/1.jpg)
BAHASA PEMROGRAMAN
(IKP213)
Pertemuan 5: Prolog, 22 November 2011
![Page 2: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/2.jpg)
Pemrograman Prolog
Pemrograman Prolog – IKP213
2
Pemrograman Deklaratif
Fakta
Aturan-aturan deduksi
First-Order Predicate Logic
Execution Engine
unification
resolution
![Page 3: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/3.jpg)
Pemrograman Prolog
Pemrograman Prolog – IKP213
3
Konstanta, Entitas, Atom
rangkaian huruf lower case
pat, jim, bob, . .
Variabel
huruf UPPER CASE
X, Y, Z, . .
![Page 4: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/4.jpg)
SWI-Prolog
Pemrograman Prolog – IKP213
4
http://www.swi-prolog.org/
Implementasi Prolog di Windows
Tuliskan fakta dan rules dalam berkas teks
Consult berkas teks dari IDE SWI-Prolog
File Consult
Tuliskan kueri / goals
![Page 5: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/5.jpg)
Contoh Silsilah Keluarga
Pemrograman Prolog – IKP213
5
![Page 6: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/6.jpg)
Fakta Silsilah Keluarga
Pemrograman Prolog – IKP213
6
parent(tom,bob).
parent(pam,bob).
parent(tom,liz).
parent(bob,ann).
parent(bob,pat).
parent(pat,jim).
Relasi dengan arity 2
parent/2
![Page 7: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/7.jpg)
Kueri Prolog
Pemrograman Prolog – IKP213
7
parent(tom, X).
X = bob ;
X = liz ;
false.
Siapa yang memiliki tom sebagai orang tua?
parent(Y, ann).
Y = bob ;
false.
Siapa orang tua dari ann?
![Page 8: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/8.jpg)
Kueri Prolog
Pemrograman Prolog – IKP213
8
parent(X, Y).
Menampilkan semua fakta
Cari semua X dan Y yang memenuhi relasi parent
Substitusi variabel dengan atom di dalam fakta
yang ada
Tidak ada atom yang dapat mensubstitusi: false
parent(badu, Y).
false.
![Page 9: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/9.jpg)
Konjungsi Kueri
Pemrograman Prolog – IKP213
9
Siapa grandparent dari jim?
Siapa parent dari jim? Y
Siapa parent dari Y? X
X adalah grandparent dari jim
parent(Y, jim), parent(X, Y).
Cari seseorang, Y, yang menjadi parent dari jim
dan cari X yang menjadi orang tua dari Y
![Page 10: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/10.jpg)
Fakta-fakta Baru
Pemrograman Prolog – IKP213
10
female(pam).
female(liz).
female(pat).
female(ann).
male(tom).
male(bob).
male(jim).
Relasi dengan arity 1
![Page 11: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/11.jpg)
Rules
Pemrograman Prolog – IKP213
11
offspring(X, Y) :- parent(Y, X).
X adalah offspring dari Y, jika Y adalah parent
dari X
mother(X,Y) :- parent(X,Y),
female(X).
X adalah mother dari Y, jika X adalah parent dari
Y dan X adalah female
![Page 12: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/12.jpg)
Unifikasi
Pemrograman Prolog – IKP213
12
parent(X, liz).
Periksa semua fakta yang diberikan
Untuk fakta yang sama, terapkan algoritma Unifikasi
Disagreement set
parent(X, liz) dengan parent(tom, bob).
disagreement set {X, tom}
fail
parent(X, liz) dengan parent(tom, liz).
disagreement set {X, tom}
success
![Page 13: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/13.jpg)
Resolusi
Pemrograman Prolog – IKP213
13
offspring(X, liz)
Terapkan algoritma unifikasi untuk rule offspring(X, Y)
disagreement set {liz, Y}
resolusi / menggantikan Head Goal offspring(X, Y)
dengan sub-goal parent(Y, X)
unifikasi Y dengan liz pada sub-goal parent(Y, X)
Unifikasi sub-goal parent(liz, X)
![Page 14: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/14.jpg)
Monkey and Banana Problem
Pemrograman Prolog – IKP213
14
States
Monkey at door
Monkey on floor
Box at window
Monkey does not have banana
Ultimate goal
state(X, Y, Z, has).
![Page 15: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/15.jpg)
Monkey and Banana Problem
Pemrograman Prolog – IKP213
15
Allowable moves
grasp banana
climb box
push box
walk around
Prolog rule
move ( state(middle, onbox, middle, hasnot), grasp,
state(middle, onbox, middle, has) ).
![Page 16: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/16.jpg)
Monkey and Banana Problem
Pemrograman Prolog – IKP213
16
canget(state(atdoor, onfloor, atwindow, hasnot) ).
![Page 17: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/17.jpg)
Ringkasan
Pemrograman Prolog – IKP213
17
Deklarasi clauses berupa fakta dan rules
Fakta dinyatakan dengan relasi
Fakta memuat Atom
Rules memuat Variabel
Kueri (Goals) memuat Variabel atau Atom
![Page 18: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/18.jpg)
Latihan
Pemrograman Prolog – IKP213
18
Siapa grandparent dari ann?
Siapa grandchild dari bob?
Tuliskan rule aunt(X, Y)
Tuliskan rule hastwochildren(X)
Tuliskan rule hasdaughter(X)
Tuliskan rule grandchildren(X, Y)
![Page 19: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/19.jpg)
Pustaka
SWI-Prolog, http://www.swi-prolog.org/
GNU-Prolog
Ivan Bratko, "Prolog Programming for Artificial
Intelligence"
http://tjerdastangkas.blogspot.com/search/label/ikp213
19
Pemrograman Prolog – IKP213
![Page 20: ikp213-05-prolog](https://reader038.fdocuments.in/reader038/viewer/2022100600/55503d90b4c9058f768b4760/html5/thumbnails/20.jpg)
AKHIR PERTEMUAN 4
Rabu, 19 Oktober 2011