Metode Pencarian Dan Pelacakan 2 (Heuristik)
5.1 Best-First Search
Pengertian Best-first Search
Best-First Search
merupakan sebuah metode yang membangkitkan simpul dari simpul
sebelumnya. Best-first search memilih simpul baru yang memiliki biaya
terkecil diantara semua leaf nodes
(simpul-simpul pada level terdalam) yang pernah dibangkitkan. Penentuan
simpul terbaik dilakukan dengan menggunakan sebuah fungsi yang disebut
fungsi evaluasi f(n). fungsi
evaluasi best-first search dapat berupa biaya perkiraan dari suatu
simpul menuju ke goal atau gabungan antara biaya sebenarnya dan biaya
perkiraan tersebut.
Pada setiap langkah
proses pencarian terbaik pertama, kita memilih node-node dengan
menerapkan fungsi heuristik yang memadai pada setiap node/simpul yang
kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan
penggantinya. Fungsi heuristic merupakan suatu strategi untuk melakukan
proses pencarian ruang keadaan suatu problema secara selektif, yang
memandu proses pencarian yang kita lakukan sepanjang jalur yang memiliki
kemungkinan sukses paling besar.
Ada beberapa istilah yang sering digunakan pada metode best-first search, yaitu:
- Start node adalah sebuah terminology untuk posisi awal sebuah pencarian
- Curret node adalah simpul yang sedang dijalankan dalam algoritma pencarian jalan terpendek
- Suksesor adalah simpul-simpul yang yang akan diperiksa setelah current node
- Simpul (node) merupakan representasi dari area pencarian
- Open list adalah tempat menyimpan data simpul yang mungkin diakses dari starting node maupun simpul yang sedang dijalankan
- Closed list adalah tempat menyimpan data simpul yang juga merupakan bagian dari jalur terpendek yang telah berhasil didapatkan
- Goal node yaitu simpul tujuan
- Parent adalah curret node dari suksesor.
Algoritma best-first search
Pertama
kali, dibangkitkan node A. Kemudian semua suksesor A dibangkitan, dan
dicari harga paling minimal. Pada langkah 2, node D terpilih karena
harganya paling rendah, yakni 1. Langkah 3, semua suksesor D
dibangkitkan, kemudian harganya akan dibandingkan dengan harga node B
dan C. Ternyata harga node B paling kecil dibandingkan harga node C, E,
dan F. Sehingga B terpilih dan selanjutnya akan dibangkitkan semua
suksesor B. Demikian seterusnya sampai ditemukan node tujuan. Ilustrasi
algoritma best-first search dapat dilihat pada gambar 3.4 dibawah ini.
Untuk
mengimplementasikan algoritma pencarian ini, diperlukan dua buah
senarai, yaitu: OPEN untuk mengelola node-node yang pernah dibangkitkan
tetapi belum dievaluasi dan CLOSE untuk mengelola node-node yang pernah
dibangkitkan dan sudah dievaluasi. Algoritma selengkapnya adalah sebagai
berikut.
1. OPEN berisi initial state dan CLOSED masih kosong.
2. Ulangi sampai goal ditemukan atau sampai tidak ada di dalam OPEN.
a. Ambil simpul terbaik yang ada di OPEN.
b. Jika simpul tersebut sama dengan goal, maka sukses
c. Jika tidak, masukkan simpul tersebut ke dalam CLOSED
d. Bangkitkan semua aksesor dari simpul tersebut
e. Untuk setiap suksesor kerjakan:
a. Ambil simpul terbaik yang ada di OPEN.
b. Jika simpul tersebut sama dengan goal, maka sukses
c. Jika tidak, masukkan simpul tersebut ke dalam CLOSED
d. Bangkitkan semua aksesor dari simpul tersebut
e. Untuk setiap suksesor kerjakan:
i. Jika suksesor tersebut belum pernah dibangkitkan, evaluasi suksesor tersebut, tambahkan ke OPEN, dan catat parent.
ii. Jika
suksesor tersebut sudah pernah dibangkitkan, ubah parent-nyajika jalur
melalui parent ini lebih baik daripada jalur melalui parent yang
sebelumnya. Selanjutnya perbarui biaya untuk suksesor tersebut dn nodes
lain yang berada di level bawahnya.
Algoritma yang menggunakan metode best-first search, yaitu:
a. Greedy Best-First
Greedy Best-First
adalah algoritma best-first yang paling sederhana dengan hanya
memperhitungkan biaya perkiraan (estimated cost) saja, yakni f(n) = h(n).
Biaya yang sebenarnya (actual cost) tidak diperhitungkan. Dengan hanya
memperhitungkan biaya perkiraan yang belum tentu kebenarannya, maka
algoritma ini menjadi tidak optimal.
b. A*
A* adalah algoritma
best-first search yang menggabungkan Uniform Cost Search dan Greedy
Best-First Search. Biaya yang diperhitungkan didapat dari biaya
sebenarnya ditambah dengan biaya perkiraan. Dalam notasi matematika
dituliskan sebagai f(n)= g(n) + h(n). Dengan perhitungan biaya seperti ini, algoritma A* adalah complete dan optimal.
sumber : http://deisyamalia.blogspot.co.id/2012/03/best-first-search.html
Tidak ada komentar:
Posting Komentar