Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
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