Garis besar topik
-
BFS (Breadth First Search) : Pengertian, Kekurangan, Kelebihan, dan Contohnya
1. Pengertian BFS
Algoritma Breadth First Search adalah algoritma pencarian melebar yang dilakukan dengan mengunjungi node pada level n terlebih dahulu sebelum mengunjungi node-node pada level n+1. Algoritma BFS berbeda dengan DFS. Hal itu dapat dilihat pada gambar dibawah ini. Untuk penjelasan algoritma DFS akan dijelaskan di postingan selanjutnya.
Gambar 1. DFS dan BFS Cara kerja algoritma Breadth First Search yaitu masukkan simpul ujung ke dalam sebuah antrean kemudian ambil simpul dari awal antrean. Lakukan pengecekan apakah simpul awal merupakan solusi. Jika simpul merupakan solusi pencarian selesai dan hasil dikembalikan. Jika simpul bukan merupakan solusi, masukan seluruh simpul yang bertetangga dengan simpul tersebut. Apabila semua simpul sudah dicek dan antrean kosong, pencarian selesai dengan mengembalikan hasil solusi tidak ditemukan. Pencarian diulang dari simpul awal antrean.
2. Kelebihan dan Kekurangan BFS
a. Kelebihan BFS
- Tidak akan menemui jalan buntu.
- Jika ada satu solusi, maka BFS akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.
b. Kekurangan BFS
- 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 ke-(n+1).
3. Contoh Penerapan BFS dalam Studi Kasus
Pencarian jarak terdekat Arad-Bucharest. Berikut ini adalah Peta Rumania.
Press enter or click to view image in full sizeGambar 2. Peta Rumania Dalam menyelesaikan kasus diatas, kita perlu membuat peta Rumania menjadi gambaran graph yang lebih sederhana. Berikut ini adalah gambaran peta Rumania dalam bentuk graph sederhana:
Gambar 3. Graph Peta Rumania Penyelesaian dengan BFS:
Algoritma Breadth First Search adalah algoritma pencarian melebar yang dilakukan dengan mengunjungi node pada level n terlebih dahulu sebelum mengunjungi node-node pada level n+1. Dalam penyelesaian kasus diatas, kita dapat menggambarkan graph diatas ke dalam bentuk Tree. Node paling kiri dimulai dari jarak tetangga terdekat yaitu Z (75) lalu berurutan ke S dan T.
Gambar 4. Tree untuk BFS Pada tree, tidak semua kota saya tuliskan. Contohnya yaitu kota D. Hal itu dikarenakan kota D tidak termasuk dalam perhitungan, dan berada di level 4. Berikut ini adalah gambaran penyelesaian pencarian kota Bucharest (B) menggunakan algoritma BFS.
Implementasi: Start (A), Goal (B)Gambar 5. Pencarian Jarak dengan BFS Penjelasan:
Pencarian rute dengan BFS, yaitu dengan mengecek setiap level mulai dari level n atau level 1, baru dilanjutkan ke level n+1 hingga target atau goalnya ditemukan. Meski demikian, yang dihitung pada akhirnya bukanlah jarak yang ditempuh selama mencari target, namun rute yang dipilih adalah rute yang terhubung ke target (yaitu A S F B). Oleh karena itu, BFS membutuhkan banyak memori untuk menyimpan semua simpul dalam satu pohon dan ini menjadi salah satu kekurangan BFS.
Dari hasil pencarian diatas, maka ditemukan jarak yang dipilih dari Arad ke Bucharest dengan menggunakan algoritma BFS adalah sebagai berikut:
Gambar 6. Hasil Pencarian Path = A > S > F > B
Path-cost = 140 + 99 + 211 = 450 KMItu tadi penjelasan seputar algoritma BFS dan contoh penyelesaian kasus,Semoga bermanfaat!
-
-
DFS (Depth First Search) : Pengertian, Kekurangan, Kelebihan, dan Contohnya
1. Pengertian DFS
Algoritma Depth First Search adalah algoritma pencarian mendalam yang dimulai dari node awal dilanjutkan dengan hanya mengunjungi node anak paling kiri pada tingkat selanjutnya.
Gambar 1. DFS dan BFS Cara kerja algoritma Depth First Search yaitu masukan masukan node akar kedalam sebuah tumpukan. Kemudian ambil simpul pertama pada level paling atas, jika simpul merupakan solusi pencarian selesai dan hasil dikembalikan. Jika simpul bukan merupakan solusi, masukan seluruh simpul yang bertetangga dengan simpul tersebut ke dalam tumpukan. Apabila semua simpul sudah dicek dan antrean kosong, pencarian selesai dengan mengembalikan hasil solusi tidak ditemukan. Pencarian diulang dari simpul awal antrean.
2. Kelebihan dan Kekurangan DFS
a. Kelebihan DFS
- Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
- Secara kebetulan, metode DFS akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.
b. Kekurangan DFS
- Jika pohon yang dibangkitkan mempunyai level dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete).
- Jika terdapat lebih dari 1 solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).
3. Contoh Penerapan BFS dalam Studi Kasus
Pencarian jarak terdekat Arad-Bucharest. Berikut ini adalah Peta Rumania.
Press enter or click to view image in full sizeGambar 2. Peta Rumania Dalam menyelesaikan kasus diatas, kita perlu membuat peta Rumania menjadi gambaran graph yang lebih sederhana. Berikut ini adalah gambaran peta Rumania dalam bentuk graph sederhana:
Gambar 3. Graph Peta Rumania Penyelesaian dengan DFS:
Algoritma Depth First Search adalah algoritma pencarian mendalam yang dimulai dari node awal dilanjutkan dengan hanya mengunjungi node anak paling kiri pada tingkat selanjutnya. Dari Gambar 2. Graph Arad-Bucharest, selanjutnya kita dapat membuat Tree untuk melakukan penyelesaian kasus dengan algoritma DFS. Berikut ini adalah gambar tree untuk DFS yang sedikit berbeda dengan tree yang digunakan pada BFS.
Gambar 4. Tree untuk DFS Pada tree, tidak semua kota saya tuliskan. Contohnya yaitu kota yang tersambung dari node S dan T secara lengkap. Hal itu dikarenakan target B sudah ditemukan di anak paling kiri, dan pencarian berhenti disana. Sehingga pohon tengah dan pohon kanan tidak akan dilewati. Berikut ini adalah gambaran penyelesaian pencarian kota Bucharest (B) menggunakan algoritma DFS.
Implementasi: Start (A), Goal (B)
Gambar 5. Pencarian Jarak dengan DFS Penjelasan:
Pencarian rute dengan DFS, yaitu dengan melakukan pencarian mendalam yang dimulai dari node awal, dilanjutkan dengan hanya mengunjungi node anak paling kiri pada tingkat selanjutnya. Pada tree diatas, rupanya target terletak di anak terdalam paling kiri. Sehingga didapatkan rute berdasarkan algoritma DFS yaitu A Z O S F R.
Dari hasil pencarian diatas, maka ditemukan jarak yang dipilih dari Arad ke Bucharest dengan menggunakan algoritma DFS adalah sebagai berikut:
Gambar 6. Hasil Pencarian Path = A > Z > O > S > F > R
Path-cost = 75 + 71 + 151 + 99 + 211 = 607 KMKesimpulan:
Pada kasus ini, algoritma BFS dengan path-cost 450 KM rupanya lebih efisien dari DFS yang memiliki path-cost 607 KM. Namun pada kasus lainnya, bisa saja algoritma DFS lebih efisien, hal itu tergantung dari kasus itu sendiri.