Hai…. Teman-teman…
Mau berbagi nih… Saya membuat tulisan mengenai Fuzzy Logic. Tulisan
ini mencoba menghitung output keluaran fuzzy dengan menggunakan langkah
matematis. Harapannya, dapat memberikan teman-teman gambaran mengenai bagaimana
konsep dasar system fuzzy bekerja. Nah, hasil akhir kalkulasi ini selanjutnya
akan dibandingkan dengan hasil menggunakan Fuzzy Toolbox pada Matlab. Pengenalan Fuzzy Toolbox dapat dilihat pada sesi Logika Fuzzy - Pengenalan FIS Editor (I).
Asumsinya, teman-teman sudah mempunyai sedikit pengetahuan
dasar mengenai Fuzzy Logic. Walaupun tulisan ini sepenuhnya adalah hitungan
matematis, namun akan lebih mudah kalau teman-teman menginstal Matlab dan Fuzzy
Toolbox-nya. Ok?? ^_^
Well….. mari kita bahas sama-sama..
Nah.. ini contoh kasus
kita:
Apa saja tahapan dalam FIS ?
- Membuat himpunan dan input fuzzy
- Aplikasikan operator fuzzy
- Aplikasikan fungsi implikasi
- Komposisikan semua output
- Defuzzyfikasi
Solusinya….
1.
Membuat
himpunan dan input fuzzy
Nah, mari kita coba bahas satu persatu. Input kita adalah PELAYANAN dan MAKANAN. Nah, asumsikan jika Pelayanan kita kategorikan dalam JELEK, SEDANG dan BAGUS.
Makanan kita bagi menjadi TENGIK dan
LEZAT.
Output fuzzy adalah TIP,
dan kita kategorikan menjadi MURAH, STANDAR dan MAHAL. Jadi, kesimpulannya sebagai berikut :
Pelayanan : Jelek, Sedang, & Bagus
Makanan : Tengik & Lezat
Tip : Murah, Standar, & Mahal
Input : Pelayanan = 7
Nah, pertama-tama kita bahas PELAYANAN. Fungsi keanggotaan (membership function, MF ) untuk
pelayanan saya buat seperti gambar di bawah (tentunya teman-teman bias membuat
dan mengatur jenis keanggotaan yang lain). Fungsi-fungsi ini
tersedia di Fuzzy Toolbox Matlab. Ketik nama fungsi ini di help Matlab kalau teman-teman masih belum jelas :) Nah,
berikut rangkumannya :
Jelek : Z-shaped built-in membership function
(zmf)
Sedang : Gaussian curve built-in membership
function (gaussmf)
Bagus : S-shaped built-in membership function
(smf)
Semua MF memiliki
nilai dari 0 sampai 1. Rumus matematisnya dirangkum seperti berikut ini :
Kita tahu bahwa nilai PELAYANAN=7. Kita tarik garis vertikal
ke atas, lihat kurve yang dilalui dan tarik garis horizontal ke kanan. Dalam
hal ini, hanya fungsi JELEK yang tidak dilalui. Mengapa? mari kita bahas
selanjutnya.
Kemudian, berapa nilai yang MF yang besesuaian? Nah, mari
kita hitung bersama-sama berdasarkan rumus yang tertulis di atas.
Nilai a dan b pada fungsi keanggotaan (MF) JELEK bersesuaian dengan maksimim dan
minimum fungsi tersebut. Sedangkan nilai x adalah input kita (dalam hal ini =
7).
Untuk keanggotaan SEDANG, nilai c besesuaian dengan pusatnya
dan sigma besesuain dengan lebar fungsi tersebut. Demikian pula untuk
keanggotaan BAGUS seperti pada fungsi keanggotaan JELEK. Untuk mempermudah,
mari kita amati gambar di bawah ini.
Kalau kita masukkan
nilai-nilai tersebut, kita mendapatkan sebagai berikut:
Mari kita lihat rentang dari tiap-tiap rumus di atas. Jelas,
tanpa melihat kurva kita dapat memastikan bahwa dengan input = 7, fungsi
keanggotaan JELEK tidak akan terpakai karena berada tidak berada pada rentang yang
mencakup nilai 7. Fungsi SEDANG akan terpakai, begitu pula fungsi BAGUS
(formula kedua) akan terpakai.
Kalau kita masukkan nilai 7 kedalam rumus yang terpakai,
kita memperoleh :
Sampai
pada langkah ini, input berupa PELAYANAN telah selesai dibahas.
Selanjutnya kita akan bahan input berupa MAKANAN. Langkah yang dilakukan
sama dengan sebelumnya.
Tidak ada komentar:
Posting Komentar