Anda di halaman 1dari 15

2.

METODE PENCARIAN BUTA (BLIND SEARCH)

DEFINISI
BLIND SEARCH MERUPAKAN PENCARIAN ASAL. JIKA SOLUSI SUDAH DITEMUKAN, MAKA
PENCARIAN AKAN DIHENTIKAN. JIKA DIBUAT SKEMANYA, PENCARIAN BUTA HANYA MENGENAL 3
BAGIAN YAITU [MASALAH]-[PENCARIAN]-[SOLUSI]. BLIND SEARCH TIDAK MEMPUNYAI ATRIBUT
ATAU INFORMASI TAMBAHAN.
BLIND SEARCH ATAU UNINFORMED SEARCH SECARA UMUM MENGARTIKAN BAHWA SAAT
PROSES PENCARIAN KITA TIDAK MEMILIKI CLUE/HINT APAKAH HASIL YANG DITEMUKAN LEBIH BAIK
DARIPADA YANG LAINNYA, SEHINGGA KITA TIDAK MENGETAHUI APAKAH HASIL DARI
EKSPLORASI TERSEBUT BERMANFAAT SECARA MAKSIMAL ATAU TIDAK.

ALGORITMA YANG TERMASUK BLIND SEARCH YAITU :


 BREATH FIRST SEARCH (BFS)
 DEPTH FIRST SEARCH (DFS)
BFS (Breadth-First Search)
 Breadth-first search adalah algoritma yang melakukan pencarian secara melebar yang
mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian
mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu.
Selanjutnya, simpul yang belum dikunjungi dan bertetangga dengan simpulsimpul yang
tadi dikunjungi , demikian seterusnya. Jika graf berbentuk pohon berakar, maka semua
simpul pada aras d dikunjungi lebih dahulu sebelum simpul-simpul pad aras d+1.
 Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul yang telah
dikunjungi. Simpulsimpul ini diperlukan sebagai acuan untuk mengunjungi simpul-simpul
yang bertetanggaan dengannya. Tiap simpul yang telah dikunjungu masuk ke dalam
antrian hanya satu kali. Algoritma ini juga membutuhkan table Boolean untuk
menyimpan simpul yang te lah dikunjungi sehingga tidak ada simpul yang dikunjungi
lebih dari satu kali.
Keuntungan
 Tidak akan menemui jalan buntu
 Jika ada satu solusi, maka breadth first akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum
akan ditemukan.

Kekurangan
 Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon.
 Membutuhkan waktu yang cukup lama karena akan menguji n level untuk mendapatkan solusi pada level yang ke-
(n+1)
CARA KERJA ALGORITMA BFS
Dalam algoritma BFS, simpul anak yang telah dikunjungi disimpan dalam suatu antrian. Antrian ini digunakan
untuk mengacu simpul-simpul yang bertetangga dengannya yang akan dikunjungi kemudian sesuai urutan pengantrian.
Untuk memperjelas cara kerja algoritma BFS beserta antrian yang digunakannya, berikut langkah-langkah algoritma
BFS:
1. Masukkan simpul ujung (akar) ke dalam antrian
2. Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi
3. Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke dalam
antrian
5. Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan
Ulangi pencarian dari langkah kedua.
Property BFS :
1. Lengkap ? ya (jika b adalah terbatas)
2. Waktu? 1 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1)
3. Ruang? O(bd+1) (setiap node terus disimpan dalam memori)
4. Optimal? Ya (jika biaya = 1 per langkah)
5. Ruang adalah masalah yang lebih besar (lebih dari waktu).
Daftar Pustaka
https://www.slideshare.net/RamlaLamantha/modul-
bahanajarkecerdasanbuatanptiikfinal?from_action=save
jurnal BFS dan DFS Wijanarto
http://ayufitriana86.blogspot.com/2017/12/blind-search-and-heuristic-search.html
http://wisatapikiran.blogspot.com/2013/03/perbedaan-blind-search-dengan.html
https://syifamss.wordpress.com/2017/12/08/metode-pencarian-buta-blind-search-metode-pencarian-
heuristik/
CONTOH PENCARIAN LINTASAN TERPENDEK DENGAN BFS
Adapun contoh untuk mencari lintasan terpendek dengan menggukan algoritma BFS adalah
sebagai berkut:
Diketahui sebuah kota, dengan memiliki inisial seperti yang ditunjukkan dibawah ini. Jarak antar
kota dibentuk dengan sebuah graph terlihat dibawah:
Jika kita mencari titik point lingkaran no 8 dan kita berada pada titik point lingkarab no 1 maka kita
harus melewati titik ?
Maka dengan menggunakan algoritma BFS, rute tercepat yang didapat adalah sebagai berikut:
1–2–3–4–5–6–7–8

Rute tersebut didapat dari pencarian secara melebar. Hal; tersebut dapat dijabarkan sebagai berikut:
 Pertama-tama, pointer menunujuk pada daun yang ada sebelah kanan, yaitu no.2 (1 – 2)
 Setelah itu, proses dilanjutkan pada tetangga no.2 yaitu no.3 (1-2-3) dan selanjutnya mengarah
pada tetangga terdekat, yakni no.4 (1-2-3-4).
 Pointer mencari teteangga no.4, namun karna tidak ada, maka pointer kembali ke kota no.2 dan
masuk ke daun berikutnya, yakni no.5.
 Proses diulang hingga pointer menunjuk angka 8.
DFS (Depth First Search)

Algoritme DFS adalah algoritme recursion yang memanfaatkan backtracking. Algoritme ini melakukan pencarian
secara mendalam pada semua node dengan terus melakukan pencarian ke bawah selama memungkinkan. Jika
tidak memungkinkan, algoritme ini akan beralih menggunakan backtracking.
Di sini, backtracking memiliki arti bahwa pencarian akan dilakukan hingga tidak ada node yang tersisa pada jalur
tersebut, dan backtracking akan dilakukan pada jalur yang sama selama node yang masih memungkinkan untuk
ditelusuri masih ditemukan. Semua node dalam satu jalur akan ditelusuri tanpa tersisa lalu jalur selanjutnya akan
ditelusuri.
Keuntungannnya :

 Membutuhkan memori relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan
 Dan secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan,
jadi jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya
dengan cepat (waktunya cepat)

Kerugiannya :

 Memungkinkan tidak ditemukannya atau tidak adanya tujuan yang diharapkan, karena jika pohon yang
dibangkitkan mempunyai level yang sangat dalam (tak terhingga) & tidak complete karena tidak ada jaminan
akan menemukan solusi
 Hanya mendapat 1 solusi pada setiap pencarian, karena jika terdapat lebih dari satu solusi yang sama tetapi
berada pada level yang berbeda, maka DFS tidak menjamin untuk menemukan solusi yang paling baik &
tidak optimal.
Cara kerja Algoritma DFS
Jadi, jika ada pohon biner seperti gambar di bawah ini :
Maka, urutan penelusurannya adalah : A – B – D – H – E – I – C – F – G – J – K – L
Dalam implementasinya DFS dapat diselesaikan dengan cara rekursif atau dengan bantuan struktur data stack.
Kita akan membahas dengan cara yang menggunakan stack. Stack yang digunakan adalah stack yang isi
elemennya adalah simpul pohon / tree. Bagaimana cara kerjanya ?

Berikut ini adalah urutan algoritmanya :

 Masukkan simpul root ke dalam tumpukan dengan push


 Ambil dan simpan isi elemen (berupa simpul pohon) dari tumpukan teratas
 Hapus isi stack teratas dengan prosedur pop
 Periksa apakah simpul pohon yang disimpan tadi memiliki anak simpul
 Jika ya, push semua anak simpul yang dibangkitkan ke dalam stack
 Jika tumpukan kosong berhenti, tapi jika tidak kembali ke langkah dua
Daftar Pustaka

https://www.slideshare.net/RamlaLamantha/modul-
bahanajarkecerdasanbuatanptiikfinal?from_action=save

jurnal BFS dan DFS Wijanarto

http://ayufitriana86.blogspot.com/2017/12/blind-search-and-heuristic-search.html

http://wisatapikiran.blogspot.com/2013/03/perbedaan-blind-search-dengan.html

https://syifamss.wordpress.com/2017/12/08/metode-pencarian-buta-blind-search-metode-pencarian-
heuristik/

Modul Bahan Ajar KECERDASAN BUATAN Universitas Brawijaya

Anda mungkin juga menyukai