fuzzy logic toolbox in matlab -...

21
12/8/2014 1 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.

Upload: trinhnhu

Post on 09-Feb-2018

239 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

1

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.

Page 2: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

2

EXAMPLE OF FUZZY IF-THEN RULES AND FUZZY

INFERENCING SYSTEM (2)

Fungsi Nama Variabel Rentang

Nilai

Keterangan

Input

permintaan [8 – 24] jumlah permintaan per bulan

per unit

persediaan [30 – 60] Jumlan persediaan per bulan

per unit

Output jumlah produksi [10 – 25] Kapasitas produksi barang

Domain Variabel

EXAMPLE OF FUZZY IF-THEN RULES AND FUZZY

INFERENCING SYSTEM (3)

Fungsi Variabel Himpunan Rentang Domain

INPUT

Permintaan

Sedikit

[8 – 24]

[8 11 14]

Sedang [13 16 19]

Banyak [18 21 24]

Persediaan

Sedikit

[30 – 60]

[30 36 42]

Sedang [38 45 50]

Banyak [47 55 60]

OUTPUT

Jumlah_Produksi Sedikit

[10 – 25]

[10 10 14 20]

Banyak [17 21 25 25]

Himpunan Fuzzy

Page 3: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

3

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

Page 4: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

4

HOW TO RUN IT?

Run Matlab

ketikkan fuzzy pada command window

Page 5: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

5

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

Page 6: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

6

EXAMPLE OF FUZZY IF-THEN RULES AND FUZZY

INFERENCING SYSTEM (3)

Fungsi Variabel Himpunan Rentang Domain

INPUT

Permintaan

Sedikit

[8 – 24]

[8 11 14]

Sedang [13 16 19]

Banyak [18 21 24]

Persediaan

Sedikit

[30 – 60]

[30 36 42]

Sedang [38 45 50]

Banyak [47 55 60]

OUTPUT

Jumlah_Produksi Sedikit

[10 – 25]

[10 10 14 20]

Banyak [17 21 25 25]

Himpunan Fuzzy

Page 7: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

7

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

Page 8: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

8

EXPORT TO MATLAB WORKSPACE

From the File menu, select Export and then To

Workspace...

Put the FIS name in the box

Then push OK

Page 9: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

9

DEFINE THE MEMBERSHIP FUNCTION

Open the Membership Function Editor by Select

Membership function.. From the Edit menu

Page 10: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

10

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

Page 11: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

11

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

Page 12: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

12

EXAMPLE OF FUZZY IF-THEN RULES AND FUZZY

INFERENCING SYSTEM (3)

Fungsi Variabel Himpunan Rentang Domain

INPUT

Permintaan

Sedikit

[8 – 24]

[8 11 14]

Sedang [13 16 19]

Banyak [18 21 24]

Persediaan

Sedikit

[30 – 60]

[30 36 42]

Sedang [38 45 50]

Banyak [47 55 60]

OUTPUT

Jumlah_Produksi Sedikit

[10 – 25]

[10 10 14 20]

Banyak [17 21 25 25]

Himpunan Fuzzy

Page 13: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

13

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.

Page 14: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

14

PERMINTAAN ?

PERSEDIAAN ?

Page 15: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

15

JUMLAH PRODUKSI ?

ADDING RULE

Page 16: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

16

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

Page 17: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

17

INSERT ALL RULES

VIEW RULES

Page 18: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

18

Page 19: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

19

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

Page 20: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

20

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

ilkom.fmipa.ipb.ac.id

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)

Input

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

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)

A

B

C

Page 21: Fuzzy Logic Toolbox in MATLAB - totoharyanto.staff.ipb.ac.idtotoharyanto.staff.ipb.ac.id/files/2011/12/Praktikum_.pdf · MATLAB (MAMDANI) Praktikum 10 Tim Asisten Praktikum Sistem

12/8/2014

21

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

• 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

TUGAS