BFS ve DFS Arasındaki Fark

BFS ve DFS Karşılaştırması

Önce Genişlik Araması (BFS olarak da bilinir), belirli bir grafiğin tüm düğümlerini genişletmek için kullanılan bir arama yöntemidir. Bu görevi, bu düğümleri (veya içindeki dizilerin bir kombinasyonunu) incelemek ve genişletmek için her bir çözümü arayarak gerçekleştirir. Bu nedenle, bir BFS sezgisel algoritma (veya birden çok senaryo aracılığıyla çözüm arayan bir algoritma) kullanmaz. Tüm düğümler elde edildikten sonra, İlk Giriş, İlk Çıkış kuyruğu olarak bilinen bir kuyruğa eklenirler. Keşfedilmemiş düğümler, 'açık' işaretli bir kapta 'depolanır'; araştırıldıktan sonra 'kapalı' olarak işaretlenmiş bir kaba taşınırlar.

Derinlik İlk Arama (DFS olarak da bilinir), bir hedefe ulaşılana kadar (veya başka herhangi bir permütasyon veya 'çocuk' olmayan bir düğüm olana kadar) aramanın alt düğümüne daha derin bir şekilde giren bir arama yöntemidir. Bir hedef bulunduktan sonra, arama, bir çözümle geçmiş bir önceki düğüme geri döner ve tüm düğümler başarıyla aranana kadar işlemi tekrarlar. Bu nedenle, düğümler daha fazla keşif için bir kenara bırakılmaya devam ediyor - buna özyinelemesiz uygulama denir.

BFS'nin özellikleri uzay ve zaman karmaşıklığı, bütünlük, bütünlüğün kanıtı ve optimalliktir. Alan karmaşıklığı, bir aramanın en derin seviyesindeki düğüm sayısının oranını ifade eder. Zaman karmaşıklığı, bir düğümün aramada alacağı her yolu dikkate almak için kullanılan gerçek 'zaman' miktarını ifade eder. Tamlık, esasen, ne tür bir grafik olduğuna bakılmaksızın, bir grafikte bir çözüm bulan bir aramadır. Bütünlüğün kanıtı, bir düğümde belirli bir derinlikte bir hedefin bulunduğu en sığ seviyedir. Son olarak, optimallik, ağırlıklandırılmamış bir BFS'yi ifade eder - bu, birim adım maliyeti için kullanılan bir grafiktir.

DFS, yayılmayan bir ağaç kullanan en doğal çıktıdır - bu, yönlendirilmemiş bir grafikteki tüm köşelerden ve bazı kenarlardan oluşan bir ağaçtır. Bu oluşumda grafik üç sınıfa ayrılır: Bir düğümden bir alt düğüme işaret eden ileri kenarlar; bir düğümden önceki bir düğüme işaret eden arka kenarlar; ve bunlardan birini yapmayan çapraz kenarlar.

Özet:

1. Bir BFS, bir düğümdeki genişlemelerini genişletmek için bir grafikteki her çözümü arar; bir DFS, bir hedefe ulaşılana kadar bir çocuk düğümü içinde derine girer.

2. Bir BFS'nin özellikleri uzay ve zaman karmaşıklığı, bütünlük, bütünlüğün kanıtı ve iyimserliktir; DFS için en doğal çıktı üç sınıflı bir yayılan ağaçtır: ileri kenarlar, arka kenarlar ve çapraz kenarlar.