"Grundlagen
der theoretischen Informatik" vom 6.6.2001
Nils Barnickel
Themen
der Vorlesung:
·
Universelle
Turingmaschinen, die universelle Sprache
·
Unentscheidbarkeit
des Halteproblems
·
Turingmaschinen
mit mehreren Bändern
·
Turingmaschinen,
die eine Sprache aufzählen
In der vorigen Vorlesungen wurde gezeigt wie sich Turingmaschinen geeignet codieren lassen. Sei <M> ein solcher Code und w eine Eingabe für diese Turingmaschine, dann ist die universelle Sprache wie folgt definiert:
U =
{<M> w | M akzeptiert w}
Satz:
Es
gibt eine Turingmaschine Mu mit L(Mu) = U.
Diese
Turingmaschine heiszlig;t universelle Turingmaschine.
Beweis:
Mu liest <M> (das
"Programm") und w (die "Eingabe" für M) und simuliert anschlieszlig;end die Maschine
M Schritt für Schritt.
Satz:
U ist rekursiv aufzählbar aber nicht entscheidbar.
Beweis:
1) rekursiv aufzählbar, da L(Mu) = U existiert.
2) Wenn U entscheidbar wäre, dann würde der folgende Algorithmus die
Diagonalsprache D entscheiden.
Eingabe wi
Berechne Mi
Ist
< Mi> wi
in
U?
Wenn
"ja" würde die Ausgabe von Md "nein"
sein.
Wenn
"nein" würde die Ausgabe von Md "ja"
sein.
Somit
wäre D entscheidbar.
(D
ist aber nicht entscheidbar =>Widerspruch, also U nicht entscheidbar)
H =
{<M> w | M hält bei Eingabe von w}
Satz:
H ist unentscheidbar.
Beweis:
Idee: Mit Hilfe von H wäre jede rekursiv aufzählbare Sprache entscheidbar. Insbesondere wäre U entscheidbar, mit folgendem Algorithmus.
Eingabe:
<M> w
Hält
M auf Eingabe w?
Wenn
"nein", Ausgabe "nein".
Wenn
"ja", simuliere M bis sie hält. Wenn sie in einem akzeptierenden Zustand hält,
Ausgabe "ja", sonst "nein".
Frage: Kommt jeder endliche Ziffernblock
aus {0,1,2,...,9} in der
Dezimaldarstellung von P vor?
Diese
Frage ist entscheidbar. Denn einer der folgenden Algorithmen gibt die richtige
Antwort.
ALG1:
Ausgabe "ja"
ALG2:
Ausgabe "nein"
Das
Post'sche Korrespondenzproblem(PKP)
Bsp.1) (10,1),(001,0),(111,000)
x1x2 = 10001
y1y2 = 10
Es gibt keine Lösung.(x ist immer länger/gleich y)
Bsp.2) (10,1),(001,0),(1,010011)
x1x2x2x3 = 10.001.001.1
y1y2y2y3 = 1.0.0.010011
Es gibt
eine Lösung.
Satz: Das PKP ist unentscheidbar.
(ohne Beweis(Das Halteproblem kann auf
das PKP zurückgeführt werden.))
Turingmaschinen mit mehren Bändern bringen einen Geschwindigkeitsvorteil.
Es
kann dann ein Eingabeband geben, das nur zum Lesen ist, oder ein Ausgabeband,
das nur zum Schreiben ist.
Z.B.
kann man eine TM mit Ausgabeband als Erzeugungsmechanismus verwenden.
Auf
dem Ausgabeband darf man nur schreiben und nach rechts gehen.
Satz:
Eine
Sprache L = {x1,x2,...} ist genau dann rekursiv aufzählbar, wenn die Wörter von
L (in beliebiger Reihenfolge, durch "*"-Zeichen getrennt) von
einer erzeugenden Turingmaschine G auf das Ausgabeband geschrieben werden.
("aufgezählt") G hält genau dann, wenn L endlich ist.
Beweis:
"<=":
Eingabe w
Simuliere G und warte, bis das Wort
w ausgeben wird.
Dann akzeptiere.
"=>":
Sigma* = {w1,w2,...}
L(M) = L
k Schritte
k |
0 |
1 |
2 |
3 |
4 |
... |
w1 |
a |
b |
d |
g |
k |
|
w2 |
c |
e |
X |
... |
|
|
w3 |
f |
i |
|
|
|
|
w4 |
X |
|
|
|
|
|
... |
|
|
|
|
|
|
(Es wird in alphabetischer
Reihenfolge gezählt.)
for n:= 1 to unendlich
for k:= 0 to n-1 do
Überprüfe,
ob M das Wort w(n-k) nach genau k Schritten akzeptiert. Wenn ja, dann schreibe w(n-k) auf
das Ausgabeband. Es
werden genau die Wörter von L(M) ausgeben.