Hauptstudiumspraktikum Algorithmen und Datenstrukturen
Hauptstudiumspraktikum Algorithmen und Datenstrukturen
Hauptstudiumspraktikum Algorithmen und Datenstrukturen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Praktikum <strong>Algorithmen</strong> <strong>und</strong> <strong>Datenstrukturen</strong><br />
Team Nr. 4<br />
SCC<br />
Eine Linearzeitimplementation eines Algorithmus zur<br />
Berechnung starker Zusammenhangskomponenten in<br />
gerichteten Graphen<br />
Michael Baur, Daniel Fleischer, Robert Schmaus<br />
Universität Konstanz<br />
Sommersemester 2000<br />
Zusammenfassung<br />
Dieses Paper stellt einen Algorithmus vor, der in linearer Laufzeit<br />
(in Abhängigkeit der Anzahl der Knoten <strong>und</strong> Kanten) die<br />
starken Zusammenhangskomponenten eines gerichteten Graphen<br />
berechnet.<br />
1 Definitionen <strong>und</strong> Zielsetzungen<br />
Definition 1 Ein gerichteter Graph G = (V, E) heißt stark zusammenhängend,<br />
wenn es zwischen je zwei Knoten u, v ∈ V in beide<br />
Richtungen einen gerichteten Weg gibt.<br />
Definition 2 Eine starke Zusammenhangskomponente eines<br />
Graphen ist ein maximaler Subgraph, der stark zusammenhängend<br />
ist.<br />
Zwei Knoten liegen also genau dann in der selben Zusammenhangskomponente,<br />
wenn sie auf einem (nicht notwendig einfachen) gerichteten<br />
Kreis liegen. Die Relation<br />
v ∼ w :⇔ v <strong>und</strong> w liegen in derselben Zusammenhangskomponente<br />
ist eine Äquivalenzrelation auf den Knoten des Graphen. Im Folgenden<br />
wird nun ein Algorithmus vorgestellt, der die Zusammenhangskomponenten<br />
des Graphen berechnet – also die Äquivalenzklassen