Unterschied zwischen BFS und DFS

Unterschied zwischen BFS und DFS

BFS gegen DFS

Breite erste Suche (auch als BFS bekannt) ist eine Suchmethode, mit der alle Knoten eines bestimmten Diagramms erweitert werden. Sie erfüllt diese Aufgabe, indem Sie jede einzelne Lösung durchsuchen, um diese Knoten zu untersuchen und zu erweitern (oder eine Kombination von Sequenzen darin). Als solches verwendet ein BFS keinen heuristischen Algorithmus (oder einen Algorithmus, der nach mehreren Szenarien nach einer Lösung sucht). Nachdem alle Knoten erhalten wurden, werden sie zu einer Warteschlange hinzugefügt. Diejenigen Knoten, die nicht erforscht wurden, werden in einem mit „offenen“ gekennzeichneten Behälter "gespeichert". Einmal erkundet, werden sie zu einem mit „geschlossenen“ gekennzeichneten Behälter transportiert.

Die erste Suche in der Tiefe (auch als DFS bezeichnet) ist eine Suchmethode, die tiefer in einen Kinderknoten einer Suche steckt, bis ein Ziel erreicht ist (oder bis ein Knoten ohne andere Permutationen oder „Kinder“ vorhanden ist). Nachdem ein Ziel gefunden wurde. Daher werden die Knoten weiterhin zur weiteren Erkundung beiseite gelegt - dies wird als nicht rekursive Implementierung bezeichnet.

Die Merkmale der BFS sind Platz und Zeitkomplexität, Vollständigkeit, Vollständigkeit und Optimalität. Die Raumkomplexität bezieht sich auf den Anteil der Anzahl der Knoten auf der tiefsten Ebene einer Suche. Die Zeitkomplexität bezieht sich auf die tatsächliche Menge an "Zeit", die für die Berücksichtigung jedes Pfades verwendet wird, den ein Knoten in einer Suche aufnimmt. Vollständigkeit ist im Wesentlichen eine Suche. Der Beweis der Vollständigkeit ist die flachste Ebene, auf der ein Ziel in einem Knoten in einer bestimmten Tiefe gefunden wird. Schließlich bezieht sich die Optimalität auf ein nicht gewichtetes BFS - das ist ein Diagramm, das für Einheitenstufenkosten verwendet wird.

A DFS ist die natürlichste Ausgabe mit einem Spanning -Baum - ein Baum, der aus allen Scheitelpunkten und einigen Kanten in einem ungerichteten Diagramm besteht. In dieser Formation ist der Diagramm in drei Klassen unterteilt: Vorwärtskanten, die von einem Knoten auf einen untergeordneten Knoten zeigen; hintere Kanten, von einem Knoten auf einen früheren Knoten zeigen; und Kreuzkanten, die eines davon nicht tun.

Zusammenfassung:

1. Ein BFS sucht jede einzelne Lösung in einem Diagramm, um seine Knoten zu erweitern. Ein DFS greift tief innerhalb eines Kinderknotens, bis ein Ziel erreicht ist.

2. Die Merkmale eines BFS sind Platz und Zeitkomplexität, Vollständigkeit, Vollständigkeit und Optimalität. Die natürlichste Ausgabe für einen DFS ist ein Spannungsbaum mit drei Klassen: Vorwärtskanten, hintere Kanten und Kreuzkanten.