Minggu, 04 Maret 2012

Logika Fuzzy (I)

Menghitung Fuzzy Inference Systems (FIS)


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 ?
  1.  Membuat himpunan dan input fuzzy
  2. Aplikasikan operator fuzzy
  3. Aplikasikan fungsi implikasi
  4. Komposisikan semua output
  5. 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.

(Bersambung ke Logika Fuzzy (II) )



Tidak ada komentar: