BAB III FUZZY LOGIC DAN PENGONTROL BERBASIS FUZZY
Pengontrol berbasis fuzzy adalah suatu metode kontrol berbasis fuzzy logic yang dikembangkan oleh Zadeh [ZAD-65] pada tahun 1965. Pengontrol ini bertipe non-linear yang berusaha untuk menerapkan pengetahuan dari pakar dalam rancangannya. Dalam bab ini, prinsip dasar dari fuzzy logic akan diperkenalkan sekaligus demonstrasi bagaimana prinsip ini dapat diaplikasikan sebagai sebuah pengontrol.
3.1
Sejarah Fuzzy Sets dan Fuzzy Logic
Sejarah dari fuzzy sets dan fuzzy logic dimulai dari permulaan abad ke-20. Langkah pertama dan signifikan berasal dari matematikawan dan filsuf Bernard Russell. Russell menemukan celah yang sangat besar dari teori himpunan klasik yang jika ditelusuri berasal dari paradoks Yunani kuno: ”Ada seorang Yunani berkata bahwa semua orang Yunani adalah pembohong”. Apakah orang ini berbohong? Jika ya, maka orang ini mengatakan sebuah kejujuran maka dia tidak berbohong. Jika tidak, maka orang ini mengatakan sebuah kejujuran sehingga konsekuensinya dia berbohong. Kedua jawaban di atas saling bertentangan dengan klausa dari paradoks di atas, yang hanya dapat bernilai true atau false. Dalam kaca-mata logika klasik, pernyataan di atas akan tetap menjadi paradoks sehingga tidak ada jawaban yang tepat. Di tahun 1920, filsuf dari Polandia Jan Lukasiewicz berhasil menemukan prinsip logika yang baru yang memiliki nilai kebenaran dalam interval 0 sampai 1 [0,1]. Max Planck pertama kali menggambarkan fuzzy sets dalam sebuah bentuk grafik dalam salah satu artikelnya yang diterbitkan pada jurnal Philosophy of Science pada tahun 1937. Sama seperti Russell, Planck menyebut jenis himpunan ini sebagai ”Vague Set”.
3-1
3-2 Setelah 30 tahun, di tahun 1967, Lotfi A. Zadeh menerbitkan sebuah artikel yang berjudul ”Fuzzy Sets”. Ia juga memperkenalkan perhitungan kalkulus yang lengkap untuk himpunan ini. Fuzzy logic pertama kali diaplikasikan ke sebuah sistem yang nyata, yaitu mesin uap oleh Ebrahim H. Mamdani menggunakan metode pengontrol berbasis fuzzy pada pertengahan tahun 1970. Sejak itu, banyak penelitian dilakukan baik di bidang teori maupun aplikasi fuzzy, khususnya di Jepang. Aplikasi utama dari fuzzy sets dan fuzzy logic sangat luas, mulai dari teori kontrol sampai pada psikologi. Beberapa aplikasi dari fuzzy sets dan fuzzy logic adalah sebagai berikut: pengenalan citra / suara, kontrol proses, pengoperasian mobil / kereta, otomatisasi proses, psikologi kognitif, penghitungan resiko kredit, model seleksi pasar, psikologi sosial, diagnosis penyakit, perencanaan optimisasi, sistem pakar, sistem asuransi, manajemen pribadi, dan lain-lain [EMI-95].
3.2
Himpunan Fuzzy
Himpunan klasik adalah himpunan dengan batas yang pasti. Sebagai contoh, himpunan klasik A adalah himpunan yang terdiri dari bilangan yang lebih besar dari 6. Secara formal dapat dituliskan sebagai A = {x | x > 6}.
(3.1)
Dalam himpunan ini terdapat batas yang sangat jelas dan tegas, yaitu angka 6, sehingga jika x lebih besar dari 6, maka x termasuk dalam himpunan A, jika tidak maka x tidak termasuk dalam himpunan A. Walaupun logika klasik cocok diterapkan untuk berbagai masalah, seperti pada bidang matematika dan ilmu komputer, tetapi logika ini tidak mencerminkan sifat alamiah dari konsep dan proses berpikir manusia, yang cenderung abstrak dan tidak presisi. Sebagai contoh, secara matematis kita dapat mengatakan bahwa himpunan A adalah himpunan orang yang tinggi, di mana orang memiliki tinggi lebih dari 6 kaki, seperti dilambangkan oleh Persamaan (3.1), jika kita ambil x sebagai tinggi, dan A sebagai himpunan orang tinggi. Tetapi persamaan ini saja tidak cukup untuk menjelaskan konsep tinggi secara alamiah. Sebagai contoh, orang dengan tinggi badan 6.001 kaki akan digolongkan sebagai orang yang tinggi, sedangkan orang dengan tinggi badan 5.999 kaki
3-3 tidak digolongkan sebagai orang yang tinggi. Tentu saja perbedaan ini tidaklah masuk akal. Tidak seperti definisi himpunan klasik, himpunan fuzzy dapat mengungkapkan sebuah derajat yang mencerminkan keanggotan suatu elemen pada sebuah himpunan. Sehingga fungsi karakteristik dari himpunan fuzzy memperbolehkan anggotanya memiliki nilai dari 0 sampai 1, yang menandakan derajat keanggotaan suatu elemen dalam himpunan. Jika X adalah kumpulan objek yang dilambangkan oleh x, maka himpunan fuzzy A dalam X didefinisikan sebagai: A = {( x, μ A ( x) ) | x ∈ X },
(3.2)
dengan μA(x) disebut sebagai fungsi keanggotaan untuk himpunan fuzzy A. Fungsi keanggotaan memetakan masing-masing elemen dari X ke dalam nilai antara 0 sampai 1. Sebagai contoh, ambil X = {0,1,2,3,4,5,6} adalah himpunan dari banyaknya anak pada sebuah keluarga. Himpunan fuzzy A menyatakan banyaknya anak pada sebuah keluarga, yaitu: A={(0,0.1) , (1,0.3) , (2,0.7) , (3,1.0) , (4,0.7) , (5,0.3) , (6,0.1)} di sini X bernilai diskrit, fungsi keanggotaan dari A dapat dilihat pada Gambar 3-1.
Gambar 3-1 Fungsi keanggotaan diskrit untuk A=banyaknya anak pada sebuah keluarga
Contoh lainnya, ambil X=R+ yang menandakan himpunan kemungkinan umur manusia. Maka himpunan fuzzy B = ”sekitar 50 tahun” dapat didefinisikan sebagai: B = {( x, μ B ( x) ) | x ∈ X }
di mana μB dapat dilihat pada Gambar 3-2.
3-4
Gambar 3-2 Fungsi keanggotaan kontinu untuk A=kemungkinan umur manusia
3.2.1
Operasi pada Himpunan Fuzzy
Seperti pada teori himpunan klasik, semua operasi dasar dapat diaplikasikan ke himpunan fuzzy, seperti: •
Union atau Disjunction Union dari dua buah himpunan fuzzy A dan B disebut himpunan fuzzy C, dan ditulis sebagai C = A ∪ B atau C = A OR B, yang hubungan fungsi keanggotaannya dengan A dan B adalah:
μ C ( x) = max(μ A ( x), μ B ( x) ) = μ A ( x) ∨ μ B ( x) .
(3.3)
Seperti yang telah dikemukakan oleh Zadeh, penjelasan lebih intuitif dari definisi union adalah himpunan fuzzy terkecil yang memuat baik himpunan A maupun B. Himpunan fuzzy A ∪ B ditunjukkan pada Gambar 3-3 (c). •
Intersection atau Conjunction Intersection dari dua buah himpunan fuzzy A dan B disebut himpunan fuzzy C, dan ditulis sebagai C = A ∩ B atau C = A AND B, yang hubungan fungsi keanggotaannya dengan A dan B adalah:
μ C ( x) = min(μ A ( x), μ B ( x) ) = μ A ( x) ∧ μ B ( x) .
(3.4)
3-5 Seperti pada kasus union, penjelasan intersection antara A dan B adalah himpunan fuzzy terbesar yang termasuk dalam A maupun B. Himpunan fuzzy A ∩ B ditunjukkan pada Gambar 3-3 (d). •
Complement atau negasi Complement dari himpunan fuzzy A, dilambangkan dengan A ( ¬A , NOT A), didefinisikan sebagai:
μ A ( x) = 1 − μ A ( x) .
(3.5)
Himpunan fuzzy A ditunjukkan oleh Gambar 3-3(b).
Gambar 3-3 Operasi-operasi pada himpunan fuzzy: (a) himpunan fuzzy A dan B; (b) NOT A; (c) A OR B; (d) A AND B
3.2.2
Fungsi Keanggotaan
Seperti telah dibahas sebelumnya, himpunan fuzzy sangat ditentukan oleh fungsi keanggotaan. Cara praktis dan mudah untuk menentukan fungsi keanggotaan adalah melalui formulasi matematis. Penentuan fungsi keanggotaan sangatlah penting untuk
3-6 melakukan penyesuaian dari pemetaaan masukan dan keluaran sistem. Berikut ini adalah macam-macam fungsi keanggotaan yang sering digunakan:
•
Fungsi Keanggotaan Triangular Fungsi ini ditentukan oleh tiga parameter {a,b,c} seperti berikut 0, x ≤ a ⎧ ⎫ ⎪x − a ⎪ , a ≤ x ≤ b⎪ ⎪⎪ ⎪ triangle( x; a, b, c) = ⎨ b − a ⎬. c−x ⎪ ,b ≤ x ≤ c⎪ ⎪c −b ⎪ 0, c ≤ x ⎩⎪ ⎭⎪
(3.6)
Menggunakan aturan min dan max, Persamaan (3.6) dapat ditulis juga sebagai
⎛ ⎛ x−a c− x⎞ ⎞ triangle( x; a, b, c) = max⎜⎜ min⎜ , ⎟,0 ⎟⎟ . ⎝b−a c−b⎠ ⎠ ⎝
(3.7)
Parameter {a,b,c} dengan a
•
Fungsi Keanggotaan Trapezoidal Fungsi ini ditentukan oleh empat parameter {a,b,c,d} seperti berikut 0, x ≤ a ⎧ ⎫ ⎪x−a ⎪ , a ≤ x ≤ b⎪ ⎪ ⎪b − a ⎪ trapezoid ( x; a, b, c, d ) = ⎨ 1, b ≤ x ≤ c ⎬ . ⎪d − x ,c ≤ x ≤ d ⎪ ⎪d − c ⎪ ⎪ ⎪ ⎩0, d ≤ x ⎭
(3.8)
Penulisan alternatif dari Persamaan (3.8) adalah
⎛ ⎛ x−a d − x⎞ ⎞ trapezoid ( x; a, b, c, d ) = max⎜⎜ min⎜ ,1, ⎟,0 ⎟⎟ . ⎝b−a d −c⎠ ⎠ ⎝
(3.9)
Parameter {a,b,c,d} dengan a
•
Fungsi Keanggotaan Gaussian
3-7 Fungsi ini ditentukan oleh dua parameter {c,σ} seperti berikut gaussian( x; c, σ ) = e
1 ⎛ x −c ⎞ − ⎜ ⎟ 2⎝ σ ⎠
2
.
(3.10)
Fungsi keanggotaan gaussian ditentukan oleh parameter c dan σ. c menentukan titik tengah dari fungsi keanggotaan dan σ menentukan lebar dari derajat keanggotaan, seperti terlihat pada Gambar 3-4(c).
•
Fungsi Keanggotaan Sigmoidal Fungsi ini didefinisikan sebagai sig ( x; a, c) =
1 . 1 + exp[−a ( x − c)]
(3.11)
di mana parameter a mengatur kemiringan kurva di titik crossover x=c. Hal ini dapat dilihat pada Gambar 3-4(d).
Gambar 3-4 Contoh-contoh fungsi keanggotaan : (a) Triangular(x;20,60,80); (b) Trapezoidal(x;10,20,60,95); (c) Gaussian(x;50,20); (d) Sigmoidal fungsi y1 dan y2
3-8 3.3
Fuzzy Logic
Kata fuzzy logic digunakan untuk menunjuk kepada dua jenis logika non-klasik, yang masing-masingnya memiliki lebih dari hanya dua buah nilai kebenaran (contoh: 0 atau 1). Dua jenis logika ini adalah:
•
Logika banyak nilai : yaitu logika yang masing-masing elemennya memiliki nilai kebenaran dalam interval antara 0 sampai 1.
•
Logika bahasa: yaitu logika yang nilai kebenarannya diekspresikan melalui bahasa sehari-hari seperti: tepat, kurang lebih tepat, tidak tepat, dan lain-lain. Arti dari logika ini diungkapkan menggunakan himpunan fuzzy dalam interval antara 0 sampai 1.
Logika banyak nilai adalah sebuah bentuk umum dari logika klasik (true atau false). Logika bahasa adalah bentuk umum yang cukup radikal dari logika klasik. Logika ini adalah sebuah model dari argumen yang biasanya dilakukan oleh manusia yang menggunakan konsep-konsep yang tidak selalu tepat. Manusia mungkin mengambil suatu keputusan dengan informasi yang tidak selalu tepat sama seperti ketika seorang manajer mengambil keputusannya. Walaupun ide mengenai himpunan fuzzy dan fuzzy logic sangatlah sederhana dan mudah dimengerti, tetapi keduanya memberikan banyak kapabilitas ke beberapa bidang, seperti salah satunya kecerdasan buatan. Dikarenakan hasil dari operasi pada himpunan fuzzy adalah berupa angka, maka logika ini sangatlah tepat untuk diterapkan pada komputer, sehingga dengan adanya logika ini seakan-akan komputer dapat mengerti hal-hal yang abstrak, ide-ide, dan lain-lain. Adapun kelebihan dari fuzzy logic adalah:
•
Pengetahuan dan pengalaman dari pakar dapat dimasukkan ke dalam basis pengetahuan fuzzy dengan memakai bahasa yang mendekati bahasa sehari-hari.
•
Pengetahuan yang terlibat tidak harus pengetahuan yang lengkap dan sangat tepat.
•
Kesimpulan parsial dapat diambil dari fakta dan basis pengetahuan fuzzy.
3-9 3.4
Pengontrol Berbasis Fuzzy
Pengontrol berbasis fuzzy adalah salah satu terapan nyata dari teori fuzzy logic. Aplikasi utama dari pengontrol fuzzy ini sangatlah beragam, dari pengontrolan untuk industri, kereta listrik, mesin cuci, pendingin ruangan, dan lain-lain. Kegiatan-kegiatan penelitian dalam ranah ini banyak dilakukan, terutama di Jepang. Aturan Fuzzy dan Metode Inferensi
Pengontrol fuzzy menggambarkan algoritma untuk proses kontrol sebagai relasi fuzzy antara informasi tentang kondisi proses yang akan dikontrol (x dan y) dan keluaran untuk mengontrol proses (z). Algoritma untuk kontrol diberikan dalam ekspresi jika-maka, seperti: Jika x kecil dan y besar maka z sedang Jika x besar dan y sedang maka z besar Cara mengontrol seperti ini sama seperti proses kontrol yang dilakukan oleh seorang sopir (seorang pakar yang mengontrol sebuah sistem). Sebagai contoh, jika pengemudi ingin melaju dengan kecepatan 100 km/jam, dan pada saat ini kecepatan kendaraan 20 km/jam (kecepatan cukup rendah) dan percepatan kendaraan rendah, maka sopir perlu meningkatkan kecepatan kendaraan cukup besar. Dalam kerangka berpikir seperti itu sebenarnya sopir menerapkan aturan jika-maka di atas. Klausa ”jika” dari aturan di atas (”jika x kecil dan y besar”) biasa disebut sebagai anteseden dan klausa ”maka” di atas (”maka z sedang”) biasa disebut sebagai konsekuen. Secara umum parameter x dan y di sebut sebagai masukan dan z sebagai keluaran. Kecil, sedang, besar, dan lain-lain adalah parameter fuzzy untuk x, y, z yang diekspresikan dengan cara memakai himpunan fuzzy. Perlu diperhatikan pula, aturan fuzzy yang didefinisikan perlu dibuat lengkap dan konsisten, dan antara aturan yang satu dengan yang lain tidak saling bertentangan. Pengontrol berbasis fuzzy dibangun dari kumpulan aturan-aturan fuzzy dan ketika masukan yang sebenarnya diberikan, maka keluaran dihitung dengan menggunakan aturan inferensi fuzzy. Secara umum proses penentuan nilai output adalah sebagai berikut:
3-10
•
Masukan berupa nilai angka biasa (dapat berupa suhu, jarak, dan lain-lain), kemudian dilakukan proses fuzzification sehingga akan dihasilkan sesuatu yang disebut sebagai masukan fuzzy.
•
Masukan
fuzzy
kemudian
akan
diolah
oleh
pengontrol fuzzy
dengan
memanfaatkan basis data aturan-aturan fuzzy untuk mendapatkan keluaran fuzzy.
•
Keluaran fuzzy kemudian akan di-defuzzification untuk mendapatkan kembali keluaran berupa nilai angka biasa.
Diagram blok untuk proses ini ditunjukkan oleh Gambar 3-5.
Masukan fuzzy
Nilai biasa
Fuzzification
Pengontrol Fuzzy
Keluaran fuzzy
Defuzzification Nilai biasa
Basis Data Fuzzy
Plant
Gambar 3-5 Diagram blok pengontrol berbasis fuzzy
Berikut ini akan diberikan sebuah contoh tentang pengontrol fuzzy yang akan diterapkan pada sistem pententuan resiko sebuah proyek X [URL-01]. Langkah pertama yang harus dilakukan adalah mendefinisikan parameter fuzzy yang terlibat dalam sistem ini, misalnya yaitu: funding, staffing, dan risk. Untuk setiap parameter ini akan didefinisikan fungsi keanggotaannya masing-masing, seperti terlihat pada Gambar 3-6. Langkah berikutnya adalah menentukan aturan-aturan untuk sistem ini menggunakan parameter-parameter di atas. Sebagai contoh aturan-aturan itu dapat berupa: 1. Jika funding adalah adequate atau staffing adalah small maka risk adalah low 2. Jika funding adalah marginal dan staffing adalah large maka risk adalah normal
3-11 3. Jika funding adalah inadequate maka risk adalah high Setelah aturan-aturan di atas selesai didefinisikan maka langkah berikutnya adalah menguji sistem ini. Katakanlah jika funding bernilai f0 dan staffing bernilai s0, maka pertanyaannya sekarang adalah berapakah nilai risk r0?
Gambar 3-6 Fungsi keanggotaan dari parameter funding, staffing, dan risk
Langkah pertama adalah melakukan proses fuzzification dari parameter masukan funding dan staffing. Hal ini dapat dilihat pada Gambar 3-7.
Gambar 3-7 Proses fuzzification dari parameter masukan
3-12 Pada Gambar 3-7 dapat dilihat bahwa terjadi pemetaan dari nilai crisp (nilai numerik) f0 dan s0 ke suatu fungsi keanggotaan tertentu. f0 memiliki nilai derajat keanggotaan 0.5 dari inadequate dan derajat keanggotaan 0.2 dari marginal. Begitu pula dengan s0, ia memiliki derajat keanggotaan 0.1 dari small dan derajat keanggotaan 0.7 dari large. Langkah berikutnya adalah mengevaluasi aturan-aturan yang telah didefinisikan sebelumnya. Ilustrasi tentang hal ini dapat dilihat pada Gambar 3-8.
Gambar 3-8 Ilustrasi pengevaluasian aturan-aturan fuzzy
Pada Gambar 3-8, evaluasi dilakukan untuk setiap aturan-aturan fuzzy yang telah didefinisikan. Setelah didapatkan keluaran fuzzy untuk masing-masing aturan, maka langkah berikutnya adalah melakukan agregrasi atau penggabungan dari keluarankeluaran tersebut. Hal ini dapat dilihat pada Gambar 3-9.
Gambar 3-9 Proses agregrasi dari masing-masing keluaran fuzzy
3-13 Langkah terakhir adalah pada area keluaran dilakukan proses deffuzification untuk mendapatkan kembali nilai crisp (numerik biasa) r0. Banyak sekali metode deffuzification yang tersedia, tetapi biasanya yang paling banyak dipakai adalah metode pusat masa. Ilustrasi tentang proses deffuzification menggunakan metode pusat masa dapat dilihat pada Gambar 3-10.
Gambar 3-10 Proses deffuzification menggunakan metode pusat masa
Sekarang ini banyak sekali perangkat lunak (seperti MATLAB, Synapse, dan lain-lain) yang menyediakan kemudahan bagi para penggunanya untuk mendesain dan menerapkan fuzzy logic untuk aplikasi tertentu. Dengan adanya perangkat lunak ini, pengguna hanya tinggal mendefinisikan fungsi keanggotaan dan menentukan aturan-aturan fuzzy untuk sistem yang ingin dibangunnya. Evaluasi dari aturan-aturan itu sendiri dilakukan secara otomatis oleh perangkat lunak. Tentu saja hal ini akan sangat menghemat waktu dari pengguna yang akan melakukan suatu eksperimen atau membangun suatu sistem yang melibatkan fuzzy logic.