analisis metode heuristic search

23
Kecerdasan Buatan Metode Pencarian “Heuristic Search” Ir. Bambang Siswoyo Kasus : 1. Generate & Test (Pencarian Rute) 2. Simulated Annealing (Robot Mobil untuk Mencari Rute Terpendek ) 3. Hill Climbing (Pencarian Node Tujuan Menggunakan Tree) 4. Best First Search (Pencarian Node Tujuan Menggunakan Tree ) 10107197 Guntur Sulaeman IF5

Upload: guntur-sulaeman

Post on 24-Jun-2015

828 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Analisis Metode Heuristic Search

Kecerdasan Buatan

Metode Pencarian “Heuristic Search”

Ir. Bambang Siswoyo

Kasus : 1. Generate & Test

(Pencarian Rute)

2. Simulated Annealing

(Robot Mobil untuk Mencari Rute Terpendek )

3. Hill Climbing

(Pencarian Node Tujuan Menggunakan Tree)

4. Best First Search

(Pencarian Node Tujuan Menggunakan Tree )

10107197

Guntur Sulaeman

IF5

Page 2: Analisis Metode Heuristic Search

Generated & TestAlgoritma Generate & Test termodifikasi untuk pencarian semua rute yang mungkin.

Pada prinsipnya algoritma ini merupakan penggabungan antara Depth First Search dengan

pelacakan mundur (Backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan

tertentu. Nilai pengujian berupa jawaban ‘ya’ atau ‘tidak’.

Algoritmanya adalah sebagai berikut :

Misalkan awal adalah “Start” dan akhir adalah “Finish”, maka :

1. Pada langkah pertama adalah masukan node yang dijadikan sebagai “Start”(node awal),

pada suatu tampungan data berupa Stack atau tumpukan, selanjutnya diberi nama

Stack1.

2. Kemudian pada langkah kedua ambil node dari Stack1, kemudian dijadikan sebagai

Node Awal.

a. Jika tidak ada node yang dapat dijadikan sebagai Node Awal, maka berhenti dari

pencarian, karena Stack1 kosong.

b. Jika ada, lanjut ke langkah tiga.

3. Kemudian pada langkah ini adalah melakukan pengecekan dari setiap node yang

merupakan kemungkinan solusi selanjutnya.

a. Jika didapatkan node yang merupakan solusi selanjutnya, simpan node tersebut

di dalam Stack1. Jika tidak, lakukan backtracking sampai pada node pada Stack2.

Jika Stack2 kosong, maka lakukan langkah pertama. Jika tidak, lanjut ke langkah

empat.

b. Jika jumlah node yang ditemukan lebih dari 1, simpan Node Awal pada tempat

tampungan data berupa tumpukan, selanjutnya diberi nama Stack2. Jika tidak

lanjut ke langkah empat.

Page 3: Analisis Metode Heuristic Search

4. Pada langkah keempat dilakukan pengujian untuk melihat apakah node tersebut benar-

benar merupakan solusinya dengan cara membandingkan node tersebut atau node

akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan.

a. Jika solusi ditemukan, (sama dengan node “Finish”), simpan hasil di tabel

tampung, kemudian lakukan backtracking sampai pada node yang ada pada

Stack2. Ulangi langkah kedua

b. Jika tidak, lakukan langkah 2.

Contoh Kasus:

Misalkan ada segmen jalan berarah (directed) yang terlihat pada Gambar 1, jika A

terpilih sebagai “Start” dan J sebagai “Finish”. Pertanyaannya rute mana saja yang mungkin

dilalui dari A untuk menuju J, dengan kondisi jalan tersebut?

Skema Kasus Generate & Test

Penyelesaiaan dari contoh kasus 1 adalah sebagai berikut :

1

3

2

7

4

5

6

8

A

B

C

D

E

F

G

H

I

J

Page 4: Analisis Metode Heuristic Search

1. Pertama-tama semua node dalam kondisi “False(F)”, kemudian pada jalan A, dipilih

node 1 sebagai kondisi awal (Start), dan pada jalan J dipilih node 8 sebagai kondisi akhir

(Finish). Kemudian menyimpan node yang terpilih sebagai Start (node 1) ke dalam

tumpukan (diberi nama Stack1) dan siapkan tumpukan satu lagi, kemudian disebut

Stack2.

2. Ambil node dari Stack 1, kemudian node tersebut dijadikan sebagai Node Awal. Berilah

status “True(T)” pada node ini, untuk menandakan bahwa node ini telah dilalui.

3. Cari semua node yang bersambungan langsung dengan node 1 dan didapat node 2 dan

node 3. Simpan node 2 dan node 3 ke dalam Stack1. Karena node 1 mempunyai

sambungan lebih dari 1, maka simpan node 1 ke Stack2.

4. Pilih node baru yang akan dijadikan sebagai Node Awal dari Stack1. Node yang terpilih

berdasarkan sifat tumpukannya, yakni last in first out (LIFO). Misalkan yang terpilih

adalah node 3, maka yang tersambung dengan node ini adalah node 5 dari semua node

yang ada.

5. Kemudian simpan node 5 ke dalam Stack1, selanjutnya pilih node baru lagi yang

dijadikan sebagai Node Awal, dan seterusnya sampai Node Awal merupakan node yang

dijadikan Finish (node 8).

6. Jika Node Awal merupakan Finish, simpan hasil rute pada tabel penampungan,

kemudian lakukan backtracking dari node 8 sampai node yang ada pada Stack2 (node 1),

selanjutnya ambil node baru dari Stack1 (node 2) untuk dijadikan sebagai Node

Awalnya, dan seterusnya. backtracking dilakukan dengan cara merubah status node dari

T menjadi F sampai node tertentu. Tujuannya agar node tersebut dapat digunakan

kembali oleh rute yang lain.

7. Jika Node Awal sudah tidak ada node yang dapat dihubungkan lagi, maka lakukan

backtracking dari node tersebut sampai node dari Stack2, kemudian ambil node dari

Stack1 untuk dijadikan Node Awal lagi, dan seterusnya dilakukan berulang-ulang sampai

Node Awal kosong.

Page 5: Analisis Metode Heuristic Search

1

3

1

3

1

5

3

1

5

6

8. Jika Stack2 kosong, maka lakukan pengambilan node baru pada Stack1 tanpa melakukan

backtracking, dan seterusnya. Jika Node Awal tidak dapat mengambil node dari Stack1,

maka berhenti dari pencarian rute.

Berikut hasil rute yang terpilih dari setiap langkah :

Node Stack

1

Stack

2

Node

Awal

Hasil Rute Gambar Hasil Rute

2,3,4,5,6,7,

8

1 0 - - -

2,3,4,5,6,7,

8

0 0 1 1

4,5,6,7,8 2,3 1 1 1

4,5,6,7,8 2 1 3 1,3

4,5,6,7,8 2,5 1 3 1,3

4,6,7,8 2 1 5 1,3,5

4,7,8 2,6 1 5 1,3,5

4,7,8 2 1 6 1,3,5,6

4,8 2,7 1 6

A

A

A

A

B

B

B

D

D

E

Page 6: Analisis Metode Heuristic Search

1

37

5

6

1

3

7

5

6

4

1

3

7

4

5

6

8

1 2

4,8 2 1 7 1,3,5,6,7

8 2,4 1 7 1,3,5,6,7

8 2 1 4 1,3,5,6,7,

4

- 2,8 1 4 1,3,5,6,7,

4

- 2 1 8 1,3,5,6,7,

4,8

Simpan hasil rute – backtracking dari node 8 sampai dengan node 1

3,4,5,6,7,8 - - 2 1,2

3,5,7,8 6,4 2 2 1,2

A

A

A

A

B

B

B

D

D

D

E

E

E

H

H

H

I

J

C

Page 7: Analisis Metode Heuristic Search

12 4

12 4

8

12

6

12

6 7

12

6 7

4

12

6 7

4 8

3,5,7,8 6 2 4 1,2,4

3,5,7 6,8 2 4 1,2,4

3,5,7 6 2 8 1,2,4,8

Simpan hasil rute – backtracking dari node 8 sampai dengan node 2

3,4,5,7,8 - - 6 1,2,6

3,4,5,8 7 - 6 1,2,6

3,4,5,8 - - 7 1,2,6,7

3,5,8 4 - 7 1,2,6,7

3,5,8 - - 4 1,2,6,7,4

3,5 8 - 4 1,2,6,7,4

3,5 - - 8 1,2,6,7,4,

8

Simpan rute – tidak melakukan backtracking, karena Stack2 kosong

A

A

A

A

C

C

C

C

F

F

G

G 8

H

H

I

J

J

Page 8: Analisis Metode Heuristic Search

12

6 7

4 83,5 - - - 1,2,6,7,4,

8

Berhenti dari pencarian rute, karena Node Awal kosong

A

F

H

I

Page 9: Analisis Metode Heuristic Search

Simulated Annealing

Kasus “Robot Mobil untuk Mencari Rute Terpendek”

Secara umum cara kerja sistem robot mobil untuk mencari rute terpendek adalah

seperti yang ditunjukkan pada diagram dibawah ini;

Diagram 1. Blok Sistem Kerja Mobil

Gambar 1. Peta Area Lintasan Robot Mobil

Start

Tentukan Start Dan Tujuan

Mencari Rute Dengan Simulated Annealing

Bergerak menurut tujuan sesuai rute dengan tracking garis

End

Page 10: Analisis Metode Heuristic Search

Pertama-tama posisi start dan tujuan robot ditentukan kemudian robot akan secara

otomatis menentukan rute dari start sampai tujuan dengan metode simulated annealing.

Setelah mendapatkan rute, robot akan berjalan secara tracking line menuju ke tujuan sesuai

dengan rutenya. Area untuk peta telah didefinisikan terlebih dahulu.

Gambar 2. Flowchart Sistem Robot Mobil

Pemetaan merupakan hal yang penting yang pertama kali dilakukan dalam alur

program. Berhasil atau tidaknya pencarian benda ataupun penentuan jalur terpendek tidak

lepas dari pemetaan ini. Dengan pemetaan ini maka seluruh area yang ada akan digambarkan.

Hasil yang didapat dari pemetaan tersebut akan dijadikan acuan untuk menghitung kuadrat

jarak lurus setiap titik yang ada pada area terhadap titik tujuan. Nilai hasil perhitungan jarak

yang didapat tersebut akan disimpan di dalam alamat RAM mikrokontroler. Nilai tersebut

kemudian akan dianalisa dengan menggunakan metode simulated annealing. Dengan metode

ini maka akan didapatkan rute yang terpendek menuju titik tujuan. Namun, rute ini masih

berupa alamat RAM bukan nilai ouput port yang sesungguhnya. Oleh karena itu perlu diubah

Start

Pemetaan

Menghitung Jarak Kuadrat Lurus Setiap Titik Terhadap Goal

Penentuan Rute Terpendek Berupa Alamat RAM

Konversi Rute Alamat RAM menjadi Output Port

Tracking Rute

End

Page 11: Analisis Metode Heuristic Search

menjadi output port. Barulah robot tersebut dapat menelusuri jalur yang telah didapat. Jalur

tersebut merupakan jalur terpendek menuju tujuan yang diinginkan.

Implementasi

Contoh kasus yang akan dilakukan adalah pada posisi start (0,5) dan posisi tujuan (0,2),

posisi start (0,0) dan posisi tujuan (0,5), posisi start (2,0) dan posisi tujuan (4,5), posisi start

(0,4) dan posisi tujuan (1,0), posisi start (1,0) dan posisi tujuan (4,0).

Gambar 3. Rute hasil pengujian dengan posisi Start (0,5) dan Goal (0,2)

Gambar 4. Rute hasil pengujian dengan posis Start (0,2) dan Goal (4,5)

Page 12: Analisis Metode Heuristic Search

Gambar 5. Rute hasil pengujian dengan posisi Start (0,4) dan Goal (1,0)

Gambar 6. Rute hasil pengujian dengan Posisi Start (1,0) dan Goal (0,4)

Bila melihat hasil pengujian yang telah dilakukan seperti yang ditunjukkan oleh gambar

diatas, terlihat bahwa dengan menggunakan metode simulated annealing, robot mobil berhasil

mencari rute terpendek. dan robot mobil juga dapat bergerak mengikuti rute yang telah

didapatkan. Tetapi pada hasil pengujian yang ditunjukkan oleh Gambar 6, metode simulated

annealing terjebak pada rute yang sama sehingga robot hanya bergerak berputar-putar saja

pada area tertentu.

Page 13: Analisis Metode Heuristic Search

Hill ClimbingPada kasus ini adalah bagaimana dari node “Root” (S) bisa mencapai node Z. Berikut

penyelesaiannya.

Gambar 7. Tree Untuk Hill Climbing

Algoritma:

1. Buat sebuah antrian, inisialisasi node pertama dengan Root dari tree.

2. Bila node pertama ≠ Goal, node dihapus diganti dengan anak-anaknya dengan urutan

yang paling kecil jaraknya

3. Bila node pertama = Goal, maka pencarian selesai

Page 14: Analisis Metode Heuristic Search

Table 1. Tabel Keadaan

Posisi Kondisi Hasil

Root = S

S ≠ Z

Child = B

B ≠ Z

Child = C

C ≠ Z

Child = E

D ≠ Z

Child = Z

Z = Z

Kesimpulan :

Lintasan yang didapat untuk mencapai node adalah S-A-B-C-E-Z

Lalu keuntungan untuk aplikasi dan kasus yang didapat adalah :

1. Membutuhkan memori yang relative kecil, karena hanya node-node pada lintasan yang

aktif saja yang akan disimpan.

2. Metode ini akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang

keadaan.

Dan kelemahannya adalah :

1. Algoritma akan berhenti jika sudah mencapai nilai optimum local

2. Perlu menentukan aturan yang tepat

S

AB

A C

ED

Z

Z

Page 15: Analisis Metode Heuristic Search

Best First SearchKasus pada metode ini sama dengan kasus Hill Climbing, hanya saja penyelesaiannya

yang berbeda.

Gambar 8. Tree Untuk Best First Search

Algoritma:

1. Buat sebuah antrian, inisialisasi node pertama dengan Root dari tree.

2. Bila node pertama ≠ Goal, node dihapus diganti dengan anak-anaknya. Selanjutnya

keseluruhan node yang ada di Queue di-Sort “Ascending”.

3. Bila node pertama = Goal, maka pencarian selesai.

Kebetulan dalam kasus ini terdapat nilai heuristic, sehingga kita dapat

membandingkannya melalui nilai heuristic tersebut. Dengan asumsi nilai heuristic yang lebih

kecil akan dipilih untuk node selanjutnya.

53

8 5

9

Page 16: Analisis Metode Heuristic Search

Posisi Kondisi Nilai Heurisic Hasil

Root = S

- S ≠ Z

Child = B

3 ≤ 5 B ≠ Z

Child = C

5 ≤ 8 C ≠ Z

Child = E

6 ≤ 9 D ≠ Z

Child = Z

- Z = Z

Kesimpulan :

Lintasan yang didapat untuk mencapai node adalah S-A-B-C-E-Z

Lalu keuntungan untuk aplikasi dan kasus yang didapat adalah :

1. Membutuhkan memori yang relative kecil, karena hanya node-node pada lintasan yang

aktif saja yang akan disimpan.

2. Secara kebetulan, metode ini akan menemukan solusi tanpa harus menguji lebih banyak

lagi dalam ruang keadaan.

Dan kelemahannya adalah :

1. Algoritma akan berhenti jika sudah mencapai nilai optimum local

2. Tidak diizinkan untuk melihat satupun langkah sebelumnya.

35

85

6 9

6

S

AB

A C

ED

Z

Z

Page 17: Analisis Metode Heuristic Search

Daftar Pustaka1. http://lecturer.ukdw.ac.id/petrus/pparyono-paper-semkopertis07.pdf

2. http://fportfolio.petra.ac.id/user_files/97-031/Thiang-Simulated%20Annealing

%20Robot.pdf

3. http://www.cs.ui.ac.id/WebKuliah/IKI30320/materi/iki30320_20070919_handout.pdf

4. http://lecturer.eepis-its.edu/~kangedi/materi%20kuliah/Kecerdasan%20Buatan/Bab

%204%20Algoritma%20Pencarian.pdf