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

88 KAPITEL 3. TURINGMASCHINEN 4. L ∗ . Dieser Beweis ist analog zu 3. Zunächst prüft M, ob das Eingabeband leer ist und akzeptiert gegebenenfalls. Ansonsten erzeugen wir auf Band 2, statt nur einer Zahl i allein, alle möglichen aufsteigenden Listen (i0, i1, . . . , ir) von Zahlen mit 0 = i0 < i1 < i2 < · · · < ir = n wobei r = 1, . . .,n. Band 3 simuliert M: wir kopieren erst s1s2 . . .si1 auf Band 3 und, falls die Simulation in einem finalen Zustand von M hält, si1+1si1+2 . . . si2 auf Band 3 und, falls die Simulation wieder in einem finalen Zustand hält, si2+1 . . . si3 auf Band 3 usw. Falls alle Simulationen in finalen Zuständen von M halten, wird die Eingabe von M akzeptiert. Falls irgendeine der Simulationen in einem nichtfinalen Zustand hält, beginnt eine neue Etappe (mit der nächsten Liste auf Band 2). Wenn alle Listen auf Band 2 durchgegangen worden sind, ohne dass bis dahin M akzeptiert hat, hält M in einem nichtfinalen Zustand. Bemerkung 3. Die Bezeichnung ” rekursiv aufzählbar“ für die von TM akzeptierten Sprachen stammt von einer anderen Weise, wie TM angewendet werden können: zur Erzeugung von Sprachen. Wir beginnen mit dem leeren Band, also mit der Konfiguration (q0, ###) und lassen die TM berechnen (bis sie hält, oder unendlich lange, falls sie nie hält). Alle Konfigurationen, die den finalen Zustand qF haben, werden durchsucht und das Wort w rechts vom Lesekopf wird notiert; die Konfiguration hat also die Form (qF , vsw) (v ∈ Σ ∗ , s ∈ Σ), und wir notieren w. Die Sprache aller Wörter w, die so auf dem Band erzeugt werden, wird mit G(M) bezeichnet. Formale Definition: G(M) = {w; w ∈ Σ ∗ und es existieren v ∈ Σ ∗ und s ∈ Σ mit (q0, ###) ⊢ ∗ (qF , vsw)} Wir nennen G(M) die von M aufgezählte Sprache. Beispiel 4. Die TM M = ({q0, q1, qF }, {|}, δ, q0, qF) mit den Übergangsregeln (q0, |) → (q1, L) (q0, #) → (q0, |) (q1, |) → (qF,L) (q1, #) → (q1, |) (qF,#) → (q0, |) berechnet die leere Eingabe wie folgt: (q0, ###) ⊢ (q0, #|#) ⊢ (q1, #|#) ⊢ (q1, #||#) ⊢ (qF,#||#) also || ∈ G(M) ⊢ (q0, #|||#) ⊢ (q1, #|||#) ⊢ (q1, #||||#) ⊢ (qF,#||||#) also |||| ∈ G(M) ⊢ (q0, #|||||#) . . Wir sehen, dass M die Sprache aller positiven geraden Zahlen aufzählt. Satz 2. Jede Sprache G(M), die von einer Turingmaschine M aufgezählt wird, ist rekursiv aufzählbar. Beweis. Wir konstruieren eine 2-Band Turingmaschine M ′ , die die Sprache G(M) akzeptiert. Band 1 ist ein read-only-Eingabeband. Auf Band 2 wird die Maschine

3.3. ENTSCHEIDBARE PROBLEME UND REKURSIVE SPRACHEN 89 M simuliert (mit einem zu Beginn leeren Band 2). Jedesmal, wenn M ihren finalen Zustand erreicht, überprüft die Maschine M ′ , ob das Wort rechts des Kopfes auf Band 2 mit der Eingabe auf Band 1 übereinstimmt. Falls ja, hält M ′ und akzeptiert. Falls nein, geht die Simulation auf Band 2 weiter. Dann gilt L(M ′ ) = G(M). Satz 3. Jede rekursiv aufzählbare Sprache L kann durch eine Turingmaschine aufgezählt werden, d.h. hat die Form L = G(M) für eine Turingmaschine M. Beweis. 1. Für jede rekursive Sprache L zeigen wir, dass L von einer TM aufgezählt werden kann. Wir haben also eine Turingmaschine M0 mit L = L(M0), die auf jede Eingabe hält. Wir konstruieren eine 4-Band-TM M, die die Sprache L aufzählt (und dann simulieren wir M mit einer 1-Band-TM). . . . . . . k−mal . . . . . . Band 1: L(M0) wird aufgezählt Band 2: Schrittzähler Band 3: Alle Wörter der Länge ≤ k über Σ werden erzeugt Band 4: Simuliert M0 mit Eingabe aus Band 3 Am Anfang sind alle Bänder leer. Die Maschine M schreibt in Etappe Nummer k die Zahl k auf Band 2 (am Anfang ist k = 0) und erzeugt auf Band 3 systematisch alle Wörter s1 . . . sn über Σ mit n ≤ k. Jedes Wort s1 . . . sn auf Band 3 wird von M auf Band 4 kopiert, und anschließend simuliert M auf Band 4 die Maschine M0 mit dieser Eingabe. Falls s1 . . .sn von M0 akzeptiert wird, wird das Wort auf Band 1 kopiert, der Kopf wird ein Feld links von s1 gestellt und der Zustand zu qF geändert. Danach wird Band 1 wieder gelöscht. Falls s1 . . . sn nicht akzeptiert wird, wird das nächste Wort auf Band 3 erzeugt, oder, falls schon alle geprüft wurden, die nächste Etappe (k := k + 1 auf Band 2) wird begonnen. Es ist klar, dass die Maschine M auf Band 1 die Sprache L(M0) aufzählt. 2. Für jede rekursiv aufzählbare (aber nicht notwendigerweise rekursive) Sprache zeigen wir, dass L von einer TM aufgezählt werden kann. Der Unterschied zum Fall 1. ist der, dass M0 hier nicht immer halten muss. Wir lösen dieses Problem, indem wir die Simulation von M0 immer nur für höchstens k Schritte (wobei k der Inhalt des Bandes 2 ist) erlauben. Das heißt: falls M0 auf die Eingabe aus Band 3 in höchstens k Schritten hält und akzeptiert, aktivieren wir den Kopf auf Band 1 wie oben. Falls M0 entweder in höchstens k Schritten hält und nicht akzeptiert, oder nach k Schritten noch nicht gehalten hat, gehen wir zum nächsten Wort auf Band 3 (oder zur nächsten Etappe) über.

3.3. ENTSCHEIDBARE PROBLEME UND REKURSIVE SPRACHEN 89<br />

M simuliert (mit e<strong>in</strong>em zu Beg<strong>in</strong>n leeren Band 2). Jedesmal, wenn M ihren f<strong>in</strong>alen<br />

Zustand erreicht, überprüft die Masch<strong>in</strong>e M ′ , ob das Wort rechts des Kopfes auf<br />

Band 2 mit der E<strong>in</strong>gabe auf Band 1 übere<strong>in</strong>stimmt. Falls ja, hält M ′ und akzeptiert.<br />

Falls ne<strong>in</strong>, geht die Simulation auf Band 2 weiter. Dann gilt L(M ′ ) = G(M).<br />

Satz 3. Jede rekursiv aufzählbare Sprache L kann durch e<strong>in</strong>e Tur<strong>in</strong>gmasch<strong>in</strong>e aufgezählt<br />

werden, d.h. hat die Form L = G(M) für e<strong>in</strong>e Tur<strong>in</strong>gmasch<strong>in</strong>e M.<br />

Beweis. 1. Für jede rekursive Sprache L zeigen wir, dass L von e<strong>in</strong>er TM aufgezählt<br />

werden kann. Wir haben also e<strong>in</strong>e Tur<strong>in</strong>gmasch<strong>in</strong>e M0 mit<br />

L = L(M0),<br />

die auf jede E<strong>in</strong>gabe hält. Wir konstruieren e<strong>in</strong>e 4-Band-TM M, die die Sprache<br />

L aufzählt (und dann simulieren wir M mit e<strong>in</strong>er 1-Band-TM).<br />

. . .<br />

. . .<br />

<br />

k−mal<br />

<br />

. . .<br />

. . .<br />

Band 1: L(M0) wird aufgezählt<br />

Band 2: Schrittzähler<br />

Band 3: Alle Wörter der Länge ≤ k über Σ<br />

werden erzeugt<br />

Band 4: Simuliert M0 mit E<strong>in</strong>gabe aus Band 3<br />

Am Anfang s<strong>in</strong>d alle Bänder leer. Die Masch<strong>in</strong>e M schreibt <strong>in</strong> Etappe Nummer<br />

k die Zahl k auf Band 2 (am Anfang ist k = 0) und erzeugt auf Band 3<br />

systematisch alle Wörter s1 . . . sn über Σ mit n ≤ k.<br />

Jedes Wort s1 . . . sn auf Band 3 wird von M auf Band 4 kopiert, und anschließend<br />

simuliert M auf Band 4 die Masch<strong>in</strong>e M0 mit dieser E<strong>in</strong>gabe. Falls<br />

s1 . . .sn von M0 akzeptiert wird, wird das Wort auf Band 1 kopiert, der Kopf<br />

wird e<strong>in</strong> Feld l<strong>in</strong>ks von s1 gestellt und der Zustand zu qF geändert. Danach<br />

wird Band 1 wieder gelöscht. Falls s1 . . . sn nicht akzeptiert wird, wird das<br />

nächste Wort auf Band 3 erzeugt, oder, falls schon alle geprüft wurden, die<br />

nächste Etappe (k := k + 1 auf Band 2) wird begonnen.<br />

Es ist klar, dass die Masch<strong>in</strong>e M auf Band 1 die Sprache L(M0) aufzählt.<br />

2. Für jede rekursiv aufzählbare (aber nicht notwendigerweise rekursive) Sprache<br />

zeigen wir, dass L von e<strong>in</strong>er TM aufgezählt werden kann. Der Unterschied zum<br />

Fall 1. ist der, dass M0 hier nicht immer halten muss. Wir lösen dieses Problem,<br />

<strong>in</strong>dem wir die Simulation von M0 immer nur für höchstens k Schritte (wobei<br />

k der Inhalt des Bandes 2 ist) erlauben. Das heißt: falls M0 auf die E<strong>in</strong>gabe<br />

aus Band 3 <strong>in</strong> höchstens k Schritten hält und akzeptiert, aktivieren wir den<br />

Kopf auf Band 1 wie oben. Falls M0 entweder <strong>in</strong> höchstens k Schritten hält<br />

und nicht akzeptiert, oder nach k Schritten noch nicht gehalten hat, gehen<br />

wir zum nächsten Wort auf Band 3 (oder zur nächsten Etappe) über.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!