Gründliche Forschung

FONT SIZE:
fontsize_dec
fontsize_inc
Februar 11, 2016 Lona Perl G 0 6

In der Graphentheorie, der Forschung in die Tiefe, auf Englisch Tiefensuche ist ein Suchalgorithmus auf Bäumen und Graphen. Anders als die Breitensuche, es hat die Eigenschaft, an sich rekursiv.

Definition

Der Name kommt von der Tatsache, dass in einem Baum, auch vor dem Besuch die Knoten der ersten Generationen, kann der Algorithmus selbst zu finden, die in der oben weg von der Wurzel, geht so "tief". Nicht überraschend, wenn in einem Diagramm ausführen, findet der Algorithmus einen Baum, der ein Teilgraph ist. Wir können den Algorithmus zu sehen als eine Breite, wo wir eine Warteschlange, statt einem Stapel zu verwenden. Die Suchstrategie erkundet die Kurve gehen, jeden Moment der Ausführung des Algorithmus, so viel wie möglich in die Tiefe: Die Kanten des Graphen erforscht seit dem letzten Gipfel festgestellt, dass immer noch nicht erforschte die Bögen ausgehend von ihm. Sobald die Erforschung aller Bögen den Gipfel nicht erforscht Sie zurückgehen, um alle ausgehenden Kanten von Knoten zu erkunden, auf die 'hatte zuvor entdeckt worden. Das Explorationsprozess wird fortgesetzt, bis alle Knoten des Graphen sind nicht erforscht. Der Vorgänger Graphen, der durch die Tiefensuche erzeugt wird, kann durch mehr Bäume gebildet: diese Untergraphen definiert Wald DFS aufgebaut daher von verschiedenen Bäumen DFS. Der DFS-Untersuchung, zusätzlich zu Erzeugung der Wald DFS Marke jede Ecke mit präzisem Timing Informationen aktualisiert vor allem zwei Etiketten für jeden Scheitelpunkt: dass Datensätze, wenn die Hauptversammlung festgestellt worden, und dass Aufzeichnungen, als es die gesamte Liste erforscht Nachbarschaft. Die Scheitel unterschiedlich gefärbt sind je nach Fall: weiß, geht Farb dass jeder Knoten vor der Zeit, zwischen der Zeit und grau und schwarz in den folgenden. Für jeden Scheitelpunkt ist es auch.

Durchführung

Für die Implementierung des Algorithmus realisiert werden zwei Verfahren: ein Verfahren, um die Suche zu starten, und befasst sich mit weißen Färbung aller Knoten des Graphen, um den globalen Zähler der Zeit zurückzusetzen und um jeden einzelnen Knoten des Graphen auszuwählen. Für jeden ausgewählten Knoten beginnt ein zweites Verfahren, das die Aufgabe der Durchführung der eigentlichen Besuch hat.

Das Verfahren für den Besuch Knoten beschäftigt sich mit Farbe entsprechend alle Knoten besucht aus, um die Zeitwerte zu aktualisieren und bauen die DFS-Wald.

Komplexität

Das Verfahren erfordert DFS Laufzeit gleich mit Ausnahme der Zeit für die Ausführung der DFS-Visit. Das letztere Verfahren wird für jeden Scheitel genannt und dessen Zyklus wird genau deshalb während insgesamt ausgeführt:

So ist die Gesamtzeit der Ausführung ist gleich.

Reihenfolge

Mit zum Ausführen von Operationen auf jede Ecke besucht, kann der Algorithmus auf 3 verschiedene Arten verhalten:

  • Durchführung der Operation, dann rufen Sie sich auf die Kinder
  • nennen sich auf die Kinder, dann tun Sie dies
  • nennen sich selbst auf einigen Kindern, dies zu tun, nennen sich die Kinder verbleibenden

Umsetzung in Python

Für Graphen

Welle

  0   0
Vorherige Artikel Bladud
Nächster Artikel Pinguin

Kommentare - 0

Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha