WISSENSARTIKEL / AI/KI

Tiefensuche

Algorithmus zur systematischen Erkundung von Graphen und Bäumen

◎ KURZDEFINITION

Tiefensuche Die Tiefensuche ist ein Algorithmus zur vollständigen Durchsuchung von Graphen oder Bäumen, bei dem die Erkundung jeweils so tief wie möglich in einen Zweig erfolgt, bevor andere Zweige untersucht werden.

Eigenständig verständliche Definition
✦

Das Wichtigste auf einen Blick

  • Tiefensuche ist ein rekursiver oder stack-basierter Algorithmus zur Graphdurchsuchung.
  • Sie besucht Knoten in einem Graphen, indem sie jeweils so tief wie möglich in einen Zweig vordringt.
  • Tiefensuche kann zur Pfadsuche, Zykluserkennung und Topologischen Sortierung verwendet werden.
  • Der Algorithmus eignet sich für gerichtete und ungerichtete Graphen sowie für Bäume.
  • Die Implementierung erfolgt meist rekursiv oder mit einem expliziten Stack.
  • Die Laufzeit liegt in der Größenordnung von O(V + E), wobei V die Anzahl der Knoten und E die Anzahl der Kanten ist.
01

Überblick: Tiefensuche

Die Tiefensuche (englisch: Depth-First Search, DFS) ist ein fundamentaler Algorithmus in der Graphentheorie und Informatik. Sie wird eingesetzt, um alle Knoten eines Graphen oder Baumes systematisch zu besuchen und zu verarbeiten. Dabei folgt die Suche einem Pfad so weit wie möglich in die Tiefe, bevor sie zurückkehrt und andere Pfade erkundet. Dies macht die Tiefensuche besonders geeignet für Aufgaben wie das Finden von Pfaden, das Erkennen von Zyklen oder das Durchsuchen von Baumstrukturen.

02

Was ist Tiefensuche?

Die Tiefensuche ist ein Algorithmus zur systematischen Erkundung aller Knoten eines Graphen oder Baumes. Dabei wird von einem Startknoten ausgehend jeweils ein Nachfolger besucht, bis kein unbesuchter Nachfolger mehr vorhanden ist. Dann wird zurückgegangen und andere Pfade werden erkundet.

03

Funktionsweise der Tiefensuche

Der Algorithmus beginnt an einem Startknoten und besucht rekursiv oder iterativ benachbarte Knoten, die noch nicht besucht wurden. Dabei wird ein Pfad so lange verfolgt, bis keine weiteren unbesuchten Nachbarn existieren. Anschließend wird zum vorherigen Knoten zurückgekehrt, um andere Pfade zu erkunden.

04

Implementierungsmöglichkeiten

Die Tiefensuche kann entweder rekursiv implementiert werden, wobei der Aufrufstack die zu besuchenden Knoten verwaltet, oder iterativ mit einem expliziten Stack als Hilfsdatenstruktur. Beide Varianten erreichen das gleiche Ergebnis.

05

Vergleich rekursive und iterative Tiefensuche

KriteriumRekursive ImplementierungIterative Implementierung
SpeicherverbrauchNutzt den AufrufstackNutzt expliziten Stack
EinfachheitEinfacher zu verstehen und zu schreibenEtwas komplexer, aber kontrollierbarer
Stack Overflow RisikoKann bei sehr großen Graphen auftretenWeniger anfällig für Stack Overflow
06

Anwendungsbereiche der Tiefensuche

Tiefensuche wird in vielen Bereichen eingesetzt, darunter: Finden von Pfaden in Graphen, Erkennung von Zyklen, Bestimmung zusammenhängender Komponenten, Topologische Sortierung in gerichteten Graphen, und als Basisalgorithmus in Künstlicher Intelligenz für Suchprobleme.

07

Beispiel: Tiefensuche in einem ungerichteten Graphen

✦

Gegeben sei ein ungerichteter Graph mit Knoten A bis E. Startet man die Tiefensuche bei Knoten A, so werden die Knoten in der Reihenfolge A, B, D, E, C besucht, indem jeweils ein Pfad so tief wie möglich verfolgt wird, bevor zurückgegangen wird.

08

Vorteile und Nachteile der Tiefensuche

VorteileEinfache ImplementierungGeringer Speicherbedarf bei flachen GraphenGeeignet zur Zykluserkennung
NachteileKann Stack Overflow verursachenFindet nicht zwingend kürzeste PfadeNicht optimal für breite Graphen
09

Wichtig

✦

Tiefensuche unterscheidet sich von der Breitensuche darin, dass sie jeweils einen Pfad so tief wie möglich verfolgt, während Breitensuche alle Nachbarn einer Ebene zuerst besucht.

◇

Zusatzinformationen

◇

Begriff: Tiefensuche

Englischer Begriff: Depth-First Search (DFS)

Anwendungsgebiete: Graphentheorie, Informatik, Künstliche Intelligenz, Netzwerkanalyse

Algorithmustyp: Graphdurchsuchungsalgorithmus

Komplexität: O(V + E)

Datenstruktur: Stack (implizit durch Rekursion oder explizit)

Einsatzbereiche: Pfadsuche, Zykluserkennung, Topologische Sortierung, Komponentenbestimmung

Aa

Synonyme und alternative Bezeichnungen

?

Häufige Fragen zu Tiefensuche

Was ist der Unterschied zwischen Tiefensuche und Breitensuche?

Die Tiefensuche verfolgt einen Pfad so tief wie möglich, bevor sie zurückkehrt, während die Breitensuche alle Nachbarn einer Ebene zuerst besucht, bevor sie tiefer geht.

Kann Tiefensuche in gerichteten Graphen verwendet werden?

Ja, Tiefensuche funktioniert sowohl in gerichteten als auch in ungerichteten Graphen.

Wie erkennt man mit Tiefensuche Zyklen in einem Graphen?

Während der Tiefensuche kann ein Knoten, der bereits im aktuellen Suchpfad besucht wurde, auf einen Zyklus hinweisen.

Welche Datenstruktur wird bei der Tiefensuche verwendet?

Die Tiefensuche verwendet einen Stack, entweder implizit durch Rekursion oder explizit als Datenstruktur.

Ist Tiefensuche immer die beste Wahl für Pfadsuche?

Nein, Tiefensuche findet nicht unbedingt den kürzesten Pfad. Für kürzeste Pfade sind Algorithmen wie Breitensuche oder Dijkstra besser geeignet.

Wie hoch ist die Laufzeit der Tiefensuche?

Die Laufzeit beträgt O(V + E), wobei V die Anzahl der Knoten und E die Anzahl der Kanten im Graphen ist.

Kann Tiefensuche in der Künstlichen Intelligenz eingesetzt werden?

Ja, Tiefensuche wird in der KI für Suchprobleme und zur Exploration von Zustandsräumen verwendet.

▤

Quellen & weiterführende Informationen

Quellenvorschläge und Nachweise zum Artikel. Bitte externe Inhalte eigenständig prüfen.

3 Quellen
  1. 01
    Introduction to Algorithms ↗
    MIT Press· Thomas H. Cormen et al.· BuchKI-Vorschlag · ungeprüft

    Standardwerk zur Algorithmik mit ausführlicher Beschreibung der Tiefensuche

    https://mitpress.mit.edu/books/introduction-algorithms
  2. 02
    Graph Search, Shortest Paths, and Data Structures ↗
    Stanford University· Tim Roughgarden· VorlesungsfolienKI-Vorschlag · ungeprüft

    Lehrmaterial zur Graphdurchsuchung mit Tiefensuche

    https://web.stanford.edu/class/archive/cs/cs161/cs161.1168/lectures/lecture3.pdf
  3. 03
    Depth-First Search (DFS) Algorithm ↗
    GeeksforGeeks· GeeksforGeeks Contributors· Online-ArtikelKI-Vorschlag · ungeprüft

    Praktische Einführung und Beispiele zur Tiefensuche

    https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph/
War dieser Artikel hilfreich?Dein Feedback hilft, die Wissensplattform zu verbessern.
ANSWER ENGINE · ARTIKEL

Diese Seite in Zahlen

Artikelstatistik
↗–Aufrufe dieses Artikels
◷–Unique Nutzer letzte 24 Stunden
◉–Unique Nutzer heute
▦–Unique Nutzer diesen Monat
Feedback zu diesem Artikel
👍 Ja
0
◐ Teilweise
0
👎 Nein
0

Alle Werte in diesem Abschnitt beziehen sich ausschließlich auf diesen Artikel.

ANSWER ENGINE · GESAMTES NETZWERK

Wissensplattform in Zahlen

Netzwerkstatistik
↗–Seitenaufrufe gesamt
◷–Unique Nutzer letzte 24 Stunden
◉–Unique Nutzer heute
▦–Unique Nutzer diesen Monat

Diese Werte beziehen sich auf die gesamte Plattform und alle veröffentlichten Artikel.