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.
6.2. KOMPLEXITÄTSKLASSE P 139<br />
wobei δ durch die folgenden Übergangsregeln bestimmt wird:<br />
(q0, 0) → (q0, R)<br />
(q0, 1) → (q1, R)<br />
(q0, #) → (qF,#)<br />
(q1, 0) → (q0, R)<br />
(q1, #) → (qF,#)<br />
Jede E<strong>in</strong>gabe der Länge n liest die TM von l<strong>in</strong>ks nach rechts und hält spätestens<br />
bei dem Symbol # h<strong>in</strong>ter dem E<strong>in</strong>gabewort, also nach höchstens n + 1 Schritten.<br />
Sie hat also die Zeitkomplexität<br />
t(n) = n + 1.<br />
Bemerkung 1. 1. Im Kapitel 3 haben wir verschiedene Varianten von TM e<strong>in</strong>geführt<br />
(zum Beispiel mit zusätzlichem Gedächtnis, mit mehreren Bändern,<br />
usw.). Die Def<strong>in</strong>ition der Klasse P (s.u.) ist unabhängig davon, welche der<br />
Varianten als TM geme<strong>in</strong>t ist; das beweisen wir exakt im Abschnitt 6.4.<br />
2. Zeitkomplexität ist nicht e<strong>in</strong>deutig def<strong>in</strong>iert (denn sie ist nur e<strong>in</strong>e Abschätzung<br />
für die Anzahl der Berechnungsschritte). Genau genommen ist jede Funktion<br />
t ′ (n) mit t ′ (n) ≥ n+1 für alle n auch e<strong>in</strong>e Zeitkomplexität der TM aus Beispiel<br />
1.<br />
Beispiel 2. Die Sprache aller Pal<strong>in</strong>drome (siehe Abschnitt 2.1, Beispiel 3) wird von<br />
der folgenden Tur<strong>in</strong>gmasch<strong>in</strong>e M akzeptiert. Die Masch<strong>in</strong>e M hat e<strong>in</strong> zusätzliches<br />
Gedächtnis (siehe 3.2.2) für die Symbole aus Σ und vier Zustände: q0, Initialzustand,<br />
qR und qL (für die Bewegung nach l<strong>in</strong>ks oder rechts des Kopfes der Tur<strong>in</strong>gmasch<strong>in</strong>e)<br />
und qF, e<strong>in</strong>en f<strong>in</strong>alen Zustand.<br />
Zustand q0: Falls # gelesen wird, hält die TM und akzeptiert. Falls e<strong>in</strong> Symbol aus<br />
Σ gelesen wird, speichert die TM es im Gedächtnis, löscht es und geht zu qR über.<br />
Zustand qR bewegt den Kopf nach rechts bis er # liest, dann bewegt sich der Kopf<br />
e<strong>in</strong>en Schritt nach l<strong>in</strong>ks. [Problem: nach dem Löschen des ersten Symbols steht die<br />
TM im Zustand qR auf e<strong>in</strong>em #; daher wird e<strong>in</strong> spezielles Löschsymbol benötigt.]<br />
Falls das jetzt gelesene Symbol mit dem Gedächtnis übere<strong>in</strong>stimmt, wird es gelöscht<br />
und die TM geht zu qL über; falls nicht, hält die TM und akzeptiert nicht. [Problem:<br />
zum Löschen am rechten Rand brauchen wir e<strong>in</strong>en weiteren Zustand, etwa qC.]<br />
Zustand qL bewegt den Kopf nach l<strong>in</strong>ks bis er # liest [bzw. das neue Löschsymbol],<br />
dann bewegt er den Kopf e<strong>in</strong>en Schritt nach rechts und geht zu q0 über.<br />
Wie lange dauert die Berechnung e<strong>in</strong>er E<strong>in</strong>gabe der Länge n? Der Übergang q0 → qR<br />
dauert e<strong>in</strong>en Schritt und der Übergang qR → qL dauert n + 2 Schritte. Es dauert<br />
also<br />
1 + (n + 2) + n = 2n + 3<br />
Schritte, bis wieder q0 erreicht wird. Jetzt beg<strong>in</strong>nt dieselbe Berechnung mit e<strong>in</strong>em<br />
Wort der Länge n − 2. Der Zustand q0 wird also <strong>in</strong> 2(n − 2) + 3 Schritten wieder<br />
erreicht. (Wir nehmen immer den schlechtesten Fall an, hier also den Fall, dass die<br />
E<strong>in</strong>gabe wirklich e<strong>in</strong> Pal<strong>in</strong>drom ist.) Die gesamte Berechnungszeit beträgt höchstens<br />
t(n) = (2n + 3) + (2n − 1) + · · · + 5 + 1<br />
Schritte. Diese Summe ist gleich n 2 + 4n + 4, wie durch Induktion leicht bewiesen<br />
werden kann (?). Das bedeutet, dass unsere TM die Zeitkomplexität<br />
t(n) = n 2 + 4n + 4