4. Turingmaschinen

Werbung
4. Turingmaschinen
Der Vorschlag, Algorithmen durch Angabe geeigneter Maschinen zu formalisieren,
geht auf den Englischen Mathematiker A.M. Turing (1937) zurück. Dieser ließ sich
bei seinen Überlegungen davon leiten, wie ein Mensch einen Algorithmus ausführt.
Er beobachtete, dass die elementaren Schritte, wenn man sie nur fein genug zerlegt,
bei allen Algorithmen gleich sind und aus einfachen Zeichenmanipulationen bestehen.
Ausgeführt werden diese auf einem Blatt Papier, lassen sich aber auch linearisieren,
sodass als Speichermedium ein in Felder aufgeteiltes Band ausreicht, wobei jedes Feld
eines der benutzten Symbole aufnehmen kann. Formal gesehen, besteht die gespeicherte Zwischeninformation also aus einem Wort über einem festen Alphabet. Da wir
uns bei Ein- und Ausgaben auf Wörter beschränken können, ergibt sich hiermit die
folgende intuitive Beschreibung einer Turing-Basismaschine zur Berechnung einer nstelligen Funktion f : Σ n T :
Der Speicher der Maschine besteht aus einem nach beiden Seiten unbeschränkten (Turing-) Band, das in unendlich viele Felder eingeteilt ist. Jedes Feld kann einen
Buchstaben aus dem Bandalphabet Γ der Maschine aufnehmen. Dabei sind zu jedem
Zeitpunkt nur endlich viele Felder belegt. Der Zugriff auf das Speicherband erfolgt
durch einen Lese-Schreibkopf von der Größe eines Feldes. Das Feld, auf das der Kopf
zeigt, heißt das Arbeitsfeld. Dieses Feld kann eingelesen und neu beschriftet werden.
Weiter kann der Kopf um ein Feld nach links oder rechts verlegt werden. Durch Wiederholung dieser elementaren Operationen kann also jede Stelle des Bandes besucht,
die dort stehende Information gelesen und gegebenenfalls ersetzt oder ergänzt werden.
Die Eingabe erfolgt dadurch, dass die n Eingabewörter jeweils durch ein leeres Feld
getrennt auf das ansonsten leere Band geschrieben werden. (Dies erfordert natürlich,
dass Σ Γ gilt.) Der Lese-Schreibkopf wird auf das leere Feld vor der ersten Eingabe
gesetzt. Die Ausgabe erfolgt entsprechend: Nach Beendigung der Rechnung wird das
längste Wort, das nur aus Buchstaben aus T besteht und direkt rechts an das Arbeitsfeld
anschließt, ausgegeben (T Γ).
In der folgenden Definition formalisieren wir dieses Konzept als Mathematische
Maschine, wobei Folgendes zu beachten ist: Wir erweitern das Bandalphabet um ein
Symbol b (Blank oder Leerzeichen), das in leere Felder geschrieben wird. Die Felder
des Arbeitsbandes nummerieren wir mit ganzen Zahlen, sodass eine endliche Bandinschrift als Funktion f : Γ aufgefasst werden kann, wobei f z die Inschrift des
Feldes z ist. Die Endlichkeitsbedingung bedeutet dann, dass f z b für fast alle –
d.h. alle bis auf endlich viele – z . Das Lesen modellieren wir durch Tests. Eine
elementare Operation besteht aus dem Neube- (d.h. Über-) drucken des Arbeitsfeldes
oder einer Kopfbewegung.
4.1 D EFINITION . Seien Σ T Γ Alphabete mit Σ T Γ, wobei b der erste Buchstabe von Γ sei und dieser in Σ und T nicht vorkomme, und sei n 1. Die TuringBasismaschine mit Bandalphabet Γ zur Berechnung n-stelliger Funktionen von Σ nach
4 T URINGMASCHINEN
27
T ist die mathematische Basismaschine
T B Σ T Γ n I O S in out O PER T EST wobei
I
Σ n
O T
S BI wobei
BI f : Γ f z b für fast alle z Für s f z S ist f die Bandinschrift und z die Position des Arbeitsfeldes der
Speicherbelegung s.
in : Σ n BI ist gegeben durch in w1 wn f w1 ! ! ! wn 0 , wobei
m# 1
f w1 ! ! ! wn z " wm p , falls z ∑i $ 1 wi &% 1 '% p % 1 mit 1 ( m ( n und 0 (
p ) wm ; und f w1 ! ! ! wn z * b sonst.
out : BI + T ist gegeben durch out f z ' f z % 1 ' f z % m , 1 , wobei
m die kleinste Zahl 1 ist, sodass f z % m - T .
O PER Γ R L S , wobei Γ . a : a Γ . Hierbei ist (für a Γ) a f z f / a z 0 z wobei
1
f / a z 0 x*
und (für B 2 R L S ) ist B f z 3
89
z4 76
falls x z
sonst
a
f x
f z45 wobei
z, 1
z
z% 1
falls B L
falls B S
falls B R
Zur Vereinfachung der Notation schreiben wir in der Regel a f z statt a f z .
T EST Γ̃, wobei Γ̃ : ta : a Γ und ta f z 3 1 g.d.w. f z a.
Die Turing-Basismaschinen unterscheiden sich durch die Bandalphabete und den
Typ der zu berechnenden Funktionen (Stelligkeit sowie Ein- und Ausgabealphabet). Eine Turingmaschine ist solch eine Basismaschine mit zugehörigem (deterministischem)
Programm.
4.2 D EFINITION . Eine Turingmaschine (TM) M ne B zusammen mit einem B-Programm P.
B P ist eine Turing-Basismaschi-
Die im letzten Abschnitt für beliebige mathematische Maschinen M eingeführten
Begriffe können wir nun auf die Turingmaschinen anwenden. Insbesondere erhalten
wir:
4.3 D EFINITION . Eine (partielle) Funktion ϕ heißt (partiell) Turing-berechenbar, falls
es eine Turingmaschine M gibt, die ϕ berechnet. Entsprechend ist eine Sprache L
Turing-entscheidbar (Turing-aufz ählbar), wenn es eine Turingmaschine M gibt, die
cL (χL ) berechnet.
4 T URINGMASCHINEN
28
Wir erweitern diese Definition auf Funktionen und Teilmengen von ; , indem wir
die Zahl n mit ihrer (hier etwas modifizierten) Unärdarstellung Un n " 1n < 1 identifizieren. Mit F T M bezeichnen wir die Menge der partiell Turing-berechenbaren
Funktionen auf ; :
/
F n 0 T M 3. ϕ : ; n ; : ϕ partiell Turing-berechenbar /
F TM
>= n ? 0 F n 0 T M Da wir im Folgenden häufig Funktionen auf den natürlichen Zahlen betrachten, führen
wir folgende Abkürzungen ein:
n :
Un n und n@ : n1 bn2 bnk für n@ n1 A nk B
Die oben gegebene formale Definition von T M-Konfigurationen ist recht unhandlich.
Eine Konfiguration c s f z C einer Turingmaschine M B P stellen wir daher
anschaulich durch
b # m b # 1 bD 0 b1 bn s
oder das Wort
b#
m b # 1 sb0 b1 bn
dar, wobei b # m bn den relevanten Teil des Bandes beschreibt, d.h. Arbeitsfeld (markiert durch den darunter bzw. davor geschriebenen Programmzustand) und die tatsächliche Inschritft umfasst. Genauer: f z % l 3 bl für , m ( l ( n und f z % l E b für alle
anderen l. (Letztere Darstellung zeigt, dass TM-Konfigurationen als Wörter über dem
Alphabet Γ ZP beschrieben werden können. Hierbei müssen wir allerdings davon
/
ausgehen, dass (durch eventuelles Umbenennen der Programmzustände) Γ F ZP 0.)
4.4 B EISPIEL . Eine Turingmaschine M B P zur Berechnung der Summe zweier natürlicher Zahlen kann wie folgt definiert werden. Als Basismaschine wählt man
T B 1 C 1 C b 1 2 . Das Programm P hat den Konfigurationen- Übergang
bD 1
0
m< 1
b1n < 1 b bD 1
m< n< 1
b e
zu bewirken, wobei 0 der Start- und e der Stoppzustand ist. Hierzu verschmilzt P die
beiden 1-Blöcke, indem es das trennende Blank durch eine 1 ersetzt, und streicht dann
die ersten beiden Einsen:
P . 0 R 1 1 R 2 B 2 tb 1 3 B 3 1 4 B 4 L 5 B 5 tb 4 6 B
6 R 7 B 7 b 8 8 R 9 B 9 b 10 (4.1)
Im Startzustand 0 geht man also auf die erste 1 der ersten Eingabe. Im Zustand 1
und 2 durchläuft man diese Eingabe, indem man den Lese-Schreibkopf sukzessive um
ein Feld nach rechts verlegt (Zustand 1) und danach prüft, ob man sich noch auf der
ersten Eingabe befindet (Zustand 2). Das Blank zwischen den Eingaben erreicht man
im Zustand 3 und ersetzt es durch eine 1. Im Zustand 4 und 5 läuft man auf das Blank
vor der ersten Eingabe zurück, das man im Zustand 6 erreicht. Im Zustand 7 – 9 ersetzt
man die ersten beiden Einsen des verschmolzenen 1-Block durch Blanks und stoppt im
Zustand 10 vor diesem Block.
4 T URINGMASCHINEN
29
Man geht allgemein davon aus, dass alle Algorithmen – bei geeigneter Darstellung von Ein- und Ausgaben durch Wörter – durch Turingmaschinen simuliert werden
können. Insbesondere liefern daher diese Maschinen eine Formalisierung des Berechenbarkeitsbegriffs über den natürlichen Zahlen (oder über Wörtern). Diese Annahme
ist als Churchsche These oder Church-Turing-These bekannt:
Church-Turing-These: Eine (partielle) Funktion f : ; n ; ist genau
dann im intuitiven Sinne (partiell) berechenbar, wenn sie (partiell) Turingberechenbar ist.
Diese These ist kein mathematischer Satz und damit auch nicht (im mathematischen
Sinn) beweisbar: Hier wird ein intuitives Konzept einem präzisen mathematischen
Konzept gegenübergestellt. Man kann jedoch gute Argumente angeben, die es glaubhaft machen, dass der intuitive Berechenbarkeitsbegriff durch die Turing-Berechenbarkeit adäquat formalisiert wird. Hier ist zunächst die Erfahrungstatsache zu nennen, dass
sich kein Algorithmus bislang einer kanonischen Übersetzung in eine Turingmaschine
widersetzte. Weiter haben sich sehr unterschiedliche Ansätze, den Berechenbarkeitsbegriff zu formalisieren, zu dem Ansatz von Turing äquivalent erwiesen.
Wir werden hierzu in den folgenden Abschnitten einige Beispiele betrachten. In
den nächsten beiden Abschnitten führen wir zunächst Varianten des TuringmaschinenKonzepts ein, die zu dem Grundkonzept äquivalent sind und damit dessen Robustheit
demonstrieren.
Herunterladen