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 pada ras 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.
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:
- Masukkan simpul ujung (akar) ke dalam antrian
- Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi
- Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
- Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke dalam antrian
- Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan
- Ulangi pencarian dari langkah kedua
Contohnya terlihat dibawah ini:
Maka penyelesaiannya adalah:
Gambar (a) BFS(1): 1, 2, 3, 4, 5, 6,
7, 1.
Gambar (b) BFS(1): 1, 2, 3, 4, 5, 6,
7, 1
Gambar (c) BFS(1): 1, 2, 3, 4, 5, 6,
7, 8, 9
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:
Pertanyaan: sebutkan rute yang akan
ditempuh untuk mencapai kota no. 8. Titik awal perjalanan adalah kota no. 1.
Gunakan algoritma BFS!
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
Tidak ada komentar:
Posting Komentar