Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
118 KAPITEL 5. UNENTSCHEIDBARE PROBLEME<br />
Bemerkung 1. 1. Jede TM kann durch e<strong>in</strong>e TM mit dem Bandalphabet Σ =<br />
{0, 1} simuliert werden. Wir codieren die ursprünglichen E<strong>in</strong>gabesymbole si<br />
und das ursprüngliche Blanksymbol wie folgt:<br />
Symbol # s1 s2 ... sk<br />
Code 01 011 01 3 ... 01 k+1<br />
Die neue Masch<strong>in</strong>e hat also nur an den noch nicht beschrifteten Feldern Blanksymbole.<br />
Die e<strong>in</strong>zelnen Übergänge werden wie folgt simuliert:<br />
(a) e<strong>in</strong> Schritt nach rechts wird durch e<strong>in</strong>e Bewegung des Kopfes unter die<br />
nächste 0 nach rechts simuliert; analog für l<strong>in</strong>ks<br />
(b) Überschreibung von si und sj wird dadurch simuliert, dass 01 j+1 statt<br />
01 i+1 geschrieben wird. Dazu müssen, falls z.B. i = 1 und j = 2, alle<br />
Symbole 0, 1 rechts vom Lesekopf e<strong>in</strong> Feld nach rechts geschoben werden<br />
(und vorher muss die momentane Kopfposition gespeichert werden – z.B.<br />
dadurch, dass die momentan gelesene 0 gelöscht wird).<br />
2. Eigentlich kann jede TM durch e<strong>in</strong>e TM mit Σ = {|} simuliert werden. Die<br />
Idee ist gleich, aber die Details s<strong>in</strong>d aufwendiger.<br />
Wir beschränken uns auf TM mit dem b<strong>in</strong>ären Bandalphabet Σ = {0, 1}. Also<br />
hat die universelle Tur<strong>in</strong>gmasch<strong>in</strong>e Mu sowie alle simulierten Masch<strong>in</strong>en M dieses<br />
E<strong>in</strong>gabealphabet.<br />
Codierung c(M) von Tur<strong>in</strong>gmasch<strong>in</strong>en M: Für jede TM<br />
deren Zustände<br />
M = (Q, {0, 1}, δ, q0, q1)<br />
Q = {q0, q1, . . . , qn−1}<br />
so durchnummeriert s<strong>in</strong>d, dass q0 der Initialzustand und q1 der F<strong>in</strong>alzustand ist,<br />
def<strong>in</strong>ieren wir e<strong>in</strong> Codewort<br />
c(M) ∈ {0, 1} ∗<br />
wie folgt. Wir benutzen 0 i um die Zahl i zu codieren und 1 als Trennungssymbol. Das<br />
Wort c(M) hat die folgende Form: Am Anfang steht 111 als Trennungssymbol, dann<br />
folgt 0 n , das die Anzahl n aller Zustände bezeichnet. Dann werden die e<strong>in</strong>zelnen t<br />
Übergangsregeln aus R durch b<strong>in</strong>äre Wörter w1, . . . , wt codiert, wie später erklärt<br />
wird, und durch e<strong>in</strong>e 1 vone<strong>in</strong>ander getrennt. Am Ende schreiben wir wieder 111.<br />
Der Code hat also die Form<br />
c(M) = 1110 n 1w11w21 . . .1wt111.<br />
Um die Übergangsregeln zu codieren, schreiben wir für Zustände 10 i+1 statt qi und<br />
codieren die Symbole L, R, #, 0, 1 wie folgt<br />
Symbol L R # 0 1<br />
Code 10 100 10000 10 4 10 5<br />
Die Übergangsregel<br />
erhält also den Code<br />
die Übergangsregel<br />
den Code<br />
usw.<br />
(qi, 0) → (qj, L)<br />
w = 10 i+1 10 4 10 j+1 10,<br />
(qi, #) → (qj, 0)<br />
w = 10 i+1 10 3 10 j+1 10 4