Matakuliah : KONSEP BAHASA PEMROGRAMAN Tahun : 2010 Pemrograman Logik Pertemuan 13 Outline Materi • • • • • • • Pendahuluan Pengantar Kalkulus Predikat Kalkulus Predikat dan Teori Pembuktian Review Pemrograman Logik Origin Prolog Elemen Dasar Prolog Kekurangan Prolog Bina Nusantara University 3 Pendahuluan • Bahasa pemrograman logik atau bahasa pemrograman deklaratif • Menyajikan program dalam simbolik logik • Menggunakan logika inferensi untuk menghasilkan keluaran • Deklaratif bukannya prosedural : •hanya menyatakan spesifikasi hasil, bukannya prosedur rinci untuk menghasilkannya • Aplikasi •Sistem pengelolaan database relational •Sistem pakar Bina Nusantara University •Pemrosesan bahasa natural 4 Proposisi dan Simbolik Logik • Pernyataan logikal yang nilainya true atau false • Terdiri dari obyek-obyek dan relasi diantara obyek • Logik yang dapat digunakan untuk logik formal – Ekspresikan proposisi – Ekspresikan relasi diantara proposisi – Uraikan bagaimana proposisi baru dapat di-infer dari proposisi lain • Bentuk khusus dari simbolik logik yang digunakan pemrograman logik disebut kalkulus predikat Bina Nusantara University 5 Representasi Obyek • Obyek di proposisi disajikan sebagai term : konstan atau variabel • Konstant : simbol yang mewakili obyek • Variabel: simbol yang mewakili obyek berbeda di waktu berbeda – Berbeda dari variabel di bahasa imperatif Bina Nusantara University 6 Term Majemuk • Atomik proposisi terdiri dari term majemuk • Term majemuk : satu elemen dari relasi matematika, ditulis seperti fungsi matematika – Fungsi matematika adalah pemetaan – Dapat ditulis sebagai tabel • Term majemuk terdiri dari – Functor: simbol fungsi yang menamai relasi – Tuple : daftar parameter terurut • Contoh : student(jon) like(seth, OSX) like(nick, windows) like(jim, linux) Bina Nusantara University 7 Bentuk Proposisi • Proposisi dapat dinyatakan dalam dua bentuk: – Fact: proposisi yang diasumsikan true – Query: kebenaran proposisi yang perlu dibuktikan • Proposisi majemuk : – Mempunyai dua atau lebih proposisi atomik – Proposisi yang dihubungkan oleh operator Bina Nusantara University 8 Operator Logikal Name Symbol Example Meaning negation a not a conjunction ab a and b disjunction ab a or b equivalence ab implication ab ab a is equivalent to b a implies b b implies a Bina Nusantara University 9 Kuantifier Name Example Meaning universal X.P For all X, P is true existential X.P There exists a value of X such that P is true Bina Nusantara University 10 Bentuk Klausa • Banyak cara untuk menyajikan hal yang sama • Gunakan bentuk proposisi • Format klausa – B1 B2 … Bn A1 A2 … Am – Dibaca jika semua A true maka paling sedikit satu B true • Antecedent : sisi kanan • Consequent : sisi kiri Bina Nusantara University 11 Kalkulus Predikat dan Pembuktian Teori • Penggunaan proposisi adalah menemukan teori baru yang dapat disimpulkan dari aksioma dan teori yang diketahui • Resolusi: prinsip inferensi yang mengijinkan proposisi yang di-infer dihitung dari proposisi yang diketahui – Unifikasi: menemukan nilai variabel dalam proposisi agar proses matching berhasil – Instantiation: pemberian nilai temporer ke variabel agar unifikasi berhasil – Sesudah pemberian variabel dengan nilai, jika matching gagal, perlu backtrack dan beri dengan nilai berbeda Bina Nusantara University 12 Bukti dengan Kontradiksi • Hipotesa: himpunan proposisi yang perlu dibuktikan kebenarannya • Goal: negasi teori sebagai proposisi • Teori dibuktikan dengan menemukan inkonsistensi Bina Nusantara University 13 Pembuktian Teori • Basis untuk pemrograman logik • Ketika proposisi digunakan untuk resolusi, hanya bentuk tertentu yang dapat digunakan • Klausa Horn – hanya mempunyai dua bentuk – Headed: proposisi atomik tunggal di sisi kiri – Headless: sisi kiri kosong (digunakan untuk menyatakan fact) • Kebanyak proposisi dapat dinyatakan sebagai klausa Horn Bina Nusantara University 14 Review Pemrograman Logik • Semantik deklaratif – Cara sederhana untuk menentukan arti setiap pernyataan – Lebih sederhana daripada semantik bahasa imperatif • Pemrograman adalah nonprosedural – Program tidak menyatakan hasil komputasi tetapi bentuk dari hasil • Contoh mengurutkan list: menguraikan karakteristik list terurut, bukan proses pengurutan list – sort(old_list, new_list) permute (old_list, new_list) sorted (new_list) – sorted (list) j such that 1 j < n, list(j) list (j+1) Bina Nusantara University 15 Origin Prolog • University of Aix-Marseille – Pemrosesan bahasa natural • University of Edinburgh – Pembuktian teori otomatis • Prolog menggunakan sintaks Edinburgh Bina Nusantara University 16 Term, Variabel dan Struktur • • • • Term: konstan, variabel atau struktur Constant: atom atau integer Atom: nilai simbolik Prolog Atom terdiri dari : – string huruf, digit, dan underscore diawali dengan huruf kecil – string karakter printable ASCII dipisahkan dengan apostrophes • Variable: sembarang string huruf, digit dan underscore dimulai dengan huruf besar • Instantiation: pengikatan variabel ke nilai • Structure: representasi proposisi atomik functor(parameter list) Bina Nusantara University 17 Pernyataan Fact • Digunakan untuk hipotesa • Klausa Headless Horn female(shelley). male(bill). father(bill, jake). Bina Nusantara University 18 Pernyataan Rule • Digunakan untuk hipotesa • Klausa Headed Horn • Sisi kanan : antecedent (bagian if ) – Term tunggal atau konjungsi • Sisi kiri : consequent (bagian then) – Harus term tunggal • Conjunction: term multipel dipisahkan oleh operasi AND logikal (implikasi) Bina Nusantara University 19 Contoh Rule ancestor(mary,shelley):mother(mary,shelley). • Dapat menyebabkan variabel (obyek universal ) berarti umum: parent(X,Y):- mother(X,Y). parent(X,Y):- father(X,Y). grandparent(X,Z):- parent(X,Y), parent(Y,Z). sibling(X,Y):- mother(M,X), mother(M,Y), father(F,X), father(F,Y). Bina Nusantara University 20 Pernyataan Goal • Untuk pembuktian teori, teori adalah dalam bentuk proposisi yang menginginkan sistem menerima atau menolak – goal statement • Format sama seperti headless Horn man(fred) • Proposisi konjungtif dan proposisi dengan variabel juga tujuan legal father(X,mike) Bina Nusantara University 21 Inferensi Prolog • Query disebut goal • Jika goal proposisi majemuk, setiap fakta adalah subgoal • Untuk membuktikan goal benar, harus menemukan rangkaian inference rule dan/atau fact. Untuk goal Q: B :- A C :- B … Q :- P • Proses membuktikan subgoal disebut matching, satisfying, atau resolusi Bina Nusantara University 22 Pendekatan • Resolusi Bottom-up, forward chaining – Mulai dengan fakta dan rule database dan mencoba menemukan sekuen yang menuju ke goal – Tugas dimulai dengan large set of possibly correct answers • Resolusi Top-down , backward chaining – Mulai dengan goal dan mencoba menemukan sekuen yang mengarah ke himpunan fakta dalam database – Tugas dimulai dengan small set of possibly correct answers • Prolog menggunakan pendekatan backward chaining Bina Nusantara University 23 Strategi Subgoal • Jika goal mempunyai lebih dari subgoal, dapat menggunakan – Depth-first search (DFS): menemukan bukti untuk subgoal pertama sebelum mengerjakan yang berikutnya – Breadth-first search(BFS): kerjakan semua subgoal secara paralel • Prolog menggunakan DFS karena dapat dilakukan menggunakan sumber yang lebih sedikit Bina Nusantara University 24 Backtracking • Backtracking: goal dengan subgoal multipel, jika gagal membuktikan kebenaran salah satu subgoal, pikirkan kembali subgoal sebelumnya untuk mencari solusi alternatif • Mulai pencarian dimana pencarian sebelumnya dikesampingkan • Butuh waktu dan ruang yang banyak karena mencari semua bukti yang mungkin dari subgoal Bina Nusantara University 25 Aritmatika Sederhana • Prolog mendukung variabel integer dan aritmatika integer • Operatoris : sisi kanan adalah ekspresi aritmatika dan sisi kiri adalah variabel A is B / 17 + C • Tidak sama dengan pernyataan penugasan Bina Nusantara University 26 Contoh speed(ford,100). speed(chevy,105). speed(dodge,95). speed(volvo,80). time(ford,20). time(chevy,21). time(dodge,24). time(volvo,24). distance(X,Y) :- speed(X,Speed), time(X,Time), Y is Speed * Time. Bina Nusantara University 27 Trace • Struktur built-in yang menayangkan instantiation disetiap langkah • Model eksekusi tracing: – – – – Call (mulai mencoba menemukan goal) Exit (jika goal telah dipenuhi) Redo (jika backtrack terjadi) Fail (jika goal gagal) Bina Nusantara University 28 Contoh likes(jake,chocolate). likes(jake,apricots). likes(darcie,licorice). likes(darcie,apricots). trace. likes(jake,X), likes(darcie,X). Bina Nusantara University 29 Struktur List • Struktur data dasar lain selain atomik proposisi adalah list • List adalah sekuen sembarang elemen • Elemen mungkin atom, atomik proposisi atau term lain, termasuk list [apple, prune, grape, kumquat] [] (list kosong) [X | Y] (head X dan tail Y) Bina Nusantara University 30 Contoh Append dan Reverse append([], List, List). append([Head | List_1], List_2, [Head |List_3]) :append (List_1, List_2, List_3). reverse([], []). reverse([Head | Tail], List) :reverse (Tail, Result), append (Result, [Head], List). Bina Nusantara University 31 Kelemahan Prolog • • • • Resolusi urutan kendali Asumsi closed-world Masalah negasi Limitasi intrinsik Bina Nusantara University 32 Latihan A. SOAL PILIHAN 1. Contoh bahasa deklaratif adalah a. LISP dan Java c. Java dan Prolog b. LISP dan Prolog d. LISP, Prolog dan Java 2. Prolog menggunakan sintaks a. MIT c. Edinburgh b. Aix-Marseille d. Oxford 3.Prolog menggunakan pendekatan a. BFS dan backward chaining chaining c. DFS dan backward chaining Bina Nusantara University b. DFS dan forward d. BFS dan forward chaining 33 LATIHAN 4.Pemrograman logic adalah a. procedural c. fungsional b. imperative d. nonprocedural 5. Aplikasi dari pemrograman logic adalah a. sistem pakar dan pemrosesan bahasa natural b. pemrosesan bahasa natural dan system pengelolaan DB relational c. system pengelolaan DB relational dan sistem pakar d. system pakar, pemrosesan bahasa natural dan sistem pengelolaan DB relational Bina Nusantara University 34 LATIHAN B. SOAL URAIAN 1. Uraikan apa perbedaan antara DFS dan BSF ketika kita mendiskusikan bagaimana mencapai multiple goal? 2. Apa relasi yang ada di antara resolusi dan unifikasi dalam Prolog? Bina Nusantara University 35 Ringkasan • • • • • Simbolik logik adalah basis pemrograman logik Program logik adalah nonprosedural Pernyataan Prolog adalah fact, rule atau goal Resolusi adalah aktifitas utama di interpreter Prolog Meskipun ada sejumlah kekurangan dengan pemrograman logik saat ini, tetapi ia digunakan di berbagai bidang Bina Nusantara University 36
© Copyright 2024 Paperzz