VL-01: Turing Maschinen I
(Berechenbarkeit und Komplexit¨ at, WS 2019) Gerhard Woeginger
WS 2019, RWTH
Organisatorisches
N¨achste Vorlesung:
Mittwoch, Oktober 16, 10:30–12:00, Aula
Webseite:
https://algo.rwth-aachen.de/Lehre/WS1920/BuK/BuK.py
BuK/WS 2019 VL-01: Turing Maschinen I 2/42
Turing Maschinen I
Probleme und Berechnungen Turing Maschinen
Turing Berechenbarkeit
Programmierung von Turing Maschinen
Techniken zur Programmierung von Turing Maschinen
Probleme und Berechnungen
BuK/WS 2019 VL-01: Turing Maschinen I 4/42
Was ist ein Berechnungsproblem?
Definition (informell; aus dem www)
In einemBerechnungsproblemsollen f¨ur bestimmte gegebene Eingaben bestimmte Ausgaben produziert werden.
Eine Berechnunggeschieht mit einem Algorithmus (Handlungsvorschrift).
Algorithmus
x y
Was ist ein Algorithmus?
Definition (informell; aus dem www)
An algorithm is an effective procedure which allows a finite description.
It is based on finitely many instructions which can be carried out in a stepwise fashion.
(Umgangssprachliche Umformulierung mit vielen unklaren Begriffen:
effective; procedure; finite description; instructions; stepwise fashion)
Wir brauchen viel pr¨azisere Definitionen . . .
BuK/WS 2019 VL-01: Turing Maschinen I 6/42
Alphabete und W¨ orter (siehe FOSAP)
Die Ein- und Ausgaben sind W¨orter ¨uber einem AlphabetΣ.
Beispiele f¨ur Alphabete: Σ ={0,1,#}
Σ ={a,b,c, . . . ,z}
Σ ={B,D,F,H,J,K,M,O,. . . ,•}
Σk ist die Menge aller Wörter der Längek, z.B. {0,1}3 = {000,001,010,011,100,101,110,111}
Das leere Wort (= Wort der Länge 0), bezeichnen wir mit . Dann gilt: Σ0={}
Σ∗=S
k∈N0Σk ist der Kleenesche Abschluss von Σund enthält alle Wörter überΣ. Diese kann man z.B. der Länge nach aufzählen:
,0,1,00,01,10,11,000,001,010,011,100,101, . . .
Alphabete und W¨ orter (siehe FOSAP)
Die Ein- und Ausgaben sind W¨orter ¨uber einem AlphabetΣ.
Beispiele f¨ur Alphabete: Σ ={0,1,#}
Σ ={a,b,c, . . . ,z}
Σ ={B,D,F,H,J,K,M,O,. . . ,•} Σk ist die Menge aller Wörter der Längek, z.B.
{0,1}3 = {000,001,010,011,100,101,110,111}
Das leere Wort (= Wort der Länge 0), bezeichnen wir mit . Dann gilt: Σ0={}
Σ∗=S
k∈N0Σk ist der Kleenesche Abschluss von Σund enthält alle Wörter überΣ. Diese kann man z.B. der Länge nach aufzählen:
,0,1,00,01,10,11,000,001,010,011,100,101, . . .
BuK/WS 2019 VL-01: Turing Maschinen I 7/42
Alphabete und W¨ orter (siehe FOSAP)
Die Ein- und Ausgaben sind W¨orter ¨uber einem AlphabetΣ.
Beispiele f¨ur Alphabete: Σ ={0,1,#}
Σ ={a,b,c, . . . ,z}
Σ ={B,D,F,H,J,K,M,O,. . . ,•} Σk ist die Menge aller Wörter der Längek, z.B.
{0,1}3 = {000,001,010,011,100,101,110,111}
Das leere Wort (= Wort der Länge 0), bezeichnen wir mit. Dann gilt: Σ0={}
Σ∗=S
k∈N0Σk ist der Kleenesche Abschluss von Σund enthält alle Wörter überΣ. Diese kann man z.B. der Länge nach aufzählen:
,0,1,00,01,10,11,000,001,010,011,100,101, . . .
Alphabete und W¨ orter (siehe FOSAP)
Die Ein- und Ausgaben sind W¨orter ¨uber einem AlphabetΣ.
Beispiele f¨ur Alphabete: Σ ={0,1,#}
Σ ={a,b,c, . . . ,z}
Σ ={B,D,F,H,J,K,M,O,. . . ,•} Σk ist die Menge aller Wörter der Längek, z.B.
{0,1}3 = {000,001,010,011,100,101,110,111}
Das leere Wort (= Wort der Länge 0), bezeichnen wir mit. Dann gilt: Σ0={}
Σ∗=S
k∈N0Σk ist der Kleenesche Abschluss von Σund enthält alle Wörter überΣ. Diese kann man z.B. der Länge nach aufzählen:
,0,1,00,01,10,11,000,001,010,011,100,101, . . .
BuK/WS 2019 VL-01: Turing Maschinen I 7/42
Probleme (1): Als Relation
Im Allgemeinen entspricht ein Problem einerRelation R⊆Σ∗×Σ0∗
Ein Paar (x,y)liegt inR,
wenny eine zul¨assige Ausgabe zur Eingabex ist.
Beispiel: Primfaktorbestimung
Beispiel: Primfaktorbestimmung
Zu einer nat¨urlichen Zahlq≥2(Eingabe) suchen wir einen Primfaktor (Ausgabe).
Wir einigen uns darauf, Zahlen bin¨ar zu kodieren.
Die Bin¨arkodierung der nat¨urlichen Zahli bezeichnen wir mitbin(i).
Also zum Beispiel:bin(0) =0,bin(6) =110
Die entsprechende Relation zur Primfaktorbestimmung ist dann R ={(x,y)∈ {0,1}∗× {0,1}∗ |x=bin(q), y=bin(p),
q,p∈N, q≥2, pprim, pteiltq} Also zum Beispiel(110,11)∈R, aber(101,11)∈/ R.
BuK/WS 2019 VL-01: Turing Maschinen I 9/42
Beispiel: Primfaktorbestimung
Beispiel: Primfaktorbestimmung
Zu einer nat¨urlichen Zahlq≥2(Eingabe) suchen wir einen Primfaktor (Ausgabe).
Wir einigen uns darauf, Zahlen bin¨ar zu kodieren.
Die Bin¨arkodierung der nat¨urlichen Zahli bezeichnen wir mitbin(i).
Also zum Beispiel:bin(0) =0,bin(6) =110
Die entsprechende Relation zur Primfaktorbestimmung ist dann R ={(x,y)∈ {0,1}∗× {0,1}∗| x=bin(q), y=bin(p),
q,p∈N, q≥2, pprim, pteiltq}
Also zum Beispiel(110,11)∈R, aber(101,11)∈/R.
Probleme (2): Als Funktion
Bei vielen Problemen gibt es zu jeder Eingabe eine eindeutige Ausgabe.
Dann k¨onnen wir das Problem durch eine Funktionf: Σ∗→Σ0∗
beschreiben.
Die zur Eingabe x∈Σ∗gesuchte Ausgabe ist f(x)∈Σ0∗.
BuK/WS 2019 VL-01: Turing Maschinen I 10/42
Beispiel: Multiplikation
Beispiel: Multiplikation
Zu zwei nat¨urlichen Zahleni1,i2∈N(Eingabe) suchen wir das entsprechende Produkti1·i2(Ausgabe).
Um die Zahleni1 undi2 in der Eingabe voneinander trennen zu k¨onnen, erweitern wir das Alphabet um ein Trennsymbol:Σ ={0,1,#}.
Die entsprechende Funktionf : Σ∗→Σ∗ ist dann gegeben durch f(bin(i1)#bin(i2)) = bin(i1·i2)
Probleme (3): Entscheidungsprobleme als Sprachen
Viele Probleme lassen sich als Ja-Nein-Fragen formulieren.
DerartigeEntscheidungsprobleme sind von der Form f : Σ∗→ {0,1}, wobei wir0als “Nein” und1als “Ja”
interpretieren.
Es seiL=f−1(1)⊆Σ∗die Menge derjenigen Eingaben, die mit
”Ja“ beantwortet werden.
L ist eine Teilmenge der W¨orter ¨uber dem AlphabetΣ.
Eine Teilmenge von Σ∗wird allgemein alsSprachebezeichnet.
Die SpracheList die zu dem durchf definierten Entscheidungsproblem geh¨orende Sprache.
BuK/WS 2019 VL-01: Turing Maschinen I 12/42
Beispiel: Entscheidungsproblem als Sprache
Beispiel: Graphzusammenhang
Problemstellung: F¨ur einen gegebenen ungerichteten Graphen G = (V,E)soll bestimmt werden, obG zusammenh¨angend ist.
Der GraphG liegt dabei in einer geeigneten Kodierungcode(G)∈Σ∗vor, zum Beispiel als bin¨ar kodierte Adjazenzmatrix.
Beispiel: 1 2
3
0 0 1 0 0 0 1 0 0
001000100
Die zu diesem Entscheidungsproblem geh¨orende Sprache ist L = {w ∈Σ∗ | ∃GraphG:w =code(G)und
G ist zusammenh¨angend}
Turing Maschinen
BuK/WS 2019 VL-01: Turing Maschinen I 14/42
Zentrale Fragestellung
Frage
Welche Funktionen sind durch einen Algorithmus berechenbar?
Welche Sprachen k¨onnen von einem Algorithmus entschieden werden?
Um diese Fragen in einem mathematisch exakten Sinne zu kl¨aren, m¨ussen wir festlegen, was eigentlich ein Algorithmus ist.
Zu diesem Zweck definieren wir ein einfaches Computer-Modell: Die Turingmaschine (TM).
Deterministische Turingmaschine
0 1 1 0 1 1 1 0 1 1 0 1 0
0
· · ·
· · ·
DFA
Arbeitsband (beidseitig unbeschr¨ankt)
Schreib-/Lesekopf
q
δ 0 1 B
q0 (q0,B,L) (q1,0,R) reject
q1 (q0,1,R) (q1,B,N) accept
BuK/WS 2019 VL-01: Turing Maschinen I 16/42
Deterministische Turingmaschine
0 1 1 0 1 1 1 0 1 1 0 1 0
0
· · ·
· · ·
DFA
Arbeitsband (beidseitig unbeschr¨ankt)
Schreib-/Lesekopf
q
δ 0 1 B
q0 (q0,B,L) (q1,0,R) reject
q1 (q0,1,R) (q1,B,N) accept
Deterministische Turingmaschine
0 1 1 0 1 1 0 1 1 0 1 0
1
0 · · ·
· · ·
DFA
Arbeitsband (beidseitig unbeschr¨ankt)
Schreib-/Lesekopf
q
δ 0 1 B
q0 (q0,B,L) (q1,0,R) reject
q1 (q0,1,R) (q1,B,N) accept
BuK/WS 2019 VL-01: Turing Maschinen I 16/42
Deterministische Turingmaschine
0 1 1 0 1 1 0 1 1 0 1 0
1
0 · · ·
· · ·
DFA
Arbeitsband (beidseitig unbeschr¨ankt)
Schreib-/Lesekopf
q
δ 0 1 B
q0 (q0,B,L) (q1,0,R) reject
q1 (q0,1,R) (q1,B,N) accept
Deterministische Turingmaschine
0 1 1 0 1 1 0 1 1 0 1 0
1
0 · · ·
· · ·
DFA
Arbeitsband (beidseitig unbeschr¨ankt)
Schreib-/Lesekopf
q
δ 0 1 B
q0 (q0,B,L) (q1,0,R) reject
q1 (q0,1,R) (q1,B,N) accept
BuK/WS 2019 VL-01: Turing Maschinen I 16/42
Deterministische Turingmaschine
0 1 1 0 1 1 0 1 1 0 1 0
1
0 · · ·
· · ·
DFA
Arbeitsband (beidseitig unbeschr¨ankt)
Schreib-/Lesekopf
q
δ 0 1 B
q0 (q0,B,L) (q1,0,R) reject
q1 (q0,1,R) (q1,B,N) accept
Komponenten der TM
Q die endliche Zustandsmenge
Σ das endliche Eingabealphabet
Γ⊃Σ das endliche Bandalphabet
B ∈Γ\Σ das Leerzeichen (Blank, in Bildern) q0∈Q der Anfangszustand
q¯∈Q der Endzustand
δ: (Q\ {¯q})×Γ→Q×Γ× {R,L,N}
die Zustands¨uberf¨uhrungsfunktion
Definition
EineTuringmaschineist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,¯q, δ).
BuK/WS 2019 VL-01: Turing Maschinen I 17/42
Komponenten der TM
Q die endliche Zustandsmenge
Σ das endliche Eingabealphabet
Γ⊃Σ das endliche Bandalphabet
B ∈Γ\Σ das Leerzeichen (Blank, in Bildern) q0∈Q der Anfangszustand
q¯∈Q der Endzustand
δ: (Q\ {¯q})×Γ→Q×Γ× {R,L,N}
die Zustands¨uberf¨uhrungsfunktion
Definition
EineTuringmaschineist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,¯q, δ).
Komponenten der TM
Q die endliche Zustandsmenge
Σ das endliche Eingabealphabet
Γ⊃Σ das endliche Bandalphabet
B ∈Γ\Σ das Leerzeichen (Blank, in Bildern) q0∈Q der Anfangszustand
q¯∈Q der Endzustand
δ: (Q\ {¯q})×Γ→Q×Γ× {R,L,N}
die Zustands¨uberf¨uhrungsfunktion
Definition
EineTuringmaschineist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,¯q, δ).
BuK/WS 2019 VL-01: Turing Maschinen I 17/42
Komponenten der TM
Q die endliche Zustandsmenge
Σ das endliche Eingabealphabet
Γ⊃Σ das endliche Bandalphabet
B ∈Γ\Σ das Leerzeichen (Blank, in Bildern)
q0∈Q der Anfangszustand
q¯∈Q der Endzustand
δ: (Q\ {¯q})×Γ→Q×Γ× {R,L,N}
die Zustands¨uberf¨uhrungsfunktion
Definition
EineTuringmaschineist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,¯q, δ).
Komponenten der TM
Q die endliche Zustandsmenge
Σ das endliche Eingabealphabet
Γ⊃Σ das endliche Bandalphabet
B ∈Γ\Σ das Leerzeichen (Blank, in Bildern) q0∈Q der Anfangszustand
q¯∈Q der Endzustand
δ: (Q\ {¯q})×Γ→Q×Γ× {R,L,N}
die Zustands¨uberf¨uhrungsfunktion
Definition
EineTuringmaschineist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,¯q, δ).
BuK/WS 2019 VL-01: Turing Maschinen I 17/42
Komponenten der TM
Q die endliche Zustandsmenge
Σ das endliche Eingabealphabet
Γ⊃Σ das endliche Bandalphabet
B ∈Γ\Σ das Leerzeichen (Blank, in Bildern) q0∈Q der Anfangszustand
q¯∈Q der Endzustand
δ: (Q\ {¯q})×Γ→Q×Γ× {R,L,N}
die Zustands¨uberf¨uhrungsfunktion
Definition
EineTuringmaschineist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,¯q, δ).
Komponenten der TM
Q die endliche Zustandsmenge
Σ das endliche Eingabealphabet
Γ⊃Σ das endliche Bandalphabet
B ∈Γ\Σ das Leerzeichen (Blank, in Bildern) q0∈Q der Anfangszustand
q¯∈Q der Endzustand
δ: (Q\ {¯q})×Γ→Q×Γ× {R,L,N}
die Zustands¨uberf¨uhrungsfunktion
Definition
EineTuringmaschineist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,¯q, δ).
BuK/WS 2019 VL-01: Turing Maschinen I 17/42
Komponenten der TM
Q die endliche Zustandsmenge
Σ das endliche Eingabealphabet
Γ⊃Σ das endliche Bandalphabet
B ∈Γ\Σ das Leerzeichen (Blank, in Bildern) q0∈Q der Anfangszustand
q¯∈Q der Endzustand
δ: (Q\ {¯q})×Γ→Q×Γ× {R,L,N}
die Zustands¨uberf¨uhrungsfunktion
Definition
EineTuringmaschineist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,q, δ).¯
Funktionsweise der TM (1)
Ausgangssituation
Auf dem Band steht die Eingabex∈Σ∗ eingerahmt von Blanks Der initiale Zustand ist q0
Der Kopf steht ¨uber dem ersten Symbol vonx
· · ·
· · · x1 x2 x3 x4 x5 x6 x7 x8 x8 x9
q0
DFA Inputx
BuK/WS 2019 VL-01: Turing Maschinen I 18/42
Funktionsweise der TM (2)
Nummerierung der Zellen des Bandes
Die initiale Kopfposition wird als Position 0 bezeichnet
Bewegt sich der Kopf einen Schritt “nach rechts”, so erh¨oht sich die Position um 1
Bewegt sich der Kopf um einen Schritt “nach links”, so verringert sich die Position um 1
Funktionsweise der TM (3)
Durchf¨uhrung eines einzelnen Rechenschrittes
a∈Γbezeichne das gelesene Symbol (unterm Kopf) q∈Q\ {¯q}bezeichne den aktuellen Zustand
Angenommenδ(q,a) = (q0,a0,d), f¨urq0∈Q,a0∈Γ,d∈ {R,L,N}
Dann wird der Zustand aufq0 gesetzt
an der Kopfposition wird das Symbol a0 geschrieben der Kopf bewegt sich
um eine Position nach rechts fallsd=R um eine Position nach links fallsd=L
nicht fallsd=N
BuK/WS 2019 VL-01: Turing Maschinen I 20/42
Funktionsweise der TM (3)
Durchf¨uhrung eines einzelnen Rechenschrittes
a∈Γbezeichne das gelesene Symbol (unterm Kopf) q∈Q\ {¯q}bezeichne den aktuellen Zustand
Angenommenδ(q,a) = (q0,a0,d), f¨urq0∈Q,a0∈Γ,d∈ {R,L,N}
Dann wird der Zustand aufq0gesetzt
an der Kopfposition wird das Symbol a0 geschrieben der Kopf bewegt sich
um eine Position nach rechts fallsd=R um eine Position nach links fallsd=L
nicht fallsd=N
Funktionsweise der TM (4)
Ende der Berechnung
Die TM stoppt, wenn sie den Endzustandq¯ erreicht
Das Ausgabeworty ∈Σ∗kann dann vom Band abgelesen werden:y beginnt an der Kopfposition und endet unmittelbar vor dem ersten Symbol ausΓ\Σ
Spezialfall
Bei Entscheidungsproblemen wird die Antwort wie folgt als JA oder NEIN interpretiert:
Die TM akzeptiertdas Eingabewort, wenn sie terminiert und das Ausgabewort mit einer 1 beginnt
Die TM verwirftdas Eingabewort, wenn sie terminiert und das Ausgabewort nicht mit einer 1 beginnt
Die Menge aller vonM akzeptierten Worte bezeichnen wir mitL(M).
BuK/WS 2019 VL-01: Turing Maschinen I 21/42
Funktionsweise der TM (4)
Ende der Berechnung
Die TM stoppt, wenn sie den Endzustandq¯ erreicht
Das Ausgabeworty ∈Σ∗kann dann vom Band abgelesen werden:y beginnt an der Kopfposition und endet unmittelbar vor dem ersten Symbol ausΓ\Σ
Spezialfall
Bei Entscheidungsproblemen wird die Antwort wie folgt als JA oder NEIN interpretiert:
Die TM akzeptiertdas Eingabewort, wenn sie terminiert und das Ausgabewort mit einer 1 beginnt
Die TM verwirftdas Eingabewort, wenn sie terminiert und das Ausgabewort nicht mit einer 1 beginnt
Die Menge aller vonM akzeptierten Worte bezeichnen wir mitL(M).
Funktionsweise der TM (5)
Anmerkungen
Es besteht die M¨oglichkeit, dass die TM den Endzustand niemals erreicht. Wir sagen dann, dass dieBerechnung nicht terminiert.
Laufzeit = Anzahl von Rechenschritten bis zur Terminierung Speicherbedarf = Anzahl von Bandzellen, die w¨ahrend der Berechnung besucht werden
BuK/WS 2019 VL-01: Turing Maschinen I 22/42
Funktionsweise der TM:
Beispiel
Beispiel (1)
Es seiL={w1|w ∈ {0,1}∗} die Sprache der W¨orter, die auf 1 enden.
Lwirdentschiedendurch die TM M= (Q,Σ,Γ,B,q0,¯q, δ)mit Q={q0,q1,¯q}
Σ ={0,1} Γ ={0,1,B} δ gem¨aß Tabelle
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
”accept“ steht hier als Abk¨urzung f¨ur(¯q,1,N).
”reject“ steht hier als Abk¨urzung f¨ur(¯q,0,N). Allgemein:
M entscheidetL, wennM alle W¨orter inL akzeptiert und alle W¨orter verwirft, die nicht inLsind
Wenn TM eine Sprache entscheidet, so muss sie immer halten
BuK/WS 2019 VL-01: Turing Maschinen I 24/42
Beispiel (1)
Es seiL={w1|w ∈ {0,1}∗} die Sprache der W¨orter, die auf 1 enden.
Lwirdentschiedendurch die TM M= (Q,Σ,Γ,B,q0,¯q, δ)mit Q={q0,q1,¯q}
Σ ={0,1} Γ ={0,1,B} δ gem¨aß Tabelle
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
”accept“ steht hier als Abk¨urzung f¨ur(¯q,1,N).
”reject“ steht hier als Abk¨urzung f¨ur(¯q,0,N). Allgemein:
M entscheidetL, wennM alle W¨orter inL akzeptiert und alle W¨orter verwirft, die nicht inLsind
Wenn TM eine Sprache entscheidet, so muss sie immer halten
Beispiel (1)
Es seiL={w1|w ∈ {0,1}∗} die Sprache der W¨orter, die auf 1 enden.
Lwirdentschiedendurch die TM M= (Q,Σ,Γ,B,q0,¯q, δ)mit Q={q0,q1,¯q}
Σ ={0,1}
Γ ={0,1,B} δ gem¨aß Tabelle
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
”accept“ steht hier als Abk¨urzung f¨ur(¯q,1,N).
”reject“ steht hier als Abk¨urzung f¨ur(¯q,0,N). Allgemein:
M entscheidetL, wennM alle W¨orter inL akzeptiert und alle W¨orter verwirft, die nicht inLsind
Wenn TM eine Sprache entscheidet, so muss sie immer halten
BuK/WS 2019 VL-01: Turing Maschinen I 24/42
Beispiel (1)
Es seiL={w1|w ∈ {0,1}∗} die Sprache der W¨orter, die auf 1 enden.
Lwirdentschiedendurch die TM M= (Q,Σ,Γ,B,q0,¯q, δ)mit Q={q0,q1,¯q}
Σ ={0,1}
Γ ={0,1,B}
δ gem¨aß Tabelle
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
”accept“ steht hier als Abk¨urzung f¨ur(¯q,1,N).
”reject“ steht hier als Abk¨urzung f¨ur(¯q,0,N). Allgemein:
M entscheidetL, wennM alle W¨orter inL akzeptiert und alle W¨orter verwirft, die nicht inLsind
Wenn TM eine Sprache entscheidet, so muss sie immer halten
Beispiel (1)
Es seiL={w1|w ∈ {0,1}∗} die Sprache der W¨orter, die auf 1 enden.
Lwirdentschiedendurch die TM M= (Q,Σ,Γ,B,q0,¯q, δ)mit Q={q0,q1,¯q}
Σ ={0,1}
Γ ={0,1,B} δ gem¨aß Tabelle
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
”accept“ steht hier als Abk¨urzung f¨ur(¯q,1,N).
”reject“ steht hier als Abk¨urzung f¨ur(¯q,0,N).
Allgemein:
M entscheidetL, wennM alle W¨orter inL akzeptiert und alle W¨orter verwirft, die nicht inLsind
Wenn TM eine Sprache entscheidet, so muss sie immer halten
BuK/WS 2019 VL-01: Turing Maschinen I 24/42
Beispiel (1)
Es seiL={w1|w ∈ {0,1}∗} die Sprache der W¨orter, die auf 1 enden.
Lwirdentschiedendurch die TM M= (Q,Σ,Γ,B,q0,¯q, δ)mit Q={q0,q1,¯q}
Σ ={0,1}
Γ ={0,1,B} δ gem¨aß Tabelle
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
”accept“ steht hier als Abk¨urzung f¨ur(¯q,1,N).
”reject“ steht hier als Abk¨urzung f¨ur(¯q,0,N).
Allgemein:
M entscheidetL, wennM alle W¨orter inL akzeptiert und alle W¨orter verwirft, die nicht inLsind
Wenn TM eine Sprache entscheidet, so muss sie immer halten
Beispiel (2)
Die ¨Ubergangsfunktion ist zentraler Bestandteil der Turingmaschine.
Beschreibung der ¨Ubergangsfunktion als Tabelle:
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
Verbale Beschreibung des Algorithmus der TM Solange ein Symbol aus {0,1}gelesen wird:
Uberschreibe das Symbol mit¨ B, bewege den Kopf nach rechts, und
gehe in Zustandq0, wenn Symbol=0, sonst in Zustandq1
Sobald ein Blank gelesen wird,
akzeptiere die Eingabe, falls der aktuelle Zustandq1 ist, und andernfalls verwirf die Eingabe.
BuK/WS 2019 VL-01: Turing Maschinen I 25/42
Beispiel (2)
Die ¨Ubergangsfunktion ist zentraler Bestandteil der Turingmaschine.
Beschreibung der ¨Ubergangsfunktion als Tabelle:
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept Verbale Beschreibung des Algorithmus der TM
Solange ein Symbol aus {0,1}gelesen wird:
Uberschreibe das Symbol mit¨ B, bewege den Kopf nach rechts, und
gehe in Zustandq0, wenn Symbol=0, sonst in Zustandq1
Sobald ein Blank gelesen wird,
akzeptiere die Eingabe, falls der aktuelle Zustandq1 ist, und andernfalls verwirf die Eingabe.
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B
· · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B B 1 1 0 1 0 1 B B B · · ·
· · · B B B B B B 1 0 1 0 1 B B B · · ·
· · · B B B B B B B 0 1 0 1 B B B · · ·
· · · B B B B B B B B 1 0 1 B B B · · ·
· · · B B B B B B B B B 0 1 B B B · · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
BuK/WS 2019 VL-01: Turing Maschinen I 26/42
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B
· · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B
· · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B B 1 1 0 1 0 1 B B B · · ·
· · · B B B B B B 1 0 1 0 1 B B B · · ·
· · · B B B B B B B 0 1 0 1 B B B · · ·
· · · B B B B B B B B 1 0 1 B B B · · ·
· · · B B B B B B B B B 0 1 B B B · · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B
· · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B
· · ·
· · · B B B B 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B B 1 1 0 1 0 1 B B B · · ·
· · · B B B B B B 1 0 1 0 1 B B B · · ·
· · · B B B B B B B 0 1 0 1 B B B · · ·
· · · B B B B B B B B 1 0 1 B B B · · ·
· · · B B B B B B B B B 0 1 B B B · · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
BuK/WS 2019 VL-01: Turing Maschinen I 26/42
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B
· · ·
· · · B B B B 0 1 1 0 1 0 1 B B B
· · ·
· · · B B B B B 1 1 0 1 0 1 B B B · · ·
· · · B B B B B B 1 0 1 0 1 B B B · · ·
· · · B B B B B B B 0 1 0 1 B B B · · ·
· · · B B B B B B B B 1 0 1 B B B · · ·
· · · B B B B B B B B B 0 1 B B B · · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B 0 1 1 0 1 0 1 B B B
· · ·
· · · B B B B B 1 1 0 1 0 1 B B B
· · ·
· · · B B B B B B 1 0 1 0 1 B B B · · ·
· · · B B B B B B B 0 1 0 1 B B B · · ·
· · · B B B B B B B B 1 0 1 B B B · · ·
· · · B B B B B B B B B 0 1 B B B · · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
BuK/WS 2019 VL-01: Turing Maschinen I 26/42
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B B 1 1 0 1 0 1 B B B
· · ·
· · · B B B B B B 1 0 1 0 1 B B B
· · ·
· · · B B B B B B B 0 1 0 1 B B B · · ·
· · · B B B B B B B B 1 0 1 B B B · · ·
· · · B B B B B B B B B 0 1 B B B · · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B B 1 1 0 1 0 1 B B B · · ·
· · · B B B B B B 1 0 1 0 1 B B B
· · ·
· · · B B B B B B B 0 1 0 1 B B B
· · ·
· · · B B B B B B B B 1 0 1 B B B · · ·
· · · B B B B B B B B B 0 1 B B B · · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
BuK/WS 2019 VL-01: Turing Maschinen I 26/42
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B B 1 1 0 1 0 1 B B B · · ·
· · · B B B B B B 1 0 1 0 1 B B B · · ·
· · · B B B B B B B 0 1 0 1 B B B
· · ·
· · · B B B B B B B B 1 0 1 B B B
· · ·
· · · B B B B B B B B B 0 1 B B B · · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B B 1 1 0 1 0 1 B B B · · ·
· · · B B B B B B 1 0 1 0 1 B B B · · ·
· · · B B B B B B B 0 1 0 1 B B B · · ·
· · · B B B B B B B B 1 0 1 B B B
· · ·
· · · B B B B B B B B B 0 1 B B B
· · ·
· · · B B B B B B B B B B 1 B B B · · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept
BuK/WS 2019 VL-01: Turing Maschinen I 26/42
Veranschaulichung des Algorithmus
Eingabex=0100110101
Eingabex
· · ·
· · · B 0 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B 1 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B 0 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B 0 1 1 0 1 0 1 B B B · · ·
· · · B B B B B 1 1 0 1 0 1 B B B · · ·
· · · B B B B B B 1 0 1 0 1 B B B · · ·
· · · B B B B B B B 0 1 0 1 B B B · · ·
· · · B B B B B B B B 1 0 1 B B B · · ·
· · · B B B B B B B B B 0 1 B B B
· · ·
· · · B B B B B B B B B B 1 B B B
· · ·
· · · B B B B B B B B B B B B B B
δ 0 1 B
q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept