Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ... Skript in PDF - Theoretische Informatik - Technische Universität ...

iti.cs.tu.bs.de
von iti.cs.tu.bs.de Mehr von diesem Publisher
18.09.2013 Aufrufe

84 KAPITEL 3. TURINGMASCHINEN (q0, aabbcc, #) ⊢ (q0, aabbcc, x) ⊢ (q0, aabbcc, x#) ⊢ (q0, aabbcc, xx) ⊢ (q0, aabbcc, xx#) ⊢ (q0, aabbcc, xx#) ⊢ (q0, aabbcc, xx#) ⊢ (q0, aabbcc, xx#) ⊢ (q0, aabbcc#, xx#) ⊢ (qF , aabbcc#, xx#) und wird akzeptiert. Die Eingabe aabcc wird wie folgt berechnet: (q0, aabcc, #) ⊢ (q0, aabcc, x) ⊢ (q0, aabcc, x#) ⊢ (q0, aabcc, xx) ⊢ (q0, aabcc, xx#) ⊢ (q0, aabcc, xx) ⊢ (q0, aabcc, xx#) und wird nicht akzeptiert. Bemerkung 3. Simulation einer 2-Band-TM durch eine 1-Band-TM Sei M = (Q, Σ, δ, q0, F) eine 2-Band-TM. Wir konstruieren eine 1-Band-TM mit zusätzlichem Gedächtnis, M, die die Maschine M Schritt für Schritt simuliert. Das Band von M ist 4-spurig: Band 1 Band 2 a a b a a 0 1 0 ⇑ ⇑ Maschine M . . . a a b a a # # # # . . . . . . # # # ⇑ # # # # # . . . . . . 0 1 0 # # # # # # . . . . . . ⇑ # # # # # # # # . . . Maschine M Band 1 der Maschine M wird auf die Spur 1 von M kopiert, die Kopfposition des Kopfes von Band 1 steht auf der Spur 2. Analog wird Band 2 auf Spur 3 von M kopiert und die Kopfposition des Bandes auf Spur 4. Das Eingabealphabet von M ist also Σ = (Σ ∪ {#}) × {⇑, #} × (Σ ∪ {#}) × {⇑, #} − {(#, #, #, #)}, wobei (#, #, #, #) das Blank-Symbol ist. Die Zustände von M und M sind dieselben. Die Maschine M muss sich die letzten von Kopf 1 und Kopf 2 gelesenen Symbole merken, also hat sie ein zusätzliches Gedächtnis der Form (s1, s2, x), wobei si ∈ Σi ∪ {#} das aktuelle Symbol von Band i (= 1, 2) der Turingmaschine M ist und x ∈ {l, r} aussagt, ob Kopf 2 (also das Symbol ⇑ auf Spur 4)links oder rechts von Kopf 1 (dem Symbol ⇑ auf Spur 2) steht. 1. Anfang der Simulation: Auf Spur 1 steht die Eingabe v1v2 . . . vn von M, die Spuren 2 - 4 sind leer. Wir schreiben je ein ⇑ auf die Spuren 2 und 4 unter v1 von Spur 1. SPUR 1 SPUR 2 SPUR 3 SPUR 4 . . . # v1 v2 . . . vn # . . . . . . # ⇑ # . . . . . . . . . # # # . . . . . . . . . # ⇑ # . . . . . .

3.3. ENTSCHEIDBARE PROBLEME UND REKURSIVE SPRACHEN 85 2. Berechnungsschritt: Am Anfang der Simulation einers Schrittes von M steht der Kopf von M unter dem Symbol ⇑ auf Spur 2. Das gerade gelesene Symbol von Spur 1 wird als s1 im zusätzlichen Gedächtnis gespeichert. Danach sucht der Kopf von M das Symbol ⇑ auf Spur 4: entweder stehen die beiden Symbole ⇑ untereinander, sonst suchen wir links bzw. rechts, falls im zusätzlichen Gedächtnis x = l bzw. x = r steht. Sobald ⇑ gefunden ist, wird das gerade gelesene Symbol von Spur 3 als s2 gespeichert. Aufgrund des Zustandes q von M und des Paares (s1, s2) im zusätzlichen Gedächtnis werden jetzt die Kopfpositionssymbole auf den Spuren 3 und 4 so bewegt, wie die Maschine M die Köpfe bewegt, und die Symbole auf den Spuren 1 und 3 werden so überschrieben, wie M die Symbole auf beiden Bändern überschreibt. (Das geschieht in endlich vielen Schritten der Kopfbewegung von M.) Die Eingabe x ∈ {l, r} im Gedächtnis wir aktualisiert und der Kopf wird nach ⇑ auf Spur 2 bewegt. 3. Ende der Simulation: Die Maschine M hält genau dann, wenn eine Haltekonfiguration von M erreicht wird. Und M akzeptiert genau dann, wenn M akzeptiert. Satz 1. Für jede k-Band-TM gibt es eine (1-Band-) TM, die dieselbe Sprache akzeptiert. Beweis. Für k = 2 folgt der Beweis aus der gerade beschriebenen Simulation und dem Fakt, dass eine 4-spurige TM mit zusätzlichem Gedächtnis durch eine TM simuliert werden kann (siehe Kapitel 3.2.2). Für k > 2 ist der Beweis analog und wird dem Leser überlassen. 3.3 Entscheidbare Probleme und rekursive Sprachen Wie oben erwähnt, repräsentiert eine TM eine formale Darstellung des Begriffs eines Algorithmus, indem sie eine beliebige Eingabe berechnet (und entweder akzeptiert oder nicht). Die Frage ist, ob wir nur terminierende Algorithmen betrachten dürfen, oder ob wir auch Algorithmen erlauben, die unendlich lange berechnen. Im Berechnungsmodell der TM entsprechen den terminierenden Algorithmen die TM, die auf jede Eingabe halten. Das bedeutet, dass das Nichtakzeptieren immer dadurch erfolgt, dass die TM in einem nichtfinalen Zustand hält. Die allgemeineren, nicht terminierenden Algorithmen werden von allgemeinen TM repräsentiert. Probleme, die ein terminierender Algorithmus löst, heißen entscheidbar. Die entsprechenden formalen Sprachen werden entweder entscheidbar oder rekursiv genannt. Die allgemeineren Sprachen heißen semientscheidbar oder (aus Gründen, die wir später erklären) rekursiv aufzählbar: Definition. Eine Sprache L heißt rekursiv oder entscheidbar, falls es eine Turingmaschine M gibt, die L akzeptiert und auf jede Eingabe hält. Eine Sprache L heißt rekursiv aufzählbar oder semientscheidbar, falls es eine Turingmaschine M gibt, die L akzeptiert. Beispiel 1. Die folgenden Sprachen sind rekursiv, denn die oben konstruierten TM halten auf jede Eingabe: 1. Die Sprache aller durch 5 teilbaren Zahlen (siehe Beispiel 1 in Abschnitt 3.1). 2. Die Sprache aller Primzahlen (siehe Beispiel 3 in Abschnitt 3.2.4).

84 KAPITEL 3. TURINGMASCHINEN<br />

(q0, aabbcc, #) ⊢ (q0, aabbcc, x)<br />

⊢ (q0, aabbcc, x#)<br />

⊢ (q0, aabbcc, xx)<br />

⊢ (q0, aabbcc, xx#)<br />

⊢ (q0, aabbcc, xx#)<br />

⊢ (q0, aabbcc, xx#)<br />

⊢ (q0, aabbcc, xx#)<br />

⊢ (q0, aabbcc#, xx#)<br />

⊢ (qF , aabbcc#, xx#)<br />

und wird akzeptiert. Die E<strong>in</strong>gabe aabcc wird wie folgt berechnet:<br />

(q0, aabcc, #) ⊢ (q0, aabcc, x)<br />

⊢ (q0, aabcc, x#)<br />

⊢ (q0, aabcc, xx)<br />

⊢ (q0, aabcc, xx#)<br />

⊢ (q0, aabcc, xx)<br />

⊢ (q0, aabcc, xx#)<br />

und wird nicht akzeptiert.<br />

Bemerkung 3. Simulation e<strong>in</strong>er 2-Band-TM durch e<strong>in</strong>e 1-Band-TM<br />

Sei M = (Q, Σ, δ, q0, F) e<strong>in</strong>e 2-Band-TM. Wir konstruieren e<strong>in</strong>e 1-Band-TM mit<br />

zusätzlichem Gedächtnis, M, die die Masch<strong>in</strong>e M Schritt für Schritt simuliert. Das<br />

Band von M ist 4-spurig:<br />

Band 1<br />

Band 2<br />

a a b a a<br />

0 1 0<br />

⇑<br />

⇑<br />

Masch<strong>in</strong>e M<br />

. . . a a b a a # # # # . . .<br />

. . . # # # ⇑ # # # # # . . .<br />

. . . 0 1 0 # # # # # # . . .<br />

. . . ⇑ # # # # # # # # . . .<br />

Masch<strong>in</strong>e M<br />

Band 1 der Masch<strong>in</strong>e M wird auf die Spur 1 von M kopiert, die Kopfposition des<br />

Kopfes von Band 1 steht auf der Spur 2. Analog wird Band 2 auf Spur 3 von M<br />

kopiert und die Kopfposition des Bandes auf Spur 4. Das E<strong>in</strong>gabealphabet von M<br />

ist also<br />

Σ = (Σ ∪ {#}) × {⇑, #} × (Σ ∪ {#}) × {⇑, #} − {(#, #, #, #)},<br />

wobei (#, #, #, #) das Blank-Symbol ist.<br />

Die Zustände von M und M s<strong>in</strong>d dieselben. Die Masch<strong>in</strong>e M muss sich die letzten<br />

von Kopf 1 und Kopf 2 gelesenen Symbole merken, also hat sie e<strong>in</strong> zusätzliches<br />

Gedächtnis der Form (s1, s2, x), wobei si ∈ Σi ∪ {#} das aktuelle Symbol von Band<br />

i (= 1, 2) der Tur<strong>in</strong>gmasch<strong>in</strong>e M ist und x ∈ {l, r} aussagt, ob Kopf 2 (also das<br />

Symbol ⇑ auf Spur 4)l<strong>in</strong>ks oder rechts von Kopf 1 (dem Symbol ⇑ auf Spur 2)<br />

steht.<br />

1. Anfang der Simulation: Auf Spur 1 steht die E<strong>in</strong>gabe v1v2 . . . vn von M, die<br />

Spuren 2 - 4 s<strong>in</strong>d leer. Wir schreiben je e<strong>in</strong> ⇑ auf die Spuren 2 und 4 unter v1<br />

von Spur 1.<br />

SPUR 1<br />

SPUR 2<br />

SPUR 3<br />

SPUR 4<br />

. . . # v1 v2 . . . vn # . . .<br />

. . . # ⇑ # . . .<br />

. . .<br />

. . . # # # . . .<br />

. . .<br />

. . . # ⇑ # . . .<br />

. . .

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!