FUZZY SYSTEM & FUZZY REASONING
DEPARTEMEN ILMU KOMPUTER IPB
Workshop on Fundamental Concept and
Implementation of Fuzzy Logic
March 17
th2016
Outline
Crips VS Fuzzy
Pengembangan model/system berbasis Fuzzy
Inference System (FIS)
Penalaran pada Fuzzy Inference System
Tsukamoto
Mamdani
Crips VS Fuzzy
CRISP
FUZZY
Memungkinkan suatu nilai terdapat dalam lebih dari satu keanggotaan
Definisi Permasalahan
Fuzzifikasi Variabel
Fuzzy
Pembuatan Aturan Fuzzy (Fuzzy Inference System)
Evaluasi
Defuzzifikasi
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 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
Defuzzifikasi
Formula untuk melakukan Defuzzifikasi secara umum :
Pada prinsipnya adalah menentukan nilai tunggal
dengan mengalikan setiap nilai x dari daerah hasil
Penalaran 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
Perbandingan Tsukamoto, Mamdani, Sugeno
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}
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]
• [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
Representasi Fuzzy Input Level
PENALARAN TSUKAMOTO
PENALARAN TSUKAMOTO
PENALARAN TSUKAMOTO
JI
Pertanyaan
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
PENALARAN TSUKAMOTO
Proses Implikasi [R1]
IF level is okay THEN valve is no_change
•
alpha_predikat
1
= min (
µ
okay[0.5])
•
= min (0,2494)
= 0,2494
Lihat Himpunan no_change pada OUTPUT
a. (z
1-(-0.1)) / (0-(-0.1)) = 0.2494 z
1= -0.075
b. (0.1-z
1)/(0.1-0) = 0.2494 z
1= 0.075
PENALARAN TSUKAMOTO
Proses Implikasi [R2]
IF level is low THEN valve is open_fast
•
alpha_predikat
2
= min (
µ
low[0.5])
•
= min (0,2494)
= 0,2494
Lihat Himpunan open_fast pada OUTPUT
a. (z
2-(0.8)) / (0.9-(0.8)) = 0.2494 z
2= 0.82494
b. (1-z
2)/(1-0.9) = 0.2494 z
2= 0.9756
PENALARAN TSUKAMOTO
Proses Implikasi [R3]
IF level is high THEN valve is close_fast
•
alpha_predikat
3
= min (
µ
high[0.5])
•
= min (
3.7267e-006)=
3.7267e-006Lihat Himpunan close_fast pada OUTPUT
a. (z
3-(-1)) / (0.8-(-1)) =
3.7267e-006
z
3= 0.999
b. (-0.8-z
3)/(-0.8-(-0.9)) =
3.7267e-006
z
3= -0.8
PENALARAN TSUKAMOTO
Proses Implikasi [R4]
IF level is okey and rate is positive THEN valve is close_slow
•
alpha_predikat
3
= min (
µ
okay[0.5]; µ
positive[0])
•
= min (
0.2494; 5.3124e-242)
=
5.3124e-242Lihat Himpunan close_slow pada OUTPUT
a. (z
4-(-0.6)) / (-0.4-(-0.6)) =
5.3124e-242z
4= -0.6
b. (-0.4-z
4)/(-0.4-(-0.5)) =
5.3124e-242
z
4= -0.4
Proses Implikasi [R5]
IF level is okay and rate is negaative THEN valve is open_slow
•
alpha_predikat
3
= min (
µ
okay[0.5]; µ
negative[0])
•