Kamis, 14 Juni 2012

Logika Fuzzy - Pengenalan FIS Editor (I)

Pada kesempatan ini kita akan membahas tentang Fuzzy Inference Systems (FIS) pada MATLAB. Oleh karena itu, teman-teman diharapkan menginstal MATLAB, lengkap dengan Fuzzy Logic Toolbox-nya. Kita akan menggunakan contoh kasus yang sama seperti yang telah dibahas pada sesi Logika Fuzzy (I). Pada sesi tersebut, telah dibahas penghitungan fuzzy secara matematis, dan pada sesi ini akan dibantu menggunakan Fuzzy Toolbox pada MATLAB.

Mari kita mulai pembahasan kita...

Contoh ini saya sarikan dari kasus pada MATLAB Fuzzy Toolbox help.

Contoh kasus:


Fuzzy Logic Toolbox
Yupp.. karena teman-teman telah menginstal Fuzzy Toolbox, kita akan memulai membahas langkah-langkahnya. Pertama-tama kita ketik fuzzy pada MATLAB command window.

 

 Kemudian akan muncul jendela FIS Editor sebagai berikut :
 Pada FIS Editor di atas, klik Edit - Add variable... - Input, maka akan muncul jendela berikut :
 
Pertama-tama, kita namai pasangan input-output kita. Klik kotak kuning input1 sehingga tepinya menjadi berwarna merah. Kemudian pada kotak Current Variable, ubahlah Name (misalnya pada contoh ini) menjadi Pelayanan. Lakukan hal yang sama untuk kotak kuning input2 dan kotak biru output1 masing-masing menjadi Makanan dan Tip. Gambar ditunjukkan sebagai berikut :

Sekarang kita akan menentukan rentang dan jenis fungsi keanggotaan dari input dan output. Double klik pada kotak kuning Pelayanan, sehingga keluar jendela Membership Function Editor, sebagai berikut :


Pada kotak Current Variable, ubahlah Range dan Display Range untuk Pelayanan menjadi [0 10]. Kemudian klik garis mf1 pada Membership function plots, sehingga garis terpilih menjadi aktif dan berwarna merah, seperti yang ditunjukkan pada gambar di atas. Kemudian pada kotak Current Membership Function ubahlah Name (pada contoh ini) menjadi Jelek. Type kita pilih zmf, dan Params menjadi [0 5].
Lakukan hal yang sama pada mf2 dan mf3, dengan rangkuman sebagai berikut :

Tip
Jika teman-teman sukses, maka hasilnya diperlihatkan pada gambar berikut :

 
Lakukan juga hal yang sama pada kotak kuning Makanan. Range masih sama yaitu [0 10] dan parameter yang digunakan sebagai berikut :

Makanan

Tip

Karena Membership Function (MF) Makanan hanya dua, yaitu Tengik dan Lezat, sedangkan secara default FIS menyediakan 3 MF, maka kita delete satu MF dengan cara Edit - Remove Selected MF. Untuk MF Tip, kita lakukan langkah-langkah yang sama, namun Range yang kita gunakan adalah [0 30].

Jika sukses, teman-teman akan mendapatkan gambar untuk Makanan dan Tip sebagai berikut :
 
Seperti yang telah kita ketahui pada contoh kasus bahwa kita menyediakan tip antara 5-25%. Walaupun kita menyediakan Range dari [0 30], namun terilhat puncak untuk ter-Murah dan ter-Mahal adalah pada 5% dan 25%.


Senin, 11 Juni 2012

ANFIS (I)

Pada kesempatan kali ini kita akan membahas tentang Adaptive Neuro-Fuzzy Inference Systems (ANFIS) [1],[2]. Pada beberapa literatur, ANFIS juga disebutkan sebagai Adaptive Neural Fuzzy Inference Systems [3] atau Adaptive-Network-Based Fuzzy Inference systems [4].

Pada pembahasan ini, kita akan menggunakan software Matlab untuk simulasi. ANFIS diikutkan pada bagian Fuzzy Logic Toolbox. Oleh karena itu, saya sarankan agar teman-teman menginstal Matlab dan Toolbox Fuzzy-nya. Teman-teman juga sebaiknya memiliki dasar tentang logika fuzzy dan jaringan syaraf tiruan ^_^

Baiklah.. mari kita mulai obrolan kita ...

ANFIS termasuk adaptive network yang secara fungsional sama dengan fuzzy inference system (FIS) pada sistem fuzzy [2]. ANFIS mencoba mengintegrasikan kemampuan yang dimiliki oleh sistem fuzzy dan jaringan syaraf [3], sebagai berikut :
  •  dari sistem fuzzy : representasi pengetahuan ke dalam bentuk sekumpulan (set) data yang telah memiliki batasan tertentu sehingga lebih mudah dalam proses optimasi.
  • dari jaringan syaraf : kemampuan adaptasi dari jaringan backpropagation pada jaringan syaraf mempermudah dalam proses tunning parameter fuzzy.
Marilah kita bahas ANFIS secara bertahap.... Sebelumnya, mari kita kembali melihat struktur FIS, yaitu sebagai berikut [1], [5] :

Fuzzy Inference System (FIS) dapat dijelaskan sebagai model yang memetakan
  • input karakteristik ke input fungsi keanggotaan (membership functions),
  • input fungsi keanggotaan ke aturan-aturan fuzzy (rules),
  • aturan-aturan fuzzy ke output karakteristik,
  • output karakteristik ke output fungsi keanggotaan, dan
  • output fungsi keanggotaan ke keluaran nilai tunggal (atau keputusan lain sesuai dengan output tersebut).

Sekarang, yang perlu kita pertimbangkan adalah fungsi keanggotaan apa yang akan kita pakai dan menetapkan aturan-aturan apa yang akan kita terapkan untuk sistem ANFIS kita. Secara umum,bentuk-bentuk fungsi keanggotaan yang akan kita pakai tergantung pada kasus kita, dan bentuk-bentuk ini secara otomatis dapat diatur sesuai dengan pembelajaran terhadap data model kita.

Bersambung ...

Referensi
[1] Fuzzy Logic Toolbox(TM) User's Guide R2012a
    http://www.mathworks.it/help/pdf_doc/fuzzy/fuzzy.pdf
[2] Cruz Adriano, ANFIS : Adaptive Neuro-Fuzzy Inference Systems, Mestrado NCE,IM,UFRJ
    http://equipe.nce.ufrj.br/adriano/fuzzy/transparencias/anfis/anfis.pdf
[3] Bonissone P.P., 2002, Adaptive Neural Fuzzy Inference Systems (ANFIS) : Analysis and Applications.
    http://homepages.rpi.edu/~bonisp/fuzzy-course/Papers-pdf/anfis.rpi04.pdf
[4] J.-S. Roger Jang, ANFIS: Adaptive-Network-Based Fuzzy Inference System, IEEE Transactions on Systems, Man, and Cybernatics, Vol.23, No.3, may/June 1993
[5] Paplinski A.P., 2005, Neuro-Fuzzy Computing. http://www.csse.monash.edu.au/courseware/cse5301/2006/Lnts/L12fz.pdf