380 likes | 736 Vues
Fuzzy Logic dengan Menggunakan MATLAB. Bahan Kuliah IF4058 Topik Khusus IF. Oleh : Rinaldi Munir. Teknik Informatika – STEI ITB. Sumber untuk bahan kuliah ini : “ Belajar Cepat Fuzzy Logic menggunakan MATLAB ” Oleh : Agus Naba Penerbit ANDI. Fuzzy Logic Toolbox.
E N D
Fuzzy Logic denganMenggunakan MATLAB BahanKuliah IF4058 TopikKhusus IF Oleh: RinaldiMunir TeknikInformatika – STEI ITB
Sumberuntukbahankuliahini: “BelajarCepat Fuzzy Logic menggunakan MATLAB” Oleh: AgusNaba Penerbit ANDI
Fuzzy Logic Toolbox • MATLAB menyediakan kakas untukmembuatsisteminferensi fuzzy (FIS) bernamaFuzzy Logic Toolbox (FLT). • FLT memiliki 5 jenis GUI untukmerancang FIS: 1. FIS Editor 2. Membership Function Editor 3. Rule Editor 4. Rule Viewer 5. Surface viewer
ContohStudiKasus • Pelayanrestoranseringmendapatuang tip (bonus) daripelanggan yang makandisana. Besaruang tip bergantungpadaduakriteria, yaitukualitaspelayanandankualitasmakanan. Jikapelangganmerasapuasdenganpelayanandanmakanandirestoran, pelanggantidakakanseganmemberi bonus yang besarkepadapelayan. Sebaliknyajikapelayanankurangmemuaskanataumakanankurangenak, pelangganmungkinmemberikanuang bonus yang kecilatautidakadasamasekali. Batasantentang “kualitaspelayanan”, “kualitasmakanan”, danberapabesaruang tip tidaklahjelas, olehkarenaitubersifat fuzzy. Rancanlahsebuah FIS untukmasalahini.
Memulai FLT • Ketikkan fuzzy pada prompt MATLAB, makaakanmunculFIS Editor berikut:
Variabellinguistikadalahpelayanan, makanan, danbonus. • Dari FIS editor, pilihFile Add Variable Input
KlikgambarInput1, gantinamanyamenjadi “pelayanan” padakotakCurrent Variable, lalutekan Enter. • UntukgambarInput2, gantinamanyamenjadi “makanan” • UntukgambarOutput, gantinamanyamenjadi “bonus” Hasil:
Simpan FIS kememoridenganmemilih: File Export To Workspace danpada field Workspace Variable isikannamafisbonus, lalutekan OK. • Untukmenyimpankememori, pilih: File Export To Disk dansimpandengannamafisbonus.
Membership Function Editor • Dari FIS editor, pilih: Edit Membership Functions
Adatigavariabel FIS disudutkiriatas, yaitupelayanan, makanan, danbonus. • Pelayananmemiliktigaterma, yaitumengecewakan, bagus, danmemuaskan. • Klikvariabel FIS pelayanan, laluklikkurva mf1, kemudianisikan/ganti parameter-parameter berikutpadasetiap field: • Nama: mengecewakan • Range: [0 10} • Display Range: [0 10] • Type: gaussmf • Params: nilai default yang terdiridari standard deviasidan mean (bisadiubah)
Klikkurva mf2, kemudianisikan/ganti parameter-parameter berikutpadasetiap field: • Nama: bagus • Range: [0 10} • Display Range: [0 10] • Type: gaussmf • Params: nilai default yang terdiridari standard deviasidan mean (bisadiubah) • Klikkurva mf3, kemudianisikan/ganti parameter-parameter berikutpadasetiap field: • Nama: memuaskan • Range: [0 10} • Display Range: [0 10] • Type: gaussmf • Params: nilai default yang terdiridari standard deviasidan mean (bisadiubah)
Makananmemilikitermahambardanenak. • Klikvariabelmakanan, laluklikmf2 • Hapusmf2dariEdit Remove Selected MF • Ubah Range manjadi [0 10} dan Display Range menjadi [0 10] • Klikkurva mf1, kemudianisikan/ganti parameter-parameter berikutpadasetiap field: • Nama: hambar • Range: [0 10} • Display Range: [0 10] • Type: trimf • Params: [-4 0 7]
Klikkurva mf1, kemudianisikan/ganti parameter-parameter berikutpadasetiap field: • Nama: enak • Range: [0 10] • Display Range: [0 10] • Type: trimf • Params: [3 10 14]
Bonus memilikitermasedikit, sedang, danbanyak. • Klikkurva mf1, kemudianisikan/ganti parameter-parameter berikutpadasetiap field: • Nama: sedikit • Range: [0 30] • Display Range: [0 30] • Type: trimf • Params: [0 5 10]
Klikkurva mf2, kemudianisikan/ganti parameter-parameter berikutpadasetiap field: • Nama: sedang • Range: [0 30] • Display Range: [0 30] • Type: trimf • Params: [10 15 20] • Klikkurva mf3, kemudianisikan/ganti parameter-parameter berikutpadasetiap field: • Nama: banyak • Range: [0 30] • Display Range: [0 30] • Type: trimf • Params: [20 25 30]
Rule Editor • Dari FIS editor, pilih: Edit Rules
Menyisipkankaidah IF-THEN pertama: IF (pelayanan is mengecewakan) or (makanan is hambar) THEN bonus is sedikit • Di bawahvariabelpelayananpilihmengecewakan • Di bawahvariabelmakananpilihhambar • Di bawahvariabelbonuspilihsedikit • IsibobotWeightdengan 1 • KlikAdd Rule
Menyisipkankaidah IF-THEN pertama: IF (pelayanan is bagus) THEN bonus is sedang • Di bawahvariabelpelayananpilihbagus • Di bawahvariabelmakananpilihnone • Di bawahvariabelbonuspilihbanyak • IsibobotWeightdengan 1 • KlikAdd Rule
Menyisipkankaidah IF-THEN pertama: IF (pelayanan is memuaskan) or (makanan is enak) THEN bonus is banya • Di bawahvariabelpelayananpilihmemuaskan • Di bawahvariabelmakananpilihenak • Di bawahvariabelbonuspilihbanyak • IsibobotWeightdengan 1 • KlikAdd Rule
Rule Viewer • Rule viewer menampilkanprosesinferensididalam FIS.
Surface Viewer • Surface Viewer menampilkankeluaran FIS dalam plot 3-D
Fungsi-FungsiPenampil FIS Tigaperintah: • plotfis • plotmf • Gensurf Ubahterlebihdahulucurrent directory kedirektorikerja
Plotfis • Dari prompt MATLAB, ketikkanperintah-perintahberikut: >> a = readfis(‘fisbonus’); >> plotfis(a)
Plotmf >> plotmf(a, ‘input’, 1)
Gensurf >> gensurf(a)
Membangun FIS TipeSugeno • Dari FIS editor, pilihFile New FIS Sugeno
Konversi FIS Mamdani FIS Sugeno >> fisbonus =readfis('fisbonus'); >> sgnfisbonus=mam2sug(fisbonus) Respon MATLAB: name: 'fisbonus' type: 'sugeno' andMethod: 'min' orMethod: 'max' defuzzMethod: 'wtaver' impMethod: 'min' aggMethod: 'max' input: [1x2 struct] output: [1x1 struct] rule: [1x3 struct]