Perbedaan antara BFS dan DFS

Perbedaan antara BFS dan DFS

BFS vs DFS

Luas Pencarian Pertama (juga dikenal sebagai BFS) adalah metode pencarian yang digunakan untuk memperluas semua node dari grafik tertentu. Ini menyelesaikan tugas ini dengan mencari setiap solusi tunggal untuk memeriksa dan memperluas node 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 yang pertama, antrian pertama. Node -node yang belum dieksplorasi 'disimpan' dalam wadah yang ditandai 'terbuka'; Setelah dieksplorasi mereka diangkut ke wadah bertanda 'tertutup'.

Pencarian pertama kedalaman (juga dikenal sebagai DFS) adalah metode pencarian yang melengkung lebih dalam ke simpul anak pencarian sampai suatu tujuan tercapai (atau sampai ada simpul tanpa permutasi atau 'anak -anak'). Setelah satu tujuan ditemukan, pencarian mundur ke simpul sebelumnya yang telah menggunakan solusi, mengulangi proses sampai semua node telah berhasil dicari. Dengan demikian, node terus dikesampingkan untuk eksplorasi lebih lanjut - ini disebut implementasi non -rekursif.

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

DFS adalah output paling alami menggunakan pohon spanning - yang merupakan pohon yang terdiri dari semua simpul dan beberapa tepi dalam grafik yang tidak diarahkan. Dalam formasi ini, grafik dibagi menjadi tiga kelas: tepi depan, menunjuk dari simpul ke simpul anak; tepi belakang, menunjuk dari node ke simpul sebelumnya; dan tepi silang, yang tidak melakukan salah satu dari ini.

Ringkasan:

1. BFS mencari setiap solusi dalam grafik untuk memperluas nodenya; DFS menggali jauh di dalam simpul anak sampai tujuan tercapai.

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