REPRESENTASI PENGETAHUAN Dalam menyelesaikan suatu masalah tentu saja dibutuhkan pengetahuan yang cukup. Tidak hanya itu, sistem juga harus memiliki kemampuan untuk menalar. Basis pengetahuan dan kemampuan untuk melakukan penalaran merupakan bagian yang terpenting dari sistem yang menggunakan kecerdasan buatan. Meskipun suatu sistem memiliki banyak pengetahuan, namun tidak memiliki kemampuan untuk menalar, tentu akan menjadi percuma saja. Demikian sebaliknya, apabila suatu sistem memiliki kemampuan yang sangat handal untuk menalar, namun basis pengetahuan yang dimilikinya tidak cukup, maka solusi yang diperolehpun tidak maksimal. 3.1. LOGIKA Logika adalah bentuk representasi pengetahuan yang paling tua. Pada dasarnya proses logika adalah proses membentuk kesimpulan / menarik suatu inferensi berdasarkan fakta yang telah ada. input dari proses logika berupa premis atau fakta-fakta yang diakui kebenarannya sehingga akan melakukan penalaran pada proses logika dapat dibentuk suatu inferensi atau kesimpulan yang benar pula. Ada 2 penalaran yang dapat dilakukan untuk mendapatkan konklusi: 1. Penalaran deduktif : penalaran yang dimulai dari prinsip umum untuk mendapatkan konklusi yang lebih khusus. Contoh: premis mayor : jika hujan turun saya tidak akan berangkat kuliah. premis minor : hari ini hujan turun konklusi : hari ini saya tidak akan berangkat kuliah 2. Penalaran Induktif : penalaran yang dimulai dri fakta-fakta khusus untuk mendapatkan kesimpulan umum. Contoh premis-1 : alajabar adalah pelajaran yang sulit premis-2 : geometri adalah pelajaran yang sulit premis-3 : kalkulus adalah pelajaran yang sulit konklusi : matematika adalah pelajaran yang sulit. Jika muncul premis-4 : optika adalah pelajaran yang sulit , maka premis tersebut menyebabkan konklusi: “matematika adalah pelajaran yang sulit” menjadi salah. Itu disebabkan “optika” bukan merupakan bagian dari “MATEMATIKA”. Sehingga apabila menggunakan penalaran induktif sangat dimungkinkan adanya KETIDAKPASTIAN. 3.1.1. LOGIKA PROPOSISI Proposisi adalah suatu pernyataan yang dapat bernilai benar (B) atau salah (S). Simbol-simbol seperti P dan Q menunjukkan proposisi. Dua atau lebih proposisi dapat digabungkan dengan menggunakan operator logika: a. Konjungsi : ^ (and) b. Disjungsi : v (or) c. Negasi : ¬ (not) d. Implikasi : (if-then) e. Ekuivalensi : a. Operator AND operator AND digunakan untuk mengkombinasikan 2 buah proposisi. Hasil yang akan diperoleh akan bernilai benar jika kedua proposisi bernili benar, dan akan bernilai salah jika salah satu dari keduanya proposisi bernilai salah Tabel kebenaran operator AND P Q P AND Q B B B B S S S B S S S S b. Operatot NOT operator not digunakan untuk memberikan nilai negasi (lawan) dari pernyataan yang telah ada. Tabel Kebenaran Operator NOT P NOT (P) B S S B c. Operator OR Operator or digunakan untuk mengkombinasikan 2 buah proposisi. Hasil yang akan diperoleh akan bernilai benar jika salah satu dari kedua proposisi bernilai benar, dan akan bernilai salah jika kedua proposisi bernilai salah. tabel kebenaran operator OR P Q P OR Q B B B B S B S B B S S S d. Implikasi jika p maka q akan menghasilkan nilai salah. Jika p benar dan q salah, selain itu akan selalu bernilai benar. Tabel kebenaran Implikasi P Q PQ B B B B S S S B B S S B e. Ekuivalensi ekuivalensi akan menghasilkan nilai benar jika p dan q keduanya benar atau keduanya salah Tabel Kebenaran Ekuivalensi P Q PQ B B B B S S S B S S S B Untuk melakukan inferensi pada logika proposisi dapat dilakukan dengan menggunakan resolusi. Resolusi adalah suatu aturan untuk melakukan inferensi yang dapat berjalan secara efisien dalam suatu bentuk khusus. Bentuk khusus tersebut dikenal dengan nama conjunctive normal form(CNF). Bentuk CNF memiliki ciri-ciri sebagai berikut: a. Setiap kelimat merupakan disjungsi literal b. Semua kalimat secara implisit. Kalimat yang ditulis dengan menggunakan logika proposisi dapat dikonversi ke bentuk CNF. Kita perlu menghapus operator-operator selain OR tanpa harus mengubah arti dari kalimat tersebut. Untuk mengubah suatu kalimat ke dalam bentuk CNF, dapat digunakan langkah-langkah sebagai berikut: 1. Hilangkan implikasi dan ekuivalensi a. X Y menjadi ¬ x v y b. X Y menjadi (¬ x v y) ^ (¬ x v y) 2. Kurangi lingkup semua negasi menjadi satu negasi saja a. ¬ (¬ x) menjadi X b. ¬(x v y) menjadi (¬ x ^ ¬y) c. ¬(x ^ y) menjadi (¬ x V ¬y) 3. Gunakan aturan assosiatif dan distributif untuk mengkonversi menjadi conjunction of disjunction. a. Assosiatif : (A V B) V C = A V (B V C) b. Distributif : (A^B) V C = (A V C) ^(B V C) Pada logika , beberapa aksioma F yang telah diketahui, dengan menggunakan resolusi, dapat dilakukan melalui algoritma sebagai berikut : 1. Konversikan semua proposisi F kebentuk CNF 2. Negasikan P, dan konversikan hasil negasi tersebut ke bentuk klausa. Tambahkan ke himpunan klausa yang telah ada pada langkah 1. 3. Kerjakan hingga terjadi kontradiksi atau proses tidak mengalami kemajuan. a. Seleksi 2 klausa sebagai klausa parent b. Bandingkan (resolve)secara bersama-sama. Klausa hasil resolve tersebut dinamakan resolvent. Jika ada pasangan literal L dan ¬L, eliminir dari resolvent c. Jika resolvent berupa klausa kosong, maka ditemukan kontradiksi. Jika tidak, tambahkan ke himpunan klausa yang telah ada Contoh: Diketahui basis pengetahuan (fakta-fakta yang bernilai benar) sebagai berikut: 1. P 2. (P ^ Q) R 3. (S V T) Q 4. T Buktikan kebenaran R? JAWAB : Apabila kita ingin membuktikan kebenaran R dengan menggunakan resolusi, maka pertama-tama kita harus ubah dulu ke empat fakta diatas menjadi bentu CNF. Konversi ke CNF dapat dilakukan sebagai berikut: KALIMAT LANGKAH-LANGKAH CNF 1. P Sudah merupakan bentuk CNF P 2. (P ^ Q) R -Menghilangkan implikasi ¬(P ^Q)V R -Mengurangi lingkup negasi (¬P V¬Q) V R -Gunakan asosiatif ¬P V¬ Q V R ¬P V¬ Q V R 3. (S V T) Q -Menghilangkan implikasi ¬(S V T) v Q -Mengurangi lingkup negasi (¬S V ¬T) V Q -Gunakan asosiatif (¬S V T) ^ (¬T V Q) ¬S V T ¬T V Q 4. T Sudah merupakan bentuk CNF T Kemudia kita tambahkan kontradiksi pada tujuannya, R menjadi ¬R sehingga fakta-fakta (dalam bentuk CNF) dapat disusun menjadi: 1. P 2. ¬P v ¬ q v r 3. ¬S v q 4. ¬T V Q 5. T 6. ¬R Dengan demikian resolusi dapat dilakukan untuk membuktikan R sebagaimana terlihat pada gambar Contoh apabila diterapkan dalam kalimat P : Andi anak yang cerdas Q : Andi rajin belajar R : Andi akan menjadi juara kelas S : Andi makannya banyak T : Andi istirahat cukup Kalimat yang terbentuk: - Andi anak yang cerdas - Jika andi anak yang cerdas dan andi rajin belajar, maka andi akan menjadi juara kelas - Jika andi makannya banyak atau andi istirahatnya cukup, maka andi rajin belajar. - Andi istirahatnya cukup. Setelah dilakukan konversi ke bentuk CNF, di dapat ₋ Fakta ke -2 : andi tidak cerdas atau andi tidak rajin belajar atau andi akan menjadi juara kelas ₋ Fakta ke-3 : andi tidak makan banyak atau andi rajin belajar ₋ Fakta ke-4: andi tidak cukup istirahat atau andi rajin belajar Gambar resolusi pada logika proposisi dengan penyataan lengkap 3.1.2. LOGIKA PREDIKAT A. Representasi Fakta Sederhana Misalkan diketahui fakta-fakta sebagai berikut: - Andi adalah seorang laki-laki : A - Ali adalah seorang laki-laki : B - Amir adalah seorang laki-laki : C - Anto adalah seorang laki-laki : D - Agus adalah seorang laki-laki : E Logika predikat digunakan untuk merepresentasikan hal-hal yang tidak dapat direperentasikan dengan menggunakan logika proposisi. Pada logika predikat kita dapat merepresentasikan fakta-fakta sebagai suatu pernyataan yang disebut dengan wff (well-formed formula). pada contoh diatas, dapat dituliskan: laki2(x) dimana x adalah variabel yang bisa disubstitusikan dengan Andi, Ali, Amir, Anto, Agus dan laki2 yang lain. Contoh : Misalkan terdapat pernyataan-pernyataan sebagai berikut: 1. Andi adalah seorang mahasiswa 2. Andi masuk jurusan elektro 3. Setiap mahasiswa elektro pasti mahasiswa teknik 4. Kalkulus adalah matakuliah yang sulit 5. Setiap mahasiswa teknik pasti akan suka kalkulus atau akan membencinya. 6. Setiap mahasiswa pasti akan suka terhadap suatu matakuliah 7. Mahasiswa yang tidak pernah hadir pada kuliah matakuliah sulit, maka mereka pasti tidak suka terhadap matakuliah tersebut. 8. Andi tidak pernah hadir kuliah matakuliah kalkulus. 1. 2. 3. 4. 5. 6. 7. 8. Ke delapan pernyataan diatas dapat dibawa ke bentuk logika predikat, dengan menggunakan operator-operator: (implikasi), ⌐(not), ^(and), v(or), (untuk setiap), (terdapat), sebagai berikut: Mahasiswa (andi) Elektro (andi) X: elektro(x) teknik (x) Sulit(kalkulus) X: Teknik (x) suka (x, kalkulus) v benci (x, kalkulus) X: y : suka(x,y) X: y: mahasiswa (x) ^ sulit (y) ^ hadir(x,y) suka(x,y) ⌐Hadir(andi, kalkulus) Andaikan kita akan menjawab pertanyaan: “apakah andi suka matakuliah kalkulus” Maka dari pernyataan ke-7 kita akan membuktikan bahwa andi tidak suka dengan matakuliah kalkulus. Dengan menggunakan penalaran backward bisa dibuktikan bahwa: ⌐Suka(andi, kalkulus) Dari penalaran tersebut dapat dibuktikan bahwa andi tidak suka dengan matakuliah kalkulus B. Representasi Hubungan Instance & Isa Instance: predikat dengan argumen 1 berupa objek dan argumen 2 sebagai klas dimana objek terdapat 1. 2. 3. 4. 5. instance(andi,mahasiswa) instance(andi,elektro) x instance(x,elektro) → instance(x,tehnik) instance(kalkulus,sulit) x instance(x,tehnik) → suka(x,kalkulus) v benci(x,kalkulus) Isa: predikat yang menunjukkan hubungan antar sub-klas 1. 2. 3. 4. 5. instance(andi,mahasiswa) instance(andi,elektro) isa(elektro,tehnik) instance(kalkulus,sulit) x instance(x,tehnik) → suka(x,kalkulus) v benci(x,kalkulus) C. Computable function Computable function diperlukan jika kita ingin menyatakan bahwa suatu bilangan x lebih besar dari pada y. Contoh fungsi lb dan lk lb(1,0) dan lk(0,1) 1. 2. 3. 4. 5. 6. 7. 8. 9. Karjo adalah seorang laki-laki Karjo adalah orang Jawa Karjo lahir pada tahun 1840 Setiap laki-laki pasti akan mati Semua orang Jawa mati pada saat Krakatau meletus tahun 1883 Setiap orang akan mati setelah hidup lebih dari 150 tahun Sekarang tahun 2003 Mati berarti tidak hidup Jika seseorang mati, maka beberapa waktu kemudian ia pasti dinyatakan telah mati Diubah menjadi predikat: 1. Laki2(Karjo) 2. Jawa(Karjo) 3. lahir(Karjo,1840) 4. x: laki2(x) → pastimati(x) 5. meletus(Krakatau,1883) Λ x: [Jawa(x) → mati(x,1883) Dipecah menjadi: 5a.meletus(Krakatau,1883) 5b.x: [Jawa(x) → mati(x,1883) 6. x: t1: t2: pastimati(x) Λ lahir(x,t1) Λ 1b(t2-t1,150) → mati(x,t2) 7. Sekarang(2003) 8. x: t: [mati(x,t) → ¬hidup(x,t)] Λ [¬hidup(x,t) → mati(x,t)] 9. x: t1: t2: mati(x,t1) Λ lb(t2,t1) → mati(x,t2) “Apakah Karjo masih hidup sekarang ?” Buktikan ¬hidup(Karjo,sekarang) ¬hidup(Karjo,sekarang) ↑ (8,substitusi) mati(Karjo,sekarang) ↑ (9,substitusi) mati(Karjo,t1) Λ lb(sekarang,t1) ↑ (5b,substitusi) Jawa(Karjo) Λ (lb(sekarang,1883) ↑ (2) lb(sekarang,1883) ↑ (7,substitusi) lb(2003,1883) ↑ (menghitung 1b) nil • Cara lain ¬hidup(Karjo,sekarang) ↑ (8,substitusi) mati(Karjo,sekarang) ↑ (6,substitusi) pastimati(Karjo) Λ lahir(Karjo,t1) Λ lb(sekarang-t1,150) ↑ (4,substitusi) laki2(Karjo) Λ lahir(Karjo,t1) Λ lb(sekarang-t1,150) ↑ (1) lahir(Karjo,t1) Λ lb(sekarang-t1,150) ↑ (3,substitusi) lb(sekarang-1840,150) ↑ (7,substitusi) lb(2003-1840,150) ↑(menghitung minus) lb(163,150) ↑ (menghitung lb) nil D. Resolusi • Teknik pembuktian yang lebih efisien • Fakta-fakta dirubah dulu ke bentuk klausa • Pembuktian dilakukan dengan menegasikan pernyataan lalu cari kontradiksi A. Konversi Klausa • Eliminir a → b menjadi ¬a V b • Kurangi lingkup negasi » ¬ (¬a Λ b) Ξ ¬ a V ¬b » ¬ (¬a V b) Ξ ¬ a Λ ¬b » ¬ x: P(x) Ξ x: ¬P(x) » ¬ x: P(x) Ξ x: ¬P(x) • Standarisasi variabel sehingga semua qualifier terletak pada 1 variabel unik x: P(x) V x : Q(x) menjadi x: P(x) V y : Q(y) • Pindahkan semua qualifier ke depan tanpa mengubah urutan relatifnya • Eliminasi “” x: y: P(y,x) menjadi x: P( S (x) ,x ) • • Buang semua prefiks qualifier “” Ubah ke “conjunction of disjunction” (a Λ b) V c Ξ (a V c) Λ (b V c) • • Bentuk klausa untuk tiap-tiap konjungsi Standarisasi variabel di setiap klausa • Exp. “Setiap orang yang mengenal Hitler, maka ia akan menyukainya atau berpikir bahwa orang yang membunuh orang lain itu gila” Bentuk wff: • x: [orang(x) Λ kenal(x,Hitler)] → [suka(x,Hitler) v (y:z:bunuh(y,z) → gila(x,y))] • Konversi ke bentuk klausa 1. x:¬[orang(x) Λ kenal(x,Hitler)] v [suka(x,Hitler) v (y: ¬(z:bunuh(y,z)) v gila(x,y)] 2. x: [¬orang(x) v ¬kenal(x,Hitler)] v [suka(x,Hitler) v (y: (z: ¬ bunuh(y,z)) v gila(x,y)] 3. sesuai 4. x: y: z: [¬orang(x) v ¬kenal(x,Hitler)] v [suka(x,Hitler) v ¬ bunuh(y,z) v gila(x,y)] 5. sesuai 6. [¬orang(x) v ¬kenal(x,Hitler)] v [suka(x,Hitler) v ¬ bunuh(y,z) v gila(x,y)] 7. ¬orang(x) v ¬kenal(x,Hitler) v suka(x,Hitler) v ¬ bunuh(y,z) v gila(x,y) 8. sesuai 9. sesuai B. Unifikasi Pada Logika Predikat • Unifikasi Ξ pencocokan • Untuk menentukan kontradiksi perlu ada prosedur pencocokan • Mis. – P(x,x) – P(y,z) • • Kedua instan P cocok Compare x dan y, substitusi y ke x: y/x. – Hasil:P(y,y) P(y,z) • dan substitusi z ke y: z/y – Hasil:P(z,z) P(z,z) • • • Proses unifikasi : (z/y) (y/x) Tidak boleh mensubstitusikan y dan z ke x karena substitusi menjadi tidak konsisten Cara lain ? • Contoh: suka(x,y) suka(Andi,z) Dapat dilakukan unifikasi melalui proses substitusi berikut: (Andi/x,z/y) atau (Andi/x,y/z) (Andi/x,SepakBola/y,SepakBola/z) (Andi/x,Tenis/y,Tenis/z) Resolusi Pada Logika Predikat • • • Konversi semua proposisi F ke bentuk klausa Negasikan P dan konversi ke bentuk klausa, tambahkan ke himpunan klausa Kerjakan hingga terjadi kontradiksi atau proses tidak mengalami kemajuan a) Seleksi 2 klausa sebagai klausa parent b) Bandingkan,jika ada pasangan literal T dan ¬T dan dapat dilakukan unifikasi, maka literal itu tidak muncul lagi dalam resolvent c) Jika resolvent nil, terjadi kontradiksi, jika tidak tambahkan himp. klausa yang telah ada. • Exp. 1. 2. 3. 4. 5. mahasiswa(Andi) elektor(Andi) ¬elektro(x1) v teknik(x1) sulit(kalkulus) ¬teknik(x2) v suka(x2,Kalkulus) v benci(x2,kalkulus) 6. ¬mahasiswa(x4) v ¬sulit(y1) v hadir(x4,y1) v ¬suka(x4,y1) 7. ¬hadir(Andi,kalkulus) • Exp. 1. 2. 3. 4. 5. 6. ¬makanan(x1) v suka(Ita,x1) makanan(pisang) makanan(pecel) ¬manusia(x2) v ¬makan(x2,y1) v mati(x2) v makanan(y1) Laki2(Hendra) a.makan(Hendra,jeruk) b. hidup(Hendra) 7. ¬makan(Hendra,x3) v makan(Rini,x3) 8. ¬laki2(x4) v manusia(x4) 9. a. ¬hidup(x5) v ¬mati(x4) b. mati(x5) v hidup(x5) Jaringan Semantik • Defenisi: representasi pengetahuan grafis yang menunjukkan hubungan antar berbagai objek • Terdiri dari: • lingkaran (objek benda atau peristiwa dan informasi) • arc hubungan antar objek • Kelebihan jaringan semantik:’bisa mewariskan’ • ‘Apakah Budi mahluk hidup ?’ • Sistem jaringan semantik selalu tergantung jenis dan cakupan permasalahan Frame • Kumpulan pengetahuan tentang suatu objek, peristiwa, lokasi,situasi • Memiliki slot: menggambarkan rincian (atribut) dan karakteristik objek • Ada slot bernilai tetap dan ada yang tidak tetap (prosedural) • Merepresentasikan pengetahuan berdasarkan karakteristik yang sudah dikenal, berupa pengalaman-pengalaman. Naskah (Script) • Sama dengan Frame, beda frame menggambarkan objek, script menggambarkan urutan peristiwa • Elemen-elemen script • Kondisi Input: kondisi yang harus dipenuhi sebelum terjadi peristiwa dalam script • Track: variasi yang mungkin terjadi dalam script • Prop: berisi objek pendukung selama peristiwa terjadi • Role: peran yang dimainkan seseorang dalam peristiwa • Scene: adegan yang menjadi bagian dari suatu peristiwa • Hasil: kondisi yang ada setelah urutan peristiwa dalam script terjadi Sistem Produksi • Komponen: • Ruang keadaan: awal, tujuan dan rule untuk mencapai tujuan • Strategi Kontrol: mengarahkan bagaimana proses pencarian berlangsung dan mengendalikan arah eksplorasi • Representasi pengetahuan berupa aplikasi rule: • Antecedent: mengekspresikan situasi (premis) berawalan IF • Konsekwen: konklusi yang diharapkan jika premis benar Contoh : IF lalulintas_pagi_ini_padat THEN saya_naik_sepedamotor_saja • Metoda penalaran untuk represenatsi pengetahuan dengan aturan: – Forward Reasoning (Penalaran maju) pelacakan dimulai dari keadaan awal (informasi / fakta yang ada) dan kemudian dicoba untuk mencocokkan dengan tujuan yang diharapkan – Backward Reasoning (Penalaran mundur) pelacakan dimulai dari tujuan lalu dicocokkan dengan keadaan awal atau fakta-fakta