Perbedaan Antara BFS dan DFS Perbedaan Antara

Anonim

BFS vs DFS

Breadth First Search (juga dikenal sebagai BFS) adalah metode pencarian yang digunakan untuk memperluas semua simpul dari sebuah grafik tertentu Ini menyelesaikan tugas ini dengan mencari setiap solusi tunggal untuk memeriksa dan memperluas nodus ini (atau kombinasi urutan di dalamnya). Dengan demikian, BFS tidak menggunakan algoritma heuristik (atau algoritma yang mencari solusi melalui beberapa skenario). Setelah semua node diperoleh, mereka ditambahkan ke antrian yang dikenal sebagai antrian First In, First Out. Simpul yang belum dieksplorasi 'tersimpan' dalam wadah bertanda 'terbuka'; Setelah dieksplorasi mereka diangkut ke sebuah wadah bertanda 'tertutup'.

Depth First Search (juga dikenal sebagai DFS) adalah metode pencarian yang menggali lebih dalam simpul anak dari pencarian sampai tercapai tujuan (atau sampai ada simpul tanpa permutasi atau ' anak-anak '). Setelah satu tujuan ditemukan, pencarian backtracks ke node sebelumnya yang telah berjalan dengan solusi, mengulangi proses sampai semua node telah berhasil dicari. Dengan demikian, node terus disisihkan untuk eksplorasi lebih lanjut - ini disebut implementasi non-rekursif.

Fitur dari BFS adalah kompleksitas ruang dan waktu, kelengkapan, bukti kelengkapan, dan optimalitas. Kompleksitas ruang mengacu pada proporsi jumlah node pada tingkat pencarian terdalam. Kompleksitas waktu mengacu pada jumlah aktual 'waktu' yang digunakan untuk mempertimbangkan setiap jalur yang akan diambil oleh sebuah node dalam pencarian. Kelengkapan pada dasarnya adalah pencarian yang menemukan solusi dalam grafik terlepas dari jenis grafiknya. Bukti kelengkapan adalah tingkat dangkal dimana tujuan ditemukan di simpul pada kedalaman yang pasti. Akhirnya, optimalitas mengacu pada BFS yang tidak tertimbang - yaitu grafik yang digunakan untuk biaya unit-step.

DFS adalah keluaran paling alami dengan menggunakan pohon spanning - yang merupakan pohon yang terdiri dari semua simpul dan beberapa sisi dalam grafik yang tidak berarah. Dalam formasi ini, grafik dibagi menjadi tiga kelas: Tepi ke depan, menunjuk dari simpul ke simpul anak; tepi belakang, menunjuk dari sebuah simpul ke simpul sebelumnya; dan tepi silang, yang tidak melakukan salah satunya.

Ringkasan:

1. BFS mencari setiap solusi dalam grafik untuk memperluas nodusnya; lubang DFS jauh di dalam nodus anak sampai tercapai tujuan.

2. Fitur BFS adalah kompleksitas ruang dan waktu, kelengkapan, bukti kelengkapan, dan optimalitas; Output paling alami untuk DFS adalah spanning tree dengan tiga kelas: tepi depan, tepi belakang, dan tepi silang.