03.09.2013 Aufrufe

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitaet-WS-2010.. - Parallele Systeme

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 />

.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!