Anda di halaman 1dari 3

IKO31300: Sistem Cerdas 2011/2012 Semester Gasal Tugas 2: First Order Logic & Resolution

Penjelasan Umum

Pada tugas ini, anda diminta untuk melakukan inf erence pada rst order logic menggunakan metode resolution refutation. Sebuah implementasi dalam Prolog sudah disediakan pada le folresolution.pl yang tersedia di SCeLE silahkan dipelajari. Untuk mengerjakan tugas ini, anda tidak harus bisa memrogram dalam bahasa Prolog. Yang penting, anda mempelajari contoh representasi yang diberikan, dan bisa merepresentasikan soal-soal kasus yang ada. Program ini mendenisikan sebuah format ASCII-encoding untuk rst order logic sebagai berikut: Negation Conjunction Disjunction Implication Existential quantier Universal quantier (A) (A B) (A B) (A A) (xS) (xS) dinyatakan dinyatakan dinyatakan dinyatakan dinyatakan dinyatakan dengan dengan dengan dengan dengan dengan A A & B A # B A -> B exists(X,S) all(X,S)

Pada intinya, program ini memiliki dua predikat1 penting: translate(+FOL,-CNF)2 Predikat ini menerjemahkan sebuah formula dalam bentuk rst order logic ke dalam bentuk conjunctive normal form menggunakan tahap-tahap yang dijelaskan pada kuliah, yakni: 1. Eliminasi implikasi dengan DeMorgan 2. Pindahkan ke dalam quantier 3. Skolemize existential variables 4. Buang universal quantier 5. Distribusi over (ingat, CN F adalah conjunction of disjunction of literals). 6. Memisahkan klausa ke dalam 2 kelompok: yang literalnya positif dan yang literalnya negatif (dinegasikan). Tahap yang terakhir dilakukan untuk mempermudah proses resolution yang mencari pasangan literal komplementer (mis. P dan P ). resolve(+CNF) Predikat ini mengimplementasikan proses inf erence berdasarkan resolution: Ketika diberikan sebuah list klausa yang dihasilkan oleh predikat translate di atas, ia akan terus berusaha menurunkan kontradiksi berupa empty clause, [].

Contoh

Sebuah contoh telah disediakan pada le contoh.pl yang tersedia di SCeLE. File ini merupakan representasi dari soal pada worksheet 7 sbb.: Jika buaya putih adalah hewan supranatural, maka ia tidak dapat dibunuh. Jika buaya putih bukan hewan supranatural, maka ia reptil yang dapat dibunuh. Jika buaya putih itu hewan supranatural atau bangsa reptil, maka ia bergigi emas. Buaya putih berkekuatan sihir apabila dia bergigi emas. Representasi knowledge base di atas dapat dinyatakan sebagai berikut (perhatikan sintaksnya!):
predikat dalam Prolog itu seperti fungsi/method dalam bahasa lainnya dalam menjelaskan predikat dalam Prolog, argumen dengan tanda + merupakan parameter input, dan argumen dengan tanda - merupakan parameter output. Amati penggunaan predikat translate pada contoh di bawah.
2 Biasanya, 1 Bayangkan

contoh( all(X, all(X, all(X, all(X, ).

supranatural(X) -> ~bisaDibunuh(X)) & ~supranatural(X) -> (reptil(X) & bisaDibunuh(X))) & (supranatural(X) # reptil(X)) -> punyaGigiEmas(X)) & punyaGigiEmas(X) -> punyaKekuatanSihir(X))

Untuk menjalankan program pada contoh ini, kita perlu menjalankan interpreter Prolog, misalnya SWI-Prolog3 , dan pertama-tama lakukan consult4 terhadap le folresolution.pl dan contoh.pl. Untuk membuktikan apakah buaya putih bergigi emas menggunakan KB ini, kita memanggil query berikut:
?- contoh(Contoh), translate(Contoh & ~punyaGigiEmas(buayaPutih),Klausa), resolve(Klausa).

Perhatikan bahwa kita menerjemahkan KB , karena ingin membuktikan menggunakan metode proof by contradiction. Seperti diharapkan, program resolution akan mengembalikan output:
Diturunkan: cl([], [])

yang membuktikan buaya putih bergigi emas.

Soal: Pahlawan [20%]

Perhatikan alinea berikut: Semua pahlawan memiliki kostum keren. Siapapun yang memiliki kostum keren dan berkekuatan super adalah superhero. Jika seseorang adalah pahlawan, maka dia berkekuatan super. Superman memiliki kostum keren. Batman adalah pahlawan. Gundala berkekuatan super. 1. Representasikanlah alinea ini ke dalam kalimat-kalimat logika, dan nyatakan dalam sebuah predikat Prolog bernama pahlawan (perhatikan denisi predikat contoh di atas). 2. Coba jawab pertanyaan-pertanyaan berikut: (a) Apakah Superman adalah superhero? (b) Apakah Batman adalah superhero? (c) Apakah Gundala adalah superhero? Bahaslah secara detail bagaimana anda melakukan hal ini dengan program yang diberikan (tuliskan sebagai komentar dalam le yang anda submit). Jelaskan hasil yang anda peroleh. Kalau perlu, copy-paste hasil output programnya.

Soal: Misteri Pencuri Krabby Patty [40%]

Perhatikan masalah berikut: Seseorang yang berada di restoran Krusty Krab telah mencuri Krabby Patty milik Spongebob ketika sedang membersihkan restoran tersebut. Pada saat Krabby Patty itu hilang, di tempat itu hanya ada Spongebob, Pattrick, dan Mr. Krabs. Seseorang yang mencuri selalu merasa iri pada pemilik barang yang dicurinya, dan tidak mungkin lebih kaya dari korbannya. Pattrick tidak merasa iri pada seorang pun yang membuat Spongebob iri. Spongebob iri kepada siapapun kecuali Mr. Krabs. Mr. Krabs iri kepada semua orang yang tidak lebih kaya dari Spongebob. Mr. Krabs iri pada semua orang yang membuat Spongebob iri. Tidak ada orang yang merasa iri pada semua orang. 1. Representasikanlah masalah ini ke dalam kalimat-kalimat logika, dan nyatakan dalam sebuah predikat bernama krabby (perhatikan denisi predikat contoh di atas). 2. Dengan seluruh informasi di atas, terdapat perbedaan pendapat antara tiga pakar kriminologi:
3 Versi 4 Istilah

open source Prolog yang paling terkenal. Installer-nya bisa di-download dari SCeLE untuk me-load program dalam Prolog

(a) Pakar A menganggap pencurinya adalah Pattrick. (b) Pakar B menuduh Mr. Krabs sebagai pelaku pencurian. (c) Pakar C menuduh Spongebob-lah yang sebenarnya telah memalsukan pencurian Krabby Patty miliknya sendiri. Bahaslah secara detail bagaimana anda dapat menentukan pendapat pakar mana yang benar (tuliskan sebagai komentar dalam le yang anda submit). Jelaskan hasil yang anda peroleh. Kalau perlu, copy-paste hasil output programnya.

Soal: Reuni SMA [40%]

Perhatikan masalah berikut: Dalam sebuah reuni SMA, Andi, seorang polisi, duduk semeja bersama 4 orang temannya, yaitu Johny, Lily, Charlie, dan Rossie. Dari kelima orang yang duduk di meja tersebut, ada peserta reuni yang bermaksud membunuh salah seorang peserta lain. Diketahui bahwa seseorang tidak akan membunuh orang yang dia sukai. Seorang pembunuh juga tidak akan menjadikan teman baiknya sebagai korban pembunuhan. Pembunuh juga hanya bisa membunuh orang yang duduk berdekatan dengan dirinya. Lalu, seorang pembunuh tidak akan duduk berdekatan dengan polisi. Fakta juga menyatakan bahwa di dunia ini tidak ada orang yang menyukai semua orang dan tidak ada orang yang merupakan teman baik semua orang. Setiap orang yang dianggap teman oleh orang lain pasti juga menganggap orang tersebut sebagai temannya. Berikut adalah informasi tambahan tentang peserta reuni SMA yang ada: Charlie sebagai seorang dokter menyukai Rossie sejak SMA. Johny sang arsitek tidak duduk berdekatan dengan Charlie karena dia tidak menyukainya. Lily seorang psikolog duduk berdekatan dengan Andi yang dia sukai. Andi bersahabat baik dengan Johny sejak kecil. Rossie seorang pengusaha sukses berteman baik dengan Johny dan duduk di dekatnya. 1. Representasikanlah masalah ini ke dalam kalimat-kalimat logika, dan nyatakan dalam sebuah predikat Prolog bernama reuni (perhatikan denisi predikat contoh di atas). 2. Gunakan program resolution untuk menjawab pertanyaan sebagai berikut: jika pada acara tersebut terjadi pembunuhan, siapa sajakah di antara peserta reuni SMA tersebut yang bersih dari tuduhan pembunuhan? Bahaslah secara detail bagaimana anda dapat menjawab pertanyaan ini menggunakan program yang diberikan (tuliskan sebagai komentar dalam le yang anda submit). Jelaskan hasil yang anda peroleh. Kalau perlu, copy-paste hasil output programnya.

Termination [Bonus]

Ketika menjawab query-query pada nomor-nomor sebelumnya, apakah programnya selalu berhasil terminate dengan baik? Kalau seandainya ya, beruntunglah! Namun jika tidak, jelaskan kira-kira mengapa, dan apa yang perlu dilakukan untuk menyelesaikan masalah ini (tidak perlu anda implementasikan!)?

Pengumpulan tugas
1. Denisi predikat pahlawan beserta komentar mengenai pembahasan pembuktian pertanyaannya. 2. Denisi predikat krabby beserta komentar mengenai pembahasan pembuktian pertanyaannya. 3. Denisi predikat reuni beserta komentar mengenai pembahasan pembuktian pertanyaannya.

Yang perlu dikumpulkan adalah le folresolution.pl yang berisi:

Batas akhir pengumpulan tugas adalah jam 23:55, hari Senin, 5 Desember 2011. Pengumpulan akan dilakukan melalui SCeLE (untuk detail-nya, lihat homepage Sistem Cerdas di SCeLE).

Anda mungkin juga menyukai