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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6. Komplexität von Algorithmen 6.1 Beispiele effizienter Algorithmen<br />

Beispiel (Algorithmus <strong>für</strong> 2-Färbung)<br />

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

Ausgabe: eine 2-Färbung V = ROT + BLAU , falls eine existiert<br />

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

2: ROT := ∅ ; BLAU := ∅ ; F := ∅ ; {Laufzeit 3A , F : Menge der Knoten in Bearbeitung} { O(1) }<br />

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

4: while ∃v ∈ V do<br />

5: V := V − {v} ; ROT := ROT + {v} ; F := F + {v} {Laufzeit 4A }<br />

6: while ∃w ∈ F do<br />

7: for alle Knoten u ∈ V mit {u, w} ∈ E do<br />

8: if w ∈ ROT then<br />

9: BLAU := BLAU + {u}<br />

10: else<br />

11: ROT := ROT + {u}<br />

12: end if {Laufzeit 2A }<br />

13: F := F + {u} ; V := V − {u} {Laufzeit 2A }<br />

14: end for<br />

15: F := F − {w} {Laufzeit A }<br />

16: end while<br />

17: end while { O(n + k) }<br />

18: {(2) Ausgabe}<br />

19: Überprüfen, ob BLAU oder ROT eine Kante enthalten { O(n + k) }<br />

Die Laufzeit ist linear in |V | + |E| , da jeder Knoten und jede Kante<br />

einmal “angefasst” werden.<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!