Komplexitaet-WS-2010.. - Parallele Systeme
Komplexitaet-WS-2010.. - Parallele Systeme
Komplexitaet-WS-2010.. - Parallele Systeme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Komplexitätstheorie - Wintersemester 2010/2011 65<br />
nur gefordert, dass wie in Definition 3.1.3(i) die minimale Berechnung die Zeitschranke einhält, sondern<br />
sogar, dass alle Berechnungen die Zeitschranke einhalten. Für zeitkonstruierbare Zeitschranken kommt<br />
dies jedoch auf das Gleiche heraus. Dies sieht man für Zeitschranken analog zu Lemma 3.4.2, wie folgt.<br />
Lemma 3.6.1<br />
Sei M1 eine t(n)-zeitbeschränkte TM mit t(n) ≥ n und sei t(n) zeitkonstruierbar. Dann gibt es eine<br />
t(n)-zeitbeschränkte TM M2 mit L(M1) = L(M2), die für alle Eingaben hält.<br />
Beweis: Die Maschine M2 sei folgendermaßen definiert:<br />
- Eingabe w; M2 simuliert die Maschine, die wegen der Zeitkonstruierbarkeit von t existiert und schreibt<br />
t(n) in Binärdarstellungauf ein extra Band. Dazu benötigt M2 wegen der ZeitkonstruierbarkeitO(t(n))<br />
Zeit.<br />
- M2 simuliert M1 und subtrahiert dabei bei jedem Schritt 1 von dem extra Band. Dies geht – wie wir<br />
in der Vorlesung, aber bisher nicht im Skriptum gesehen haben (aber s.u.) – in O(t(n)) Zeit.<br />
- Akzeptiert M1 das Wort w, bevor der Zähler auf dem extra Band 0 erreicht hat, tut M2 das Gleiche.<br />
- Wenn andererseits der Zähler auf dem extra Band 0 erreicht, akzeptiert M1 w nicht in t(n) Zeit, und<br />
deswegen hält M2 und verwirft w.<br />
M2 braucht insgesamt O(t(n)) Zeit. Auf Grund der Sätze 3.3.6 und 3.3.8 (Zeitbeschleunigung) gibt es<br />
eine Maschine M2, die das gleiche tut und auf allen Inputs der Länge n in t(n) Zeit anhält. 3.6.1<br />
Nachtrag: Herunterzählen eines Binärzählers. Gegeben sei ein Turingband und darauf das Wort 1 n (also<br />
n ≥ 1 Einsen) und einen Kopf, der auf der rechten Eins steht. Dieses Wort stellt binär die Zahl 2 n −1<br />
dar. Behauptung: Herunterzählen in binär bis zur Null geht in Zeit O(2 n ).<br />
Wir zählen die Schritte. Steht auf dem letzten Feld eine 1 (und das ist in 1<br />
2 ·2n aller Fälle der Fall), dann<br />
genügt ein einziger Schritt, die Änderung von 1 zu 0 auf dem letzten Feld. In den anderen 1<br />
2 ·2n Fällen<br />
steht auf dem letzten Feld eine 0. In der Hälfte dieser Fälle (also einem Viertel aller Fälle) steht auf dem<br />
vorletzten Feld eine 1. Dann genügen zwei Kopfbewegungen: ändere die 0 zu 1 und gehe nach links, dort<br />
ändere die 1 zu 0 und gehe nach rechts.Im restlichen Viertel aller Fälle steht auch auf dem vorletzten Feld<br />
eine 0. Diese Fälle unterteilen sich in zwei Achtel: einmal genügen 4 Schritte, und das restliche Achtel<br />
unterteilt sich wieder in zwei Sechzehntel, wobei einmal 6 Schritte genügen, und die restlichen Sechzehntel<br />
sich wieder in Zweiunddreißigstel halbieren, usw. Insgesamt ist die Anzahl der Schritte durch die Summe<br />
2 n ·( 1 2 4 6 8 10<br />
+ + + + + +...) (3.3)<br />
2 4 8 16 32 64<br />
nach oben beschränkt (es könnten etwaswenigerSchritte sein, weil vordem letzten Schritt schon entdeckt<br />
werden kann, dass nur noch Nullen da stehen). Die Summe 1 2 4 6 8 10<br />
2 + 4 + 8 + 16 + 32 + 64 + ... kann so<br />
aufgeschrieben werden:<br />
1<br />
2<br />
1 + 4<br />
+ 1<br />
4<br />
+ 1<br />
8<br />
+ 1<br />
8<br />
+ 1<br />
8<br />
+ 1<br />
8<br />
+ 1<br />
16<br />
+ 1<br />
16<br />
+ 1<br />
16<br />
+ 1<br />
16<br />
.<br />
+ 1<br />
32<br />
+ 1<br />
32<br />
+ 1<br />
32<br />
+ 1<br />
32<br />
... ≤ 1<br />
... ≤ 1/2<br />
... ≤ 1/4<br />
... ≤ 1/4<br />
.<br />
.