BFS i DFS

Anonim

BFS vs DFS

Szerokość Pierwsze wyszukiwanie (znane również jako BFS) to metoda wyszukiwania używana do poszerzania wszystkich węzłów określonego wykresu. Realizuje to zadanie, przeszukując każde rozwiązanie, aby zbadać i rozwinąć te węzły (lub kombinację zawartych w nich sekwencji). W związku z tym BFS nie używa algorytmu heurystycznego (lub algorytmu, który szuka rozwiązania za pomocą wielu scenariuszy). Po uzyskaniu wszystkich węzłów są one dodawane do kolejki znanej jako kolejka First In, First Out. Te węzły, które nie zostały zbadane, są "przechowywane" w pojemniku oznaczonym jako "otwarty"; po zbadaniu są transportowane do pojemnika oznaczonego jako "zamknięty".

Głębokość Pierwsze wyszukiwanie (zwane także DFS) to metoda wyszukiwania, która zagłębia się głębiej w podrzędny węzeł wyszukiwania, dopóki nie zostanie osiągnięty cel (lub dopóki nie będzie węzła bez żadnych innych permutacji lub "dzieci"). Po znalezieniu jednego celu wyszukiwanie przeszukuje poprzedni węzeł, który przeszedł z rozwiązaniem, powtarzając proces, aż wszystkie pomyślnie przeszukane zostaną. W związku z tym węzły są nadal odkładane na dalsze poszukiwania - jest to nazywane rekrutacją nierekurencyjną.

Cechy BFS to złożoność w czasie i przestrzeni, kompletność, dowód kompletności i optymalności. Złożoność przestrzeni odnosi się do proporcji liczby węzłów na najgłębszym poziomie wyszukiwania. Złożoność czasu odnosi się do rzeczywistej ilości "czasu" używanego do rozważenia każdej ścieżki, którą węzeł podejmie w wyszukiwaniu. Kompletność jest zasadniczo wyszukiwaniem, które znajduje rozwiązanie na wykresie, niezależnie od tego, jakiego rodzaju jest to wykres. Dowodem kompletności jest najłagodniejszy poziom, na którym cel znajduje się w węźle na określonej głębokości. Wreszcie, optymalność odnosi się do BFS, który nie jest ważony - jest to wykres stosowany do kosztu jednostkowego.

DFS jest najbardziej naturalnym wyjściem przy użyciu drzewa opinającego - które jest drzewem utworzonym ze wszystkich wierzchołków i niektórych krawędzi na nieukierunkowanym wykresie. W tej formacji wykres jest podzielony na trzy klasy: krawędzie do przodu, wskazujące od węzła do węzła potomnego; tylne krawędzie, wskazujące od węzła do wcześniejszego węzła; i poprzeczne krawędzie, które nie wykonują żadnej z nich.

Streszczenie:

1. BFS przeszukuje każde rozwiązanie na wykresie, aby rozszerzyć jego węzły; DFS zagrzebuje się głęboko w węźle podrzędnym, aż do osiągnięcia celu.

2. Cechy BFS to złożoność, złożoność, złożoność, kompletność i optymalność; najbardziej naturalnym wyjściem dla DFS jest drzewo opinające o trzech klasach: przednich, tylnych i poprzecznych.