Logic Programming (GNU PROLOG)

Slides:



Advertisements
Presentasi serupa
Penyelesaian Masalah Dengan AI
Advertisements

Materi Praktikum Sistem Operasi INTERNAL COMMAND
PENGENALAN SOFTWARE R RIFKI NANDA Maret, 2013
Fakultas Ilmu Komputer, Universitas Narotama
Pasangan Pola Pasangan Pola.
Pengenalan Prolog Pengenalan Prolog.
Konsep Dasar Bahasa Pascal
Pengantar Logika Proposional
Induksi Matematika.
Depth First Search (DFS)
REPRESENTASI PENGETAHUANI
INFERENSI.
LOGIKA INFORMATIKA VALIDITAS PEMBUKTIAN.
Kalimat Berkuantor.
Algoritma dan Struktur Data
KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE)
Pengantar Intelegensia Buatan (IB) M. Haviz Irfani, S.Si, M.T.I.
SPESIFIKASI PROSES Materi Pertemuan 9.
Algoritma dan Pemrograman
PENGANTAR BAHASA PROLOG
PENGANTAR BAHASA PROLOG
1.2. Logika Predikat Pada pembahasan pasal sebelumnya kita telah
Pengantar Intelegensia Buatan (IB). Pengertian IB H. A. Simon [1987] : “ Kecerdasan buatan (artificial intelligence) merupakan kawasan penelitian, aplikasi.
Pengendalian Alur.
Basis data.
Masalah, Ruang Keadaan, dan Pencarian. What is AI ? Sistem yang berpikir seperti manusia Thinking humanly Sistem yang berpikir secara rasional Thinking.
LOGIKA INFORMATIKA I Gusti Ayu Agung Diatri Indradewi, S. Kom
REPRESENTASI PENGETAHUAN
Proposisi. Pengantar  Pokok bahasan logika, atau objek dari logika adalah pernyataan-pernyataan atau kalimat yang memiliki arti tertentu dan memiliki.
Mata Kuliah : Metode Numerik Gianinna Ardanewari
Pengambilan Keputusan, Sistem, Pemodelan dan Dukungan
LOGIKA INFORMATIKA Pengantar.
Logika Matematika Pengenalan Logika Matematika dan Pengantar Logika Proposisional AMIK-STMIK Jayanusa ©2009 Pengantar Logika.
Masalah, Ruang Keadaan, dan Pencarian
Pengenalan Prolog Teny Handhayani Referensi:
Representasi Pengetahuan (II)
Logika Matematika Bab 3: Kalkulus Predikat
REPRESENTASI PENGETAHUAN - LOGIKA
1. Goal Majemuk dan Unifikasi 2. Runut Balik 3. Input/Output Prolog
Materi 5 Nama dan Environment Dasar-Dasar Pemrograman.
Unfikasi, Runut Balik, Trace, Masukan dan Keluaran
Pengantar Intelegensia Buatan (IB)
Algoritma dan Pemrograman
KECERDASAN BUATAN PERTEMUAN 10.
KECERDASAN BUATAN PERTEMUAN 6 dan 7.
Pengantar Pemrograman Basis Data (PPBD)
1. Goal Majemuk dan Unifikasi 2. Runut Balik 3. Input/Output Prolog
KOMPUTASI KECERDASAN BUATAN
INFERENSI.
Logika informatika 1.
Struktur Program Pascal
BAB 3 EKSPRESI BOOLEAN.
Proposisi.
Kecerdasan buatan.
1. Goal Majemuk dan Unifikasi 2. Runut Balik 3. Input/Output Prolog
TOPIK 1 LOGIKA M. A. INEKE PAKERENG, M.KOM.
Logika Matematika Pernyataan.
PENDIDIKAN MATEMATIKA UNIVERSITAS PGRI YOGYAKARTA
KECERDASAN BUATAN PERTEMUAN 10.
REPRESENTASI PENGETAHUAN - LOGIKA
KOMPUTASI KECERDASAN BUATAN
JENIS KALIMAT PADA PROLOG
INTRODUCTION TO C++
TOPIK 1 LOGIKA.
INTRODUCTION TO C++
PU ZZ LE G a m e s.
Oleh : Rahmat Robi Waliyansyah, M.Kom.
Logika Predikat 2 (QL) Oleh : Dani Suandi, M.Si. KELOMPOK I.
PEMROGRAMAN BERBASIS AI (PROLOG)
BAB 7 EKSPRESI BOOLEAN.
Transcript presentasi:

Logic Programming (GNU PROLOG) Departemen Ilmu Komputer FMIPA IPB 2011 Prolog adalah bahasa yang deklaratif (dari sekumpulan fakta dan aturan, prolog akan menyelesaikan problem secara deduktif  menarik kesimpulan dari fakta dan aturan yang ada)

#1. Struktur Program Turbo Prolog Departemen Ilmu Komputer FMIPA IPB 2011

Prolog Fakta: kenyataan/kebenaran yang diakui Aturan Menyatakan: Hubungan dua atau lebih obyek Sifat obyek Fakta sebaiknya diletakkan dalam satu kelompok yang sama  membentuk prosedur Contoh: bapak(prawiro, joko). merah(darah). Aturan Logika yang dirumuskan dalam bentuk sebab-akibat dan hubungan implikasi kakek(A,Z) :- bapak(A,X), bapak(X,Z). kakek(A,Z) :- bapak(A,X), ibu(X,Z). Klausa dari predikat yang sama harus dikumpulkan dalam satu bagian yang sama dalam clauses untuk membentuk suatu prosedur  akan mempengaruhi efisiensi prolog dalam mencari jawaban dan kecepatan eksekusi program Kepala klausa Body (sub clause)

Prolog Variabel/Term Argumen suatu predikat Berupa atom, variabel, atau obyek lain Jenis variabel: Bernama, misalkan: X, Joko, Orang Tak bernama, misalkan: _ Simbol (diawali dengan huruf kecil), misalkan: joko, orang Proses pencarian fakta dari klausa paling atas sampai paling bawah Atom : suatu unsur, obyek nyata atau konstanta yang tidak tersusun dari objek lain (berbeda dengan obyek majemuk)

Compiler Prolog 1 GNU Prolog (http://www.gprolog.org ) Free prolog compiler Prosedur: Tulis program prolog dengan menggunakan editor Simpan file source code dengan nama: *.pl Jalankan program gprolog.exe Loading source code yang sudah dibuat format : [namafile]. Jalankan kueri :-  if ,  and ;  or

Goal (1) Pada Turbo Prolog Goal ekternal Goal internal Goal internal hanya akan menghasilkan jawaban yang pertama kali ditemukan (tidak akan mencari alternatif jawaban setelah suatu jawaban diperoleh), berbeda dengan goal eksternal yang selalu berusaha mencari jawaban lain sampai habis Non-deterministik : solusi lebih dari satu (meninggalkan lacak balik aat program selesai dieksekusi)

Goal (2) Change_directory(‘path’). Contoh program1.pl likes(ellen, tennis). likes(john, football). likes(tom, baseball). likes(eric, swimming). likes(mark, tennis). likes(bill, Activity) :- likes(tom, Activity). if

Goal (3) Goal1: Goal2: likes(bill,Apa) . <ENTER> likes(tom,Apa), write(Apa), nl, likes(bill,Apa), write(Apa),nl.

Goal (4) Contoh program2.pl ukuran(gorilla,besar). ukuran(beruang,besar). ukuran(gajah,besar). ukuran(kucing,kecil). ukuran(kelinci,kecil). warna(gorilla,hitam). warna(kelinci,putih). warna(beruang,coklat). warna(gajah,kelabu). warna(kucing,hitam). gelap(Z):-warna(Z,hitam). gelap(Z):-warna(Z,coklat).

Goal (5) Goal1: Goal2: gelap(Apa)<ENTER> warna(Apa, hitam)<ENTER> ukuran(Binatang,_)<ENTER> gelap(Z), ukuran(Z,besar), write(Z).

Predikat NOT (1) Contoh clauses predikat () :- predikat (), predikat (), ... Not tidak boleh dilekatkan pada kepala klausa. body head

Predikat NOT  \+ (2) Contoh penggunaan NOT (program3.pl) sayang(X):- binatang(X), \+ ular(X). binatang(kucing). binatang(kobra). binatang(ayam). ular(kobra). ular(piton).

Predikat NOT (3) Goal1: Goal2: sayang(Apa).<ENTER> sayang(X), write(X).

Lacak Balik (1) Prolog mencari jawaban di tempat terdalam terlebih dahulu (depth-first search)

Lacak Balik (2) suka(didit,X) :- makanan(X), berasa(X,keju). berasa(roti,tawar). berasa(pia,coklat). berasa(pia,susu). berasa(pia,keju). berasa(roti,keju). berasa(martabak,keju). makanan(roti). makanan(kripik). makanan(pia). makanan(martabak).

Lacak Balik Goal: suka(didit,Apa)<ENTER>

Latihan 1 Jelaskan proses dan hasil dari lacak balik (backtrack) slide 15. Ilustrasikan proses lacak balik yang terjadi ! Buatlah program prolog berdasarkan fakta dan output berikut : makanan = {soto, bakso, pecel} rasa = {<soto,enak>, <bakso,pedas>, <pecel,kurang_enak>} output = Saya suka (soto) karena enak

Latihan 2 Apakah output dari program prolog berikut ? Jelaskan ! type(mamalia, animal). type(fish, animal). is_a(zebra, mamalia). is_a(herring, fish). is_a(shark, fish). lives(zebra, on_land). lives(frog, on_land). lives(frog, in_water). lives(shark, in_water). can_swim(Y) :- type(X, animal) ,is_a(Y, X) , lives(Y, in_water). Goal : can_swim(Binatang).

Latihan 3 : Unifikasi Misalkan f, g, p, q, r : predikat/klasusa A, B, C, D : variabel x, y : masing- masing konstanta yang berbeda s, t : data majemuk apakah statement berikut mengalami unifikasi atau tidak? Jelaskan ! f(x) dengan g(x) 9. p(x,y) dengan f(x) f(A) dengan f(B) 10. p(x,A) dengan p(B,y) f(x) dengan f(A) 11. q(A,B,A) dengan q(C,C,y) f(x) dengan f(y) 12. r(s(A),s(B)) dengan r(s(x),C) f(x) dengan f(x) 13. r(A,A) dengan r(B,s(B)) f(x) dengan f 14. f(t(A,B)) dengan f(t(x,y)) p(B,B) dengan p(x,y) p(A,x) dengan p(B,C)

Latihan 4 Buat program logika untuk menentukan hasil pengurangan bilangan pertama dan kedua