05.11.2013 Aufrufe

Handout - Institut für Theoretische Informatik - Technische ...

Handout - Institut für Theoretische Informatik - Technische ...

Handout - Institut für Theoretische Informatik - Technische ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6. Komplexität von Algorithmen 6.3 Die Klasse FP von Berechnungsproblemen<br />

Beispiel (Starke Komponenten)<br />

Eingabe: gerichteter Graph G = 〈V , E〉<br />

Aufgabe: die maximalen Mengen wechselseitig durch gerichtete Wege<br />

miteinander verbundener Knoten (=”starke Komponenten”) berechnen<br />

1: {(0) Initialisierung}<br />

2: i := 0 { i : der Komponentenzähler}<br />

3: {(1) Rekursionsschritt}<br />

4: while V ≠ ∅ do<br />

5: wähle v ∈ V ; V := V − {v}<br />

6: K i := {v} { K i : die neu zu bestimmende Komponente}<br />

7: for alle Knoten w ∈ V do<br />

8: if gerWeg(v, w) und gerWeg(w, v) then<br />

9: K i := K i + {w} ; V := V − {w}<br />

10: end if<br />

11: end for<br />

12: end while<br />

Im Wesentlichen wird der Algorithmus <strong>für</strong> gerichteten Weg mit Laufzeit<br />

O(n + k) in der maximal n-mal zu durchlaufenden FOR-Schleife zweimal<br />

aufgerufen. Da die WHILE-Schleife auch maximal n-mal durchlaufen wird,<br />

ergibt sich mit Adjazenzlisten eine Laufzeit von O(n 2 (n + k)) , und mit<br />

Adjazenzmatrizen von O(n 4 ) .<br />

Jürgen Koslowski (TU-BS) <strong>Theoretische</strong> <strong>Informatik</strong> 2 SS 2012 130 / 215

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!