• Like
ikp213-05-prolog
Upcoming SlideShare
Loading in...5
×

ikp213-05-prolog

  • 565 views
Uploaded on

 

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
565
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
36
Comments
1
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. BAHASA PEMROGRAMAN(IKP213)Pertemuan 5: Prolog, 22 November 2011
  • 2. Pemrograman Prolog2  Pemrograman Deklaratif  Fakta  Aturan-aturan deduksi  First-Order Predicate Logic  Execution Engine  unification  resolution Pemrograman Prolog – IKP213
  • 3. Pemrograman Prolog3  Konstanta, Entitas, Atom  rangkaian huruf lower case  pat, jim, bob, . .  Variabel  huruf UPPER CASE  X, Y, Z, . . Pemrograman Prolog – IKP213
  • 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. Contoh Silsilah Keluarga5 Pemrograman Prolog – IKP213
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Monkey and Banana Problem16  canget(state(atdoor, onfloor, atwindow, hasnot) ). Pemrograman Prolog – IKP213
  • 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. 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. 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. AKHIR PERTEMUAN 4Rabu, 19 Oktober 2011