FUZZY SYSTEM & FUZZY REASONING
Workshop on Fundamental Concept and Implementation of Fuzzy Logic March 17th 2016 Net Centric Computing Lab
DEPARTEMEN ILMU KOMPUTER IPB
Outline
Crips VS Fuzzy Pengembangan model/system berbasis Fuzzy Inference System (FIS) Penalaran pada Fuzzy Inference System
Tsukamoto Mamdani Sugeno
Crips VS Fuzzy
CRISP
FUZZY Memungkinkan suatu nilai terdapat dalam lebih dari satu keanggotaan dengan degree of membership tertentu
PENGEMBANGAN MODEL/SISTEM BERBASIS FIS Definisi Permasalahan Fuzzifikasi Variabel Fuzzy Pembuatan Aturan Fuzzy (Fuzzy Inference System)
Defuzzifikasi
Evaluasi
Definisi Permasalahan
Memastikan bahwa model/sistem yang akan dibuat untuk menyelesaikan masalah memiliki variabel fuzzy Identifikasi : Input dan Output Variabel Fuzzy disebut juga dengan variabel linguistik Variabel yang berpeluang memiliki perbedaan nilai impresi secara bahasa
Contoh : kecepatan (lambat, normal, cepat) Suhu (dingin,normal,hangat,panas)
Kelembaban (rendah, sedang, tinggi) dll
Fuzzifikasi Variabel Fuzzy
Fuzzifikasi : Melakukan pengubahan dari suatu nilai skalar ke dalam himpunan yang bernilai/bersifat fuzzy Cara: Tentukan range dari nilai skalar tersebut kecepatan : [20 – 100] {km/jam} Suhu : [25 – 45] {0C}
Jika masalah tersebut bukan pada domain kita (computer science) bisa dikonsultasikan ke pakar atau jika ada data bisa dari data yang kita miliki.
Fuzzifikasi Variabel Fuzzy …. cont
Cara {lanjutan}:
Definisikan jumlah himpunan fuzzy untuk setiap variabel Jumlah himpuan akan terkait dengan kombinasi aturan yang akan dibuat Gunakan Fungsi Keanggotaan untuk mendapatkan nilia derajat keanggotaan
Segitiga
Trapesium
Nilai Range dari setiap variabel
Gaussian
Fuzzifikasi Variabel Fuzzy …. cont
Contoh penentuan nilai Derajat Keanggotaan [0 – 1]:
Misal : a = 3 ; b = 7 dan c = 11 Tentukan nilai derajat keanggotan untuk x = 9 ? Jawab : (11 – 9 ) / (11 – 7) = 0. 5
Pembuatan Aturan Fuzzy (Fuzzy Inference System)
Aturan/Rule dibuat dalam bentuk kaidah produksi
Format : IF [variabel] is [himpunan ] THEN variabel [himpunan] Contoh : IF Level is okay THEN valve is no_change IF Level is okay AND rate is positif THEN valve is close slow Banyak atau sedikit aturan akan dipengaruhi oleh jumlah variabel dan jumlah himpunan fuzzy pada model yang dibuat
Defuzzifikasi
Proses untuk mengubah dari nilai fuzzy ke dalam nilai crisp/real Dilakukan setelah semua aturan /rule dijalankan yang bersesuaian dengan input
Proses ini bertujuan untuk mendapatkan nilai crisp /real kembali Tekniknya akan bergantung pada metode penalaran yang digunakan Contoh : Rata-rata terbobot Cog , Lom, Som, Mom, Bisector
Defuzzifikasi
Formula untuk melakukan Defuzzifikasi secara umum :
Pada prinsipnya adalah menentukan nilai tunggal dengan mengalikan setiap nilai x dari daerah hasil dengan setiap derajat keanggotaan yang bersesuaian
Perbandingan Tsukamoto, Mamdani, Sugeno Penalaran
History
Input
Output
Deffuzzifikasi
Penggunaan
Tsukamoto
Himpunan Fuzzy
Himpunan Fuzzy
Weigthed Average
Humannis Controll
Mamdani
Himpunan Fuzzy
Himpunan Fuzzy
CoG Lom Som Mom Bisector
Humanis Control
Sugeno
Himpunan Fuzzy
- Konstanta - Linear (orde 1)
Weigthed Average
Control
PENALARAN TSUKAMOTO
Contoh Kasus Suatu katup tanki akan secara otomatis terbuka dan tertutup. Buka atau tutup tangki tersebut ditentukan oleh dua faktor. Faktor pertama adalah tingkat perbedaan air aktual dengan yang dibutuhkan (variabel level) . Faktor kedua adalah tingkat perubahan air (variabel rate). Output dari sistem ini adalah flow rate dari katup pada tangki. Rancangan Input : level : {high,okay,low} rate : {negative,none,positive} Output : {close_fast, close_slow, no_change, open_low, open_fast}
PENALARAN TSUKAMOTO - FUZZIFIKASI
Contoh Kasus Input : level rentang [-1 1] : {high,okay,low} direpresentasikan dengan kurva gaussian [stdev mean] high [0.3 -1] , okay [0.3 0], low [0.3 1] rate rentang [-0.1 0.1] : {negative,none,positive} direpresentasikan dengan kurva gaussian [stdev mean] negative [0.03 -0.1] ,none [0.03 0] , positive [0.03 1 ] Output : {close_fast, close_slow, no_change, open_low, open_fast} direpresentasikan dengan kurva segitiga [a b c] close_fast [-1 -0.9 -0.8], close_slow [-0.6 -0.5 -0.4], no_change [-0.1 0 0.1], open_low [0.2 0.3 0.4], open_fast [0.8 0.9 1]
PENALARAN TSUKAMOTO - Pembuatan Aturan Fuzzy
•
[R1] : IF level is okay THEN valve is no_change
•
[R2] : IF level is low THEN valve is open_fast
•
[R3] : IF level is high THEN valve is close_fast
•
[R4] : IF level is okay and rate is positive THEN valve is close_slow
•
[R5] : IF level is okay and rate is negative THEN valve is open_slow
PENALARAN TSUKAMOTO
Representasi Fuzzy Input Level
PENALARAN TSUKAMOTO
Representasi Fuzzy Input rate
PENALARAN TSUKAMOTO
Representasi Fuzzy Output Flow Level
PENALARAN TSUKAMOTO Pertanyaan
JI
Jika suatu saat kondisi level adalah 0.5 dan rate 0. Tentukan flow rate dari katup tanki tersebut ?
Jawab Level : 0.5 hitung nilai derajat keanggotaannya 0.5 termasuk himpunan high dengan nilai dmf = 3.7267e-006 0.5 termasuk himpunan okay dengan nilai dmf = 0.2494 0.5 termasuk himpunan low dengan nilai dmf = 0.2494 Rate : 0 hitung nilai derajat keangotaannya 0 termasuk himpunan negative dengan nilai dmf = 0.0039 0 termasuk himpunan none dengan nilai dmf = 1 0 termasuk himpunan positive dengan nilai dmf = 5.3124e-242
PENALARAN TSUKAMOTO Proses Implikasi [R1] IF level is okay THEN valve is no_change
•
•
alpha_predikat1 = min (µokay [0.5])
= min (0,2494) = 0,2494
Lihat Himpunan no_change pada OUTPUT a. (z1-(-0.1)) / (0-(-0.1)) = 0.2494 z1 = -0.075 b. (0.1-z1)/(0.1-0) = 0.2494 z1 = 0.075 z1pusat = [0.075 + (- 0.075)]/2 = 0
PENALARAN TSUKAMOTO Proses Implikasi [R2] IF level is low THEN valve is open_fast
•
•
alpha_predikat2 = min (µlow [0.5])
= min (0,2494) = 0,2494
Lihat Himpunan open_fast pada OUTPUT a. (z2-(0.8)) / (0.9-(0.8)) = 0.2494 z2 = 0.82494 b. (1-z2)/(1-0.9) = 0.2494 z2 = 0.9756 z2pusat = [0.82494 + 0.97562] /2 = 0.9
PENALARAN TSUKAMOTO Proses Implikasi [R3] IF level is high THEN valve is close_fast
•
•
alpha_predikat3 = min (µhigh [0.5])
= min (3.7267e-006) = 3.7267e-006
Lihat Himpunan close_fast pada OUTPUT a. (z3-(-1)) / (0.8-(-1)) = 3.7267e-006 z3 = 0.999 b. (-0.8-z3)/(-0.8-(-0.9)) = 3.7267e-006 z3 = -0.8 z3pusat = [0.999 + (-0.8)] /2 = -0.89
PENALARAN TSUKAMOTO Proses Implikasi [R4] IF level is okey and rate is positive THEN valve is close_slow
•
•
alpha_predikat3 = min (µokay [0.5]; µpositive [0])
= min (0.2494; 5.3124e-242) = 5.3124e-242
Lihat Himpunan close_slow pada OUTPUT a. (z4-(-0.6)) / (-0.4-(-0.6)) = 5.3124e-242 z4 = -0.6 b. (-0.4-z4)/(-0.4-(-0.5)) = 5.3124e-242 z4 = -0.4 z4pusat = [-0.6 + (-0.4)] /2 = -0.5
PENALARAN TSUKAMOTO Proses Implikasi [R5] IF level is okay and rate is negaative THEN valve is open_slow
•
•
alpha_predikat3 = min (µokay [0.5]; µnegative [0])
= min (0.2494; 0.0039) = 0.0039
Lihat Himpunan open_slow pada OUTPUT a. (z5-(0.2)) / (0.4-0.2) = 0.0039 z5 = 0.20078 b. (0.4-z5)/(0.4-0.3) = 0.0039 z5 = 0.3999 z2pusat = [0.2 + (0.3999)] /2 = 0.3009
PENALARAN TSUKAMOTO (DEFUZZIFIKASI) Perhitungan Nilai Crisp pada Penalaran Tsukamoto Diperoleh dengan menggunakan Rata-rata terbobot sebagai berikut : z
0 . 2494
0 0 . 2494
0 . 9 3.7267e
0 . 2494
0 . 2494
- 006 -0.89
3.7267e
5.3124e
- 006 5.3124e
- 242 -0.5 0 . 0039 - 242 0 . 0039
0 . 3009
0 . 448
Dengan demikian, nilai crisp / real dari flow rate untuk katup adalah 0.448. Maknanya ?
PRACATICAL USING MATLAB
Deskripsi Desain FIS (Input dan Output) >> fuzzy tank
PRACATICAL USING MATLAB and Simulation >> sltankrule
klik
TERIMA KASIH