Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
138 KAPITEL 6. KOMPLEXITÄT VON ALGORITHMEN<br />
Jeder Knoten hat e<strong>in</strong>en (leeren) Weg der Länge 0 zu sich selbst.<br />
Seien e<strong>in</strong> gerichteter Graph G und zwei Knoten v und w gegeben, dann entscheiden<br />
wir <strong>in</strong> l<strong>in</strong>earer Zeit O(n+k), ob e<strong>in</strong> Weg von v nach w führt. Sei M die Menge aller<br />
Knoten zu denen e<strong>in</strong> Weg von v führt.<br />
Algorithmus für gerichteter Weg<br />
E<strong>in</strong>gabe: E<strong>in</strong> gerichteter Graph G = (V, E) und zwei Knoten v und w<br />
Augabe: JA, falls e<strong>in</strong> gerichteter Weg von v nach w führt, ansonsten NEIN<br />
{Initialisierung:}<br />
M := {v}<br />
{Rekursionsschritt:}<br />
while e<strong>in</strong>e Kante (x, y) mit x ∈ M und y /∈ M existiert do<br />
M := M ∪ {y}<br />
E := E − {(x, y)}<br />
od<br />
{Ausgabe:}<br />
JA, falls w ∈ M, NEIN falls w ∈ M.<br />
Zeitkomplexität: Falls der Graph mit Adjazenzlisten implementiert ist, dauert dieser<br />
Algorithmus O(n + k) Schritte, denn jede Liste wird höchstens e<strong>in</strong>mal durchsucht.<br />
6.2 Komplexitätsklasse P<br />
Alle Probleme, die e<strong>in</strong> Rechner mit polynomialer Zeitkomplexität lösen kann, formen<br />
die Klasse P. Genauer: e<strong>in</strong> Entscheidungsproblem gehört zu P, falls es e<strong>in</strong>en<br />
Algorithmus gibt, der für jede E<strong>in</strong>gabe der Länge n <strong>in</strong> höchstens p(n) Zeite<strong>in</strong>heiten<br />
entscheidet, ob die Antwort JA oder NEIN ist, wobei p(n) e<strong>in</strong> (gegebenes) Polynom<br />
ist. Es entsteht die Frage: welche Implementierung haben wir hier im S<strong>in</strong>n?<br />
Die Antwort ist: die Klasse P ist von der Implementierung unabhängig. Verschiedene<br />
Implementierungen können natürlich verschiedene Zeitkomplexitäten haben<br />
(wie im Fall des TOPOLOGISCHEN SORTIERENS <strong>in</strong> 6.1 gezeigt wurde); d.h.,<br />
das Polynom p(n) wird für jede Implementierung <strong>in</strong>dividuell gewählt werden. Aber<br />
die Existenz e<strong>in</strong>es Polynomes ist unabhängig von der Implementierung. Das zeigen<br />
wir, <strong>in</strong>dem wir Tur<strong>in</strong>gmasch<strong>in</strong>en als Implementierungsmodell nehmen und dann beweisen,<br />
dass dieselbe Klasse P auch z.B. mit RAM als Modell entsteht. Der Beweis<br />
für andere Berechnungsmodelle folgt analog.<br />
Def<strong>in</strong>ition. Wir sagen, dass e<strong>in</strong>e determ<strong>in</strong>istische TM e<strong>in</strong>e Zeitkomplexität t(n)<br />
hat, wobei t(n) e<strong>in</strong>e Funktion aus der Menge ist, falls die TM für jede E<strong>in</strong>gabe<br />
der Länge n <strong>in</strong> höchstens t(n) Schritten hält.<br />
Beispiel 1. Die Sprache L ⊆ {0, 1} ∗ aller Wörter, die ke<strong>in</strong>e zwei benachbarten<br />
E<strong>in</strong>sen enthalten, kann von der folgenden TM akzeptiert werden: M bleibt solange<br />
im Initialzustand q0, wie sie Nullen liest, also (q0, 0) → (q0, R). Falls M e<strong>in</strong>e 1 liest,<br />
geht sie <strong>in</strong> den Zustand q1 über: (q0, 1) → (q1, R). Falls nach der 1 gleich e<strong>in</strong>e 0<br />
folgt, gehen wir zurück zum Zustand q0, falls aber noch e<strong>in</strong>e 1 gelesen wird, hält<br />
die Masch<strong>in</strong>e im (nichtf<strong>in</strong>alen) Zustand q1. Und falls das Blanksymbol gelesen wird,<br />
hält die Masch<strong>in</strong>e im f<strong>in</strong>alen Zustand qF. Hier ist e<strong>in</strong>e vollständige Beschreibung<br />
von M:<br />
M = ({q0, q1, qF }, {0, 1}, δ, q0, qF)