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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

3 BEZIEHUNGEN ZWISCHEN KOMPLEXITÄTSKLA<strong>SS</strong>EN 31<br />

• kopiert (q, σ1, . . . , σk) hinter Beschreibung von M (Scan auf Band<br />

2)<br />

• sucht in Beschreibung von M entsprechenden Übergang (p, ρ1,<br />

D1, . . . , ρk, Dk) und kopiert ihn ans Ende (Scan Band 3)<br />

• ändert Bandinhalt 2 entsprechend (Scan Band 2)<br />

Band 4: Nach S<strong>im</strong>ulation eines Schrittes von M wird die Uhr“ um<br />

”<br />

einen Schritt nach rechts versetzt.<br />

Zeitaufwand: Für kM-Band-Maschine M O(lMk 2 Mf(|x|)), wobei lM<br />

die max<strong>im</strong>ale Länge der Beschreibung von Zuständen und Symbolen<br />

von M und kM die Anzahl der Bänder von M ist. lMk 2 M ≤ f(n), da<br />

≤ |M| ≤ n.<br />

lM k 2 M<br />

≤ lkM<br />

M<br />

Falls Uf feststellt, daß M den Input x in f(|x|) Schritten akzeptiert, dann<br />

akzeptiert Uf auch M; x. Falls M x nicht akzeptiert oder die ” Uhr“ abgelaufen<br />

ist, weist Uf den Input <strong>zur</strong>ück.<br />

Zeitaufwand: O(f(n) · f(n) 2 ) = O(f(n) 3 ).<br />

Mit dem Theorem über linearen Speed-up (Theorem 2.2) kann Uf so modifiziert<br />

werden, daß höchstens f(n) 3 Schritte benötigt werden.<br />

Lemma 3.2 Hf /∈ TIME 1 n<br />

2f(⌊ 2 ⌋) , f(n) ≥ 10n + 4<br />

Beweis: (durch Widerspruch)<br />

Angenommen, es gibt Turing-Maschine MHf , die Hf in f(⌊ n<br />

2 ⌋) entscheidet.<br />

Dann konstruiere folgende Maschine Df (Diagonalisierung):<br />

Df (M) : if MHf (M; M) = ” yes“ then ” no“ else ” yes“<br />

Falls MHf eine k-Band-Turing-Maschine ist, dann ist Df eine (k + 1)-Band-<br />

Turing-Maschine mit:<br />

1. Die Eingabe x von Band 1 wird als x; x in |x| + 1<br />

<br />

1. Kopie<br />

|x| = 3|x| + 1 Schritten auf Band 2 kopiert.<br />

<br />

2. Kopie<br />

2. Dann Rücklauf auf Band 2 in 2|x| + 1 Schritten.<br />

+ |x|<br />

<br />

<strong>zur</strong>ücklaufen<br />

Insgesamt werden also 5|x| + 2 Schritte benötigt.<br />

Dann auf den Bändern 2 bis k + 1 Arbeit wie MHf . Bei Eingabe M (Maschinenbeschreibung)<br />

mit |M| = n braucht Df also<br />

<br />

n<br />

<br />

5|M| + 2 + 1/2f ≤ 1/2f(n) + 1/2f(n) = f(n)<br />

2<br />

Schritte. Das obige ≤-Zeichen gilt, da f(n) ≥ 10n + 4 und f monoton steigende<br />

Funktion (da eigentliche Komplexitätsfunktion).<br />

Gilt: Df (Df)?<br />

+

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!