Graphalgorithmen

Umfassender Leitfaden zu 23+ essentiellen Graphalgorithmen mit Komplexitätsanalyse, Anwendungsfällen und interaktiven Visualisierungen.

Interaktive Plattform Testen

Graphendurchlauf

Breitensuche (BFS)

Erkundet den Graphen Ebene für Ebene und besucht alle Nachbarn, bevor er tiefer geht. Verwendet eine Warteschlange zur Aufrechterhaltung der Erkundungsreihenfolge.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Kürzester Pfad in ungewichteten Graphen, Ebenendurchlauf, Finden zusammenhängender Komponenten

Tiefensuche (DFS)

Erkundet so tief wie möglich entlang jedes Zweigs, bevor er zurückverfolgt. Verwendet einen Stapel (oder Rekursion) zur Verfolgung des Erkundungspfads.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Topologische Sortierung, Zykluserkennung, Pfadfindung, Labyrinth-Lösung

Topologische Sortierung

Lineare Anordnung von Knoten in einem gerichteten azyklischen Graphen (DAG), bei der jeder Knoten vor allen Knoten erscheint, auf die er zeigt.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Aufgabenplanung, Abhängigkeitsauflösung, Build-Systeme, Kursvoraussetzungen

Eulerscher Pfad

Findet einen Pfad, der jede Kante genau einmal in einem ungerichteten Graphen besucht. Existiert, wenn der Graph genau 0 oder 2 Knoten mit ungeradem Grad hat.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Routenplanung, Puzzle-Lösung, Schaltkreisdesign, DNA-Sequenzierung

Kürzeste-Pfad-Algorithmen

Dijkstra-Algorithmus

Findet kürzeste Pfade von einem Quellknoten zu allen anderen Knoten in einem gewichteten Graphen mit nicht-negativen Kantengewichten.

Zeitkomplexität: O((V + E) log V)
Raumkomplexität: O(V)
Anwendungsfälle: GPS-Navigation, Netzwerk-Routing, soziale Netzwerke

Bellman-Ford-Algorithmus

Findet kürzeste Pfade von einem Quellknoten und erkennt negative Gewichtszyklen. Funktioniert mit negativen Kantengewichten.

Zeitkomplexität: O(VE)
Raumkomplexität: O(V)
Anwendungsfälle: Währungsarbitrage-Erkennung, Netzwerkprotokolle

Floyd-Warshall-Algorithmus

Findet kürzeste Pfade zwischen allen Knotenpaaren mittels dynamischer Programmierung mit Zwischenknoten.

Zeitkomplexität: O(V³)
Raumkomplexität: O(V²)
Anwendungsfälle: Alle-Paare kürzeste Pfade, transitive Hülle

Minimaler Spannbaum

Prim-Algorithmus

Baut den minimalen Spannbaum durch Wachstum von einem einzelnen Knoten auf und fügt immer die Kante mit minimalem Gewicht hinzu, die zu einem neuen Knoten führt.

Zeitkomplexität: O((V + E) log V)
Raumkomplexität: O(V)
Anwendungsfälle: Netzwerkdesign, Clustering-Algorithmen

Kruskal-Algorithmus

Baut den minimalen Spannbaum durch Sortierung aller Kanten und Verwendung von Union-Find zur Zyklusvermeidung beim Hinzufügen minimaler Gewichtskanten auf.

Zeitkomplexität: O(E log E)
Raumkomplexität: O(V)
Anwendungsfälle: Netzwerkdesign, Schaltkreisdesign, Clustering

Borůvka-Algorithmus

Baut den minimalen Spannbaum mit einem parallelen komponentenbasierten Ansatz auf, geeignet für verteilte Rechenumgebungen.

Zeitkomplexität: O(E log V)
Raumkomplexität: O(V)
Anwendungsfälle: Parallele MST-Berechnung, verteilte Algorithmen

Graphenkonnektivität

Tarjan SZK-Algorithmus

Findet stark zusammenhängende Komponenten in gerichteten Graphen mit DFS unter Verwendung von Low-Link-Werten und einem Stapel.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Abhängigkeitsanalyse, soziale Netzwerkanalyse

Kosaraju SZK-Algorithmus

Findet stark zusammenhängende Komponenten mit zwei DFS-Durchläufen: einem auf dem ursprünglichen Graphen und einem auf dem transponierten Graphen.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Web-Crawling, Abhängigkeitsauflösung

Artikulationspunkte

Findet Knoten, deren Entfernung die Anzahl der zusammenhängenden Komponenten in einem ungerichteten Graphen erhöhen würde.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Netzwerkzuverlässigkeit, kritische Infrastrukturanalyse

Brückenfindung

Findet Kanten, deren Entfernung die Anzahl der zusammenhängenden Komponenten in einem ungerichteten Graphen erhöhen würde.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Netzwerkzuverlässigkeit, kritische Pfadanalyse

Bipartit-Prüfung

Bestimmt, ob ein Graph mit genau zwei Farben gefärbt werden kann, sodass keine benachbarten Knoten dieselbe Farbe haben.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Matching-Probleme, Terminplanung, Ressourcenzuteilung

Spezielle Algorithmen

Zykluserkennung

Erkennt das Vorhandensein von Zyklen in gerichteten und ungerichteten Graphen mit verschiedenen Techniken wie DFS und Union-Find.

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Deadlock-Erkennung, Abhängigkeitsanalyse

Hamiltonscher Pfad

Findet einen Pfad, der jeden Knoten genau einmal besucht, unter Verwendung von Backtracking- und dynamischen Programmiertechniken.

Zeitkomplexität: O(2ⁿ × n²)
Raumkomplexität: O(2ⁿ × n)
Anwendungsfälle: Tourenplanung, Optimierungsprobleme

Handlungsreisender-Problem

Findet die kürzeste mögliche Route, die jede Stadt genau einmal besucht und zum Ausgangspunkt zurückkehrt.

Zeitkomplexität: O(n² × 2ⁿ)
Raumkomplexität: O(n × 2ⁿ)
Anwendungsfälle: Routenoptimierung, Logistik, Leiterplattenbohrung

Graphenfärbung

Weist Knoten Farben zu, sodass keine zwei benachbarten Knoten dieselbe Farbe haben, unter Verwendung der minimalen Anzahl von Farben.

Zeitkomplexität: O(V × 2ⱽ)
Raumkomplexität: O(2ⱽ)
Anwendungsfälle: Terminplanung, Registerzuteilung, Frequenzzuteilung

Maximale Clique

Findet den größten vollständigen Teilgraphen, in dem jedes Knotenpaar durch eine Kante verbunden ist.

Zeitkomplexität: O(3ⁿ/³)
Raumkomplexität: O(V)
Anwendungsfälle: Soziale Netzwerkanalyse, Bioinformatik, Data Mining

Chordalitätsprüfung

Bestimmt, ob ein Graph chordal ist (jeder Zyklus der Länge 4 oder mehr hat eine Sehne - eine Kante, die zwei nicht benachbarte Knoten im Zyklus verbindet).

Zeitkomplexität: O(V + E)
Raumkomplexität: O(V)
Anwendungsfälle: Perfekte Graphenerkennung, Optimierungsprobleme

Netzwerkfluss

Maximaler Fluss

Findet den maximalen Fluss von einer Quelle zu einer Senke in einem Flussnetzwerk mit Algorithmen wie Ford-Fulkerson mit erweiternden Pfaden.

Zeitkomplexität: O(V²E)
Raumkomplexität: O(V²)
Anwendungsfälle: Netzwerkkapazitätsplanung, Ressourcenzuteilung, bipartites Matching

Minimaler Schnitt

Findet den Schnitt mit minimaler Kapazität, der die Quelle von der Senke trennt, eng verwandt mit dem maximalen Fluss durch das Max-Flow-Min-Cut-Theorem.

Zeitkomplexität: O(V²E)
Raumkomplexität: O(V²)
Anwendungsfälle: Netzwerkzuverlässigkeit, Bildsegmentierung, Clustering

Bereit, diese Algorithmen zu erkunden?

Erleben Sie interaktive Visualisierungen und schrittweise Ausführung aller dieser Algorithmen.

Interaktive Plattform Starten