Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ... Skript in PDF - Theoretische Informatik - Technische Universität ...
148 KAPITEL 6. KOMPLEXITÄT VON ALGORITHMEN 6.4.1 TM mit zusätzlichem Gedächtnis Erinnern wir daran, dass eine TM mit zusätzlichem Gedächtnis die Möglichkeit eines Zugriffs auf ein Gedächtnis hat, in dem Symbole eines endlichen Alphabets A gespeichert werden, siehe 3.2.2. Dies ist allerdings eine ” normale“ TM mit der Zustandsmenge Q × A. Für die Definition der Klasse P ist es also unerheblich, ob wir TM oder TM mit zusätzlichem Gedächtnis als Berechnungsmodell anwenden. 6.4.2 TM mit mehrspurigem Band Auch dieses Modell ändert die Klasse P nicht, denn wie in 3.2.3 gezeigt wurde, ist eine TM mit k-spurigem Band eine ” normale“ TM mit dem Bandalphabet Σ = (Σ1 ∪ {#}) × · · · × (Σk ∪ {#}) − {(#, . . . , #)}. 6.4.3 Mehr-Band TM In 3.2.4 haben wir das Modell einer k-Band-TM eingeführt: die TM hat k Bänder mit k unabhängigen Lese- und Schreibköpfen, aber mit einer Steuereinheit, die aufgrund des gegebenen Zustandes und der k gelesenen Symbole die Aktivität der k Köpfe steuert. Wir haben in 3.2.4 bewiesen, dass jede k-Band-TM durch eine TM simuliert werden kann. Jetzt beweisen wir, dass dies in polynomialer Zeit möglich ist: Satz 1. Jede k-Band-TM mit einer Zeitkomplexität t(n) ≥ n kann durch eine 1- Band-TM mit einer Zeitkomplexität O(t(n) 2 ) simuliert werden. Beweis. Wir führen den Beweis für k = 2 durch, der allgemeine Fall läßt sich ganz analog durchführen. Wir gehen von der Simulation, die in Kapitel 3 (siehe 3.2.2) beschrieben wurde, aus. Jeder Berechnungsschritt der Simulation hat drei Unterabschnitte. Abschnitt 1 (der Anfang) dauert einen Schritt, Abschnitt 2 (Kopfbewegung nach rechts oder links) benötigt höchstens O(t(n)) Schritte, denn der Kopf wird unter das nächste Symbol ⇑ bewegt und in der Zeit t(n) kann die k-Band- TM auf jedem Band höchstens O(t(n)) neue Felder beschreiben. Im Abschnitt 3 wird die Berechnung von Kopf i simuliert (in konstanter Zeit für i = 1, 2) und der Kopf wird zwischen die beiden Symbole ⇑ (in O(t(n)) Schritten bewegt. Jeder Simulationsdurchgang dauert also höchstens O(t(n)) Schritte. Da wir höchstens t(n) Durchgänge benötigen, hat die 1-Band-TM die Zeitkomplexität O(t(n) 2 ). Korollar 1. Jede Sprache, die von einer k-Band-TM mit polynomialer Zeitkomplexität akzeptiert wird, gehört zur Klasse P. Beweis. Falls t(n) ein Polynom ist, ist auch t(n) 2 ein Polynom. Bemerkung 1. Mit anderen Worten würde die Klasse P die gleiche bleiben, falls wir bei der Definition von P anstelle der TM die k-Band-TM benutzt hätten. Das gilt auch für die Klasse FP. 6.4.4 RAM In Kapitel 4 haben wir RAM als ein realistischeres Berechnungsmodell als TM eingeführt. Dann haben wir bewiesen, dass die Modelle RAM und TM die gleiche Leistung haben. Das gilt auch für die entsprechenden Klassen FP der in polynomialer Zeit berechenbaren Funktionen. Zuerst müssen wir aber erklären, was Zeitkomplexität für RAMs bedeutet. Es gibt zwei Varianten:
6.4. ROBUSTHEIT DER KLASSE P 149 Uniforme Zeitkomplexität. Hierbei gilt analog zu TM, dass jede Durchführung eines Befehls einem Schritt entspricht. Trotz der Analogie zu TM ist diese Variante nicht realistisch genug: ein Feld der RAM kann nämlich eine beliebig große Zahl enthalten. Wir können z.B. die ganze Eingabe s1 . . .sn als eine (sehr große) Zahl i codieren und i in einem Feld speichern – dann hat die Eingabe einfach die Größe 1. Deshalb hat uniforme Zeitkomplexität nur geringere theoretische Bedeutung (obwohl sie manchmal benutzt wird mit der Voraussetzung, dass die Codierung ” vernünftig“ durchgeführt wurde). Logarithmische Zeitkomplexität zählt die Anzahl aller Ziffern, die die Operanden des Befehls berechnen. Also, falls in einem Feld eine Zahl n steht, hat n die Größe dig(n) = kleinste ganze Zahl größer oder gleich log n (dig(n) ist die Zahl aller Ziffern von n.) Jeder Befehl zählt als k+1 Schritte, wobei k die Summe der ” Größen“ der Operanden ist. Z.B. der Befehl STORE i dauert Und STORE ∗i dauert 1 + dig(i) + dig(n) Schritte, wobei 〈R0〉 = n. 1 + dig(i) + dig(n) + dig(m) Schritte, wobei 〈R0〉 = n und 〈Ri〉 = m. Satz 2. Jede RAM mit logarithmischer Zeitkomplexität t(n) kann von einer Mehr- Band TM mit der Zeitkomplexität O(t(n) 2 ) simuliert werden. Beweis. In Satz 1 in 4.2 haben wir gezeigt, wie man eine RAM einem Programm von p Zeilen von einer 6-Band-TM simulieren kann. Wir müssen nur beweisen, dass diese TM die Zeitkomplexität O(t(n) 2 ) hat. Für jede Eingabe der Länge n dauert die Berechnung der RAM höchstens t(n) Schritte, und es werden höchstens t(n) Befehle durchgeführt. Daraus folgt, dass jedes Register eine Zahl mit O(t(n)) Ziffern enthält. Wir zeigen, dass jeder Befehl in höchstens O(t(n)) Schritten mit der TM simuliert wird – daraus folgt, dass die ganze Berechnung nur O(t(n) 2 ) Schritte dauert. Es ist klar, dass auf jedem Band der TM höchstens O(t(n)) Felder beschriftet werden. Der Beweis, dass jeder Befehl in O(t(n)) Schritten simuliert wird, muß für alle möglichen Befehle einzeln durchgeführt werden. Wir nehmen zur Illustration den Fall STORE ∗i (detailliert im Beweis von Satz 1 in 4.2 beschrieben); die Zeitkomplexität der anderen Befehle läßt sich analog schätzen. Zuerst sucht der Kopf auf Band 2 die Kombination $ $ i $ j $ $. Da auf Band 2 höchstens O(t(n)) Felder beschriftet worden sind, dauert die Suche höchstens O(t(n)) Schritte. Dann schreibt die TM die Zahl j auf Band 5, dazu werden auch O(t(n)) Schritte benötigt, denn j hat O(t(n)) Ziffern. Da 3t(n) = O(t(n)), sehen wir, dass STORE ∗i in O(t(n)) Schritten simuliert wird. Korollar 2. Jede RAM mit polynomialer logarithmischer Zeitkomplexität berechnet eine Funktion der Klasse FP. Beweis. In der Tat wird eine RAM, falls sie die Zeitkomplexität t(n) hat, wobei t(n) ein Polynom ist, von einer Mehr-Band-TM mit der Zeitkomplexität O(t(n) 2 )
- Seite 32 und 33: 98 KAPITEL 4. CHURCHSCHE THESE Zeil
- Seite 34 und 35: 100 KAPITEL 4. CHURCHSCHE THESE 0.
- Seite 36 und 37: 102 KAPITEL 4. CHURCHSCHE THESE 4.2
- Seite 38 und 39: 104 KAPITEL 4. CHURCHSCHE THESE Bei
- Seite 40 und 41: 106 KAPITEL 4. CHURCHSCHE THESE [uq
- Seite 42 und 43: 108 KAPITEL 4. CHURCHSCHE THESE Bew
- Seite 44 und 45: 110 KAPITEL 4. CHURCHSCHE THESE Alg
- Seite 46 und 47: 112 KAPITEL 4. CHURCHSCHE THESE All
- Seite 48 und 49: 114 KAPITEL 4. CHURCHSCHE THESE Bem
- Seite 50 und 51: 116 KAPITEL 4. CHURCHSCHE THESE Sei
- Seite 52 und 53: 118 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 54 und 55: 120 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 56 und 57: 122 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 58 und 59: 124 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 60 und 61: 126 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 62 und 63: 128 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 64 und 65: 130 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 66 und 67: 132 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 68 und 69: 134 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 70 und 71: 136 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 72 und 73: 138 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 74 und 75: 140 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 76 und 77: 142 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 78 und 79: 144 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 80 und 81: 146 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 84 und 85: 150 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 86 und 87: 152 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 88 und 89: 154 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 90 und 91: 156 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 92 und 93: 158 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 94 und 95: 160 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 96 und 97: 162 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 98 und 99: 164 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 100 und 101: 166 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 102 und 103: 168 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 104 und 105: 170 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 106 und 107: 172 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 108 und 109: 174 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 110 und 111: 176 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 112 und 113: 178 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 114 und 115: 180 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 116 und 117: 182 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 118 und 119: 184 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 120 und 121: 186 KAPITEL 6. KOMPLEXITÄT VON ALG
- Seite 122 und 123: 188 KAPITEL 6. KOMPLEXITÄT VON ALG
6.4. ROBUSTHEIT DER KLASSE P 149<br />
Uniforme Zeitkomplexität. Hierbei gilt analog zu TM, dass jede Durchführung<br />
e<strong>in</strong>es Befehls e<strong>in</strong>em Schritt entspricht. Trotz der Analogie zu TM ist diese Variante<br />
nicht realistisch genug: e<strong>in</strong> Feld der RAM kann nämlich e<strong>in</strong>e beliebig große<br />
Zahl enthalten. Wir können z.B. die ganze E<strong>in</strong>gabe s1 . . .sn als e<strong>in</strong>e (sehr große)<br />
Zahl i codieren und i <strong>in</strong> e<strong>in</strong>em Feld speichern – dann hat die E<strong>in</strong>gabe e<strong>in</strong>fach die<br />
Größe 1. Deshalb hat uniforme Zeitkomplexität nur ger<strong>in</strong>gere theoretische Bedeutung<br />
(obwohl sie manchmal benutzt wird mit der Voraussetzung, dass die Codierung<br />
” vernünftig“ durchgeführt wurde).<br />
Logarithmische Zeitkomplexität zählt die Anzahl aller Ziffern, die die Operanden<br />
des Befehls berechnen. Also, falls <strong>in</strong> e<strong>in</strong>em Feld e<strong>in</strong>e Zahl n steht, hat n die<br />
Größe<br />
dig(n) = kle<strong>in</strong>ste ganze Zahl größer oder gleich log n<br />
(dig(n) ist die Zahl aller Ziffern von n.)<br />
Jeder Befehl zählt als k+1 Schritte, wobei k die Summe der ” Größen“ der Operanden<br />
ist. Z.B. der Befehl STORE i dauert<br />
Und STORE ∗i dauert<br />
1 + dig(i) + dig(n) Schritte, wobei 〈R0〉 = n.<br />
1 + dig(i) + dig(n) + dig(m) Schritte, wobei 〈R0〉 = n und 〈Ri〉 = m.<br />
Satz 2. Jede RAM mit logarithmischer Zeitkomplexität t(n) kann von e<strong>in</strong>er Mehr-<br />
Band TM mit der Zeitkomplexität O(t(n) 2 ) simuliert werden.<br />
Beweis. In Satz 1 <strong>in</strong> 4.2 haben wir gezeigt, wie man e<strong>in</strong>e RAM e<strong>in</strong>em Programm<br />
von p Zeilen von e<strong>in</strong>er 6-Band-TM simulieren kann. Wir müssen nur beweisen, dass<br />
diese TM die Zeitkomplexität O(t(n) 2 ) hat.<br />
Für jede E<strong>in</strong>gabe der Länge n dauert die Berechnung der RAM höchstens t(n)<br />
Schritte, und es werden höchstens t(n) Befehle durchgeführt. Daraus folgt, dass<br />
jedes Register e<strong>in</strong>e Zahl mit O(t(n)) Ziffern enthält. Wir zeigen, dass jeder Befehl<br />
<strong>in</strong> höchstens O(t(n)) Schritten mit der TM simuliert wird – daraus folgt, dass die<br />
ganze Berechnung nur O(t(n) 2 ) Schritte dauert. Es ist klar, dass auf jedem Band<br />
der TM höchstens O(t(n)) Felder beschriftet werden.<br />
Der Beweis, dass jeder Befehl <strong>in</strong> O(t(n)) Schritten simuliert wird, muß für alle<br />
möglichen Befehle e<strong>in</strong>zeln durchgeführt werden. Wir nehmen zur Illustration den<br />
Fall<br />
STORE ∗i<br />
(detailliert im Beweis von Satz 1 <strong>in</strong> 4.2 beschrieben); die Zeitkomplexität der anderen<br />
Befehle läßt sich analog schätzen. Zuerst sucht der Kopf auf Band 2 die<br />
Komb<strong>in</strong>ation<br />
$ $ i $ j $ $.<br />
Da auf Band 2 höchstens O(t(n)) Felder beschriftet worden s<strong>in</strong>d, dauert die Suche<br />
höchstens O(t(n)) Schritte. Dann schreibt die TM die Zahl j auf Band 5, dazu<br />
werden auch O(t(n)) Schritte benötigt, denn j hat O(t(n)) Ziffern. Da 3t(n) =<br />
O(t(n)), sehen wir, dass STORE ∗i <strong>in</strong> O(t(n)) Schritten simuliert wird.<br />
Korollar 2. Jede RAM mit polynomialer logarithmischer Zeitkomplexität berechnet<br />
e<strong>in</strong>e Funktion der Klasse FP.<br />
Beweis. In der Tat wird e<strong>in</strong>e RAM, falls sie die Zeitkomplexität t(n) hat, wobei<br />
t(n) e<strong>in</strong> Polynom ist, von e<strong>in</strong>er Mehr-Band-TM mit der Zeitkomplexität O(t(n) 2 )