Pendekatan Inferensi dalam Sistem Pakar Sistem Komputer IST AKPRIND Yogyakarta
Mekanisme inferensi dalam sistem pakar menerapkan pengetahuan untuk solusi problema yang sebenarnya Mekanisme inferensi merupakan pusat dari kemampuan untuk belajar dari pengalaman (proses belajar) sebab memungkinkan untuk men-generate fakta baru, serta dapat melakukan verifikasi terhadap data-data yang ada, dengan melakukan deteksi terjadinya kesalahan dalam alur berpikir dan menuntun user untuk memodifikasi aturan-aturan yang digunakan untuk mendapatkan goal.
Mekanisme inferensi disusun dengan pendekatan tertentu, melibatkan konversi dari representasi pengetahuan yang ada ke dalam bentuk pendekatan mekanisme inferensi yang dipilih. Misal konversi pohon keputusan (decision tree) ke dalam bentuk aturan IF-THEN.
A. Teknik Heuristik Agar dapat memecahkan problema yang sangat sulit, seringkali harus dilakukan kompromi terhadap kecepatan dan sistematika serta membuat struktur pengendalian yang tidak menjamin didapatkannya jawaban yang terbaik namun optimal. Maka dipakailah teknik heuristik
A. Teknik Heuristik Teknik heuristik adalah sebuah teknik yang mengembangkan efisiensi, namun dengan kemungkinan mengorbankan kelengkapan. Peran seorag pakar sangat diperlukan dalam memberikan saran tentang sifat heuristik yang dipakai dalam pemecahan suatu problema. Heuristik menggunakan pengetahuan tentang sifat problema untuk mendapatkan solusi secara efisien. Heuristik serupa dengan pruning yang merupakan salah satu dari elemen dasar kecerdasan buatan.
B. Inferensi berbasis aturan Aturan diekspresikan dalam bentuk kondisi IF-THEN. IF adalah kondisi yang telah ada, THEN adalah aksi atau tanggapan lain yang akan timbul. Aturan IF-THEN lebih dekat dengan cara manusia memecahkan masalahnya sehari-hari, daripada program yang menyatakan pengetahuannya dalam kode komputer tingkat rendah (low level).
B. Inferensi berbasis aturan Ada dua pendekatan dalam menyusun mekanisme inferensi berbasis aturan, yaitu: 1. Pelacakan ke belakang (penalaran mundur/backward chaining) yang memulai penalarannya dari sekumpulan hipotesa menuju fakta-fakta yang mendukung hipotesa tersebut 2. Pelacakan ke depan (penalaran maju/forward chaining) yang merupakan kebalikan dari pelacakan ke belakang, yaitu memulai dari sekumpulan data menuju kesimpulan.
1. Penalaran Maju/Forward Chaining Pelacakan ke depan atau penalaran maju disebut juga forward chaining, sistem pakar akan menguji apakah setiap kondisi benar atau salah. OBSERVASI 1 OBSERVASI 2 KAIDAH A KAIDAH B KAIDAH C KAIDAH D KAIDAH E FAKTA 1 FAKTA 2 FAKTA 3 KESIMPULAN 1 KESIMPULAN 2 KESIMPULAN 3 KESIMPULAN 4
1. Penalaran Maju/Forward Chaining Digunakan untuk permasalahan yang telah diketahui keadaan awalnya (bentuk IF), dan ingin diketahui yang akan diakibatkan olehnya (bentuk THEN, atau konklusi) Contoh Forward Chaining, awal fakta: A,B,C,D,E Aturan: 1. Jika A dan B maka F 2. Jika C dan D maka G 3. Jika F dan G maka H 4. Jika E dan H maka I
1. Penalaran Maju/Forward Chaining Keterangan: (Gambar dapat dilihat pada slide 14) Pertama-tama fakta A dan B diketahui, maka aturan 1 mengetahui F. Fakta C dan D diketahui, maka aturan 2 mengetahui G. Dari F dan G yang sudah diketahui, maka aturan 3 mengetahui H. Aturan 4 mengetahui I karena H dan E sudah diketahui
2. Penalaran Mundur/ Backward Chaining Pelacakan ke belakang atau penalaran mundur disebut juga backward chaining yaitu pemilihan suatu aturan dan menganggapnya sebagai masalah yang harus diselesaikan OBSERVASI 1 OBSERVASI 2 KAIDAH A KAIDAH B KAIDAH C KAIDAH D KAIDAH E FAKTA 1 FAKTA 2 FAKTA 3 TUJUAN OBSERVASI 3 OBSERVASI 4
2. Penalaran Mundur/ Backward Chaining Sebuah konklusi telah terjadi sebagai konsekuensi dari suatu problema dan Backward Chaining berusaha untuk mencari penyebabnya, dan menemukan konklusi sebelumnya. Backward Chaining membantu dalam menangani permasalahan yang konklusinya telah diketahui sebelumnya dan penyebab dari konklusi tersebut yang kemudian dicari
2. Penalaran Mundur/ Backward Chaining Interpreter memeriksa aturan dari fakta yang dalam basis data, yaitu hipotesa. Kemudian menguji bagian THEN, yang maksudnya mencari yang sesuai. Jika ternyata cocok, maka basis data berfungsi sebagai pencatat kondisi yang diperbaharui mendukung kesimpulan yang sesuai. Proses berantai terus berlangsung sampai hipotesa terbukti kebenarannya.
Gambar Forward Chaining dan Backward Chaining
Keterangan gambar (Backward Chaining) Diberitahukan kepada sistem bahwa I ingin dibuktikan. Untuk mengetahui I, harus dibuktikan E dan H (aturan 4) Untuk membuktikan H, harus dibuktikan F dan G (aturan 3) Untuk membuktikan F, harus dibuktikan A dan B (aturan 1) Untuk membuktikan G, harus dibuktikan C dan D (aturan 2). Karena A, B, C, D, dan E telah dibuktikan , oleh karena itu I juga dapat dibuktikan.
Membandingkan Penalaran Maju dan Penalaran Mundur Penalaran mundur bergerak lebih cepat dari penalaran maju karena penalaran mundur tidak harus mempertimbangkan semua aturan dan tidak membuat beberapa putaran melalui perangkat aturan.
Penalaran mundur sangat sesuai jika: Terdapat variabel sasaran berganda (multiple goal variable) Terdapat banyak aturan Semua atau hampir semua aturan tidak harus diuji dalam proses mencapai pemecahan.
Pelacakan (Searching) Adalah suatu strategi untuk melakukan pencarian dalam ruang problema secara selektif, yang memandu proses pencarian di sepanjang jalur yang memiliki kemungkinan sukses paling besar. Teknik ini dipakai pada situasi dengan hasil yang eksak akan terlalu mahal atau tidak mungkin dilakukan, sehingga pemecahan yang diperoleh lebih bersifat cukup (sufficient).
Kedua metode inferensi tersebut, dipengaruhi oleh tiga macam teknik penelusuran, yaitu: depth-first search, breadth-first search, dan best-first search. Depth-first search melakukan penulusuran kaidah secara mendalam dari simpul akar bergerak menurun ke tingkat dalam yang berurutan.
Breadth –first search bergerak dari simpul akar, simpul yang ada pada setiap tingkat diuji sebelum pindah ke tingkat selanjutnya. Best-first search bekerja berdasarkan kombinasi kedua metode sebelumnya.
Depth-First Search (DFS) Pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi/Goal. Jika solusi ditemukan, maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan jalur yang dinginkan).
Ilustrasi Teknik Pencarian DFS B C D E F G H I K L M J N O P
Kelebihan DFS Kelemahan DFS Pemakaian memori hanya sedikit, berbeda jauh dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat. Kelemahan DFS Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete). Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).
Breadth-First Search (BFS) Pencarian dilakukan pada semua node dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi. Dengan strategi ini, maka dapat dijamin bahwa solusi yang ditemukan adalah yang paling baik (Optimal). Tetapi BFS harus menyimpan semua node yang pernah dibangkitkan. Hal ini harus dilakukan untuk penelusuran balik jika solusi sudah ditemukan.
Ilustrasi Teknik Pencarian BFS D E F G H I K L M J N O P
Kelebihan Breath First Search Tidak akan menemukan jalan buntu Jika ada satu solusi, maka BFS akan menemukannya Jika ada lebih dari satu solusi, maka solusi minimum yang akan ditemukan Kelemahan Breath First Search Membutuhkan memori besar, karena menyimpan semua node dalam satu pohon Membutuhkan sejumlah besar pekerjaan, khususnya jika lintasan solusi terpendek cukup panjang, karena jumlah node yang perlu diperiksa bertambah secara eksponensial terhadap panjang lintasan Tidak relevannya operator akan menambah jumlah node yang harus diperiksa sangat besar