Sistem Pakar Berbasis Aturan Rulebased Expert Systems KECERDASAN
Sistem Pakar Berbasis Aturan (Rule-based Expert Systems) KECERDASAN BUATAN (ARTIFICIAL INTELLIGENCE) MATERI 3 Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa Timur 2011
Pengetahuan 2 �Pengetahun (knowledge) ? Adalah teori atau praktek pemahaman suatu subyek atau domain. Kumpulan mengenai apa yang diketahui. �Orang yang berada diposisi tersebut -> PAKAR. �Misal: dokter, teknisi komputer, petani, dsb. �Daerah pada domain tersebut terbatas, mis: pakar (dokter) penyakit kulit hanya memahami secara penuh pada domain penyakit kulit (tidak untuk penyakit lain), petani udang hanya mengetahui penyakit udang (tidak untuk ikan lain). �Secara umum, pakar adalah orang yang terampil dalam melakukan sesuatu (pemikiran dan tindakan) yang tidak dapat dilakukan orang lain.
Aturan dalam pengetahuan 3 � Misal, domain masalah adalah “menyeberang jalan raya” � Aturan: IF the ‘traffic light’ is green IF the ‘traffic light’ is red � � THEN the action is go THEN the action is stop � Pernyataan tersebut merepresentasikan bentuk IF-THEN yang disebut “aturan produksi” atau “aturan” saja. � IF-THEN umum digunakan dalam representasi pengetahuan yang berhubungan dengan fakta atau informasi dalam bagian IF untuk beberapa aksi dalam bagian THEN. Aturan memberikan deskripsi bagaimana menyelesaikan masalah. � Aturan terdiri dari dua bagian: bagian IF, disebut antecedent (premise atau condition) atau fakta , dan bagian THEN yang disebut consequent (conclusion atau action) atau kesimpulan. � Sinktaks dasar: IF <antecedent> THEN <consequent> � Umumnya, sebuah aturan dapat mempunyai gabungan beberapa antecedent dengan kata kunci AND (konjungsi), OR (disjungsi), atau kombinasi keduanya. � IF <antecedent 1> � AND <antecedent 2> �. � AND <antecedent n> � THEN <consequent> � IF <antecedent 1> � OR <antecedent 2> �. � OR <antecedent n> � THEN <consequent>
Aturan dalam pengetahuan (2) 4 � Fakta aturan disandingkan dengan dua bagian: obyek (linguistic object) dan nilainya. Mis. Obyek linguistik seperti “traffic light” bisa mempunyai nilai “red” atau “green” � Obyek dan nilainya dihubungkan dengan oprator, spt: is, are, is not, are not untuk memberikan nilai simbolik pada obyek linguistik. � Tetapi sistem pakar biasanya menggunakan operator matematika untuk mendefinisikan obyek sebagai numerik dan memberikan nilai numerik padanya. Mis. : IF ‘age of the customer’ < 18 AND ‘cash withdrawal’ > 1000 THEN ‘signature of the parent’ is required � Kesimpulan (consequent) –sama dengan fakta- mengombinasikan obyek dan nilai yang dihubungkan oleh operator. Mis. : Nilai traffic ligh adalah green, aturan pertama nilai obyek linguistik “action” dengan “go” Mis. : IF ‘taxable income’ > 16283 THEN ‘Medicare levy’ = ‘taxable income’ * 1. 5 / 100
Aturan dalam pengetahuan (2) 5 � Aturan dapat merepresentasikan relations (hubungan), recommendations (saran), directives (arahan), strategies (strategi) dan heuristics (heuristik) [Durkin, 1994]. � Strategy � Relation IF the ‘fuel tank’ is empty THEN the car is dead � IF the car is dead � THEN the action is ‘check the fuel tank’; � Recommendation � step 1 is complete IF the season is autumn (musim gugur) � IF step 1 is complete AND the sky is cloudy � AND the ‘fuel tank’ is full AND the forecast is drizzle (gerimis) � THEN the action is ‘check the battery’; THEN the advice is ‘take an umbrella’ � step 2 is complete � Directive � Heuristic IF the car is dead � IF the spill is liquid AND the ‘fuel tank’ is empty � AND the ‘spill p. H’ < 6 THEN the action is ‘refuel the car’ � AND the ‘spill smell’ is vinegar � THEN the ‘spill material’ is ‘acetic acid’
Pemain utama sistem pakar 6 � Sistem Pakar, adalah sebuah program komputer yang dapat bekerja pada level pakar manusia dalam daerah masalah yang sempit. � Tipe: rule-based, case-based, dsb. � Expert System Shell adalah sistem pakar yang tidak mengandung pengetahuan (komponen yang lain tetap ada). � Ada 5 anggota tim pengembangan sistem pakar: the domain expert, the knowledge engineer, the programmer, the project manager and the end-user.
Domain Expert 7 �Domain expert adalah orang yang bisa mengetahui dan terampil dalam menyelesaikan masalah pada daerah atau domain spesifik. �Sangat pakar dalam domain tersebut, mis: dokter, teknisi komputer, petani, dsb. �Kepakarannya akan di-capture dalam sistem pakar. �Pakar harus bisa mengkomunikasikan pengetahuannya, berpartisipasi dalam pembangunan sistem pakar. �Pemain yang paling penting dalam pembangunan sistem pakar. Domain expert
Knowledge Engineer 8 � Knowledge engineer adalah orang yang mempunyai kemampuan perancangan, pembangunan dan pengujian sistem pakar. � Bertanggung jawab untuk pemilihan pekerjaan yang tepat bagi sistem pakar. � Mewawancarai domain expert untuk mencari bagaimana masalah tertentu diselesaikan. � Selama interaksi wawancara, memunculkan metode penalaran pakar dalam menanani fakta dan aturan dan memutuskan bagaimana merepresentasikannya dalam sistem pakar. � Bertangung jawab dalam pengujian, revisi, dan integrasi sistem pakar dalam workplace. � Menyelesaikan proyek dari awal hingga akhir. Knowledge engineer
Programmer, Project Manager, End-user 9 � Programmer, orang yang bertanggung jawab dalam mengimplementasikan sistem pakar dalam koding program. Harus memahami bahasa pemrograman AI, seperti: LISP, Prolog, OPS 5. J uga bahasa pemrograman konvensional, spt: vb, delphi, java, dsb. Saat ini, sistem pakar (dalam skala penelitian) juga dikembangkan dengan bahasa-bahasa konvensional yang ada. � Project Manager, pimpinan tim pengembangan sistem, bertanggung jawan untuk menjaga proyek tetap dalam track-nya. Berinteraksi dengan pakar, knowledge engineer, programmer dan end-user. � End-user, orang yang menggunakan sistem pakar ketika sistem sudah selesai dikembangkan. User bisa jadi adalah pasien atau perawat dalam sebuah klinik kesehatan milik dokter. User bisa jadi adalah analis kimia dalam menentukan struktur cairan molekul (Feigenbaum et al. , 1971), Dokter yunior dalam diagnosis penyakit infeksi darah(Shortliffe, 1976) Dsb.
Rule-based Expert System 10 � Awal 1970, Newell dan Simon mengusulkan model sistem pakar, dasar dari rule-based expert systems. � Didasarkan pada ide manusia dalam menyelesaikan masalah dengan menerapkan pengetahuannya (dinyatakan sebagai aturan produksi) pada masalah yang diberikan dengan informasi masalah spesifik. � Aturan produksi disimpan dalam memori jangka panjang, sedangkan informasi masalah spesifik disimpan dalam memori jangka pendek. � Ada 5 komponen inti dalam rule-based expert systems: the knowledge base, the database, the inference engine, the explanation facilities, and the user interface Production system model Basic structure of a rule-based expert system
Struktur lengkap rule-based expert system 11 � External interface digunakan untuk bekerja dengan data eksternal dan program ditulis dalam bahasa pemrograman konvensional seperti C, Pascal, dan Basic. � Developer Interface termasuk knowledge base editor, debugging aids, dan fasilitas input/output. � Debugging aids biasanya terdiri dari fasilitas tracing dan pemecahan paket. � Tracing memberikan daftar semua aturan yang ditembak selama program dieksekusi, dan pemecahan paket memungkinkan untuk berhentinya sistem pakar dalam mengevaluasi setiap aturan.
Karakteristik Sistem Pakar 12 � SP dibangun untuk bekerja pada level pakar manusia dalam domain yang sempit dan khusus. � Karakteristik paling penting dalam SP adalah kualitas kinerja yang tinggi. Tidak peduli seberapa cepat sistem menyelesaikan masalah, user tidak akan puas jika hasilnya salah. � Disisi lain, kecepatan mencapai solusi juga sangat penting. Meskipun keputusan/diagnosis sangat akurat mungkin tidak berguna bagi user jika terlalu lama diterapkan. Misal, dalam kondisi darurat ketika pasien bisa meninggal atau reaktor nuklir mau meledak, pakar akan memotong teknik penalarannya untuk mendapatkan solusi terdekat. � Fitur unik SP adalah kemampuan menjelaskan (explanation capability). Membuat sistem pakar dapat meninjau penalarannya dan menjelaskan keputusan. Penjelasan dalan SP dalam skop pelacakan atran yang ditembakkan selama sesi problemsolving. � Bisakah sistem pakar melakukan kesalahan (dalam penalaran) ? Pakar paling pandaipun bisa berbuat salah, maka SP juga bisa salah. Tetapi kita masih mempercayai pakar, walaupun kita mengenali bahwa keputusannya kadang-kadang salah.
13
Teknik Inferensi 14 � Dalam rule-based expert system, pengetahuan domain direpresentasikan oleh sejumlah aturan produksi IF-THEN, sedangkan data direpresentasikan oleh sejumlah fakta mengenai situasi saat itu. � Mesin inferensi membandingkan setiap aturan yang tersimpan dalam basis pengetahuan dengan fakta yang berada dalam database. Ketika bagian IF (kondisi) aturan cocok dengan fakta, aturan akan ditembak dan bagian THEN (aksi) diekskusi. Aturan yang ditembak akan mengubah sejumlah fakta dengan menambahkan fakta baru. � Pencocokan bagian aturan IF pada fakta menghasilkan rantai inferensi (inference chain). � Rantai inferensi menunjukkan bagaimana SP menerapkan aturan untuk mencapai kesimpulan. Contoh: Fakta: A, B, C, D and E Lakukan penalatan untuk mencapai kesimpulan
Teknik Inferensi: Forward Chaining 15 � Ada 2 teknik inferensi: forward chaining dan backward chaining (Waterman and Hayes-Roth, 1978). � Forward chaining adalah penalaran yang dikendalikan oleh data (datadriven reasoning). � Penalaran dimulai dari data yang diketahui dan memproses maju pada data. � Setiap kali hanya aturan paling atas yang akan dieksekusi. � Ketika sebuah aturan ditembak, aturan akan menambahkan fakta baru dalam database. � Sembarang aturan hanya dieksekusi satu kali. � Siklus penembakan pencocokan (match-fire) berhenti ketika tidak ada lagi aturan yang dapat ditembak. � Forward chaining adalah teknik untuk pengumpulan informasi dan kemudian menalarnya. � Beberapa aturan dapat dieksekusi meskipun aturan tersebut tidak memunculkan tujuan/kesimpulan.
Forward Chaining 16 � Siklus 1 Rule 3, fakta X muncul. Rule 4, fakta L muncul � Siklus 2 Rule 2, fakta Y muncul � Siklus 3 Rule 1, kesimpulan Z muncul
Backward Chaining 17 � Backward chaining adalah penalaran yang dikendalikan tujuan/kesimpulan (goal-driven reasoning). � SP mempunyai tujuan (hipotesis solusi), mesin inferensi mencoba untuk mencari evidence (bukti) untuk membuktikannya. � Pertama, knowledge base dicari untuk menemukan aturan yang mungkin mempunyai solusi yang dibutuhkan. � Aturan harus mempunyai tujuan dalam bagian THEN (aksi). Jika aturan ditemukan sedangkan bagian IF (kondisi) cocok dengan data dalam database, maka aturan tertembak dan tujuan terbukti. Jika tidak, maka mesin inferensi akan meletakkan aturan tersebut dalam daerah kerjanya (seut saja “stack”) dan men-setup lagi tujuan baru, sub-goal, untuk membuktikan bagian IF dalam aturan tersebut. � Knowledge base mencari lagi aturan yang dapat membuktikannya, � Mesin inferensi mengulangi kembali proses tumpukan aturan (stacking rule) sampai tidak ada lagi aturan dalam knowledge base untuk membuktkan sub-goal saat itu.
Backward Chaining 18 � Pass 1 Hipotesis adalah Z. Mesin inferensi mencoba mencari aturan yang menyimpulkan Z (hipotesis) dibagian THEN yaitu Rule 1 membutuhkan fakta Y dan D, maka Rule 1 masuk dalam stack. Fakta Y dan D harus dimunculkan. � Pass 2 Mesin inferensi men-set-up sub-goal Y, mencari dalam database fakta ternyata tidak ada, maka mencari dalam knowledge base aturan yang menyimpulkan Y (dibagian THEN), Rule 2 masuk dalam stack. Fakta dalam Rule 2: X, B, dan E harus dimunculkan. � Pass 3 Mesin inferensi men-set-up sub-goal X, mencari dalam database fakta ternyata tidak ada, maka mencari dalam knowledge base aturan yang menyimpulkan X (dibaian THEN), Rule 3 masuk dalam stack. Fakta dalam Rule 3: A, harus dimunculkan.
19 � Pass 4 Mesin inferensi menemukan fakta A dalam database fakta, maka Rule 3 tertembak. Fakta baru X tersimpulkan (muncul dalam database fakta). � Pass 5 Mesin inferensi kembali ke sub-goal Y, mencoba kembali mengeksekusi aturan 2, fakta X, D, dan E ada dalam database, maka aturan 2 tertembak. Fakta baru Y tersimpulkan (muncul dalam database fakta). � Pass 6 Mesin inferensi kembali ke Rule 1, mencoba memunculkan kesimpulan Z, fakta Y dan D ada dalam database, maka tujuan awal Z akhirnya tercapai.
Forward Chaining atau Backward Chaining ? 20 � Jika pertama pakar perlu mengumpulkan beberapa informasi dan mencoba menalar dari fakta apapun yang dapat dinalar, maka gunakan forward chaining. � Jika pakar memulai dari hipotesis solusi dan mencoba menemukan fakta untuk membuktikannya, maka gunakan backward chaining inference engine. � Forward chaining adalah cara alami untuk mendesain sistem pakar untuk analisis dan interpretasi. Misal DENDRAL – Sistem Pakar untuk menentukan struktur molekul dari cairan dasar yang tidak diketahui (Feigenbaum et al. , 1971), menggunakan forward chaining. � Kebanyakan sistem pakar dengan backward chaining digunakan untuk tujuan diagnosis. Misal, MYCIN, sistem pakat dunia medis untuk diagnosis penyakit infeksi darah (Shortliffe, 1976), menggunakan backward chaining. � Kebanyakan dalan SP yang ada, mengombinasikan diantara keduanya.
Rule: 7 � if the job is writing � or the job is typing � or the job is drawing Rule: 1 � then the stimulus_response is documented � if the environment is papers Rule: 8 � or the environment is manuals � if the 21 job is evaluating � or the environment is documents � or the job is reasoning � or the environment is textbooks � or the job is investigating � then the stimulus_situation is verbal � then the stimulus_response is analytical Rule: 2 Rule: 9 � if the environment is pictures � if the stimulus_situation is ‘physical object’ � or the environment is illustrations � and the stimulus_response is ‘hands-on’ � or the environment is photographs � and feedback is required � or the environment is diagrams � then medium is workshop � then the stimulus_situation is visual Rule: 10 Rule: 3 � if the stimulus_situation is symbolic � if the environment is machines � and the stimulus_response is analytical � or the environment is buildings � and feedback is required � or the environment is tools � then medium is ‘lecture – tutorial’ � then the stimulus_situation is ‘physical object’ Rule: 11 Rule: 4 � if the stimulus_situation is visual � if the environment is numbers � and the stimulus_response is documented Rule: 14 � or the environment is formulas � and feedback is not required � or the environment is ‘computer programs’ � then medium is videocassette � if the stimulus_situation is verbal � then the stimulus_situation is symbolic Rule: 12 � and the stimulus_response is oral Rule: 5 � if the stimulus_situation is visual � and feedback is required � if the job is lecturing � and the stimulus_response is oral � then medium is ‘role-play exercises � or the job is advising � and feedback is required MEDIA ADVISOR: Rule-base Expert System or the job is counselling then the stimulus_response is oral Rule: 6 � if the job is building � or the job is repairing � or the job is troubleshooting � then the stimulus_response is ‘hands-on’ � � then medium is ‘lecture – tutorial’ Rule: 13 � if the stimulus_situation is verbal � and the stimulus_response is analytical � and feedback is required � then medium is ‘lecture – tutorial’ �
MEDIA ADVISOR: Rule-base Expert System 22 � Tujuan akhir rule-based expert system adalah untuk memunculkan solusi pada masalah data masukan. � Media Advisor, solusi/kesimpulan adalah media yang dipilih dari daftar 4 pilihan: medium is workshop medium is ‘lecture – tutorial’ medium is videocassette medium is ‘role-play exercises’ � Dalam dialog, SP menanyai user untuk memasukkan data yang dibutuhkan untuk menyelesaikan masalah (environment, job, dan feedback). � Berdasarkan jawaban yang diberikan oleh user, SP menerapkan aturan dari knowledge base untuk menalar stimulus_situation adalah physical object, stimulus_response adalah hands_on. � Rule 9 kemudian memilih satu dari nilai medium yang dibolehkan.
Menalar dengan Forward Chaining 23 What sort of environment is a trainee dealing with on the job? machines In what way is a trainee expected to act or respond on the job? repairing Is feedback on the trainee’s progress required during training? required (yes) Cycle 1 Rule: 3 � if the environment is machines � or the environment is buildings � or the environment is tools � then the stimulus_situation is ‘physical object’ Cycle 1 Rule: 6 � if the job is building � or the job is repairing � or the job is troubleshooting � then the stimulus_response is ‘handson’ Cycle 2 Rule: 9 � if the stimulus_situation is ‘physical object’ � and the stimulus_response is ‘handson’ � and feedback is required � then medium is workshop � medium is workshop Tidak ada aturan yang masih dapat ditembak, Berhenti. FORWARD CHAINING: Memasukkan fakta dulu, baru disimpulkan.
Menalar dengan Forward Chaining (2) 24 Kasus 1 What sort of environment is a trainee dealing with on the job? diagrams Kasus 3 What sort of environment is a trainee dealing with on the job? textbooks In what way is a trainee expected to act or respond on the job? advisinging In what way is a trainee expected to act or respond on the job? drawing Is feedback on the trainee’s progress required during training? required (yes) Kasus 2 What sort of environment is a trainee dealing with on the job? ‘computer programs’ Kasus 4 What sort of environment is a trainee dealing with on the job? diagrams In what way is a trainee expected to act or respond on the job? reasoning Is feedback on the trainee’s progress required during training? required (yes) In what way is a trainee expected to act or respond on the job? building Is feedback on the trainee’s progress required during training? not required (no)
Menalar dengan Backward Chaining 25 Hipotesis: ‘medium’ is ‘workshop’ Pass 1 � Mencoba Rule 9, Perlu mencari fakta ‘stimulus_situation’ � Rule 9, ditumpuk, fakta ‘stimulus_situation’ dicari sebagai ‘physical object’ Pass 2 � Mencoba Rule 3, Perlu mencari fakta ‘environment’ � Rule 3, ditumpuk, fakta ‘environment’ dicari sebagai ‘machines’ Menanyai environment machines ‘environment’ diinstasiasi oleh user dengan memasukkan ‘machines’ � Mencoba Rule 3, ‘stimulus_situation’ diinstasiasi oleh Rule: 3 menjadi ‘physical object’ Pass 3 � Mencoba Rule 9, Perlu mencari fakta ‘stimulus_response’ � Rule 9, ditumpuk, fakta ‘stimulus_response’ dicari sebagai ‘hands-on’
Menalar dengan Backward Chaining (2) 26 Pass 4 � Mencoba Rule 6, Perlu mencari fakta ‘job’ � Rule 6, ditumpuk, fakta ‘job’ dicari sebagai ‘building’ Menanyai job repairing ‘job’ diinstansiasi oleh user dengan memasukkan ‘repairing’ � Mencoba Rule 6, ‘stimulus_response’ diinstansiasi oleh Rule 6 menjadi ‘hands-on’ Pass 5 � Mencoba Rule 9, Perlu mencari fakta ‘feedback’ � Rule 9 ditumpuk, fakta ‘feedback’ dicari sebagai ‘required’ Menanyai feedback required ‘feedback’ diinstansiasi oleh user dengan memasukkan ‘required’ � Mencoba Rule 9, ‘medium’ diinstansiasi oleh user Rule 9 menjadi ‘workshop’ BACKWARD CHAINING: Dimulai medium is workshop dari kesimpulan (hipotesis), kemudian mencari fakta
Pohon diagram penalaran 27
Menalar dengan Backward Chaining (3) � Bagaimana jika hipotesisnya adalah: medium is workshop ? Tetapi : environment is numbers jobs is investigating feedback is required (yes) � Bagaimana jika hipotesisnya adalah: medium is workshop ? Tetapi : 28 Kasus Lain Fakta tidak lengkap � Bagaimana jika hipotesisnya adalah: medium is workshop ? Tetapi : environment is machines jobs is repairing environment is photograhs jobs is writing feedback is not required (no) Perlu diperhatikan, backward chaining tidak selalu bertanya ketika proses penalaran, bisa dimulai dengan memasukan fakta, kemudian mulai menalar, ditengah jalan, SP bisa bertanya untuk menambah fakta baru.
Kelebihan Sistem Pakar 29 � Representasi pengetahuan yang alami Pakar biasanya menjelaskan prosedur penyelesaian masalah dengan pernyataan “Dalam situasi seperti ini, saya melakukan seperti ini”, ini dinyatakan dengan aturan produksi IF-THEN. � Stuktur yang seragam Aturan produksi menggunakan IF-THEN semua, setiap aturan adalah pengetahuan yang independen satu sama lain. � Pemisahan pengetahuan dari pemrosesan. Stuktur rule-based expert system memberikan pemisahan knowledge base dari mesin inferensi yang efektif. Agar mesin semakin pintar, maka knowledge engineer hanya menambah beberapa aturan pada knowledge base tanpa mengintervensi struktur kontrol. � Menyelesaikan pengetahuan yang tidak lengkap dan tidak pasti. Kebanyakan rule-based expert system dapat merepresentasikan dan menalar pengetahuan yang tidak lengkap dan tidak pasti. Misal: � � � IF season is autumn AND sky is ‘cloudy’ AND wind is low THEN forecast is clear { cf 0. 1 }; forecast is drizzle { cf 1. 0 }; forecast is rain { cf 0. 9 }
Kekurangan Sistem Pakar 30 � Hubungan yang tidak jelas antar aturan. Meskipun individu aturan produksi secara relatif sederhana dan selfdocumented, interaksi logika dalam jumlah aturan yang besar bisa menjadi kabur (tidak jelas/membingungkan). Sulit diamati bagaimana setiap individu memberikan semua strategi. Masalah ini akan terlihat ketika aturan produksi disusun dalam hirarki. � Strategi pencarian tidak efisien. Mesin inferensi menerapkan exhaustive search pada semua aturan produksi disetiap siklus. Sistem pakar dengan aturan yang besar (>100) bisa menjadi lambat, dan tidak cocok untuk aplikasi yang real-time. � Tidak dapat belajar Umumnya rule-based expert system tidak mempunyai kemampuan untuk belajar dari pengalaman. Tidak bisa secara otomatis memodifikasi knowledge base atau menyesuaikan aturan atau menambah aturan baru. Knowledge engineer masih bertanggung jawab pada revisi dan pengelolaan sistem.
ANY QUESTIONS ? 31 SAATNYA LATIHAN MESIN INFERENSI FORWARD CHAINING DAN BACKWARD CHAINING
- Slides: 31