fuzzy dengan matlab

34
Fuzzy Logic dengan Menggunakan MATLAB Bahan Kuliah IF4058 Topik Khusus IF IF4058 Topik Khusus IF 1 TeknikInformatika– STEI ITB Oleh: Rinaldi Munir

Upload: akhmad-arifudin

Post on 05-Dec-2014

99 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fuzzy Dengan Matlab

Fuzzy Logic dengan

Menggunakan MATLABBahan Kuliah

IF4058 Topik Khusus IFIF4058 Topik Khusus IF

1Teknik Informatika – STEI ITB

Oleh: Rinaldi Munir

Page 2: Fuzzy Dengan Matlab

• Sumber untuk bahan kuliah ini:

“Belajar Cepat Fuzzy Logic menggunakan

MATLAB”

Oleh: Agus NabaOleh: Agus Naba

Penerbit ANDI

2

Page 3: Fuzzy Dengan Matlab

Fuzzy Logic Toolbox

• MATLAB menyediakan kakas untuk membuat sistem

inferensi fuzzy (FIS) bernama Fuzzy Logic Toolbox (FLT).

• FLT memiliki 5 jenis GUI untuk merancang FIS:

1. FIS Editor

2. Membership Function Editor

3. Rule Editor

4. Rule Viewer

5. Surface viewer

3

Page 4: Fuzzy Dengan Matlab

Contoh Studi Kasus

• Pelayan restoran sering mendapat uang tip (bonus) daripelanggan yang makan di sana. Besar uang tip bergantung pada dua kriteria, yaitu kualitas pelayanandan kualitas makanan. Jika pelanggan merasa puasdengan pelayanan dan makanan di restoran, pelanggantidak akan segan memberi bonus yang besar kepadatidak akan segan memberi bonus yang besar kepadapelayan. Sebaliknya jika pelayanan kurang memuaskanatau makanan kurang enak, pelanggan mungkinmemberikan uang bonus yang kecil atau tidak ada samasekali. Batasan tentang “kualitas pelayanan”, “kualitasmakanan”, dan berapa besar uang tip tidaklah jelas, olehkarena itu bersifat fuzzy. Rancanlah sebuah FIS untukmasalah ini.

4

Page 5: Fuzzy Dengan Matlab

Memulai FLT• Ketikkan

fuzzy

pada prompt MATLAB, maka akan muncul FIS Editor berikut:

5

Page 6: Fuzzy Dengan Matlab

• Variabel linguistik adalah pelayanan, makanan, dan bonus.

• Dari FIS editor, pilih File � Add Variable � Input

6

Page 7: Fuzzy Dengan Matlab

• Klik gambar Input1, ganti namanya menjadi “pelayanan” pada

kotak Current Variable, lalu tekan Enter.

• Untuk gambar Input2, ganti namanya menjadi “makanan”

• Untuk gambar Output, ganti namanya menjadi “bonus”

Hasil:

7

Page 8: Fuzzy Dengan Matlab

• Simpan FIS ke memori dengan memilih:

File � Export � To Workspace

dan pada field Workspace Variable isikan nama

fisbonus, lalu tekan OK.

• Untuk menyimpan ke memori, pilih:• Untuk menyimpan ke memori, pilih:

File � Export � To Disk

dan simpan dengan nama fisbonus.

8

Page 9: Fuzzy Dengan Matlab

Hasil:

9

Page 10: Fuzzy Dengan Matlab

Membership Function Editor

• Dari FIS editor, pilih: Edit � Membership Functions

10

Page 11: Fuzzy Dengan Matlab

• Ada tiga variabel FIS di sudut kiri atas, yaitupelayanan, makanan, dan bonus.

• Pelayanan memilik tiga terma, yaitu mengecewakan, bagus, dan memuaskan.

• Klik variabel FIS pelayanan, lalu klik kurva mf1, kemudian isikan/ganti parameter-parameter berikutpada setiap field:

– Nama: mengecewakan

– Range: [0 10}

– Display Range: [0 10]

– Type: gaussmf

– Params: nilai default yang terdiri dari standard deviasi danmean (bisa diubah)

11

Page 12: Fuzzy Dengan Matlab

• Klik kurva mf2, kemudian isikan/ganti parameter-parameter berikut pada setiap field:– Nama: bagus

– Range: [0 10}

– Display Range: [0 10]

– Type: gaussmf

– Params: nilai default yang terdiri dari standard deviasi dan mean (bisa diubah)

• Klik kurva mf3, kemudian isikan/ganti parameter-parameter berikut pada setiap field:– Nama: memuaskan

– Range: [0 10}

– Display Range: [0 10]

– Type: gaussmf

– Params: nilai default yang terdiri dari standard deviasi dan mean (bisa diubah)

12

Page 13: Fuzzy Dengan Matlab

• Hasil:

13

Page 14: Fuzzy Dengan Matlab

• Makanan memiliki terma hambar dan enak.

• Klik variabel makanan, lalu klik mf2

• Hapus mf2 dari Edit � Remove Selected MF

• Ubah Range manjadi [0 10} dan Display Range menjadi [0 10]

• Klik kurva mf1, kemudian isikan/ganti parameter-parameter berikut pada setiap field:parameter berikut pada setiap field:

– Nama: hambar

– Range: [0 10}

– Display Range: [0 10]

– Type: trimf

– Params: [-4 0 7]

14

Page 15: Fuzzy Dengan Matlab

• Klik kurva mf1, kemudian isikan/ganti parameter-

parameter berikut pada setiap field:

– Nama: enak

– Range: [0 10]

– Display Range: [0 10]

– Type: trimf

– Params: [3 10 14]– Params: [3 10 14]

15

Page 16: Fuzzy Dengan Matlab

• Hasil:

16

Page 17: Fuzzy Dengan Matlab

• Bonus memiliki terma sedikit, sedang, dan banyak.

• Klik kurva mf1, kemudian isikan/ganti parameter-

parameter berikut pada setiap field:

– Nama: sedikit

– Range: [0 30]

– Display Range: [0 30]

– Type: trimf– Type: trimf

– Params: [0 5 10]

17

Page 18: Fuzzy Dengan Matlab

• Klik kurva mf2, kemudian isikan/ganti parameter-parameter berikut pada setiap field:

– Nama: sedang

– Range: [0 30]

– Display Range: [0 30]

– Type: trimf

– Params: [10 15 20]

• Klik kurva mf3, kemudian isikan/ganti parameter-• Klik kurva mf3, kemudian isikan/ganti parameter-parameter berikut pada setiap field:

– Nama: banyak

– Range: [0 30]

– Display Range: [0 30]

– Type: trimf

– Params: [20 25 30]

18

Page 19: Fuzzy Dengan Matlab

• Hasil:

19

Page 20: Fuzzy Dengan Matlab

Rule Editor

• Dari FIS editor, pilih: Edit � Rules

20

Page 21: Fuzzy Dengan Matlab

Menyisipkan kaidah IF-THEN pertama:

IF (pelayanan is mengecewakan) or (makanan is

hambar) THEN bonus is sedikit

• Di bawah variabel pelayanan pilih mengecewakan

• Di bawah variabel makanan pilih hambar• Di bawah variabel makanan pilih hambar

• Di bawah variabel bonus pilih sedikit

• Isi bobot Weight dengan 1

• Klik Add Rule

21

Page 22: Fuzzy Dengan Matlab

Menyisipkan kaidah IF-THEN pertama:

IF (pelayanan is bagus) THEN bonus is sedang

• Di bawah variabel pelayanan pilih bagus

• Di bawah variabel makanan pilih none

• Di bawah variabel bonus pilih banyak

• Isi bobot Weight dengan 1

• Klik Add Rule

22

Page 23: Fuzzy Dengan Matlab

Menyisipkan kaidah IF-THEN pertama:

IF (pelayanan is memuaskan) or (makanan is

enak) THEN bonus is banya

• Di bawah variabel pelayanan pilih memuaskan• Di bawah variabel pelayanan pilih memuaskan

• Di bawah variabel makanan pilih enak

• Di bawah variabel bonus pilih banyak

• Isi bobot Weight dengan 1

• Klik Add Rule

23

Page 24: Fuzzy Dengan Matlab

• Hasil:

24

Page 25: Fuzzy Dengan Matlab

Rule Viewer

• Rule viewer menampilkan proses inferensi di dalam FIS.

25

Page 26: Fuzzy Dengan Matlab

Surface Viewer

• Surface Viewer menampilkan keluaran FIS dalam plot 3-D

26

Page 27: Fuzzy Dengan Matlab

Fungsi-Fungsi Penampil FIS

Tiga perintah:

1. plotfis

2. plotmf

3. Gensurf3. Gensurf

Ubah terlebih dahulu current directory ke direktori

kerja

27

Page 28: Fuzzy Dengan Matlab

1. Plotfis

• Dari prompt MATLAB, ketikkan perintah-perintah berikut:

>> a = readfis(‘fisbonus’);

>> plotfis(a)

28

Page 29: Fuzzy Dengan Matlab

2. Plotmf

>> plotmf(a, ‘input’, 1)

29

Page 30: Fuzzy Dengan Matlab

>> plotmf(a, ‘input’, 2)

30

Page 31: Fuzzy Dengan Matlab

>> plotmf(a, ‘output’, 1)

31

Page 32: Fuzzy Dengan Matlab

3. Gensurf

>> gensurf(a)

32

Page 33: Fuzzy Dengan Matlab

Membangun FIS Tipe Sugeno

• Dari FIS editor, pilih File � New FIS � Sugeno

33

Page 34: Fuzzy Dengan Matlab

Konversi FIS Mamdani � FIS Sugeno

>> fisbonus =readfis('fisbonus');

>> sgnfisbonus=mam2sug(fisbonus)

Respon MATLAB:

name: 'fisbonus'

type: 'sugeno'

andMethod: 'min'andMethod: 'min'

orMethod: 'max'

defuzzMethod: 'wtaver'

impMethod: 'min'

aggMethod: 'max'

input: [1x2 struct]

output: [1x1 struct]

rule: [1x3 struct]

34