18.09.2013 Aufrufe

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

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.3. BERECHNUNGSPROBLEME UND REDUZIERBARKEIT 143<br />

Beispiel 2 (STARKE KOMPONENTEN). Zwei Knoten e<strong>in</strong>es gerichteten Graphen<br />

G können genau dann <strong>in</strong> beiden Richtungen durch e<strong>in</strong>en gerichteten Weg verbunden<br />

werden, wenn sie <strong>in</strong> e<strong>in</strong>em Kreis des Graphen liegen. Wir sagen dann, dass die beiden<br />

Knoten <strong>in</strong> derselben starken Komponente liegen.<br />

Genauer: e<strong>in</strong>e starke Komponente von G ist e<strong>in</strong>e maximale Menge von Knoten,<br />

die durch gerichtete Wege (<strong>in</strong> beiden Richtungen) mite<strong>in</strong>ander verbunden werden<br />

können. Beispiel: der folgende Graph<br />

• b<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

a •<br />

<br />

<br />

•<br />

<br />

c<br />

d •<br />

<br />

<br />

•<br />

<br />

e<br />

•<br />

<br />

f<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

hat drei starke Komponenten: {a, b, c}, {d, e} und {f}.<br />

Aufgrund des Algorithmus aus Beispiel 5 <strong>in</strong> 6.1 können wir e<strong>in</strong>en trivialen Algorithmus<br />

f<strong>in</strong>den, der für e<strong>in</strong>en Graphen mit n Knoten und k Kanten <strong>in</strong> der Zeit<br />

O(n 2 (n + k)) die starken Komponenten aufzählt: wir wählen e<strong>in</strong>en Knoten v und<br />

fragen für jeden Knoten w, ob e<strong>in</strong> Weg von v zu w sowie e<strong>in</strong> Weg von w nach v<br />

führt. Das braucht O(2(n + k)) = O(n + k) Schritte für jeden Knoten w, also <strong>in</strong>sgesamt<br />

O(n(n + k)) Schritte. Damit wird die starke Komponente von v <strong>in</strong> der Zeit<br />

O(n(n+k)) bestimmt. Außerdem gibt es höchstens n starke Komponenten, also ist<br />

die gesamte Komplexität O(n 2 (n + k)).<br />

Es existiert e<strong>in</strong> Algorithmus, der die starken Komponenten <strong>in</strong> l<strong>in</strong>earer Zeit O(n+k)<br />

berechnet. Diesen werden wir hier aber nicht vorführen.<br />

Bemerkung 1. Starke Komponenten jedes Graphen G formen e<strong>in</strong>en neuen gerichteten<br />

Graphen G. Genauer, die Knoten von G s<strong>in</strong>d die starken Komponenten v der<br />

Knoten v von G. Und für zwei starke Komponenten v, w von G gilt:<br />

(v, w) ist e<strong>in</strong>e Kante von G genau dann, wenn v = w und e<strong>in</strong> gerichteter Weg von<br />

v nach w führt <strong>in</strong> G.<br />

Zum Beispiel ergibt sich aus dem obigen Graphen G der folgende Graph<br />

• {a, b, c}<br />

•<br />

<br />

{d, e}<br />

•<br />

<br />

<br />

{f}<br />

Es ist klar, dass der neue Graph G azyklisch ist (denn jeder Kreis von G kann zu<br />

e<strong>in</strong>em Kreis aus G ergänzt werden, der dann mehrere starke Komponenten verb<strong>in</strong>den<br />

würde, das ist jedoch nicht möglich). Aufgrund von Beispiel 1 <strong>in</strong> 6.1 können<br />

also die starken Komponenten jedes gerichteten Graphen so sortiert werden, dass<br />

ord(v) ≤ ord(w) für jede Kante (v, w) von G.<br />

Bemerkung 2. Wir wollen verschiedene Entscheidungsprobleme bezüglich ihrer<br />

Komplexität vergleichen. Wann kann man sagen, dass e<strong>in</strong> Problem L ⊆ Σ ∗ nicht<br />

schwieriger ist, als e<strong>in</strong> Problem L0 ⊆ Γ ∗ ? Falls wir e<strong>in</strong>e Übersetzung f haben, die<br />

alle Instanzen des ersten Problems (d.h., Wörter über Σ) <strong>in</strong> Instanzen des zweiten

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!