Pages

Selasa, 27 September 2016

Fuzzy Logic

ASAL MULA FUZZY LOGIC

Konsep Fuzzy Logic diperkenalkan oleh Prof. Lotfi Zadeh dari Universitas California diBerkeley pada 1965, dan dipresentasikan bukan sebagai suatu metodologi control, tetapi sebagai suatu cara pemrosesan data dengan memperkenankan penggunaan partial set membership dibanding crisp set membership atau non-membership. Pendekatan pada set teori ini tidak diaplikasikan pada system control sampai tahun 70an karena kemampuan computer yang tidak cukup pada saat itu. Profesor Zadeh berpikir bahwa orang tidak membutuhkan kepastian, masukan informasi numeric, dan belum mampu terhadap control adaptif yang tinggi. Jika pengendali umpan balik dapat di program untuk menerima derau, masukan yang tidak tepat, mereka akan menjadi lebih efektif dan mungkin akan menjadi lebih mudah untuk diimplementasikan. Sayangnya, produsen AS belum begitu cepat untuk merangkul teknologi ini sementara Eropa dan Jepang telah agresif produk bangunan nyata di sekitarnya.

APA ITU FUZZY LOGIC ?

Fuzzy Logic adalah metodologi pemecahan masalah dengan beribu – ribu aplikasi dalam pengendali yang tersimpan dan pemrosesan informasi. Cocok untuk diimplementasikan pada sistem yang sederhana, kecil, tertanam pada mikro controller, PC multi-channel atau workstation berbasis akuisisi data dan control sistem. Fuzzy logic menyediakan cara sederhana untuk menggambarkan kesimpulan pasti dari informasi yang ambigu, samar - samar, atau tidak tepat. Sedikit banyak, fuzzy logic menyerupai pembuatan keputusan pada manusia dengan kemampuannya untuk bekerja dari data yang ditafsirkan dan mencari solusi yang tepat. Fuzzy logic pada dasarnya merupakan logika bernilai banyak (multivalued logic) yang dapat mendefinisikan nilai diantara keadaan konvensional seperti ya atau tidak, benar atau salah, hitam atau putih, dan sebagainya. Penalaran fuzzy menyediakan cara untuk memahami kinerja dari system dengan cara menilai input dan output system dari hasil pengamatan.

ALASAN MENGGUNAKAN LOGIKA FUZZY

Logika Fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output. Untuk sistem yang sangat rumit, penggunaan logika fuzzy (fuzzy logic) adalah salah satu pemecahannya. Sistem tradisional di rancang untuk mengontrol keluaran tunggal yang berasal dari beberapa masukan yang tidak saling berhubungan. Karena ketidaktergantungan ini, penambahan masukan yang baru akan memperumit proses kontrol dan membutuhkan proses perhitungan kembali dari semua fungsi. Kebalikannya, penambahan masukan baru pada sistem fuzzy, yaitu sistem yang bekerja berdasarkan prinsip – prinsip logika fuzzy, hanya membutuhkan penambahan fungsi keanggotaan yang baru dan aturan – aturan yang berhubungan dengannya.

Secara umum, sistem fuzzy sangat cocok untuk penalaran pendekatan terutama untuk sistem yang menangani masalah-masalah yang sulit didefinisikan dengan menggunakan model matematis Misalkan, nilai masukan dan parameter sebuah sistem bersifat kurang akurat atau kurang jelas, sehingga sulit mendefinisikan model matematikanya.


Sistem fuzzy mempunyai beberapa keuntungan bila dibandingkan dengan sistem tradisional, misalkan pada jumlah aturan yang dipergunakan. Pemrosesan awal sejumlah besar nilai menjadi sebuah nilai derajat keanggotaan pada sistem fuzzy mengurangi jumlah nilai menjadi sebuah nilai derajat keanggotaan pada sistem fuzzy mengurangi jumlah nilai yang harus dipergunakan pengontrol untuk membuat suatu keputusan. Keuntungan lainnya adalah sistem fuzzy mempunyai kemampuan penalaran yang mirip dengan kemampuan penalaran manusia. Hal ini disebabkan karena sistem fuzzy mempunyai kemampuan untuk memberikan respon berdasarkan informasi yang bersifat kualitatif, tidak akurat, dan ambigu.

Fuzzy logic menawarkan beberapa karakteristik unik yang menjadikannya suatu pilihan yang baik untuk banyak masalah control. Karakteristik tersebut antara lain :

  1. Sudah menjadi sifatnya yang kuat selama tidak membutuhkan ketepatan, input yang bebas derau, dan dapat diprogram untuk gagal dengan aman jika sensor arus balik dimatikan atau rusak. Control output adalah fungsi control halus meskipun jarak variasi input yang cukup besar.
  2. Selama fuzzy logic controller memproses aturan – aturan yang dibuat user yang memerintah system control target, ia dapat dimodifikasi dengan mudah untuk meningkatkan atau mengubah secara drastis performa system. Sensor yang baru dapat dengan mudah digabungkan kedalam system secara sederhana dengan menghasilkan aturan memerintah yang sesuai.
  3. Fuzzy logic tidak terbatas pada sedikit masukan umpan-balik dan satu atau dua output control, tidak juga penting untuk menilai atau menghitung parameter rata - rata perubahan dengan tujuan agar ia diimplementasikan. Sensor data yang menyediakan beberapa indikasi untuk aksi dan reaksi system sudah cukup. Hal ini memungkinkan sensor menjadi murah dan tidak tepat sehingga menghemat biaya system keseluruhan dan kompleksitas rendah.
  4. Karena operasi – operasi yang berbasiskan aturan, jumlah input yang masuk akal dapat diproses ( 1 sampai 8 atau lebih ) dan banyak output ( 1 sampai 4 atau lebih ) dihasilkan, Walaupun pendefinisian rulebase secara cepat menjadi rumit jika terlalu banyak input danoutput dipilih untuk implementasi tunggal selama pendefinisian rules(aturan), hubungan timbal baliknya juga harus didefinisikan. Akan lebih baik jika memecah system kedalam potongan – potongan yang lebih kecil dan menggunakan fuzzy logic controllers yang lebih kecil untuk didistribusikan pada system, masing –masing dengan tanggung jawab yang lebih terbatas.
  5. Fuzzy Logic dapat mengontrol system nonlinier yang akan sulit atau tidak mungkin untuk dimodelkan secara matematis. Hal ini membuka pintu bagi system control yang secara normal dianggap tidak mungkin untuk otomatisasi.

BAGAIMANA MENGGUNAKAN FUZZY LOGIC ?

Adapun langkah – langkah penggunaan fuzzy logic adalah sebagai berikut:
A.      Definisikan obyektif dan criteria control :
1.    Apa yang kita coba control ?
2.    Apa yang harus kita lakukan untuk mengontrol system ?
3.    Respon seperti apa yang kita butuhkan ?
4.    Apa mode kegagalan system yang mungkin ? 
B.   Tentukan hubungan antara input dan output serta memilih jumlah minimum variable input pada mesin fuzzy logic(secara khusus error dan rata – rata perubahan error). 
C.       Dengan menggunakan struktur berbasis aturan dari fuzzy logic, jabarkan permasalahancontrol ke dalam aturan IF X AND Y THEN Z yang mendefinisikan respon output systemyang diinginkan untuk kondisi input system yang diberikan. Jumlah dan kompleksitas darirules bergantung pada jumlah parameter input yang diproses dan jumlah variable fuzzy yang bekerjasama dengan tiap –tiap parameter. Jika mungkin, gunakan setidaknya satu variable dan turunan waktunya. Walaupun mungkin untuk menggunakan sebuah parameter tunggalyang error saat itu juga tanpa mengetahui rata - rata perubahannya, hal ini melumpuhkan kemampuan system untuk meminamalisasi keterlampauan untuk sebuah tingkat input. 
D.      Buat fungsi keanggotaan yang menjelaskan nilai input atau output yang digunakan.
E. Buat rutinitas proses awal dan akhir yang penting jika diimplementasikan dalam software,sebaliknya program rules kedalam mesin hardware fuzzy logic. 
F.  Test system, evaluasi hasil, atur rules dan fungsi keanggotaan, dan retest sampai hasil yang memuaskan didapat.

HIMPUNAN FUZZY

Tahun 1965, Profesor L.A. Zadeh memperkenalkan teori himpunan fuzzy, yang secara tidak langsung mengisyaratkan bahwa tidak hanya teori probabilitas saja yang dapat merepresentasikanketidakpastian. Teori himpunan fuzzy adalah merupakan perluasan dari teori logika Boolean yang menyatakan tingkat angka 1 atau 0 atau pernyataan benar atau salah, sedang pada teori logika fuzzy terdapat tingkat nilai, yaitu :
  1. satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan.
  2. nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.

Fuzzy logic didefinisikan sebagai suatu jenis logic yang bernilai ganda dan berhubungan dengan ketidakpastian dan kebenaran parsial. Yang terdiri dari:
1.    Logical Connection dan Implication
P adalah suatu fuzzy logic proposition, yaitu suatu pernyataan mengenai suatu konsep yang batasannya tidak terdefinisi dengan jelas. Dalam fuzzy Logical connectives dan implication logic, nilai kebenaran yang dapat diberikan kepada P adalah nilai – nilai yang berada dalam interval [ 0,1 ]. Nilai 0 menyatakan bahwa P adalah salah dan nilai 1 menyatakan bahwa P  adalah benar. Pemberian nilai kebenaran untuk P dituliskan sebagai:
                   T : P →  [ 0,1 ]
Di mana T adalah fungsi kebenaran yang memetakan P ke suatu nilai dalam interval [ 0,1 ]. Selanjutnya, 3 buah logical connectives  dapat didefinisikan sebagai berikut:
                   Negation T(-P) = 1 – T(P)
                   Disjunction T(P ˅ Q) = max{T(P), T(Q)}
                   Conjunction T(P ˄ Q) = min{T(P), T(Q)}

Sedangkan untuk implication, terdapat banyak definisi yang bisa digunakan bergantung pada penerjemahan semantiknya atau pada konteks penggunaannya. Pada first-order logic, implication didefinisikan sebagai berikut:
                   P => Q ≡ -P ˅ Q

Jika kita mengkonversi implication tersebut ke dalam fuzzy logic, sebagai berikut:
                   T(P => Q) = max{1 – T(P), T(Q)}

2.    Approximate Reasoning
Sebagian besar penalaran yang dilakukan manusia bersifat perkiraan (approximate) dan hanya sedikit manusia yang berfikir secara pasti dalam hal – hal yang bersifat kuantitatif dan logis. Ketika dua orang sedang melakukan percakapan, terdapat banyak kalimat yang mengandung kata – kata yang tidak pasti. Contohnya:
       A : ‘Apakah dia anak pintar?’
       B : ‘Sepertinya begitu.
       A : ‘Apakah indeks Prestasi dan hasil tes psikologinya bagus?’
       B : ‘Ya, keduanya sangat bagus.
       A : ‘Apakah dia layak mendapatkan beasiswa?’
       B : ‘Ya, sepertinya itu adalah keputusan yang baik.

Pada dialog diatas, kedua orang tersebut sedang melakukan penalaran yang bersifat perkiraan atau approximate reasoning, yaitu reasoning terhadap proposisi yang tidak pasti. Contoh approximate reasoning adalah sebagai berikut:
       P1 : Sebagian besar anak kecil suka permen
       P2 : Andi adalah anak kecil

 ----------------------------------------------------------
  P3 : Sepertinya Andi suka permen

3.    Sistem Berbasis Aturan Fuzzy
Variabel linguistik
Adalah suatu interval numerik dan mempunyai nilai – nilai linguistik, yang semantiknya didefinisikan oleh fungsi keanggotaannya. Misalnya, Suhu adalah suatu variabel linguistik yang bisa didefinisikan pada interval. Variabel tersebut bisa memiliki nilai – nilai linguistik seperti ‘Dingin’, ‘Hangat’, ‘Panas’ yang semantiknya didefinisikan oleh fungsi – fungsi keanggotaan tertentu. 
Suatu sistem berbasis aturan fuzzy yang lengkap terdiri dari 3 komponen utama:
1.    Fuzzification , mengubah masukan – masukan yang nilai kebenarannya bersifat pasti (crisp input) ke dalam bentuk fuzzy input, yang berupa nilai linguistik yang semantiknya ditentukan berdasarkan fungsi keanggotaan tertentu.
2.  Inference , melakukan penalaran menggunakan fuzzy input dan fuzzy rules yang telah ditentukan sehingga menghasilkan fuzzy output.
3. Defuzzification , mengubah fuzzy output menjadi crisp value berdasarkan fungsi keanggotaan yang telah ditentukan.

Contoh Penerapan Fuzzy Logic

Bagi anda yang mempelajari tentang Artificial Intelligence pada pokok bahasan Fuzzy Logic, ada tiga metode yang sering digunakan dalam menyelesaikan masalah dengan menggunakan konsep fuzzy logic, yaitu: (1) Metode Tsukamoto; (2) Metode Mamdani; (3) Metode Sugeno. Pada kesempatan ini, saya akan menerapkan metode Mamdani untuk menyelesaikan sebuah contoh masalah sederhana menggunakan aplikasi Matlab. Metode Mamdani adalah metode yang lebih mudah digunakan dari kedua pada metode lainnya. Sebagaimana kita ketahui bahwa Matlab menyediakan metode ini (Mamdani) pada toolbox fuzzy, namun saya akan mencobanya dengan koding.

Prosedur Fuzzy Logic:

1.      Fuzzifikasi;
2.      Pembentukan Rule
3.      Mesin Inferensi
4.      Defuzzifikasi

Contoh Kasus

Perhatikan komentar pada script berikut ini:
a = newfis('MAMDANI IDEAL BADAN');
%Tinggi Badan (Input 1)
a = addvar(a,'input','Tinggi Badan',[0 200]);
a = addmf(a,'input',1,'Pendek','trapmf',[0 0 100 140]);
a = addmf(a,'input',1,'Sedang','trimf',[125 150 175]);
a = addmf(a,'input',1,'Tinggi','trimf',[160 200 200]);
%Berat Badan (Input 2)
a = addvar(a,'input','Berat Badan',[0 100]);
a = addmf(a,'input',2,'Ringan','gaussmf',[15 0]);
a = addmf(a,'input',2,'Normal','gaussmf',[15 50]);
a = addmf(a,'input',2,'Berat','gaussmf',[15 100]);
%Ideal Badan (Output 1)
a = addvar(a,'output','Ideal Badan',[0 10]);
a = addmf(a,'output',1,'Sedikit','trimf',[0 1.5 3]);
a = addmf(a,'output',1,'Sedang','trimf',[3 5 7]);
a = addmf(a,'output',1,'Banyak','trimf',[7 8.5 10]);
% Rule #1 : IF TinggiBadan is Tinggi AND BeratBadan is Ringan THEN IdealBadan is Kurus
%      #2 : IF TinggiBadan is Tinggi AND BeratBadan is Normal THEN IdealBadan is Kurus
%      #3 : IF TinggiBadan is Sedang AND BeratBadan is Ringan THEN IdealBadan is Kurus
%      #4 : IF TinggiBadan is Pendek AND BeratBadan is Ringan THEN IdealBadan is Ideal
%      #5 : IF TinggiBadan is Sedang AND BeratBadan is Normal THEN IdealBadan is Ideal
%      #6 : IF TinggiBadan is Tinggi AND BeratBadan is Berat THEN IdealBadan is Ideal
%      #7 : IF TinggiBadan is Pendek AND BeratBadan is Berat THEN IdealBadan is Gemuk
     #8 : IF TinggiBadan is Pendek AND BeratBadan is Normal THEN IdealBadan is Gemuk
%      #9 : IF TinggiBadan is Sedang AND BeratBadan is Berat THEN IdealBadan is Gemuk
% masing-masing kolom adl input1|input2|output1|weight|OR=2; AND=1
ruleList=[...
    3 1 1 1 1
    3 2 1 1 1
    2 1 1 1 1
    1 1 2 1 1
    2 2 2 1 1
    3 3 2 1 1
    1 3 3 1 1
    1 2 3 1 1
    2 3 3 1 1];
a = addrule(a,ruleList);
out = evalfis([165 55],a); % 165 = Tinggi Badan; 55 = Berat Badan
writefis(a,'Mamdani_UseCoding_gaussmf'); % Simpan ke File dng nama "Mamdani_UserCoding.fis"
% fismat = readfis('BuildManualFuzzy'); %Membaca file --> getfis(fismat); %Membaca file
Untuk menjalankan file ini pada toolbox Fuzzy, silahkan ketik: fuzzy('namaFile'); pada Commmad Window Matlab lalu tampilkanlah outputnya dengan memilih menu View - Rules atau Surface pada tollbox fuzzy (Fis Editor).


Sumber :
-http://www.academia.edu/4858948/FUZZY_LOGIC_ASAL_MULA_FUZZY_LOGIC_Konsep_Fuzzy_Logic_diperkenalkan_oleh_Prof
Suyanto, ST, MSc. Artificial Intelligence Searching, Reasoning, Planning dan Learning. 
- Jannus Maurits Nainggolan, “Logika Fuzzy (Fuzzy Logic) : Teori dan Penerapan Pada Sistem Daya (Kajian Pengaruh Induksi Medan Magnet)” 

0 komentar:

Posting Komentar