FUZZY LOGIC TOOLBOX IN MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem Pakar EXAMPLE Studi Permasalahan: Suatu Perusahaan akan melakukan perkiraan terhadap produksi suatu barang tiap bulan. Untuk menentukan jumlah barang yang diproduksi tersebut digunakan pendekatan fuzzy. Dalam kasus ini terdapat parameter masukan yaitu permintaan dan persediaan barang. Adapun parameter keluaran adalah jumlah barang yang akan diproduksi. Tabel 1 di bawah ini memperlihatkan variabel fuzzy yang akan dibuat berikut domain permasalahanya. 1
EXAMPLE OF FUZZY IF-THEN RULES AND FUZZY INFERENCING SYSTEM (2) Domain Variabel Fungsi Nama Variabel Rentang Nilai Keterangan permintaan [8 24] jumlah permintaan per bulan Input per unit persediaan [30 60] Jumlan persediaan per bulan per unit Output jumlah produksi [10 25] Kapasitas produksi barang EXAMPLE OF FUZZY IF-THEN RULES AND FUZZY INFERENCING SYSTEM (3) Himpunan Fuzzy Fungsi Variabel Himpunan Rentang Domain INPUT Permintaan Persediaan Sedikit [8 11 14] Sedang [8 24] [13 16 19] Banyak [18 21 24] Sedikit [30 36 42] Sedang [30 60] [38 45 50] Banyak [47 55 60] OUTPUT Jumlah_Produksi Sedikit [10 10 14 20] [10 25] Banyak [17 21 25 25] 2
RULE Berikut ini adalah aturan-aturan yang digunakan dalam Fuzzy Inference System (FIS) 1. IF permintaan sedikit AND persediaan sedikit THEN produksi sedikit 2. IF permintaan sedang AND persediaan sedikit THEN produksi sedikit 3. IF permintaan sedang AND persediaan banyak THEN produksi banyak 4. IF permintaan banyak AND persediaan sedikit THEN produksi sedikit 5. IF permintaan banyak AND persediaan sedang THEN produksi banyak 6. IF permintaan banyak AND persediaan banyak THEN produksi banyak Tentukan jumlah barang yang harus diproduksi jika Permintaan 18 unit dan persediaan 38 unit Permintaaan 20 unit dan persedian 40 unit Permintaan 22 unit dan persedian 52 unit 3
HOW TO RUN IT? Run Matlab ketikkan fuzzy pada command window 4
HOW TO BUILD NEW FIS MAMDANI? Select New Fis > Mamdani in the File menu ADDING INPUT VARIABLE Select Add variable -> Input from the Edit menu 5
EXAMPLE OF FUZZY IF-THEN RULES AND FUZZY INFERENCING SYSTEM (3) Himpunan Fuzzy Fungsi Variabel Himpunan Rentang Domain Sedikit [8 11 14] Permintaan Sedang [8 24] [13 16 19] Banyak [18 21 24] INPUT Sedikit [30 36 42] Persediaan Sedang [30 60] [38 45 50] Banyak [47 55 60] OUTPUT Jumlah_Produksi Sedikit [10 10 14 20] [10 25] Banyak [17 21 25 25] 6
CHANGING INPUT AND OUTPUT NAME Klik input1 Rename input1 menjadi permintaan, enter Klik input2 Rename input2 menjadi persediaan, enter Klik Output1 Rename output1 menjadi jumlah_produksi, enter 7
EXPORT TO MATLAB WORKSPACE From the File menu, select Export and then To Workspace... Put the FIS name in the box Then push OK 8
DEFINE THE MEMBERSHIP FUNCTION Open the Membership Function Editor by Select Membership function.. From the Edit menu 9
Select the input variable, permintaan, by double-clicking on it. Set both the Range and the Display Range to the vector [8 24]. Select Add MFs... from the Edit menu. The window below pops open 10
Use the pull-down tab to choose trimf for MF Type and 3 for Number of MFs. This adds three trigonal curves to the input variable service. Delete another MF, that will not be used, by Select it Push Delete in your keyboard 11
EXAMPLE OF FUZZY IF-THEN RULES AND FUZZY INFERENCING SYSTEM (3) Himpunan Fuzzy Fungsi Variabel Himpunan Rentang Domain Sedikit [8 11 14] Permintaan Sedang [8 24] [13 16 19] Banyak [18 21 24] INPUT Sedikit [30 36 42] Persediaan Sedang [30 60] [38 45 50] Banyak [47 55 60] OUTPUT Jumlah_Produksi Sedikit [10 10 14 20] [10 25] Banyak [17 21 25 25] 12
PERMINTAAN? Click once on the curve with the leftmost hump. Change the name of the curve to Sedikit. To adjust the shape of the membership function, type in a desired parameter change, and then click on the membership function. The default parameter listing for this curve is [8 11 14]. Name the curve with the middle hump, sedang, and the curve with the rightmost hump, banyak. Reset the associated parameters if desired. 13
PERMINTAAN? PERSEDIAAN? 14
JUMLAH PRODUKSI? ADDING RULE 15
RULE Berikut ini adalah aturan-aturan yang digunakan dalam Fuzzy Inference System (FIS) 1. IF permintaan sedikit AND persediaan sedikit THEN produksi sedikit 2. IF permintaan sedang AND persediaan sedikit THEN produksi sedikit 3. IF permintaan sedang AND persediaan banyak THEN produksi banyak 4. IF permintaan banyak AND persediaan sedikit THEN produksi sedikit 5. IF permintaan banyak AND persediaan sedang THEN produksi banyak 6. IF permintaan banyak AND persediaan banyak THEN produksi banyak 16
INSERT ALL RULES VIEW RULES 17
18
TESTING RULES Tentukan jumlah barang yang harus diproduksi jika Permintaan 18 unit dan persediaan 38 unit Permintaaan 20 unit dan persedian 40 unit Permintaan 22 unit dan persedian 52 unit SURFACE VIEW 19
TUGAS Diketahui tiga buah variabel Fuzzy A, B dan C A dan B sebagai Input dan C sebagai Output Deskripsi Representasi Himpuan Fuzzy dari ketiga variabel tersebut Input A B Mahal dengan kurva Trapezoidal (A;1200,1500,2000,2000) Sedang dengan kurva Triangle (A: 600,1000,1500) Murah dengan kurva Trapezoidal (A: 0,0,500,800) Enak dengan kurva Trapezoidal (B; 10,15,25,25) Kurang Enak dengan kurva Trapezoidal (B;5,8,12,15) Tidak Enak dengan kurva Trapezoidal (B;0,0,7,12) Output C Besar dengan kurva Trapezoidal (C; 60,75,100,100) Sedang dengan kurva Trapezoidal (C;20,25,50,75) Kecil dengan kurva Trapezoidal (C;0,10,15,25) ilkom.fmipa.ipb.ac.id 20
TUGAS RULE R1 : Jika A adalah sedang dan B adalah enak maka C adalah besar R2 : Jika A adalah murah maka C adalah besar R3 : Jika A adalah sedang dan B adalah tidak enak maka C adalah sedang R4 : Jika A adalah mahal dan B adalah kurang enak maka C adalah sedang TUGAS Tentukan nilai C jika diketahui nilai input sebagai berikut : a) A = 1250 dan B = 13 b) A = 1400 dan B = 15 c) A = 700 dan B = 8 Tampilkan (screenshot yang FIS nya, mf dari masing2 variabel, rule, hasil tiap2 testing) dan jelaskan hasil testing untuk masing-masing input di atas. Kumpulkan hari ini di komputer depan Format file nama_nrp_praktikum10.doc Soal bonus, tuliskan saran untuk masing2 asisten 21