29.10.2013 Aufrufe

Skript zur Vorlesung Komplexitätstheorie im SS 1996

Skript zur Vorlesung Komplexitätstheorie im SS 1996

Skript zur Vorlesung Komplexitätstheorie im SS 1996

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.

2 TURING-MASCHINE 17<br />

• ⊳ – markiert Ende einer Bandinschrift<br />

• ⊳ ′ – siehe weiter unten...<br />

Eine Konfiguration von M der Form (q, w1, u1, . . . , wk, uk) wird s<strong>im</strong>uliert<br />

durch eine Konfiguration von M ′ der Form (q, ⊲, w ′ 1 u1 ⊳ w ′ 2 u2 ⊳ . . . w ′ k uk ⊳ ⊳).<br />

Dabei entsteht w ′ i aus wi wie folgt: ⊲ wird durch ⊲ ′ und σi (letztes Symbol<br />

von wi) durch σi ersetzt, ⊳⊳ signalisiert das Ende des Strings von M ′ .<br />

Anfang der S<strong>im</strong>ulation: Die Eingabe ⊲x wird geändert in ⊲⊲ ′ x⊳⊲ ′ ⊳ . . . ⊲ ′ ⊳<br />

<br />

k−1 mal<br />

⊲ ′ ⊳ steht für ein leeres i-tes Band, i ≥ 2. Diese Eingabeänderung kann erreicht<br />

werden durch: ⊲⊔x (Verschieben, siehe frühere Maschinen) und Schreiben<br />

von ⊲ ⊲ ′ x. Dies erfordert 3 + 1 + 2(k − 1) = 2(k + 2) neue Zustände.<br />

Ein Übergang von M wird <strong>im</strong> wesentlichen durch zwei Scans von links nach<br />

rechts und <strong>zur</strong>ück in M ′ s<strong>im</strong>uliert.<br />

• Be<strong>im</strong> ersten Scan merkt sich M ′ die markierten Symbole (σi entspricht<br />

i-ter Kopf liest σi). Ein Zustand in M ′ ist [q, σ1, . . . , σk], wobei q der<br />

Originalzustand aus M ist.<br />

• Be<strong>im</strong> zweiten Scan wird in Übereinst<strong>im</strong>mung mit der Übergangsfunktion<br />

δ von M <strong>im</strong> i-ten Bandabschnitt σi überschrieben und entsprechend<br />

der Kopfbewegung ein neues Zeichen markiert.<br />

Problem: Falls <strong>im</strong> i-ten Bereich der i-te Kopf über das bisherige Ende hinaus<br />

will, d. h. der Kopf zeigt <strong>im</strong> i-ten Band der Originalmaschine M auf ⊔.<br />

Hierzu markiere an all diesen Stellen das ” Bandende“ <strong>im</strong> Bereich mit ⊳ ′ . Für<br />

jede dieser Stellen muß dann ein ⊔ eingefügt werden und der Rest um eine<br />

Position nach rechts verschoben (analog zu unserer ersten Maschine).<br />

Die S<strong>im</strong>ulation fährt solange fort, bis M hält. Dann löscht M ′ alle Teilstrings<br />

bis auf den letzten und hält.<br />

Aufwand bei Eingabe von x: M hält innerhalb Zeit f(|x|), d. h. auf keinem<br />

Band von M steht ein Wort länger als f(|x|), da in dieser Zeit höchstens<br />

f(|x|) Symbole betrachtet und geschrieben werden können. Also ist die<br />

Länge des Strings auf Band von M ′ ≤ k(f(|x|) + 1) + 2 (wegen der zusätzlichen<br />

⊳’s und ⊲ am Anfang). Das heißt, daß für die beiden oben erwähnte<br />

Scans 4k(f(|x|) + 1) + 8 Schritte benötigt werden.<br />

Mit dem Einfügen von problematischen ” ⊔“ ’s in jedem der k Teilbereiche<br />

summieren sich die Anzahl der Schritte auf 2k(k(f(|x|) + 1)) + 2), d. h., es<br />

werden O(k 2 f(|x|) 2 ) Schritte in M ′ für jeden Schritt in M benötigt.<br />

Da k aber konstant und unabhängig von |x| ist, ist der Gesamtzeitbedarf in<br />

O(f(|x|) 2 . q.e.d.<br />

Bemerkung: Dieses Theorem demonstriert also, daß die Hinzunahme einer<br />

beschränkten (konstanten) Anzahl von Bändern die Effizienz der Berechnung<br />

höchstens polynomiell beeinflußt.<br />

⊳.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!