Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ... Skript in PDF - Theoretische Informatik - Technische Universität ...
80 KAPITEL 3. TURINGMASCHINEN ist. Wir können sie wie folgt als ” normale“ TM beschreiben, wobei der Initialzustand (q0, s0) auch final ist: M = (Q, Σ, δ, (q0, s0), (q0, s0)) mit den folgenden Übergangsregeln: ((q0, s0), s) → ((q1, s), R) für alle s ∈ Σ ((q1, s), s ′ ) → ((q1, s), R) für alle s ′ ∈ Σ, s ′ = s ((q1, s), #) → ((q0, s0), #). Zum Beispiel wird die Eingabe stt(t = s) wie folgt berechnet: ((q0, s0), stt) ⊢ ((q1, s), stt) ⊢ ((q1, s), stt) ⊢ ((q1, s), stt#) ⊢ ((q0, s0), stt#). Hier hält die TM und akzeptiert. 3.2.3 TM mit erweitertem Bandalphabet Manchmal ist es geschickt, zusätzliche (Hilfs-)Symbole auf das Band schreiben zu dürfen, die nicht zum Eingabealphabet gehören. Das bedeutet, dass außer dem Eingabealphabet Σ noch ein Bandalphabet Γ mit Σ ⊆ Γ gegeben wird und die Übergangsfunktion δ mit allen Symbolen aus Γ arbeitet, d.h., δ ist eine partielle Funktion mit Definitionsbereich Q×(Γ∪{#}) und Wertebereich Q×(Γ∪{#, L, R}). Eine TM mit erweitertem Bandalphabet ist also ein 6-Tupel M = (Q, Σ, Γ, δ, q0, qF) wobei Σ ⊆ Γ das Eingabealphabet und δ : Q × (Γ ∪ {#}) → Q × (Γ ∪ {#, L, R}) eine partielle Funktion ist. Die Sprache, die M akzeptiert, ist die Sprache L(M) ⊆ Σ ∗ aller Wörter über dem (kleineren) Eingabealphabet Σ, für die M im Finalzustand hält. Beispiel 2. Eine 1-Band TM, die die Sprache {a n b n c n ; n ≥ 1} akzeptiert. Hier haben wir Σ = {a, b, c}, und wir benutzen Γ = {a, b, c, [, ]}. Die TM wird erst die Eingabe mit [ und ] umklammern: (q0, a) → (q0, L) (q0, #) → (q0, [ ) (q0, [ ) → (q1, R) (q1, x) → (q1, R) füR x = a, b, c (q1, #) → (q1, ] ). Jetzt kann sie die TM von Beispiel 3 in Abschnitt 3.1 simulieren. Bemerkung 2. Für jede TM mit erweitertem Bandalphabet M gibt es eine ( ” normale“) TM, die M simuliert. Das Eingabealphabet der neuen TM ist das Bandalphabet Γ von M. Wir überprüfen zuerst (unter Verwendung eines zusätzlichen Gedächtnisses, das Σ beinhaltet), ob jedes Symbol der Eingabe in Σ liegt. Falls nein, hält die TM und akzeptiert nicht. Falls ja, wird weiter wie bei M berechnet. 3.2.4 TM mit mehrspurigem Band Wir arbeiten hier mit einer Modifikation von TM, die darin besteht, dass das Band in k Spuren unterteilt wird, die alle gleichzeitig gelesen werden. Stellen wir uns erst vor, dass k = 2 ist. Wir schreiben Symbole aus dem Eingabealphabet Σ = Σ1 auf Spur 1 und Symbole eines Hilfsalphabetes Σ2 auf Spur 2: . . . # 0 1 0 0 1 # # # . . . . . . # # a # b # # a # ⇑ . . .
3.2. MODIFIKATIONEN VON TURINGMASCHINEN 81 Die Maschine entscheidet in jedem Schritt abhängig vom Zustand und dem Inhalt beider Spuren (1) was der nächste Zustand wird und (2) ob sich der Kopf bewegt oder beide Spuren gleichzeitig überschrieben werden. Eine 2-Spur-TM ist eigentlich eine TM im vorher definierten Sinne, deren Bandalphabet aus Paaren (s1, s2), mit s1 ∈ Σ1 und s2 ∈ Σ2, geformt wird. Die einzige Ausnahme ist das Paar (#, #), das jetzt als Blank-Symbol dient. Also ist eine 2- Spur-TM einfach eine TM mit dem Eingabealphabet Σ = Σ1 × Σ2 − {(#, #)}. Analoges gilt für k-spurige Maschinen, die auf der i-ten Spur Symbole aus Σi tragen (i = 1, . . .,k): das sind also die ” normalen“ TM mit Eingabealphabet Σ = Σ1 × Σ2 × · · · × Σk − {(#, #, . . .,#)} und mit dem Blanksymbol (#, #, . . . , #). Beispiel 3. Primzahltest Wir zeigen, wie man eine 3-spurige TM konstruiert, die die Sprache L aller Primzahlen (in binärer Darstellung) akzeptiert. Hiermit kann man auch gut die Idee von Turing illustrieren, dass jeder Algorithmus mit einer TM automatisiert werden kann. Wir verwenden hier den primitiven Algorithmus, der jede Zahl n durch alle Testzahlen 2, 3, 4, . . ., n − 1 teilt und n akzeptiert, falls alle Divisionen einen positiven Rest ergeben. EINGABESPUR TESTZAHLSPUR HILFSSPUR . . . 1 0 1 1 1 . . . . . . 1 0 1 . . . . . . 1 0 1 1 1 ⇑ . . . q0 Die Spuren der TM sind (1) Eingabespur, die während der Berechnung unverändert bleibt, (2) Testzahlspur, die am Anfang mit 1 beschriftet wird und in jedem Berechnungsdurchgang um eins vergrößert wird (sodass in dem ersten Berechnungsdurchgang durch 2 dividiert wird, im zweiten mit 3, usw.) und (3) eine Hilfsspur. Wir schreiben am Anfang also die gegebene Zahl n = 1, 2, 3, . . . auf Spur 1, die Zahl 1 auf Spur 2 und nichts auf Spur 3. Der Initialzustand q0 überprüft (durch Vergleich mit Spur 2), ob auf Spur 1 eine Zahl n ≥ 2 steht. Im Fall von n = 0 oder n = 1, wird der Zustand q0 zu q−, einem nicht-finalen Haltezustand verändert. (Also werden 0 und 1 nicht akzeptiert.) Falls n ≥ 2 ist, werden Berechnungsdurchgänge rekursiv durchgeführt, die man wie folgt beschreiben kann: Anfang eines Berechnungsdurchganges: Spur 1 wird auf Spur 3 kopiert. Die Zahl auf Spur 2 wird um 1 vergrößert. Die Spuren 1 und 2 werden verglichen und falls die Zahlen gleich sind, wird der Zustand zu q+, einem finalen Haltezustand geändert (die Eingabe wird also akzeptiert, denn keine Zahl kleiner n, die n teilt, wurde gefunden). Rumpf eines Berechnungsdurchganges: Die Zahl von Spur 3 wird durch die auf Spur 2 dividiert (z.B. durch wiederholte Subtraktion). Ende eines Berechnungsdurchganges: Jetzt steht auf Spur 3 der Rest der Eingabe modulo der Testzahl. Falls der Rest 0 ist, wird der Zustand zu q− verändert. Falls der Rest positiv ist, wird der Kopf nach links zum ersten Symbol 1 von Spur 1 geschoben und ein neuer Berechnungsdurchgang beginnt. Es ist leicht einzusehen, dass sich diese informale Beschreibung der Turingmaschine relativ einfach durch eine formal definierte TM realisieren lässt.
- Seite 1: THEORETISCHE INFORMATIK Vorlesungss
- Seite 4 und 5: ii INHALTSVERZEICHNIS 3.4 Nichtdete
- Seite 6 und 7: iv INHALTSVERZEICHNIS
- Seite 8 und 9: 74 KAPITEL 3. TURINGMASCHINEN hat h
- Seite 10 und 11: 76 KAPITEL 3. TURINGMASCHINEN Die B
- Seite 12 und 13: 78 KAPITEL 3. TURINGMASCHINEN Diese
- Seite 16 und 17: 82 KAPITEL 3. TURINGMASCHINEN 3.2.5
- Seite 18 und 19: 84 KAPITEL 3. TURINGMASCHINEN (q0,
- Seite 20 und 21: 86 KAPITEL 3. TURINGMASCHINEN 3. Di
- Seite 22 und 23: 88 KAPITEL 3. TURINGMASCHINEN 4. L
- Seite 24 und 25: 90 KAPITEL 3. TURINGMASCHINEN 3.4 N
- Seite 26 und 27: 92 KAPITEL 3. TURINGMASCHINEN 1. Di
- Seite 28 und 29: 94 KAPITEL 3. TURINGMASCHINEN sie k
- Seite 30 und 31: 96 KAPITEL 3. TURINGMASCHINEN falls
- Seite 32 und 33: 98 KAPITEL 4. CHURCHSCHE THESE Zeil
- Seite 34 und 35: 100 KAPITEL 4. CHURCHSCHE THESE 0.
- Seite 36 und 37: 102 KAPITEL 4. CHURCHSCHE THESE 4.2
- Seite 38 und 39: 104 KAPITEL 4. CHURCHSCHE THESE Bei
- Seite 40 und 41: 106 KAPITEL 4. CHURCHSCHE THESE [uq
- Seite 42 und 43: 108 KAPITEL 4. CHURCHSCHE THESE Bew
- Seite 44 und 45: 110 KAPITEL 4. CHURCHSCHE THESE Alg
- Seite 46 und 47: 112 KAPITEL 4. CHURCHSCHE THESE All
- Seite 48 und 49: 114 KAPITEL 4. CHURCHSCHE THESE Bem
- Seite 50 und 51: 116 KAPITEL 4. CHURCHSCHE THESE Sei
- Seite 52 und 53: 118 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 54 und 55: 120 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 56 und 57: 122 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 58 und 59: 124 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 60 und 61: 126 KAPITEL 5. UNENTSCHEIDBARE PROB
- Seite 62 und 63: 128 KAPITEL 5. UNENTSCHEIDBARE PROB
80 KAPITEL 3. TURINGMASCHINEN<br />
ist. Wir können sie wie folgt als ” normale“ TM beschreiben, wobei der Initialzustand<br />
(q0, s0) auch f<strong>in</strong>al ist:<br />
M = (Q, Σ, δ, (q0, s0), (q0, s0))<br />
mit den folgenden Übergangsregeln:<br />
((q0, s0), s) → ((q1, s), R) für alle s ∈ Σ<br />
((q1, s), s ′ ) → ((q1, s), R) für alle s ′ ∈ Σ, s ′ = s<br />
((q1, s), #) → ((q0, s0), #).<br />
Zum Beispiel wird die E<strong>in</strong>gabe stt(t = s) wie folgt berechnet:<br />
((q0, s0), stt) ⊢ ((q1, s), stt) ⊢ ((q1, s), stt) ⊢ ((q1, s), stt#) ⊢ ((q0, s0), stt#).<br />
Hier hält die TM und akzeptiert.<br />
3.2.3 TM mit erweitertem Bandalphabet<br />
Manchmal ist es geschickt, zusätzliche (Hilfs-)Symbole auf das Band schreiben zu<br />
dürfen, die nicht zum E<strong>in</strong>gabealphabet gehören. Das bedeutet, dass außer dem<br />
E<strong>in</strong>gabealphabet Σ noch e<strong>in</strong> Bandalphabet Γ mit Σ ⊆ Γ gegeben wird und die<br />
Übergangsfunktion δ mit allen Symbolen aus Γ arbeitet, d.h., δ ist e<strong>in</strong>e partielle<br />
Funktion mit Def<strong>in</strong>itionsbereich Q×(Γ∪{#}) und Wertebereich Q×(Γ∪{#, L, R}).<br />
E<strong>in</strong>e TM mit erweitertem Bandalphabet ist also e<strong>in</strong> 6-Tupel<br />
M = (Q, Σ, Γ, δ, q0, qF)<br />
wobei Σ ⊆ Γ das E<strong>in</strong>gabealphabet und<br />
δ : Q × (Γ ∪ {#}) → Q × (Γ ∪ {#, L, R})<br />
e<strong>in</strong>e partielle Funktion ist. Die Sprache, die M akzeptiert, ist die Sprache<br />
L(M) ⊆ Σ ∗<br />
aller Wörter über dem (kle<strong>in</strong>eren) E<strong>in</strong>gabealphabet Σ, für die M im F<strong>in</strong>alzustand<br />
hält.<br />
Beispiel 2. E<strong>in</strong>e 1-Band TM, die die Sprache {a n b n c n ; n ≥ 1} akzeptiert. Hier<br />
haben wir Σ = {a, b, c}, und wir benutzen Γ = {a, b, c, [, ]}. Die TM wird erst die<br />
E<strong>in</strong>gabe mit [ und ] umklammern:<br />
(q0, a) → (q0, L)<br />
(q0, #) → (q0, [ )<br />
(q0, [ ) → (q1, R)<br />
(q1, x) → (q1, R) füR x = a, b, c<br />
(q1, #) → (q1, ] ).<br />
Jetzt kann sie die TM von Beispiel 3 <strong>in</strong> Abschnitt 3.1 simulieren.<br />
Bemerkung 2. Für jede TM mit erweitertem Bandalphabet M gibt es e<strong>in</strong>e ( ” normale“)<br />
TM, die M simuliert. Das E<strong>in</strong>gabealphabet der neuen TM ist das Bandalphabet<br />
Γ von M. Wir überprüfen zuerst (unter Verwendung e<strong>in</strong>es zusätzlichen<br />
Gedächtnisses, das Σ be<strong>in</strong>haltet), ob jedes Symbol der E<strong>in</strong>gabe <strong>in</strong> Σ liegt. Falls<br />
ne<strong>in</strong>, hält die TM und akzeptiert nicht. Falls ja, wird weiter wie bei M berechnet.<br />
3.2.4 TM mit mehrspurigem Band<br />
Wir arbeiten hier mit e<strong>in</strong>er Modifikation von TM, die dar<strong>in</strong> besteht, dass das Band<br />
<strong>in</strong> k Spuren unterteilt wird, die alle gleichzeitig gelesen werden. Stellen wir uns erst<br />
vor, dass k = 2 ist. Wir schreiben Symbole aus dem E<strong>in</strong>gabealphabet Σ = Σ1 auf<br />
Spur 1 und Symbole e<strong>in</strong>es Hilfsalphabetes Σ2 auf Spur 2:<br />
. . . # 0 1 0 0 1 # # # . . .<br />
. . . # # a # b # # a #<br />
⇑<br />
. . .