breadth-first-search

___ answer7782340 ___

Ein konventioneller DFS-Algorithmus spürt Knoten auf. Ein lokaler Suchalgorithmus spürt keine Zustände auf und verhält sich mit Amnesie. Ich denke also, die Schleife bezieht sich hauptsächlich auf den einen unendlichen Zweig (ein Zweig mit unendlich vielen möglichen Zuständen). In diesem Fall geht das DFS einfach herunter und konzentriert sich auf einen Zweig.

    
___ qstntxt ___

Ich habe über DFS und BFS viele Male, aber ich habe diesen Zweifel, der mich seit langem beschäftigt. In vielen Artikeln wird erwähnt, dass DFS in unendlichen Schleifen stecken bleiben kann.

Soweit ich weiß, kann diese Einschränkung leicht entfernt werden, indem die besuchten Knoten im Auge behalten werden. Tatsächlich ist dieser kleine Scheck in allen Büchern, die ich gelesen habe, ein Teil von DFS.

Warum werden 'unendliche Schleifen' als Nachteil von DFS erwähnt? Ist es nur, weil der ursprüngliche DFS-Algorithmus diese Überprüfung für besuchte Knoten nicht hatte? Bitte erläutern.

    
___ tag123algorithm ___ Ein Algorithmus ist eine Folge wohldefinierter Schritte, die eine abstrakte Lösung für ein Problem definieren. Verwenden Sie dieses Tag, wenn sich Ihr Problem auf den Algorithmusentwurf bezieht. ___ qstnhdr ___ Warum wird die Tiefe der ersten Suche als Endlosschleife bezeichnet? ___ tag123search ___ Fragen zur Suchalgorithmusmechanik und Implementierung. * NOT * für Fragen zur Verwendung von Suchtools innerhalb einer API (z. B. Google, Bing, Facebook). ___ answer7779323 ___

(1) Bei Graph-Suchalgorithmen [häufig bei AI verwendet] ist der Hauptvorteil von DFS Space Efficiency . Es ist sein Hauptvorteil auf BFS. Wenn Sie jedoch die besuchten Knoten im Auge behalten, verlieren Sie diesen Vorteil , da Sie alle besuchten Knoten im Speicher ablegen müssen. Vergessen Sie nicht, dass die Größe der besuchten Knoten im Laufe der Zeit drastisch ansteigt und bei sehr großen / unendlichen Graphen nicht in den Speicher passt.

(2) Manchmal kann DFS in einem unendlichen Zweig [in unendlichen Graphen] sein. Ein unendlicher Zweig ist ein Zweig, der nicht endet [hat immer "mehr Söhne"], und bringt Sie auch nicht zu Ihrem Zielknoten, so dass Sie für DFS diesen Zweig unendlich erweitern und den guten Zweig "verpassen" können. das führt zum Zielknoten.

Bonus:
Sie können diesen Fehler in DFS überwinden, während Sie mit einer Kombination aus DFS und BFS eine relativ kleine Speichergröße beibehalten: Iterative Deepening DFS

    
___ tag123depthfirstsearch ___ Die Tiefensuche (DFS) ist ein Algorithmus zum Durchlaufen oder Durchsuchen eines Baums, einer Baumstruktur oder eines Graphen. Man beginnt an der Wurzel (wählt einen Knoten als Wurzel im Fall des Graphen) und untersucht so weit wie möglich entlang jeder Verzweigung vor dem Zurückverfolgen. ___ tag123breadthirstsearch ___ In der Graphentheorie ist Breitensuche (BFS) ein Graphsuchalgorithmus, der am Wurzelknoten beginnt und alle benachbarten Knoten untersucht. Dann untersucht sie für jeden dieser nächsten Knoten ihre unerforschten Nachbarknoten und so weiter, bis sie das Ziel findet. ___
2
Antworten

Warum hängt die zeitliche Komplexität von DFS und BFS davon ab, wie der Graph dargestellt wird?

Die Seite Ссылка beschreibt, dass wenn eine Adjazenzliste dann verwendet wird DFS und BFS haben Komplexität O (V + E), und wenn eine Adjazenzmatrix verwendet wird, ist die Komplexität O (V 2). Warum ist das?     
29.05.2014, 02:58
2
Antworten

Breite-zuerst Suche auf einem 8x8 Raster in Java

Ich versuche zu zählen, wie viele Züge es braucht, um den kürzesten Weg zum Ziel zu finden. Es muss mit einer breiten ersten Suche durchgeführt werden. Ich lege das 8x8-Gitter in ein 2D-Array, das mit einem von vier Zeichen gefüllt ist, E für le...
11.04.2012, 02:58
1
Antwort

Schnelle Implementierung von Warteschlangen in Lua?

Ich mache ein Spiel mit Lua und ich muss Breadth-First Search verwenden, um einen schnellen Pfadfindungsalgorithmus zu implementieren, der den kürzesten Weg zwischen der feindlichen KI und dem Spieler findet. Ich werde bis zu 3 Feinde gleichz...
17.09.2013, 07:18
1
Antwort

Rekonstruieren Sie ein Diagramm aus der BFS-Ausgabe in Haskell

Ich möchte die Inzidenzstruktur eines Graphen in Haskell rekonstruieren, die durch die Ausgabe einer breiten ersten Traversierung gegeben ist. Explizit besteht die Ausgabe aus einem Wurzelvertex und einer Liste von Nachbarschaften (eine Nachbars...
04.12.2013, 15:18
5
Antworten

Rekursive Breitenseitenfunktion in Java oder C ++?

Hier ist ein Java-Code für die erste Reise: %Vor% Ist es möglich, eine rekursive Funktion zu schreiben, um das Gleiche zu tun? Zuerst dachte ich, das wäre einfach, also kam ich heraus: %Vor% Dann habe ich herausgefunden, dass es nicht...
03.06.2010, 19:16
2
Antworten

Warum wird die Tiefe der ersten Suche als Endlosschleife bezeichnet?

Ich habe über DFS und BFS viele Male, aber ich habe diesen Zweifel, der mich seit langem beschäftigt. In vielen Artikeln wird erwähnt, dass DFS in unendlichen Schleifen stecken bleiben kann. Soweit ich weiß, kann diese Einschränkung leich...
15.10.2011, 16:55