• Tidak ada hasil yang ditemukan

INTELEGENSI BUATAN. Pertemuan 2,3 Problem, Space, Search. M. Miftakul Amin, M. Eng. website :

N/A
N/A
Protected

Academic year: 2021

Membagikan "INTELEGENSI BUATAN. Pertemuan 2,3 Problem, Space, Search. M. Miftakul Amin, M. Eng. website :"

Copied!
72
0
0

Teks penuh

(1)

INTELEGENSI BUATAN

Pertemuan 2,3

Problem, Space, Search M. Miftakul Amin, M. Eng.

e mail: mmiftakulamin@gmail com e-mail: mmiftakulamin@gmail.com website : http://mafisamin.web.ugm.ac.id

Jurusan Teknik Komputer Jurusan Teknik Komputer

Politeknik Negeri Sriwijaya Palembang 2014

(2)

Tujuan

z

Mahasiswa mampu merepresentasikan

masalah dalam ruang keadaan dan

g

melakukan memahami berbagai metode

pencarian.

(3)

Pokok Bahasan

Pokok Bahasan

Pokok Bahasan

Pokok Bahasan

„

Mendefinisikan Masalah dalam Ruang Keadaan

„

Representasi Ruang Keadaan

„

Representasi Ruang Keadaan

„

Metode Pencarian & Pelacakan

(4)

Artificial Intelligence

Artificial Intelligence

ARTIFICIAL INTELLIGENCE ARTIFICIAL INTELLIGENCE Knowledge Inference Input: MASALAH Output: SOLUSI Knowledge Base Inference Engine

(5)

Permainan Catur

Permainan Catur

(6)

„

Aturan-aturan untuk melakukan gerakan

secara legal

secara legal

(7)

IF

Bidak putih pada Kotak(e,2),

And Kotak(E,3) Kosong,

And Kotak(E,4) Kosong

Then

(8)

„ Tujuan yang ingin dicapai adalah posisi pada papan catur yang menunjukkan kemenangan seseorang

catur yang menunjukkan kemenangan seseorang terhadap lawannya.

„ Kemenangan ini ditandai dengan posisi Raja yang sudah tidak dapat bergerak lagi.

(9)

Ruang Keadaan

„

suatu ruang yang berisi semua keadaan yang

„

suatu ruang yang berisi semua keadaan yang

(10)

Penyelesaian masalah secara umum

„

Mendefinisikan suatu ruang keadaan;

„

Mendefinisikan suatu ruang keadaan;

„

Menetapkan satu atau lebih keadaan awal;

Menetapkan satu atau lebih tujuan;

„

Menetapkan satu atau lebih tujuan;

„

Menetapkan kumpulan aturan.

(11)

Representasi Ruang Keadaan

„

Graph Keadaan

„

Graph Keadaan

„

Pohon Pelacakan

Pohon AND/OR

„

Pohon AND/OR

„

Kasus …

(12)

Graph Keadaan

3 1 G A 4 3 6 7 4 E F B G 1 M T 8 6 7 H C 2 3 5 4 I D J 2 4 D

(13)

„

Lintasan dari M ke T:

‰ M-A-B-C-E-T ‰ M-A-B-C-E-H-T M D C E T ‰ M-D-C-E-T ‰ M-D-C-E-H-T

„

Lintasan yang menemui jalan buntu (tidak

„

Lintasan yang menemui jalan buntu (tidak

sampai ke T):

‰ M-A-B-C-E-F-G ‰ M A B C E F G ‰ M-A-B-C-E-I-J ‰ M-D-C-E-F-G ‰ M-D-C-E-I-J ‰ M-D-I-J

(14)

Pohon Pelacakan

M A D Level-0 Level-1 A B I C e e Level-2 C E E F I H J Level-3 Buntu E F I H T F I H T G J T Level-4 Level-5 Tujuan J G T Level-6 Tujuan Tujuan Tujuan Buntu Buntu Buntu Buntu Tujuan

(15)

Pohon AND/OR

M M

arc yang terletak antara busur

berarti AND

A B C A B C

(16)

M Level-0

A B C E D C E Level-1

T

(17)

Contoh: Masalah Teko Air

„ Ada 2 buah teko masing-masing berkapasitas 4 galon (teko A) dan 3 galon (teko B).

„ Tidak ada tanda yang menunjukkan batas ukuran pada kedua teko t b t

tersebut.

„ Ada sebuah pompa air yang akan digunakan untuk mengisikan air pada kedua teko tersebut.

„ Permasalahannya: Bagaimanakah kita dapat mengisikan tepat 2 galon y g p g p g air ke dalam teko yang berkapasitas 4 galon?

3 galon (t k B) 4 galon (teko A) Air tak terbatas (teko B)

(18)

Penyelesaian …

„ Identifikasi ruang keadaan:

‰ Permasalahan ini dapat direpresentasikan dengan 2 ‰ Permasalahan ini dapat direpresentasikan dengan 2

bilangan integer, yaitu x dan y:

„ x = air yang diisikan pada teko 4 galon (teko A); „ y = air yang diisikan pada teko 3 galon (teko B);

‰ Ruang keadaan: (x,y) sedemikian hingga x∈{0,1,2,3,4} dan

y∈{0,1,2,3}. y { , , , }

„ Keadaan awal & tujuan:

‰ Keadaan awal, kedua teko dalam keadaan kosong: (0,0); ‰ Tujuan, keadaan dimana pada teko 4 galon berisi tepat 2

(19)

(0,0) (1,0) (2,0) (3,0) (4,0)

Keadaan Awal Tujuan

( , ) (0,1) ( , ) (1,1) ( , ) (2,1) ( , ) (3,1) ( , ) (4,1) ( , ) (0,2) ( , ) (1,2) ( , ) (2,2) ( , ) (3,2) ( , ) (4,2) (0,2) (0,3) (1,2) (1,3) (2,2) (2,3) (3,2) (3,3) (4,2) (4,3) (0,3) (1,3) (2,3) (3,3) (4,3)

(20)

„ Aturan-aturan

Aturan

ke- Jika Maka

1. (x,y) (4,y) x < 4 Isi teko A. 2. (x,y) y < 3 (x,3)Isi teko B. 3 (x y) (x d y) 3. (x,y)

x > 0 (x-d,y)Tuangkan sebagian air keluar dari teko A. 4. (x,y)

y > 0 (x,y-d)Tuangkan sebagian air keluar dari teko B. 5. (x,y)

x > 0 (0,y)Kosongkan teko A dengan membuang airnya ke tanah.

6. (x,y)

y > 0 (x,0)Kosongkan teko B dengan membuang airnya ke tanah.

(21)

7. (x,y)

+ ≥ 4 d > 0 (4,y-(4-x))T k i d i t k B k t k A x+y ≥ 4 dan y > 0 Tuangkan air dari teko B ke teko A

sampai teko A penuh. 8. (x,y)

x+y ≥ 3 dan x > 0 (x-(3-y),3)Tuangkan air dari teko A ke teko B x+y ≥ 3 dan x 0 Tuangkan air dari teko A ke teko B

sampai teko B penuh. 9. (x,y)

x+y ≤ 4 dan y > 0 (x+y,0)Tuangkan seluruh air dari teko B ke t k A

teko A. 10. (x,y)

x+y ≤ 3 dan x > 0 (0,x+y)Tuangkan seluruh air dari teko A ke teko B.

teko B. 11. (0,2) (2,0)

Tuangkan 2 galon air dari teko B ke teko A.

12. (2,y) (0,y)

Kosongkan 2 galon air di teko A dengan membuang airnya ke tanah.

(22)

„

Representasi ruang keadaan dengan pohon

p

g

g

p

pelacakan.

(0,0) (4,0) (0,3) (0,0) (1,3) (4,3) (4,3) (0,0) (3,0)

(23)

„ Salah satu solusi:

Isi Teko A

(gallon) Isi Teko B (gallon) Aturan yang dipakai

0 0 2 0 3 9 3 0 2 3 3 7 4 2 5 0 2 9 2 0 solusi

(24)

Contoh: Petani, Sayur, dan Kambing

„

Seorang petani akan menyeberangkan seekor

g p

y

g

kambing, seekor serigala, dan sayur-sayuran

dengan sebuah boat yang melalui sungai.

B

h

bi

i d

„

Boat hanya bisa memuat petani dan satu

penumpang yang lain (kambing, serigala atau

sayur-sayuran)

sayur sayuran).

„

Jika ditinggalkan oleh petani tersebut, maka

sayur-sayuran akan dimakan oleh kambing, dan

kambing akan dimakan oleh serigala.

(25)

Penyelesaian …

„ Identifikasi ruang keadaan

‰ Permasalahan ini dapat dilambangkan dengan

(J l hK bi J l hS i l J l hS

(JumlahKambing, JumlahSerigala, JumlahSayuran, JumlahBoat).

‰ Sebagai contoh: Daerah asal (0,1,1,1) berarti pada daerah

asal tidak ada kambing ada serigala ada sayuran dan asal tidak ada kambing, ada serigala, ada sayuran, dan ada boat. „ Keadaan Awal ‰ Daerah asal: (1 1 1 1) ‰ Daerah asal: (1,1,1,1) ‰ Daerah seberang: (0,0,0,0) „ Tujuan D h l (0 0 0 0) ‰ Daerah asal: (0,0,0,0) ‰ Daerah seberang: (1,1,1,1)

(26)

„ Aturan-aturan Aturan Aturan ke- Aturan 1. Kambing menyeberang b 2. Sayuran menyeberang 3. Serigala menyeberang 4 K bi k b li 4. Kambing kembali 5. Sayuran kembali 6 Serigala kembali 6. Serigala kembali 7. Boat kembali

(27)

„ Salah satu solusi:

Daerah Asal SeberangDaerah Aturan yang dipakai

(1,1,1,1) (0,0,0,0) 1 (0,1,1,0) (1,0,0,1) 7 (0,1,1,1) (1,0,0,0) 3 (0,0,1,0) (1,1,0,1) 4 (1 0 1 1) (0 1 0 0) 2 (1,0,1,1) (0,1,0,0) 2 (1,0,0,0) (0,1,1,1) 7 (1 0 0 1) (0 1 1 0) 1 (1,0,0,1) (0,1,1,0) 1 (0,0,0,0) (1,1,1,1) solusi

(28)

Metode Pencarian & pelacakan

„

Pencarian Buta (

Blind Search

)

Breadth First Search

‰ Breadth-First Search ‰ Depth-First Search

Pencarian Terbimbing (

Heuristics Search

)

„

Pencarian Terbimbing (

Heuristics Search

)

‰ Generate & Test

Hill Cli bi ‰ Hill Climbing ‰ Best-First Search Tabu Search ‰ Tabu Search ‰ Simulated Annealing

(29)

Breadth-First Search

„

Pada metode Breadth-First Search, semua node

„

Pada metode Breadth First Search, semua node

pada level n akan dikunjungi terlebih dahulu

sebelum mengunjungi node-node pada level

n+1.

„

Pencarian dimulai dari node akar terus ke level

ke-1 dari kiri ke kanan, kemudian berpindah ke

level berikutnya demikian pula dari kiri ke kanan

hingga ditemukannya solusi

(30)

A C D B I J H F G E K L M

(31)

„

Keuntungan:

‰ Tidak akan menemui jalan buntu.

‰ Jika ada satu solusi, maka breadth-first search

k k D jik d l bih d i t

akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.

„

Kelemahan:

„

Kelemahan:

‰ Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu karena menyimpan semua node dalam satu pohon.

‰ Membutuhkan waktu yang cukup lama, karena y g p akan menguji n level untuk mendapatkan solusi pada level yang ke-(n+1)

(32)

Depth-First Search

„

Pada Depth-First Search, proses pencarian

„

Pada Depth First Search, proses pencarian

akan dilakukan pada semua anaknya sebelum

dilakukan pencarian ke node-node yang selevel.

„

Pencarian dimulai dari node akar ke level yang

lebih tinggi. Proses ini diulangi terus hingga

ditemukannya solusi

(33)

A

B

C

C

(34)

„

Keuntungan

„

Keuntungan

‰ Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.

‰ Secara kebetulan, metode depth-first search akan menemukan solusi tanpa harus menguji labih

menemukan solusi tanpa harus menguji labih banyak lagi dalam ruang keadaan.

„

Kelemahan

‰ Memungkinkan tidak ditemukannya tujuan yang diharapkan.

H k d tk 1 l i d ti

‰ Hanya akan mendapatkan 1 solusi pada setiap pencarian.

(35)

Pencarian Heuristik

„

Kasus 8-puzzle

Keadaan Awal Tujuan

1

2

3

7

8

4

1

2

3

8

4

7

8

4

6

5

8

6

4

7

5

(36)

„ Operator

‰ Ubin kosong geser ke kanang g ‰ Ubin kosong geser ke kiri ‰ Ubin kosong geser ke atas ‰ Ubin kosong geser ke bawah „ Langkah awal Tujuan 1 2 3 8 4 7 6 5 1 2 3 7 4 6 5 8 7 6 5 6 5 kanan atas kiri 1 2 3 7 4 6 5 8 1 2 3 7 4 6 5 8 1 2 3 7 4 6 8 5 6 5 6 5 6 8 5

(37)

Nilai heuristik …

Nilai heuristik …

„ Untuk jumlah ubin yang menempati posisi yang

benar Æ jumlah yang lebih tinggi adalah yang lebih diharapkan (lebih baik)

diharapkan (lebih baik)

1 2 3 1 2 3 Tujuan 1 2 3 8 4 7 6 5 1 2 3 7 4 6 5 8 atas kiri 1 2 3 1 2 3 1 2 3 kanan atas kiri 1 2 3 7 4 6 5 8 1 2 3 7 4 6 5 8 1 2 3 7 4 6 8 5 h=6 h=6 h=4h=4 h=h=55

(38)

„ Untuk jumlah ubin yang menempati posisi yang

l h Æ j l h l bih k il d l h

salah Æ jumlah yang lebih kecil adalah yang diharapkan (lebih baik).

1 2 3 8 4 1 2 3 7 8 4 Tujuan 7 6 5 6 5 kanan atas kiri 1 2 3 7 8 4 1 2 3 7 8 4 1 2 3 7 4 6 5 6 5 6 8 5 h=2 h=2 h=4h=4 h=3h=3

(39)

„ Menghitung total gerakan yang diperlukan untuk

i j Æ j l h l bih k il d l h

mencapai tujuan Æ jumlah yang lebih kecil adalah yang diharapkan (lebih baik).

1 2 3 8 4 1 2 3 7 8 4 Tujuan 7 6 5 6 5 kanan atas kiri 1 2 3 7 8 4 1 2 3 7 8 4 1 2 3 7 4 6 5 6 5 6 8 5 h=2 h=2 h=4h=4 h=4h=4

(40)

Generate & Test

„ Pada prinsipnya metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal yaitu bergerak ke belakang menuju pada suatu keadaan awal. „ Algoritma:

1. Bangkitkan suatu kemungkinan solusi (membangkitkan

t titik t t t t li t t t t d i k d

suatu titik tertentu atau lintasan tertentu dari keadaan awal).

2. Uji untuk melihat apakah node tersebut benar-benar

k l i d b di k d

merupakan solusinya dengan cara membandingkan node tersebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan.

Jik l i dit k k l Jik tid k l i k b li

3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali

(41)

Kasus:

Kasus:

Traveling Salesman Problem

Traveling Salesman Problem

(TSP).

(TSP).

„ Seorang salesman ingin mengunjungi n kota. Jarak

antara tiap-tiap kota sudah diketahui. Ingin diketahui rute terpendek dimana setiap kota hanya boleh dikunjungi

terpendek dimana setiap kota hanya boleh dikunjungi tepat 1 kali. A 8 B 3 4 D C 7 3 5 D 6 C

(42)

„ Generate & test akan membangkitkan semua solusi yang mungkin: y g g ‰ A – B – C – D ‰ A – B – D – C ‰ A – C – B – D ‰ A – C – B – D ‰ A – C – D – B, dll A B C D A B C D B C D C D B D C B D C D B B C

(43)

„ Alur pencarian Pencarian

ke- Lintasan LintasanPanjang Lintasan terpilih

Panjang Lintasan terpilih 1. ABCD 19 ABCD 19 2. ABDC 18 ABDC 18 3. ACBD 12 ACBD 12 4. ACDB 13 ACBD 12 5. ADBC 16 ACBD 12 6. ADCB 18 ACBD 12 7. BACD 17 ACBD 12 8. BADC 21 ACBD 12 9. BCAD 15 ACBD 12 10. BCDA 18 ACBD 12 11. BDAC 14 ACBD 12 12. BDCA 13 ACBD 12 12. BDCA 13 ACBD 12

(44)

Pencarian Li t Panjang Li t t ilih Li tPanjang Pencarian

ke- Lintasan Panjang Lintasan Lintasan terpilih Lintasan terpilih

13. CABD 15 ACBD 12 14 CADB 14 ACBD 12 14. CADB 14 ACBD 12 15. CBAD 20 ACBD 12 16. CBDA 16 ACBD 12 17. CDAB 21 ACBD 12 18. CDBA 18 ACBD 12 19. DABC 20 ACBD 12 20. DACD 15 ACBD 12 21. DBAC 15 ACBD 12

22 DBCA 12 ACBD t DBCA 12

22. DBCA 12 ACBD atau DBCA 12

23. DCAB 17 ACBD atau DBCA 12

(45)

„ Salah satu kelemahan dari metode generate & test

i i d l h l b ki k

ini adalah perlu membangkitkan semua

kemungkinan sebelum dilakukan pengujian,

sehingga membutuhkan waktu yang cukup besar

d l i

(46)

Pendakian Bukit (

Hill Climbing

)

„ Metode ini hampir sama dengan metode p g

pembangkitan & pengujian, hanya saja proses

pengujian dilakukan dengan menggunakan fungsi heuristik

heuristik.

„ Pembangkitan keadaan berikutnya sangat

tergantung pada feedback dari prosedur t

pengetesan.

„ Tes yang berupa fungsi heuristic ini akan

menunjukkan seberapa baiknya nilai terkaan yang menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya yang mungkin.

(47)

Simple Hill Climbing

Algoritma

„ Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan,Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan,

maka berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.

„ Kerjakan langkah-langkah berikut sampai solusinya ditemukan, atauKerjakan langkah langkah berikut sampai solusinya ditemukan, atau

sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang:

‰ Cari operator yang belum pernah digunakan; gunakan operator ini untuk p y g p g ; g p

mendapatkan keadaan yang baru.

‰ Evaluasi keadaan baru tersebut.

„ Jika keadaan baru merupakan tujuan, keluar.

„ Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang.

„ Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.j

(48)

Kasus: TSP

„ Operator Æ Tukar kota ke-i dengan kota ke-j (Tk i,j) „ Untuk 4 kota:

‰ Tk 1,2 : tukar kota ke-1 dengan kota ke-2. ‰ Tk 1,3 : tukar kota ke-1 dengan kota ke-3. ‰ Tk 1 4 : tukar kota ke 1 dengan kota ke 4 ‰ Tk 1,4 : tukar kota ke-1 dengan kota ke-4. ‰ Tk 2,3 : tukar kota ke-2 dengan kota ke-3. ‰ Tk 2,4 : tukar kota ke-2 dengan kota ke-4. ‰ Tk 3,4 : tukar kota ke-3 dengan kota ke-4.

„ Untuk N kota, akan ada operator sebanyak:

)!

2

N

(

!

2

!

N

)

(

(49)

ABCD

Tk 1,2 Tk 1,3

(19)

BACD ACBD ABDC DBCA

Tk 2,3 Tk 3,4 Tk 4,1 ABDC CBAD Tk 2,4 (17) Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3 (15)

ABCD BCAD BADC DACB

, , BDCA CABD , , (15) Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3 (20) (18) (19) (14)

CBAD BACD BCDA DCAB BDAC ACBD

(20) (18) (19) (14)

DBAC BADC BDCA CDAB

Tk 1,2 Tk 3,4 Tk 4,1

BCAD ADBC

Tk 2,4 Tk 1,3

(15) (21) Tk 2,3(13)

DBAC BADC BDCA CDAB BCAD ADBC

DBCA BCDA BDAC BDAC

Tk 1,2 Tk 3,4 Tk 4,1

CBAD ADCB

Tk 2,4

(12) Tk 2,3 Tk 1,3

BDCA DCBA DBAC ACDB DACB CBDA

Tk 1,2 Tk 2,3 Tk 3,4 Tk 4,1 Tk 2,4 Tk 1,3

(50)

„

Apabila hanya digunakan 4 operator saja:

ABCD

(19)

BACD ACBD ABDC DBCA

Tk 1,2

Tk 2,3 Tk 3,4 Tk 4,1

(17)

ABCD BCAD BADC DACB

Tk 1,2 Tk 2,3

Tk 3,4

Tk 4,1

(15)

ABCD BCAD BADC DACB

Tk 1,2 Tk 2,3

Tk 3,4

Tk 4,1

(20) (17) (18) (17)

CBAD BACD BCDA DCAB

,

(51)

„

Pada

simple hill climbing

ada 3 masalah

„

Pada

simple hill climbing

, ada 3 masalah

yang mungkin:

‰ Algoritma akan berhenti kalau mencapai nilai ‰ Algoritma akan berhenti kalau mencapai nilai

optimum local.

‰ Urutan penggunaan operator akan sangat p gg p g berprngaruh pada penemuan solusi.

‰ Tidak diijinkan untuk melihat satupun langkah sebelumnya.

(52)

Steepest Ascent Hill Climbing

„ Steepest-ascent hill climbing sebenarnya hampir sama dengan simple hill climbing, hanya saja gerakan

pencarian tidak dimulai dari posisi paling kiri.

„ Gerakan selanjutnya dicari berdasarkan nilai heuristik „ Gerakan selanjutnya dicari berdasarkan nilai heuristik

terbaik.

„ Dalam hal ini urutan penggunaan operator tidak menentukan penemuan solusi.

(53)

„ Algoritma

‰ Mulai dari keadaan awal, lakukan pengujian: jika

merupakan tujuan, maka berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.

‰ Kerjakan hingga tujuan tercapai atau hingga iterasi tidak

memberikan perubahan pada keadaan sekarang.

„ Tentukan SUCC sebagai nilai heuristic terbaik dari

successor-successor.

„ Kerjakan untuk tiap operator yang digunakan oleh

keadaan sekarang:

G k t t b t d b t k k d b

‰ Gunakan operator tersebut dan bentuk keadaan baru.

‰ Evaluasi keadaan baru tersebut. Jika merupakan tujuan,

keluar. Jika bukan, bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik, jadikan nilai heuristic keadaan baru tersebut sebagai SUCC. Namun jika tidak lebih baik, nilai SUCC tidak berubah.

„ Jika SUCC lebih baik daripada nilai heuristic keadaan

sekarang ubah node SUCC menjadi keadaan sekarang sekarang, ubah node SUCC menjadi keadaan sekarang.

(54)

Kasus: TSP

ABCD

Tk 1 2 Tk 1 3

(19)

ACBD ABDC DBCA

Tk 1,2 Tk 3,4 Tk 4,1 ADCB CBAD Tk 2,4Tk 1,3 (17) (12) Tk 2,3(18) (12) (18) (20) BACD

CABD ABCD ACDB DCBA

Tk 2,3 3,4Tk 4,1Tk ADBC BCAD Tk 2,4 Tk 1,3 (15) (13) Tk 1,2 (19) (16) (15) (19)

(55)

„

Pada

steepest-ascent hill climbing

ini ada 3

„

Pada

steepest ascent hill climbing

ini, ada 3

masalah yang mungkin, yaitu:

‰ Local optimum: keadaan semua tetangga lebih ‰ Local optimum: keadaan semua tetangga lebih

buruk atau sama dengan keadaan dirinya.

‰ Plateau: keadaan semua tetangga sama dengan keadaan dirinya.

‰ Ridge: local optimum yang lebih disebabkan

k k tid k t k k 2

karena ketidakmampuan untuk menggunakan 2 operator sekaligus.

(56)

Best-First Search

„ Metode best-first search ini merupakan kombinasi dari metode depth-first search dan metode breadth-first search dengan

depth first search dan metode breadth first search dengan mengambil kelebihan dari kedua metode tersebut.

„ Apabila pada pencarian dengan metode hill climbing tidak diperbolehkan untuk kembali ke node pada level yang lebih d pe bo e a u tu e ba e ode pada e e ya g eb

rendah meskipun node pada level yang lebih rendah tersebut memiliki nilai heuristik yang lebih baik, lain halnya dengan metode best-first search ini.

„ Pada metode best-first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika

ternyata node pada lebih yang lebih tinggi ternyata memiliki nilai heuristik yang lebih buruk

(57)

„

Algoritma:

‰ Tempatkan node awal A pada antrian OPEN.

‰ Kerjakan langkah-langkah berikut hingga tujuan

ditemukan atau antrian OPEN sudah kosong:

„ Ambil node terbaik dari OPEN; „ Bangkitkan semua successornya; „ Bangkitkan semua successornya; „ Untuk tiap-tiap successor kerjakan:

‰ Jika node tersebut belum pernah dibangkitkan

sebelumnya, evaluasi node tersebut dan masukkan ke OPEN;

‰ Jika node tersebut sudah pernah dibangkitkan

sebelumnya, ubah parent jika lintasan baru lebih

(58)

Antrian OPEN A [A] [D,C,B] A 3 5 7 [C,F,B,E] B C D A 3 5 B C D E F 2 4 [G,F,B,E,H] A B C D 5 1 2 4 3 B C D E F G H

(59)

Tabu Search

„ Tabu Search merupakan suatu metode optimasi yang

menggunakan short-term memory untuk menjaga agar proses pencarian tidak terjebak pada nilai optimum lokal

pencarian tidak terjebak pada nilai optimum lokal.

„ Metode ini menggunakan Tabu List untuk menyimpan sekumpulan solusi yang baru saja dievaluasi.

„ Selama proses optimasi pada setiap iterasi solusi yang akan „ Selama proses optimasi, pada setiap iterasi, solusi yang akan

dievaluasi akan dicocokkan terlebih dahulu dengan isi Tabu List untuk melihat apakah solusi tersebut sudah ada pada Tabu List. „ Apabila solusi tersebut sudah ada pada Tabu List, maka solusi p p ,

tersebut tidak akan dievaluasi lagi pada iterasi berikutnya.

„ Apabila sudah tidak ada lagi solusi yang tidak menjadi anggota Tabu List, maka nilai terbaik yang baru saja diperoleh y g j

(60)

Algoritma:

„ Tetapkan:

‰ X = Matriks input berukuran nxm. ‰ MaxItr = maksimum iterasi.

„ S = bangkitkan solusi secara random. „ GlobalMin = FCost(S).

„ Best = S.

T b Li t []

„ TabuList = [].

„ Kerjakan dari k=1 sampai MaxItr:

BestSoFar = FCost(S)

‰ BestSoFar = FCost(S). ‰ BestMove = S.

(61)

„ Kerjakan dari j=i sampai n:

‰ L = Tukar(S[i] S[j]) ‰ L = Tukar(S[i],S[j]). ‰ Cost = FCost(L).

‰ Jika (L ∉TabuList) atau (Cost < GlobalMin), kerjakan:

ƒ Jika (Cost < BestSoFar), kerjakan BestSoFar = Cost.

BestMove = L.

„ S = BestMove.

„ Tambahkan S ke TabuList.

Jik B tS F Gl b lMi k j k

„ Jika BestSoFar < GlobalMin, kerjakan:

‰ GlobalMin = BestSoFar. ‰ Best = BestMove.

(62)

Simulated Annealing

„ Ide dasar simulated annealing terbentuk dari pemrosesan logam. „ AnnealingAnnealing (memanaskan kemudian mendinginkan) dalam(memanaskan kemudian mendinginkan) dalam

pemrosesan logam ini adalah suatu proses bagaimana membuat bentuk cair berangsur-angsur menjadi bentuk yang lebih padat seiring dengan penurunan temperatur.

„ Simulated annealing biasanya digunakan untuk penyelesaian masalah yang mana perubahan keadaan dari suatu kondisi ke kondisi yang lainnya membutuhkan ruang yang sangat luas, misalkan perubahan gerakan dengan menggunakan permutasi misalkan perubahan gerakan dengan menggunakan permutasi pada masalah Travelling Salesman Problem.

„ Pada simulated annealing, ada 3 parameter yang sangat

menentukan yaitu: tetangga gain temperatur pembangkitan menentukan, yaitu: tetangga, gain, temperatur, pembangkitan bilangan random.

(63)

„ Algoritma

‰ Evaluasi keadaan awal. Jika keadaan awal merupakan tujuan, maka

pencarian berhasil dan KELUAR. Jika tidak demikian, lanjutkan dengan pencarian berhasil dan KELUAR. Jika tidak demikian, lanjutkan dengan menetapkan keadaan awal sebagai kondisi sekarang.

‰ Inisialisasi BEST_SO_FAR untuk keadaan sekarang. ‰ Inisialisasi T sesuai dengan annealing schedule.

‰ Kerjakan hingga solusi ditemukan atau sudah tidak ada operator baru ‰ Kerjakan hingga solusi ditemukan atau sudah tidak ada operator baru

lagi akan diaplikasikan ke kondisi sekarang.

„ Gunakan operator yang belum pernah digunakan tersebut untuk

menghasilkan kondisi baru.

„ Evaluasi kondisi yang baru dengan menghitung:

E il i k il i k d b

E = nilai sekarang – nilai keadaan baru.

‰ Jika kondisi baru merupakan tujuan, maka pencarian berhasil dan KELUAR.

‰ Jika bukan tujuan, namun memiliki nilai yang lebih baik daripada kondisi sekarang, maka tetapkan kondisi baru sebagai kondisi sekarang. Demikian pula tetapkan BEST_SO_FAR untuk kondisi yang baru tadi.

‰ Jika nilai kondisi baru tidak lebih baik dari kondisi sekarang, maka tetapkan kondisi baru sebagai kondisi sekarang dengan probabilitas:

Langkah ini biasanya dikerjakan dengan membangkitkan suatu bilangan

T / E e ' p = −∆ g y j g g g

random r pada range [0 1]. Jika r < p’, maka perubahan kondisi baru menjadi kondisi sekarang diperbolehkan. Namun jika tidak demikian, maka tidak akan dikerjakan apapun.

„ Perbaiki T sesuai dengan annealing scheduling.

‰ BEST SO FAR adalah jawaban yang dimaksudkan. ‰ BEST_SO_FAR adalah jawaban yang dimaksudkan.

(64)

„

Secara umum ada 3 hal pokok pada

p

p

simulated annealing, yaitu:

a. Nilai awal untuk temperatur (T0).

(

Nilai T0 biasanya ditetapkan cukup besar (tidak mendekati nol), karena jika T mendekati 0 maka gerakan simulated annealing akan sama dengan

g g g

hill climbing. Biasanya temperatur awal ini

ditetapkan sebesar 2 kali panjang suatu jalur yang dipilih secara acak

dipilih secara acak.

b. Kriteria yang digunakan untuk memutuskan

apakah temperatur sistem seharusnya dikurangi. c. Berapa besarnya pengurangan temperatur dalam

(65)

Pseudocode

Function PjgJalur(L X Y): real;

Function PjgJalur(L,X,Y): real;

‰ Panjang = 0;

‰ For i=1 to (NC-1) do ‰ For i 1 to (NC 1) do

„ Panjang = Panjang + √((XL(i+1) – XL(i))2 + (YL(i+1) –

YL(i))2);

(66)

Function T0(MTemp:integer): real;

‰ LMax = 0; ‰ LMax 0;

‰ For i=1 to MTemp do

„ LA = ambil jalur sembarang „ Len = PjgJalur(LA)

„ If Len > LMax then LMax = Len

T0 2*LM

(67)

Function JalurBaru(L): arrayNC;

„ Bangkitkan 2 bilangan random N1 dan N2 antara 1

sampai NC dengan N1 < N2 „ Depan = L(1) sampai L(N1 1); „ Depan = L(1) sampai L(N1-1); „ Tengah = L(N1) sampai L(N2); „ Belakang = L(N2+1) sampai L(NC); „ Belakang L(N2 1) sampai L(NC); „ Bangkitkan bilangan random r.

„ If r < 0,5 then

‰ DepanBaru = Depan.

‰ TengahBaru(1..NT) = Tengah(NT..1); dengan

NT=N2-N1+1.

‰ BelakangBaru = Belakang.

(68)

„ else

‰ Sementara = [Depan Belakang]; dengan M elemen. ‰ Bangkitkan bilangan random r dengan nilai antara 1

sampai M.

‰ DepanBarup = Sementara(1..r).( ) ‰ TengahBaru = Tengah.

‰ BelakangBaru = Sementara(r+1..M).

‰ Lbaru = [DepanBaru TengahBaru BelakangBaru]

(69)

„ Procedure SimulatedAnneal (MTemp:integer;

NC:integer; X Y:real; MItr:integer; MSukses:integer; NC:integer; X,Y:real; MItr:integer; MSukses:integer; decT:real); ‰ T = T0(MTemp); ‰ L = [1 2 3 … NC]; ‰ MaxIterasi = MItr*NC; ‰ MaxSukses = MSukses*NC;; ‰ JalurTerpendek = L; ‰ PjgJalurTerpendek = PjgJalur(L); ‰ Sukses = 1; ‰ Sukses = 1; ‰ While Sukses > 0 „ Sukses = 0; Mi Pj J l Pj J l (L) „ MinPjgJalur = PjgJalur(L); „ For i=1 to MaxIterasi do

‰ Jalur = JalurBaru(L); Pj Pj J l (J l ) ‰ Pjg = PjgJalur(Jalur);

(70)

‰ If Pjg < MinPjgJalur then Mi Pj J l Pj

ƒ MinPjgJalur = Pjg;

ƒ Lbaru = Jalur;

ƒ Sukses = Sukses +1;

ƒ If MinPjgJalur < PjgJalurTerpendek then PjgJalurTerpendek = MinPjgJalur; JalurTerpendek = Lbaru;

JalurTerpendek Lbaru;

ƒ If Sukses = MaxSukses then BREAK; ‰ else

Bangkitkan bilangan random r;

ƒ Bangkitkan bilangan random r;

ƒ If r < e-(Pjg-MinPjgJalur)/T then Lbaru=Jalur;

„ L = Lbaru; „ T = decT * T;

(71)

Kasus: TSP

„ Operator Æ Ada beberapa operator yang bisa digunakan. Berikut ini adalah salah satu contoh operator untuk menentukan jalur. Misalkan jumlah kota yang akan dikunjungi adalah NC.

‰ Kota-kota disimpan pada larik L.p p

‰ Bangkitkan 2 bilangan random antara 1 sampai NC, misalkan kedua

bilangan itu adalah N1 dan N2 dengan N1 < N2.

„ Depan = L(1) sampai L(N1-1). „ Tengah = L(N1) sampai L(N2). „ Belakang = L(N2+1) sampai L(NC).

‰ Bangkitkan bilangan random r, apabila r < 0,5; maka:

„ DepanBaru = Depan.

„ TengahBaru = Tengah dengan urutan dibalik.

B l k B B l k

„ BelakangBaru = Belakang.

„ Lbaru = [DepanBaru TengahBaru BelakangBaru]

‰ Jika r ≥ 0,5; maka kerjakan:

„ Sementara = [Depan Belakang], misalkan memiliki M elemen.

Bangkitkan bilangan random r dengan nilai antara 1 sampai M

„ Bangkitkan bilangan random r dengan nilai antara 1 sampai M. „ DepanBaru = Sementara(1:r).

„ TengahBaru = Tengah.

„ BelakangBaru = Sementara(r+1:M).

„ Lbaru = [DepanBaru TengahBaru BelakangBaru] „ Lbaru [DepanBaru TengahBaru BelakangBaru]

(72)

„ Misalkan jalur yang ada adalah:

L = [4 3 6 9 11 2 5 1 7 8 12 10] Æ NC=12 L = [4 3 6 9 11 2 5 1 7 8 12 10] Æ NC=12

„ Bangkitkan bilangan random, misal: N1=4 dan N2=10. Didapatkan:

‰ Depan = [4 3 6].

‰ Tengah = [9 11 2 5 1 7 8]. ‰ Belakang = [12 10].

„ Bangkitkan bilangan random r, apabila r < 0,5; maka:

‰ DepanBaru = [4 3 6]. ‰ DepanBaru [4 3 6].

‰ TengahBaru = [8 7 1 5 2 11 9]. ‰ BelakangBaru = [12 10].

‰ Lbaru = [4 3 6 8 7 1 5 2 11 9 12 10]

„ Jika r ≥ 0 5; maka kerjakan: „ Jika r ≥ 0,5; maka kerjakan:

‰ Sementara = [4 3 6 12 10], M=5. ‰ Bangkitkan bilangan random r, misal r=2. ‰ DepanBaru = [4 3]. ‰ TengahBaru = [9 11 2 5 1 7 8]. ‰ BelakangBaru = [6 12 10]. ‰ Lbaru = [4 3 9 11 2 5 1 7 8 6 12 10] Contoh Contoh …

Referensi

Dokumen terkait

Thanthowi Jauhari adalah seorang mufassir, yang mana dia tertarik dengan ilmu-ilmu pengetahuan terutama ilmu fisika dengan menggunakan metode tahlili, corak ilmi, yang menurut

[r]

Seperti yang sudah dikemukakan oleh Uchida dan Ogihara (2012), bahwa evaluasi subjektif individu terhadap kebahagiaan sangat dipengaruhi oleh makna kultural dan nilai

Demikian juga apabila data yang dimiliki sangat terbatas seperti simulasi pada penelitian ini dimana hanya memiliki data yang berkaitan dengan konsumsi energi listrik

Hal tersebut sebenarnya sudah harus menjadi perbincangan serius, sudah saatnya isu satwa liar dan satwa langka yang dilindungi di Indonesia menjadi isu Nasional, upaya

Pencatatan dan pendaftaran administrasi pada penerimaan pegawai negeri sipil yang teratur dan tertib dapat menciptakan tertib administrasi.. penerimaan pegawai negeri

Dalam rangka pengembangan studi anak usia dini dan kebutuhan akan tempat penitian anak yang terpercaya khusus bagi karyawan, maka Universitas Muhammadiyah

Daerah wilayahnya termasuk daerah praja (kasunanan) Surakarta Hadiningrat yang dipimpin oleh Raden Mas Said atau dengan gelar Pangeran Adipati Arya Mangkunegara