analisis metode heuristic search
TRANSCRIPT
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
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.
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
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.
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
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
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
12
6 7
4 83,5 - - - 1,2,6,7,4,
8
Berhenti dari pencarian rute, karena Node Awal kosong
A
F
H
I
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
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
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)
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.
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
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
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
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
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