Perbezaan Antara BFS dan DFS

BFS vs DFS

Carian Breadth First (juga dikenali sebagai BFS) adalah kaedah carian yang digunakan untuk meluaskan semua nod grafik tertentu. Ia menyelesaikan tugas ini dengan mencari setiap penyelesaian tunggal untuk memeriksa dan memperluaskan nod ini (atau gabungan urutan di dalamnya). Oleh itu, BFS tidak menggunakan algoritma heuristik (atau algoritma yang mencari penyelesaian melalui pelbagai senario). Selepas semua nod diperolehi, ia akan ditambahkan kepada giliran yang dikenali sebagai Giliran Pertama Dalam, Pertama Keluar. Mereka nod yang belum dieksplorasi adalah 'disimpan' dalam bekas yang ditandakan 'terbuka'; sekali dieksplorasi mereka diangkut ke sebuah bekas bertanda 'tertutup'.

Carian Pertama Kedalaman (juga dikenali sebagai DFS) adalah kaedah pencarian yang lebih menyerupai nod kanak-kanak dari suatu pencarian sehingga matlamat dicapai (atau sehingga ada nod tanpa sebarang permutasi lain atau 'anak-anak'). Selepas satu matlamat dijumpai, backtrans carian ke nod sebelumnya yang telah dilakukan dengan penyelesaian, mengulangi proses sehingga semua nod telah berjaya dicari. Oleh itu, nod terus diketepikan untuk penerokaan lanjut - ini dipanggil pelaksanaan bukan rekursif.

Ciri-ciri BFS adalah ruang dan kerumitan masa, kesempurnaan, bukti kesempurnaan, dan optimum. Kerumitan ruang merujuk kepada perkadaran bilangan nod pada tahap pencarian paling mendalam. Kerumitan masa merujuk kepada jumlah sebenar 'masa' yang digunakan untuk mempertimbangkan setiap laluan nod yang akan diambil dalam pencarian. Kesempurnaan adalah, pada dasarnya, pencarian yang mencari penyelesaian dalam graf tanpa mengira jenis graf itu. Kebuktian kesempurnaan adalah tahap paling cetek di mana matlamat ditemui dalam nod pada kedalaman yang pasti. Akhirnya, optimasi merujuk kepada BFS yang tidak berwajaran - iaitu graf yang digunakan untuk kos unit-langkah.

A DFS adalah output yang paling semula jadi menggunakan sebilangan pokok - yang merupakan pokok yang terdiri daripada semua titik dan beberapa tepi dalam graf yang tidak diarahkan. Dalam pembentukan ini, graf dibahagikan kepada tiga kelas: Hadapan hadapan, menunjuk dari nod ke nod kanak-kanak; belakangnya, menunjuk dari nod ke nod terdahulu; dan tepi silang, yang tidak melakukan salah satu daripada ini.

Ringkasan:

1. BFS mencari setiap penyelesaian tunggal dalam graf untuk mengembangkan nodnya; lubang DFS di dalam nod kanak-kanak sehingga matlamat dicapai.

2. Ciri-ciri BFS adalah ruang dan kerumitan masa, kesempurnaan, bukti kesempurnaan, dan optimum; keluaran yang paling semula jadi untuk DFS adalah pokok merangkumi dengan tiga kelas: tepi depan, tepi belakang, dan tepi silang.