Kecerdasan Buatan Pertemuan 2 Knowledge Representation Ali Ridho Barakbah IT-EEPIS Knowledge Representation Suppose I tell you the following... • The Duck-Bill Platypus and the Echidna are the only two mammals that lay eggs. • Only birds and mammals are warm blooded. • “Susan”, my pet Armadillo is warm blooded, and has no feathers. • All birds have feathers. …and I ask you, does “Susan” lay eggs? Knowledge Representation - Dibangun sebuah sistem yang berisi sekumpulan fakta. Sistem ini disebut Knowledge Base (KB). - Selanjutnya dari Sistem tersebut, kita dapat mengajukan pertanyaan dengan jawaban benar/salah. - Sebagai contoh untuk mendapatkan jawaban “what class is susan?” Dapat kita rubah menjadi “susan a amphibian?” “susan a bird?” dsb Knowledge Representation (Representasi Pengetahuan) • Suatu proses untuk menangkap sifat-sifat penting problema dan membuat informasi tersebut dapat diakses oleh prosedur pemecahan permasalahan • Bahasa representasi harus dapat membuat seorang pemrogram mampu mengekspresikan pengetahuan yang diperlukan untuk mendapatkan solusi permasalahan. Knowledge Representation (Representasi Pengetahuan) • Knowledge engineering : proses mengumpulkan dan mengorganisasi pengetahuan • Knowledge representation : proses bagaimana pengetahuan direpresentasikan untuk membentuk basis pengetahuan Entiti Representasi Pengetahuan • Fakta Adalah kejadian sebenarnya. Fakta inilah yang akan kita representasikan. • Representasi dari fakta Bagaimana cara untuk memodelkan fakta. Dari representasi ini, kita akan dapat memanipulasinya. • Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan. Representasi yang baik • • • • • Mengemukakan hal secara eksplisit Membuat masalah menjadi transparan Komplit dan efisien Menampilkan batasan-batasan alami yang ada Menekan/menghilangkan detil-detil yang diperlukan • Dapat dilakukan komputasi (ada batasan/konstraint) Kategori Representasi • Representasi logika [dibahas dalam ppt ini] : Representasi jenis ini menggunakan ekspresi-ekspresi dalam logika formal untuk merepresentasikan basis pengetahuan. • Representasi prosedural: Representasi menggambarkan pengetahuan sebagai kumpulan instruksi untuk memecahkan suatu problema. Digunakan dalam pemrograman: IF-THEN • Representasi network: Representasi ini menangkap pengetahuan sebagai sebuah graph dimana simpul-simpulnya menggambarkan obyek atau konsep dari problema yang dihadapi, sedangkan edge-nya menggambarkan hubungan atau asosiasi antar mereka. Contoh Graph dan Tree • Representasi terstruktur: Representasi terstruktur memperluas network dengan cara membuat setiap simpulnya menjadi sebuah struktur data kompleks. Contoh: script, frame, dan object • Dan lain-lain (kromosom, jaringan syaraf, gen, dll) Jika suatu permasalahan dideskripsikan dengan menggunakan representasi yang tepat, maka dapat dipastikan bahwa permasalahan tersebut dapat diselesaikan. Logika Bentuk representasi pengetahuan yang paling tua Proses menarik kesimpulan (inferensi) berdasarkan fakta yang telah ada Terdiri dari : Logika Proposisi (tidak di bahas) Logika Predikat Logika Predikat Order Pertama • Konsep dan aturan sama dengan logika proposisi • Membagi sebuah pernyataan menjadi 2 bagian : • Argumen • Predikat PREDICATE (Individual [object]1, Individual [object]2) Logika Predikat Order Pertama Contoh : • Joko suka bahasa inggris Suka(joko, bahasa inggris) • Predikat (keterangan) : suka, argumen (objek) : joko, bahasa inggris • Toni adalah seorang mahasiswa mahasiswa(Toni) Logika Predikat Order Pertama Contoh : • 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 • Dapat ditulis : laki2(x), dimana x adalah variabel yang bisa diganti dengan Andi, Ali,dll Logika Predikat Order Pertama Contoh : teman(Andi,Joko) teman(ayah_dari(Joni),ayah_dari(Andre)) dimana : argument : ayah_dari(Joni) adalah Andi argument : ayah_dari(Andre) adalah Joko predikat : teman Ilustrasi Representasi Pengetahuan secara logik (Representasi Logika) • Contoh sederhana fakta adalah sebagai berikut: helder adalah anjing • Sebagai predikat : anjing, argumen : helder • Fakta tersebut dapat direpresentasikan secara logika, yaitu: anjing(helder) • Kita juga dapat merepresentasikan secara logik fakta lain, yaitu bahwa semua anjing mempunyai ekor x : anjing(x) mempunyai_ekor(x) • Kemudian secara deduktif dari mekanisme logik ini kita bisa mendapatkan representasi baru: mempunyai_ekor(anjing) • Dengan menggunakan fungsi mapping secara backward, kita dapat men-generate suatu kalimat yang berbunyi helder mempunyai ekor Contoh kasus Representasi Pengetahuan • Cobalah representasi pengetahuan dari silsilah keluarga berikut ini hari agus budi ria ita ani rudi Hasil representasi anaklaki(hari, agus). dibaca sebagai anak laki-laki dari hari adalah agus anaklaki(agus, budi). anakperempuan(agus, ani). anakperempuan(budi, ria). anakperempuan(budi, ita). anaklaki(ani, rudi). Catatan • Kita dapat menggunakan kalimat apapun sebagai predikat • Ide dasar untuk membuat notasi adalah predicate (argument, argument ). Simple Query on Knowledge Database • Adalah bagaimana mencari suatu pengetahuan dari representasi yang ada • Contoh: anakperempuan(agus,P). hasilnya adalah P = ani yang menandakan bahwa ani adalah anak perempuan dari agus • Contoh lain: anaklaki(OT,AL). Hasil : OT=hari AL=agus OT=agus AL=budi OT=ani AL=rudi • Contoh lain: anaklaki(P,budi), anakperempuan(P,D). untuk menanyakan saudara perempuan dari budi Hasil : P=agus D=ani Meng-extend hubungan antara knowledge • Kita dapat menambahkan hubungan antara knowledge, misalnya antara anak laki dan anak perempuan diextend menjadi hubungan orangtua orangtua(C,P):-anaklaki(P,C). orangtua(C,P):-anakperempuan(P,C). • Contoh : orangtua(budi,P). Hasil : P=agus Recursive description of relationship • Jika ingin mencari turunan, berikut cara merepresentasikannya: turunan(OT,TR):-orangtua(TR, OT). anak turunan(OT,TR):-orangtua(TR, P), orangtua(P, OT). cucu turunan(OT,TR):- orangtua(TR, P), orangtua(P,GP),orangtua(GP, OT). cicit • Fakta di atas dapat diekspresikan dengan proses rekursif sbb: turunan(OT,TR):-orangtua(TR,OT). anak turunan(OT,TR):- orangtua(TR,P),turunan(OT,P). Tugas 1. Dalam sebuah organisasi perusahaan terdapat tree sebagai berikut: adi burhan bahrun fahri bisrin farah ferdi • Dari tree tersebut kita dapat membaca bahwa Burhan adalah bawahan langsung dari Adi, sebaliknya Adi adalah atasan langsung dari Burhan. Fahri dan Farah adalah anak buah dari Bahrun, sementara Fahri, Farah, Bahrun, Ferdi, Bisrin secara keseluruhan adalah anak buah dari Burhan. – Dengan menggunakan sintaks dalam bahasa Prolog, buatlah representasi pengetahuan dari fakta tersebut di atas. (Dari definisi bawahan langsung). – Dengan menggunakan sintaks dari definisi bawahan langsung di atas, terjemahkan untuk atasan langsung. – Bagaimana kita membuat pertanyaan siapa bawahan langsung dari Burhan • Dengan menggunakan deskripsi secara rekursif buatlah sintak untuk merepresentasikan fakta anak buah. 2. Dari pohon keluarga di bawah ini, tuliskan suatu program dalam bahasa Prolog yang menyatakan predikat anak, perempuan, laki-laki. Kemudian dari predikat ini buatlah relasi orang tua, saudara laki-laki, saudara perempuan, paman, bibi, kakek, nenek. anto deni ita hadi wati budi ida dina andi rudi rita Referensi • Modul Ajar Kecerdasan Buatan, Entin Martiana, Tessy Badriyah, Riyanto Sigit, Politeknik Elektronika Negeri Surabaya, 2005. • www.ai-depot.com • Tuntunan Praktis Pemrograman Bahasa Prolog, Andrey Andoko, cetakan kedua, Penerbit elex Media Komputindo, 1991.