ikp213-05-prolog

730 views

Published on

Published in: Technology, Business
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
730
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
38
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

ikp213-05-prolog

  1. 1. BAHASA PEMROGRAMAN(IKP213)Pertemuan 5: Prolog, 22 November 2011
  2. 2. Pemrograman Prolog2  Pemrograman Deklaratif  Fakta  Aturan-aturan deduksi  First-Order Predicate Logic  Execution Engine  unification  resolution Pemrograman Prolog – IKP213
  3. 3. Pemrograman Prolog3  Konstanta, Entitas, Atom  rangkaian huruf lower case  pat, jim, bob, . .  Variabel  huruf UPPER CASE  X, Y, Z, . . Pemrograman Prolog – IKP213
  4. 4. SWI-Prolog4  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 Pemrograman Prolog – IKP213
  5. 5. Contoh Silsilah Keluarga5 Pemrograman Prolog – IKP213
  6. 6. Fakta Silsilah Keluarga6 parent(tom,bob). parent(pam,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim).  Relasi dengan arity 2  parent/2 Pemrograman Prolog – IKP213
  7. 7. Kueri Prolog7 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? Pemrograman Prolog – IKP213
  8. 8. Kueri Prolog8 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. Pemrograman Prolog – IKP213
  9. 9. Konjungsi Kueri9  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 Pemrograman Prolog – IKP213
  10. 10. Fakta-fakta Baru10 female(pam). female(liz). female(pat). female(ann). male(tom). male(bob). male(jim).  Relasi dengan arity 1 Pemrograman Prolog – IKP213
  11. 11. Rules11 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 Pemrograman Prolog – IKP213
  12. 12. Unifikasi12  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 Pemrograman Prolog – IKP213
  13. 13. Resolusi13  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) Pemrograman Prolog – IKP213
  14. 14. Monkey and Banana Problem14  States  Monkey at door  Monkey on floor  Box at window  Monkey does not have banana  Ultimate goal  state(X, Y, Z, has). Pemrograman Prolog – IKP213
  15. 15. Monkey and Banana Problem15  Allowable moves  grasp banana  climb box  push box  walk around  Prolog rule  move ( state(middle, onbox, middle, hasnot), grasp, state(middle, onbox, middle, has) ). Pemrograman Prolog – IKP213
  16. 16. Monkey and Banana Problem16  canget(state(atdoor, onfloor, atwindow, hasnot) ). Pemrograman Prolog – IKP213
  17. 17. Ringkasan17  Deklarasi clauses berupa fakta dan rules  Fakta dinyatakan dengan relasi  Fakta memuat Atom  Rules memuat Variabel  Kueri (Goals) memuat Variabel atau Atom Pemrograman Prolog – IKP213
  18. 18. Latihan18  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) Pemrograman Prolog – IKP213
  19. 19. Pustaka19  SWI-Prolog, http://www.swi-prolog.org/  GNU-Prolog  Ivan Bratko, "Prolog Programming for Artificial Intelligence"  http://tjerdastangkas.blogspot.com/search/label/ikp213 Pemrograman Prolog – IKP213
  20. 20. AKHIR PERTEMUAN 4Rabu, 19 Oktober 2011

×