Kamis, 15 November 2007

Fuzzy Logic

Fuzzy Logic
Dalam logika konvensional, nilai kebenaran mempunyai kondisi yang pasti yaitu benar atau salah (true or false), dengan tidak ada kondisi antara. Prinsip ini dikemukakan oleh Aristoteles sekitar 2000 tahun yang lalu sebagai hukum Excludec Middle dan hukum ini telah mendominasi pemikiran logika di dunia (barat) sampai sekarang. Tentu saja, pemikiran mengenai logika konvensional dengan nilai kebenaran yang pasti yaitu benar atau salah dalam kehidupan yang nyata sangatlah tidak mungkin. Fuzzy Logic (logika samar) menawarkan suatu logika yang dapat merepresentasikan keadaan dunia nyata.
Teori himpunan logika samar dikembangkan oleh Prof. Lofti Zadeh pada tahun 1965. Ia berpendapat bahwa logika benar dan salah dari logika boolean/ konvensional tidak dapat mengatasi masalah gradasi yang berada pada dunia nyata. Untuk mengatasi masalah gradasi yang tidak terhingga tersebut, Zadeh mengembangkan sebuah himpunan samar (fuzzy). Tidak seperti logika boolean, logika samar mempunyai nilai yang kontinu. Samar dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang sama.
Contoh berikut akan menjelaskan bagaimana konsep “umur” yang digolongkan “tua” dalam pengertian samar/fuzzy dan crisp (tegas). Misalnya diberikan suatu definisi bahwa setiap orang yang berumur 60 tahun atau lebih adalah “tua”.


Degree of 1
membership






0
40 45 50 55 60 65 70 x
Gambar 1. Konsep “tua” dalam pengertian tegas (crisp)

Dalam pengertian crisp (tegas), batas-batas antara “tua” dan tidak “tua” sangat jelas, setiap orang yang berumur  60 adalah “tua”, sedangkan yang lainnya (40,..,55) adalah tidak “tua”. Tidak ada derajat ketuaan, sedangkan dalam fuzzy setiap anggota memiliki nilai berdasarkan pada derajat keanggotaan, adapun konsep “umur” yang digolongkan “tua” dalam pengertian fuzzy :


1
0,7
Degree of
Membership





0
40 45 50 55 60 65 70 x
Gambar 2. Konsep “tua” dalam pengertian fuzzy

Dari gambar di atas memperlihatkan, bahwa anggota yang berumur 55 tahun, derajat keanggotaannya 0,7, sedangkan anggota yang berumur 60 tahun derajat keanggotaannya 1. Untuk yang berumur  60 tahun mewakili secara tepat konsep “tua” yaitu berderajat 1, sedangkan yang < 60 tahun memiliki derajat yang berlainan < 1.
Derajat keanggotaan ini, menunjukkan seberapa dekat nilai tiap-tiap umur dalam anggota himpunan itu dengan konsep “tua”. Kita bisa mengatakan bahwa anggota yang berumur 55 tahun adalah 70% (0,7) mendekati “tua”, atau dengan bahasa alami “hampir atau mendekati tua”.

Himpunan Samar
Teori himpunan samar merupakan suatu teori tentang konsep penilaian, dan segala sesuatu merupakan persoalan derajat atau diibaratkan bahwa segala sesuatu memiliki elastisitas. Dengan nilai/derajat elastisitas ini himpunan samar mempertegas sesuatu yang samar, misalkan terdapat kalimat atau pernyataan ‘setengah baya’. Pertanyaan yang muncul, “Berapa kriteria umur yang dapat dikatakan setengah baya ?”. Dapat ditentukan bahwa orang yang disebut ‘setengah baya’ mempunyai kriteria usia berkisar antara 35-55 tahun. Bagaimana dengan yang berusia 34 tahun. Dapatkah dikatakan ‘setengah baya’?. Crisp set atau sistem jangkauan menjawab dengan tegas bahwa 34 tahun tidak termasuk ‘setengah baya’ (bernilai 0), namun himpunan samar (fuzzy set) dapat menyatakan dengan leluasa bahwa usia 34 tahun juga termasuk setengah baya.
Himpunan samar (fuzzy set) adalah sekumpulan obyek x dengan masing-masing obyek memiliki nilai keanggotaan (membership function), µ atau disebut juga dengan nilai kebenaran dan nilai ini dipetakan ke dalam range (0,1). Jika x adalah sekumpulan obyek dengan anggotanya dinyatakan dengan x maka himpunan samar dari A di dalam x adalah himpunan dengan sepasang anggota.
A = (x, A(x)) | x  X
Sebagai contoh, jika A = “bilangan yang mendekati 10” dimana :
A = (x, A(x)) | A(x ) = (1+(x-10)2)-1
A = (0, 0.01),…,(5, 0.04),…,(10, 1),…,(15, 0.04),…
Maka grafik yang mewakili nilai A(x) adalah :

1

0,5






0
5 10 15 x
Gambar 3. Grafik samar untuk bilangan yang mendekati 10

Operasi Himpunan Samar
Misalkan himpunan A dan B adalah 2 (dua) nilai dari himpunan samar pada semesta pembicaraan U dengan fungsi keangotaan µA dan µB, maka operasi-operasi dasar himpunan fuzzy berikut dapat didefinisikan :
1. Union (Penggabungan)
Gabungan dua himpunan samar A dan B adalah himpunan samar C.
C = A  B atau C = A ATAU B
Dengan derajat keanggotaan C adalah :
µc(x) = max (µA(x) , µB(x))
= (µA(x)  µB(x))

2. Intersection (Irisan)
Irisan dua himpunan samar A dan B adalah himpunan samar C.
C = A ∩B atau A DAN B
Dengan derajat keanggotaan C adalah :
µc(x) = min (µA(x) , µB(x))
= (µA(x)  µB(x))

3. Complement (Ingkaran)
Komplemen himpunan samar A diberi tanda Ā (NOT A), dan didefinisikan sebagai berikut :
µĀ (x) = 1 - µA(x)

Variabel Linguistik
Variabel linguistik adalah variabel yang bernilai kata/kalimat, bukan angka. Sebagai alasan menggunakan kata/kalimat daripada angka karena peranan linguistik kurang spesisifik dibandingkan angka, namun informasi yang disampaikan lebih informatif. Variabel linguistik ini merupakan konsep penting dalam logika samar dan memegang peranan penting dalam beberapa aplikasi.
Jika “kecepatan” adalah variabel linguistik, maka nilai linguistik untuk variabel kecepatan adalah, misalnya “lambat”, “sedang”, “cepat”. Hal ini sesuai dengan kebiasaan manusia sehari-hari dalam menilai sesuatu, misalnya : “Ia mengendarai mobil dengan cepat”, tanpa memberikan nilai berapa kecepatannya.
Konsep tentang variabel linguistik ini diperkenalkan oleh Lofti Zadeh. Dalam variable linguistik ini menurut Zadeh dikarakteristikkan dengan :
(X, T(x), U, G, M)
dimana :
X = nama variabel (variabel linguistik)
T(x) atau T = semesta pembicaraan untuk x atau disebut juga nilai linguistik dari x
U = jangkauan dari setiap nilai samar untuk x yang dihubungkan dengan variabel dasar U
G = Aturan sintaksis untuk memberikan nama (x) pada setiap nilai X
M = aturan semantik yang menghubungkan setiap X dengan artinya.

Sebagai contoh, jika :
X = “kecepatan”, dengan U[0, 100] dan
T(kecepatan) = {lambat, sedang, cepat}
Maka M untuk setiap X, M(x) adalah M(lambat), M(sedang), M(cepat). Dimana :

M(lambat) = himpunan samarnya “kecepatan dibawah 40 mph” dengan fungsi keanggotaan μ lambat.
M(sedang) = himpunan samarnya “kecepatan mendekati 55 mph” dengan fungsi keangotaan μ sedang.
M(cepat) = himpunan samarnya “kecepatan diatas 70 mph” dengan fungsi keanggotaan μ cepat.










Gambar grafik fungsi keanggotaannya sebagai berikut :

Degree of 1 lambat sedang cepat
membership







0
40 55 70 x
Gambar 4. Grafik fungsi keanggotaan kecepatan

Fungsi keanggotaan
Ada dua cara mendefinisikan keanggotaan himpunan samar, yaitu secara numeris dan fungsional. Definisi numeris menyatakan fungsi derajat keanggotaan sebagai vektor jumlah yang tergantung pada tingkat diskretisasi. Misalnya, jumlah elemen diskret dalam semesta pembicaraan. Definisi fungsional menyatakan derajat keanggotaan sebagai batasan ekspresi analitis yang dapat dihitung. Standar atau ukuran tertentu pada fungsi keanggotaan secara umum berdasar atas semesta X bilangan real.
Fungsi keanggotaan (membership-function) yang sering digunakan terdiri dari beberapa jenis, yaitu :

1. S-function (fungsi-S)

Persamaan dari fungsi-S ini adalah :
0 jika x < a
2[(x-a)/(c-a)]2 jika a  x  b
S(x;a,b,c) =
1-2[(x-a)/(c-a)]2 jika b  x  c
1 jika x > c

dengan b = (a+c)/2

Gambar grafik fungsi keanggotaannya adalah :

1

S






0
a b c x
Gambar 5. Grafik fungsi keanggotaan S


Contoh penerapan dari fungsi S :
X adalah himpunan yang terletak antara 0 sampai 120, dimana x mewakili usia. A adalah himpunan samar yang dianggap mempunyai usia tua.
XA(x) = 0 0  x  40
= {1 + [(x-40) / 5 ] –2}-1 40  x  120
Di sini terlihat bahwa untuk usia yang melebihi usia 40, nilai anggotanya terus naik dan pada usia 45 akan mempunyai nilai 0,5. Jadi pada usia 45 merupakan titik penyeberangan dan pada usia selanjutnya, nilai keanggotaan akan terus naik menuju nilai 1. Bila kita gambarkan nilai 1 di atas, maka bentuknya akan mendekati bentuk fungsi S.

2. -function (fungsi-)

Persamaan fungsi- diperoleh dari persamaan fungsi-S, yaitu :

S(x; c-b, c-b/2, c) jika x  c
 (x;b,c) =
1-S(x; c, c+b/2, c+b) jika x  c


Gambar grafik fungsi keanggotaannya adalah :


1

S






0
c-b c-b/2 c c+b/2 c+b x
Gambar 6. Grafik fungsi keanggotaan 
Contoh penerapan fungsi 
X adalah himpunan yang beranggotakan sudut-sudut kelipatan 100, yang terletak antara 700 sampai 1100. A adalah himpunan samar yang diasumsikan sebagai sudut yang mendekati nilai 900 (siku). Carilah nilai dari masing-masing nilai himpunan X. Misalkan fungsi keanggotaan adalah XA(x), maka setiap anggota himpunan A dapat ditulis sebagai berikut :
A = XA(x)/x
Jika XA(x) = {1+[1/100(x-90)2]}-1, maka kumpulan fuzzy A adalah sebagai berikut :
A = 0.2/70 + 0.5/80 + 1.0/90 + 0.5/100 + 0.2/110
Di sini terlihat bahwa sudut 900 memiliki nilai tertinggi yaitu 1, sedangkan nilai keanggotaan yang lain sesuai dengan fungsi keanggotaannya. Di sini juga terlihat bahwa nilai-nilai di atas jika digambarkan akan menghasilkan bentuk mendekati bentuk fungsi .




3. Triangular membership function (fungsi keanggotaan segitiga)

Persamaan untuk bentuk segitiga ini adalah :


0 jika x < a, x > c
T (x;a,b,c) = (x-a)/(b-a) jika a  x  b
(c-x)/(c-b) jika b  x  c

Gambar grafik fungsi keanggotaannya adalah :

1









0 a b c
Gambar 7. Grafik fungsi keanggotaan Segitiga


4. Trapezoidal membership function (fungsi keanggotaan trapesium).

Persamaan untuk bentuk trapesium ini adalah :
0 jika x < a, x > d
1 jika b  x  c
Z (x; a,b,c,d) = (x-a)/(b-a) jika a  x  b
(d-x)/(d-c) jika c  x  d


Gambar grafik fungsi keanggotaannya adalah :

1








0
a b c d x
Gambar 8. Grafik fungsi keanggotaan trapesium


Dalam teori samar (fuzzy) untuk mendapatkan solusi yang eksak maka ada tiga langkah umum yang dapat dilakukan :
1. Fuzzifikasi (fuzzification)
2. Penalaran/Evaluasi Kaidah (rule evaluation)
3. Defuzzifikasi (Defuzzification)

Diagram alir proses pengaturan dalam teori himpunan samar





















Gambar 9. Diagram alir proses pengaturan himpunan samar

Fuzzyfikasi
Fuzzyfikasi adalah fase pertama dari perhitungan samar yaitu pengubahan nilai tegas ke nilai samar. Proses fuzzyfikasi ditulis sebagai berikut

x = fuzzifier (xo)

dengan xo adalah sebuah vektor nilai tegas dari satu variabel input, x adalah vektor himpunan fuzzy yang didefinisikan sebagai variabel, dan fuzzifier adalah sebuah operator fuzzyfikasi yang mengubah nilai tegas ke himpunan samar.

Aturan Samar IF – THEN
Aturan samar If – Then (implifikasi fuzzy, atau pernyataan kondisional fuzzy) dalam bentuk :

IF x adalah A THEN y adalah B

Dengan A dan B merupakan nilai linguistik, adalah himpunan fuzzy pada semesta pembicaraan x dan y. Pernyataan “ x adalah A” sering disebut anteseden atau premis, sedangkan “y adalah B” disebut konsekuen atau kesimpulan.
Sebelum menggunakan aturan samar IF – THEN untuk pemodelan dan analisis sebuah sistem, pertama harus diketahui terlebih dahulu maksud dari ekspresi “IF x adalah A THEN y adalah B” yang dapat diganti dengan notasi A → B.
Pada dasarnya ekspresi tersebut menguraikan hubungan antara dua variabel x dan y, dan untuk situasi tersebut aturan samar IF – THEN dipandang sebagai relasi samar biner R pada ruang perkalian XxY. Relasi fuzzy biner R merupakan pengembangan perkalian cartesian, dengan masing-masing elemen (x,y) є XxY berhubungan dengan tingkat keanggotaan yang diberi notasi µR(x,y)
Dengan kata lain, relasi samar biner R dapat digambarkan sebagai himpunan samar dengan semesta XxY, dan himpunan samar tersebut ditandai dengan adanya fungsi keanggotaan dua dimensi µR(x,y)
Secara umum, ada dua cara untuk menafsirkan aturan fuzzy A → B yaitu :
1. Jika A→B ditafsirkan sebagai A dihubungkan dengan B, maka :

R = A→B = A x B = ∫ µA(x) Λ µB(y)/(x,y)

2. Jika A→B ditafsirkan sebagai A memerlukan B, maka dapat ditulis empat rumus yang berbeda :
a. Implikasi material

R = A→B = ĀU B

b. Kalkulus proposisional

R = A→B = ĀU (A ∩ B)

c. Kalkulus proposisional diperluas

R = A→B = (Ā ∩ B) U B

d. Generalisasi modus ponen :

µR (x,y) = sup { c | µA (x) * c <= µB (y) dan 0  c  1 dengan
R = A→B dan * adalah operator T-norm

Penalaran Samar
Penalaran samar adalah prosedur inferensi yang digunakan untuk menarik kesimpulan dari himpunan aturan samar IF–THEN dari satu atau lebih kondisi.

1. Penalaran samar berdasar pada komposisi MAKS-MIN
Misalnya A, A’B, dan B’ berturut-turut adalah himpunan samar dari X, X’,Y, dan Y’. Diasumsikan bahwa implikasi fuzzy A→B diekspresikan sebagai relasi samar R pada XxY. Kemudian himpunan samar B’ yang dihasilkan oleh “x adalah A’” dan aturan samar “jika x adalah A maka y adalah B” didefinisikan oleh :
B’ = A’  R = A’  (A → B) (ekspresi umum penalaran samar), dimana :
µB’ (y) = max min [µA’(x), µR’ (x,y)]
= V [µA’ (x), µR’ (x,y)]
Sekarang akan digunakan prosedur inferensi dari modus ponen tergeneralisasi untuk menarik kesimpulan, jika implifikasi fuzzy A→B didefinisikan sebagai relasi fuzzy biner minimum.

2. Aturan Tunggal dengan Anteseden Ganda
Aturan IF–THEN samar dengan dua anteseden biasanya ditulis dengan “jika x adalah A dan y adalah B maka z adalah C”. Dalam bentuk yang lebih khusus :



Premis 1 (fakta) x adalah A’ dan y adalah B’
Premis 2 (aturan) jika x adalah A1 dan y adalah B1,
maka z adalah C1
Kesimpulan z adalah C1

Aturan samar pada premis 2 diatas dapat diubah menjadi bentuk yang lebih sederhana “AxB→C”. Aturan samar tersebut dapat juga diubah ke dalam hubungan samar ternary R, dan fungsi keanggotaannya dapat ditulis sebagai berikut :

µR (x,y,z) = µ(AxBxC) (x,y,z)
= µ(A) (x)  µ(B) (y)  µ(C) (z)

dengan menghasilkan C’ dengan ekspresi :

C’ = (A’ x B’)  (A x B  C)

Jadi : µC’ (z) = Vx,y [µA’ (x)  µB’ (y)]  [µA (x)  µB (y)  µC (z)]
= Vx,y {[µA’ (x)  µB’ (y)  µA (x)  µB (y)]}  µC (z)
= {Vx [µA’ (x)  µA (x)] }  {Vy [µB (y)  µB’ (y)]}  µC (z)
= w1  w2  µC (z)

Sehingga : w1 = Vx [µA’ (x)  µA (x)]
= derajat kesesuaian antara A dan A’
w2 = Vy [µB (y)  µB’ (y)]
= derajat kesesuaian antara B dan B’

w1  w2 merupakan kekuatan penyulutan (firing strength) atau derajat penyelesaian (degree of fulfillment) dari aturan samar.

Defuzzyfikasi
Defuzzyfikasi adalah fase terakhir dari proses perhitungan samar yaitu pengubahan nilai samar hasil fuzzyfikasi ke nilai tegas. Proses defuzzyfikasi ditulis sebagai berikut :

Y0 = defuzzifier (y)

dengan y sebagai aksi pengendalian samar, sedangkan Y0 sebagai aksi pengendalian tegas, dan defuzzifier sebagai operator defuzzyfikasi. Strategi defuzzyfikasi yang paling sering digunakan adalah pusat daerah (Center of Area), rata-rata maksimum Mean Max membership (MOM), dan Center of Largest Area (COA).

Center of Area (COA)
Metode ini menghasilkan aksi pengendali tegas dengan mencari pusat daerah dari distribusi aksi seluruh pengendalian. Metode COA merupakan metode defuzzyfikasi yang paling sering digunakan. Untuk menentukan nilai tegasnya digunakan rumus sebagai berikut :



s


W =  iMi
 iAi
dimana :
i : fire strength
Mi : Momen bidang
Ai : Luas segitiga
W : Nilai defuzzyfikasi

Metode ini diperlihatkan pada gambar berikut :














x
Gambar 10. Metode defuzzyfikasi Center of Area

Tidak ada komentar: