Metode Pencarian Buta (Blind search) dan Metode Pencarian Heuristik
A. Metode
Pencarian Buta (Blind Search)
Blind Search merupakan
pencarian asal ketemu. Jika solusi sudah ketemu, maka pencarian akan
dihentikan. Jika dibuat skemanya, pencarian buta hanya mengenal tiga bagian,
[masalah]-[pencarian]-[solusi]. Misalkan dalam kotak ada 3 kelereng warna
merah, 3 biru, dan 3 kuning. Masalahnya adalah, ambillah satu kelereng yang
berwarna merah. Solusi, setelah melakukan pencarian, kemudian didapat satu
kelereng warna merah, nah, itulah solusinya.
1.
Breadth First Search
Breadth First
Search merupakan salah satu dari metode pencarian buta. istilah buta
disini lebih dikenal dengan nama blind. Dikatakan buta karena memang
tidak ada informasi awal yang digunakan dalam proses pencarian.
Breadth-first search
(BFS) melakukan proses searching pada semua node yang berada pada level
atau hirarki yang sama terlebih dahulu sebelum melanjutkan proses searching
pada node di level berikutnya.
Breadth First
Search (BFS) juga memiliki alur algoritma yang paling sederhana
dibandingkan dengan metode blind yang lain. Itulah alasan mengapa BFS
selalu dipelajari lebih dulu ketika membahas masalah pencarian buta.
Sebelum menelaah lebih
jauh bagaimana metode BFS dijalankan, kita telisik dulu mengapa metode ini
dinamakan pencarian Breadth First. Breadth dapat diartikan
dengan luas / lebar, sedangkan first adalah pertama. Penamaan
metode ini disesuaikan dengan konsep algoritma secara garis besar yaitu
melakukan proses pencarian pada semua node yang berada pada level atau hirarki
yang sama terlebih dahulu sebelum melanjutkan proses pencarian pada node di
level berikutnya.
Contoh :
Contoh :
BFS akan mencari satu
per satu node secara melebar dari kiri ke kanan secara berurutan berdasarkan
tingkat level nodenya. Jika pada satu level belum ditemukan solusi yang
diinginkan, maka pencarian dilanjutkan hingga level berikutnya. Demikian
seterusnya hingga ditemukan solusi. Maka, dengan cara seperti ini, BFS menjamin
ditemukannya solusi apabila solusinya memang ada.
2. Depth First Search
Depth-first search
(DFS) adalah proses searching sistematis buta yang melakukan ekpansi
sebuah path (jalur) menuju penyelesaian masalah sebelum melakukan ekplorasi
terhadap path yang lain. Proses searching mengikuti sebuah path tunggal sampai
menemukan goal atau dead end. Apabila proses searching menemukan dead-end, DFS
akan melakukan penelusuran balik ke node terakhir untuk melihat apakah node
tersebut memiliki path cabang yang belum dieksplorasi. Apabila cabang
ditemukan, DFS akan melakukan cabang tersebut. Apabila sudah tidak ada lagi
cabang yang dapat dieksplorasi, DFS akan kembali ke node parent dan melakukan
proses searching terhadap cabang yang belum dieksplorasi dari node parent
sampai menemukan penyelesaian masalah.
Pencarian dilakukan
pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang
paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node
sebelah kanan. Node yang kiri dapat dihapus dari memori. Jika pada level yang
paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level
sebelumnya. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan
maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan
jalur yang dinginkan).
Contoh :
Berdasarkan gambar , proses pencarian dilakukan
dengan mengunjungi cabang terlebih dahulu hingga tiba di simpul terakhir. Jika
tujuan yang diinginkan belum tercapai maka pencarian dilanjutkan ke cabang
sebelumnya, turun ke bawah jika memang masih ada cabangnya. Begitu
seterusnya hingga diperoleh tujuan (goal). Operasi semacam ini dikenal dengan
sebutan backtracking.
B. Pencarian
Heuristik
Heuristic search adalah
suatu istilah yang berasal dari bahasa Yunani yang berarti
menemukan/menyingkap. Heuristik adalah suatu perbuatan yang membantu kita
menemukan jalan dalam pohon pelacakan yang menuntut kita kepada suatu solusi
masalah. Heuristik dapat diartikan juga sebagai suatu kaidah yang merupakan
metoda/prosedur yang didasarkan kepada pengalaman dan praktek, syarat, trik
atau bantuan lainnya yang membantu mempersempit dan memfokuskan proses
pelacakan kepada suatu tujuan tertentu.
George Poyla (dalam
Kristanto. A, 2003) mendefinisikan heuristik sebagai ”studi tentang sebuah
metode dan aturan discovery serta invention” dalam
pencarian state space, heuristik didefinisikan sebagai aturan untuk
memilih cabang-cabang dalam ruang keadaan yang paling tepat untuk mencapai
solusi permasalahan yang dapat diterima .
1. (Generate and Test)
Metode ini merupakan penggabungan
antara depth-first search dengan pelacakan mundur (backtracking), yaitu
bergerak kebelakang menuju pada suatu keadaan awal. Algoritma:
Bangkitkan suatu
kemungkinan solusi (membangkitkan suatu tititk tertentu atau lintasan tertentu
dari keadaan awal).
Uji untuk melihat
apakah node tersebut benar-benar merupakan solusinya dengan cara membandingkan
node terebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan
tujuan yang diharapkan.
Jika solusi ditemukan,
keluar. Jika tidak, ulangi kembali langkah pertama.
Contoh:
“Travelling
Salesman Problem (TSP)” Seorang salesman ingin mengunjungi n kota. Jarak antara
tiap-tiap kota sudah diketahui. Kita ingin mengetahui ruter terpendek dimana
setaip kota hanya boleh dikkunjungi tepat 1 kal i. Misalkan ada 4 kota
dengan jarak antara tiap-tiap kota seperti gambar di bawah ini:
2. (Hill Climbing)
Metode ini hampir sama
dengan metode pembangkitan dan pengujian, hanya saja proses pengujian dilakukan
dengan menggunakan fungsi heuristic. Pembangkitan keadaan berikutnya tergantung
pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini
akan menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap
keadaan-keadaan lainnya yang mungkin.
Contoh:
TSP dengan Simple Hill Climbing
Disini ruang keadaan
berisi semua kemungkinan lintasan yang mungkin. Operator digunakan untuk
menukar posisi kota-kota yang bersebelahan. Apabila ada n kota, dan kita ingin
mencari kombinasi l intasan dengan menukar posisi urutan 2 kota, maka kita akan
mendapatkan sebanyak:
sebanyak 6 kombinasi (lihat gambar dibawah). Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi
Sumber :
baguus
BalasHapus