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.

88 KAPITEL 3. TURINGMASCHINEN<br />

4. L ∗ . Dieser Beweis ist analog zu 3. Zunächst prüft M, ob das E<strong>in</strong>gabeband leer<br />

ist und akzeptiert gegebenenfalls. Ansonsten erzeugen wir auf Band 2, statt<br />

nur e<strong>in</strong>er Zahl i alle<strong>in</strong>, alle möglichen aufsteigenden Listen (i0, i1, . . . , ir) von<br />

Zahlen mit<br />

0 = i0 < i1 < i2 < · · · < ir = n wobei r = 1, . . .,n.<br />

Band 3 simuliert M: wir kopieren erst s1s2 . . .si1 auf Band 3 und, falls die<br />

Simulation <strong>in</strong> e<strong>in</strong>em f<strong>in</strong>alen Zustand von M hält, si1+1si1+2 . . . si2 auf Band 3<br />

und, falls die Simulation wieder <strong>in</strong> e<strong>in</strong>em f<strong>in</strong>alen Zustand hält, si2+1 . . . si3 auf<br />

Band 3 usw. Falls alle Simulationen <strong>in</strong> f<strong>in</strong>alen Zuständen von M halten, wird<br />

die E<strong>in</strong>gabe von M akzeptiert. Falls irgende<strong>in</strong>e der Simulationen <strong>in</strong> e<strong>in</strong>em<br />

nichtf<strong>in</strong>alen Zustand hält, beg<strong>in</strong>nt e<strong>in</strong>e neue Etappe (mit der nächsten Liste<br />

auf Band 2). Wenn alle Listen auf Band 2 durchgegangen worden s<strong>in</strong>d, ohne<br />

dass bis dah<strong>in</strong> M akzeptiert hat, hält M <strong>in</strong> e<strong>in</strong>em nichtf<strong>in</strong>alen Zustand.<br />

Bemerkung 3. Die Bezeichnung ” rekursiv aufzählbar“ für die von TM akzeptierten<br />

Sprachen stammt von e<strong>in</strong>er anderen Weise, wie TM angewendet werden können:<br />

zur Erzeugung von Sprachen. Wir beg<strong>in</strong>nen mit dem leeren Band, also mit der Konfiguration<br />

(q0, ###)<br />

und lassen die TM berechnen (bis sie hält, oder unendlich lange, falls sie nie hält).<br />

Alle Konfigurationen, die den f<strong>in</strong>alen Zustand qF haben, werden durchsucht und<br />

das Wort w rechts vom Lesekopf wird notiert; die Konfiguration hat also die Form<br />

(qF , vsw) (v ∈ Σ ∗ , s ∈ Σ), und wir notieren w. Die Sprache aller Wörter w, die so<br />

auf dem Band erzeugt werden, wird mit G(M) bezeichnet. Formale Def<strong>in</strong>ition:<br />

G(M) = {w; w ∈ Σ ∗ und es existieren v ∈ Σ ∗ und s ∈ Σ<br />

mit (q0, ###) ⊢ ∗ (qF , vsw)}<br />

Wir nennen G(M) die von M aufgezählte Sprache.<br />

Beispiel 4. Die TM<br />

M = ({q0, q1, qF }, {|}, δ, q0, qF)<br />

mit den Übergangsregeln<br />

(q0, |) → (q1, L)<br />

(q0, #) → (q0, |)<br />

(q1, |) → (qF,L)<br />

(q1, #) → (q1, |)<br />

(qF,#) → (q0, |)<br />

berechnet die leere E<strong>in</strong>gabe wie folgt:<br />

(q0, ###) ⊢ (q0, #|#)<br />

⊢ (q1, #|#)<br />

⊢ (q1, #||#)<br />

⊢ (qF,#||#) also || ∈ G(M)<br />

⊢ (q0, #|||#)<br />

⊢ (q1, #|||#)<br />

⊢ (q1, #||||#)<br />

⊢ (qF,#||||#) also |||| ∈ G(M)<br />

⊢ (q0, #|||||#)<br />

.<br />

.<br />

Wir sehen, dass M die Sprache aller positiven geraden Zahlen aufzählt.<br />

Satz 2. Jede Sprache G(M), die von e<strong>in</strong>er Tur<strong>in</strong>gmasch<strong>in</strong>e M aufgezählt wird, ist<br />

rekursiv aufzählbar.<br />

Beweis. Wir konstruieren e<strong>in</strong>e 2-Band Tur<strong>in</strong>gmasch<strong>in</strong>e M ′ , die die Sprache G(M)<br />

akzeptiert. Band 1 ist e<strong>in</strong> read-only-E<strong>in</strong>gabeband. Auf Band 2 wird die Masch<strong>in</strong>e

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!