Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Berechenbarkeit undKomplexitatstheorie
3. Vorlesung
Martin Dietzfelbinger
30. Oktober 2009
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009
Turingmaschinen
• rechnen mit Zeichenreichen
• verallgemeinern DFAs und DPDAs
• verallgemeinern NFAs und NPDAs (”Nichtdeterminismus“)
• bilden ein extrem simples Maschinenmodell
(technisch vorteilhaft)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 1
Turingmaschinen
Qδ
q
qm q
q
0
1
2
3q
Steuereinheit
B B B b a n d i n B B * # − s c h r i f t B B B B B B B ......
Bewegen um 1 BandfeldLese−Schreib−Kopf:
Schreiben Lesen
Übergangsfunktion
Zustandsmenge
gegenwärtiger Zustand
q
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 2
Turingmaschinen
Def.: Eine Turingmaschine M besteht aus sieben Komponen-
ten Q,Σ,Γ,B, q0,F , δ, wobei gilt:
(a) Q 6= ∅ ist endliche Menge. (Zustande.)
(b) Σ 6= ∅ ist endliche Menge. (Eingabealphabet.)
(c) Γ ist eine endliche Menge mit Σ ⊆ Γ. (Bandalphabet.)
B ∈ Γ− Σ. (Blanksymbol.)
(d) q0 ∈ Q. (Startzustand.)
(e) F ⊆ Q. (Akzeptierende Zustande.)
(f) δ : Q×Γ→ Q×Γ×{R,N,L}∪{−}. (Ubergangsfunktion.)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 3
Turingmaschinen – Beispiel
TM M soll genau die Worter der Sprache
L = {anbncn | n ≥ 0}
akzeptieren.
Q = {A,C,D,E,H, Y }q0 = A
Σ = {a, b, c}Γ = {a, b, c, X, B}Blankbuchstabe B
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 4
Ubergangsfunktion δ als Tabelle:
a
q a b c X B
A (C, X, R) − − (A, X, R) (Y,B,N)C (C, a, R) (D, X, R) − (C, X, R) −D − (D, b, R) (E, X, R) (D, X, R) −E − − (E, c, R) − (H,B,L)H (H, a, L) (H, b, L) (H, c, L) (H, X, L) (A,B,R)Y − − − − −
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 5
”Sinn“ der Zustande:
A: Uberquere X-e, finde und streiche (”X“) erstes a.
Falls nur X-e gefunden: Check war erfolgreich.
C: Uberquere a-s und X-e, finde und streiche (”X“) erstes b.
D: Uberquere b-s und X-e, finde und streiche (”X“) erstes c.
E: Uberquere c-s, finde erstes B.
H: Fahre nach links, bis das erste B links des Eingabebereichs
erreicht ist.
Y: Akzeptierender Zustand, wird erreicht, wenn in Zustand A
nur X-e gelesen werden.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 6
Turingmaschinen – graphische Darstellung
, RX|X
a|X , R , Rb|X
c|X , R
X|Xa|ab|b
, L, L, L, Lc|c
, Rc|cB | B, L
, Ra|a , Rb|b, RX|X , RX|X
B | B, N
Start
C D
HY
A
E
B | B, R
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 7
Turingmaschinen – Beispiel Binaradditiona
q 00 01 10 11p0 (p, 0, R) (p, 1, R) (p, 1, R) (p, 2, R)p (p, 0, R) (p, 1, R) (p, 1, R) (p, 2, R)r0 − − − −r1 − − − −
s0, s1 − − − −
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 8
Turingmaschinen – Beispiel Binaradditiona
q 00 01 10 11p0 (p, 0, R) (p, 1, R) (p, 1, R) (p, 2, R)p (p, 0, R) (p, 1, R) (p, 1, R) (p, 2, R)r0 − − − −r1 − − − −
s0, s1 − − − −a
q 0 1 2 Bp0 − − − −p − − − (r0, B, L)r0 − − − −r1 − − − −
s0, s1 − − − −
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 8
Turingmaschinen – Beispiel Binaradditiona
q 00 01 10 11p0 (p, 0, R) (p, 1, R) (p, 1, R) (p, 2, R)p (p, 0, R) (p, 1, R) (p, 1, R) (p, 2, R)r0 − − − −r1 − − − −
s0, s1 − − − −a
q 0 1 2 Bp0 − − − −p − − − (r0, B, L)r0 − − − −r1 − − − −
s0, s1 − − − −Ablauf einer Berechnung:
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 8
B B (p0, 10) 11 00 01 11 B
B B 1 (p, 11) 00 01 11 B
B B 1 2 (p, 00) 01 11 B
B B 1 2 0 (p, 01) 11 B
B B 1 2 0 1 (p, 11) B
B B 1 2 0 1 2 (p,B)
B B 1 2 0 1 (r0, 2) B
B B 1 2 0 (r1, 1) 0 B
B B 1 2 (r1, 0) 0 0 B
B B 1 (r0, 2) 1 0 0 B
B B (r1, 1) 0 1 0 0 B
B (r1, B) 0 0 1 0 0 B
B (s1, 1) 0 0 1 0 0 B
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 9
Turingmaschinen
TMn definieren mathematisch exaktberechenbare Funktionen und entscheidbare Sprachen.
(Es gibt einen Algorithmus zur Berechnung von f bzw. (esgibt einen Algorithmuszur Entscheidung der Frage
”Ist x ∈ L?“)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 10
Turingmaschinen
TMn definieren mathematisch exaktberechenbare Funktionen und entscheidbare Sprachen.
(Es gibt einen Algorithmus zur Berechnung von f bzw. (esgibt einen Algorithmuszur Entscheidung der Frage
”Ist x ∈ L?“)
”Operationale Semantik“
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 10
Turingmaschinen
TMn definieren mathematisch exaktberechenbare Funktionen und entscheidbare Sprachen.
(Es gibt einen Algorithmus zur Berechnung von f bzw. (esgibt einen Algorithmuszur Entscheidung der Frage
”Ist x ∈ L?“)
”Operationale Semantik“:
Drucke mit mathematischen Methoden aus, wie TMen rech-
nen, ohne auf die intuitiven Komponenten wie Bander,
Steuereinheiten, Zustande usw. Bezug zu nehmen.
Hier beispielhaft einmal vollstandig ausgefuhrt.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 10
Turingmaschinen – Konfigurationen
”snapshot“
”Momentaufnahme“
”instantaneous description“
... B ...B B
q
r e s u l t a t i r r e l e vtnavelerri
Notiere nur: irrelevant(q, r)esultatBBirrelev
Komplette Beschreibung des Zustandes der TM.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 11
Turingmaschinen – Konfigurationen
Definition
Eine Konfiguration der TM M = (Q,Σ,Γ, B, q0, F, δ) ist
ein Wort
α1(q, a)α2
mit q ∈ Q, a ∈ Γ, α1, α2 ∈ Γ∗, wobei α1 nicht mit B beginnt
und α2 nicht mit B endet.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 12
Turingmaschinen – Konfigurationen
Definition
Eine Konfiguration der TM M = (Q,Σ,Γ, B, q0, F, δ) ist
ein Wort
α1(q, a)α2
mit q ∈ Q, a ∈ Γ, α1, α2 ∈ Γ∗, wobei α1 nicht mit B beginnt
und α2 nicht mit B endet.
KM : Menge aller Konfigurationen von M .
KM = (Γ∗ − {B}Γ∗)(Q× Γ)(Γ∗ − Γ∗{B})Abzahlbar (unendlich)!
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 12
Konfiguration k = α1(q, a)α2 sei gegeben.
Falls δ(q, a) = − : k Haltekonfiguration, kein Nachfolger.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 13
Konfiguration k = α1(q, a)α2 sei gegeben.
Falls δ(q, a) = − : k Haltekonfiguration, kein Nachfolger.
Sonst: δ(q, a) = (q′, a′, D)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 13
Konfiguration k = α1(q, a)α2 sei gegeben.
Falls δ(q, a) = − : k Haltekonfiguration, kein Nachfolger.
Sonst: δ(q, a) = (q′, a′, D)
Bilde k = B α1(q, a)α2B = γ1c(q, a)dγ2, mit c, d ∈ Γ.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 13
Konfiguration k = α1(q, a)α2 sei gegeben.
Falls δ(q, a) = − : k Haltekonfiguration, kein Nachfolger.
Sonst: δ(q, a) = (q′, a′, D)
Bilde k = B α1(q, a)α2B = γ1c(q, a)dγ2, mit c, d ∈ Γ.
k′ :=
γ1 (q′, c) a′ d γ2 , falls D = L;
γ1 c a′ (q′, d) γ2 , falls D = R;
γ1 c (q′, a′) d γ2 , falls D = N .
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 13
Konfiguration k = α1(q, a)α2 sei gegeben.
Falls δ(q, a) = − : k Haltekonfiguration, kein Nachfolger.
Sonst: δ(q, a) = (q′, a′, D)
Bilde k = B α1(q, a)α2B = γ1c(q, a)dγ2, mit c, d ∈ Γ.
k′ :=
γ1 (q′, c) a′ d γ2 , falls D = L;
γ1 c a′ (q′, d) γ2 , falls D = R;
γ1 c (q′, a′) d γ2 , falls D = N .
Entferne aus k′ alle B’s am Anfang und am Ende.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 13
Konfiguration k = α1(q, a)α2 sei gegeben.
Falls δ(q, a) = − : k Haltekonfiguration, kein Nachfolger.
Sonst: δ(q, a) = (q′, a′, D)
Bilde k = B α1(q, a)α2B = γ1c(q, a)dγ2, mit c, d ∈ Γ.
k′ :=
γ1 (q′, c) a′ d γ2 , falls D = L;
γ1 c a′ (q′, d) γ2 , falls D = R;
γ1 c (q′, a′) d γ2 , falls D = N .
Entferne aus k′ alle B’s am Anfang und am Ende.
Liefert die Nachfolgekonfiguration k′ von k.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 13
Konfiguration k = α1(q, a)α2 sei gegeben.
Falls δ(q, a) = − : k Haltekonfiguration, kein Nachfolger.
Sonst: δ(q, a) = (q′, a′, D)
Bilde k = B α1(q, a)α2B = γ1c(q, a)dγ2, mit c, d ∈ Γ.
k′ :=
γ1 (q′, c) a′ d γ2 , falls D = L;
γ1 c a′ (q′, d) γ2 , falls D = R;
γ1 c (q′, a′) d γ2 , falls D = N .
Entferne aus k′ alle B’s am Anfang und am Ende.
Liefert die Nachfolgekonfiguration k′ von k.
Schreibweise: k `M k′ bzw. k ` k′
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 13
Turingmaschinen – Beispiele
XXaX(C, b)bXcc ` XXaXX(D, b)Xcc und
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 14
Turingmaschinen – Beispiele
XXaX(C, b)bXcc ` XXaXX(D, b)Xcc und
XXaXXbX(D, c)c ` XXaXXbXX(E, c) , aber auch
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 14
Turingmaschinen – Beispiele
XXaX(C, b)bXcc ` XXaXX(D, b)Xcc und
XXaXXbX(D, c)c ` XXaXXbXX(E, c) , aber auch
cXcX(C, b) ` cXcXX(D,B).
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 14
Turingmaschinen – Beispiele
XXaX(C, b)bXcc ` XXaXX(D, b)Xcc und
XXaXXbX(D, c)c ` XXaXXbXX(E, c) , aber auch
cXcX(C, b) ` cXcXX(D,B).
Haltekonfiguration (nicht akzeptierend):
XaXb(D, a)c
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 14
Turingmaschinen – Beispiele
XXaX(C, b)bXcc ` XXaXX(D, b)Xcc und
XXaXXbX(D, c)c ` XXaXXbXX(E, c) , aber auch
cXcX(C, b) ` cXcXX(D,B).
Haltekonfiguration (nicht akzeptierend):
XaXb(D, a)c
Haltekonfiguration (akzeptierend):
XXX(Y,B)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 14
TM - indirekte Nachfolgekonfigurationen
Definition
k `∗M k′ bzw. k `∗ k′:es existiert eine Folge
k = k0 `M k1 `M · · · `M ki = k′
Erlaubt: i = 0, d.h. k `∗ k gilt.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 15
TM - indirekte Nachfolgekonfigurationen
Definition
k `∗M k′ bzw. k `∗ k′:es existiert eine Folge
k = k0 `M k1 `M · · · `M ki = k′
Erlaubt: i = 0, d.h. k `∗ k gilt.
”Reflexive und transitive Hulle“ von `M
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 15
Turingmaschinen – Startkonfiguration
. . . auf Eingabe x = a1 . . . an ∈ Σ∗:
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 16
Turingmaschinen – Startkonfiguration
. . . auf Eingabe x = a1 . . . an ∈ Σ∗:
init(x) := initM(x) :={
(q0, a1)a2 · · · an falls n ≥ 1(q0, B) falls n = 0
(Anfangs steht der Kopf unter dem ersten Eingabezeichen.)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 16
Turingmaschinen – Berechnung
Gegeben: Turingmaschine M , x ∈ Σ∗.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 17
Turingmaschinen – Berechnung
Gegeben: Turingmaschine M , x ∈ Σ∗.
Startkonfiguration k0 = init(x) bestimmt eindeutig eine
Konfigurationsfolge
k0 ` k1 ` k2 ` · · ·
(endlich oder unendlich):
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 17
Turingmaschinen – Berechnung
Gegeben: Turingmaschine M , x ∈ Σ∗.
Startkonfiguration k0 = init(x) bestimmt eindeutig eine
Konfigurationsfolge
k0 ` k1 ` k2 ` · · ·
(endlich oder unendlich):
die Berechnung von M auf x.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 17
Turingmaschinen – 2 Moglichkeiten
(i) Die Berechnung von M auf x ist endlich, d.h. init(x) `∗ kfur eine (eindeutig bestimmte) Haltekonfiguration k.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 18
Turingmaschinen – 2 Moglichkeiten
(i) Die Berechnung von M auf x ist endlich, d.h. init(x) `∗ kfur eine (eindeutig bestimmte) Haltekonfiguration k.
Wir sagen: M auf x halt.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 18
Turingmaschinen – 2 Moglichkeiten
(i) Die Berechnung von M auf x ist endlich, d.h. init(x) `∗ kfur eine (eindeutig bestimmte) Haltekonfiguration k.
Wir sagen: M auf x halt.
Wenn k akzeptierend: M akzeptiert x;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 18
Turingmaschinen – 2 Moglichkeiten
(i) Die Berechnung von M auf x ist endlich, d.h. init(x) `∗ kfur eine (eindeutig bestimmte) Haltekonfiguration k.
Wir sagen: M auf x halt.
Wenn k akzeptierend: M akzeptiert x;
wenn k verwerfend: M verwirft x.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 18
Turingmaschinen – 2 Moglichkeiten
(i) Die Berechnung von M auf x ist endlich, d.h. init(x) `∗ kfur eine (eindeutig bestimmte) Haltekonfiguration k.
Wir sagen: M auf x halt.
Wenn k akzeptierend: M akzeptiert x;
wenn k verwerfend: M verwirft x.
(ii) Die Berechnung von M auf x ist eine unendliche Folge von
Konfigurationen.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 18
Turingmaschinen – 2 Moglichkeiten
(i) Die Berechnung von M auf x ist endlich, d.h. init(x) `∗ kfur eine (eindeutig bestimmte) Haltekonfiguration k.
Wir sagen: M auf x halt.
Wenn k akzeptierend: M akzeptiert x;
wenn k verwerfend: M verwirft x.
(ii) Die Berechnung von M auf x ist eine unendliche Folge von
Konfigurationen. Wir sagen: M auf x halt nicht.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 18
Turingmaschinen – Akzeptierte Sprache
LM := {x ∈ Σ∗ |M akzeptiert x}
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 19
Turingmaschinen – Akzeptierte Sprache
LM := {x ∈ Σ∗ |M akzeptiert x}
heißt die von M akzeptierte Sprache.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 19
Turingmaschinen – Akzeptierte Sprache
LM := {x ∈ Σ∗ |M akzeptiert x}
heißt die von M akzeptierte Sprache.
Turingmaschinen – Haltesprache
HM := {x ∈ Σ∗ |M halt auf x}
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 19
Turingmaschinen – Akzeptierte Sprache
LM := {x ∈ Σ∗ |M akzeptiert x}
heißt die von M akzeptierte Sprache.
Turingmaschinen – Haltesprache
HM := {x ∈ Σ∗ |M halt auf x}
heißt die Haltesprache von M .
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 19
Turingmaschinen – Akzeptierte Sprache
LM := {x ∈ Σ∗ |M akzeptiert x}
heißt die von M akzeptierte Sprache.
Turingmaschinen – Haltesprache
HM := {x ∈ Σ∗ |M halt auf x}
heißt die Haltesprache von M .
Σ∗ wird in drei disjunkte Teile zerlegt:
LM (X wird akzeptiert), HM − LM (x wird verworfen),
Σ∗ −HM (M halt nicht auf x).
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 19
Rekursiv aufzahlbare und rekursive SprachenDefinition
Eine Sprache L heißt rekursiv aufzahlbar (r. a.) (oder TM-akzeptierbar), falls es eine Turingmaschine M gibt, so dass
L = LM ist.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 20
Rekursiv aufzahlbare und rekursive SprachenDefinition
Eine Sprache L heißt rekursiv aufzahlbar (r. a.) (oder TM-akzeptierbar), falls es eine Turingmaschine M gibt, so dass
L = LM ist.
Definition
Eine Sprache L heißt rekursiv (rek.) (oder TM-entscheidbar), falls es eine Turingmaschine M gibt, die aufallen Inputs x ∈ Σ∗ halt, so dass L = LM ist.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 20
Rekursiv aufzahlbare und rekursive SprachenDefinition
Eine Sprache L heißt rekursiv aufzahlbar (r. a.) (oder TM-akzeptierbar), falls es eine Turingmaschine M gibt, so dass
L = LM ist.
Definition
Eine Sprache L heißt rekursiv (rek.) (oder TM-entscheidbar), falls es eine Turingmaschine M gibt, die aufallen Inputs x ∈ Σ∗ halt, so dass L = LM ist.
Klar: Jede rekursive Sprache ist r. a.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 20
Haltesprachen = r.a. Sprachen
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Haltesprachen = r.a. Sprachen
Bemerkung:
{LM |M TM} = {HM |M TM}.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Haltesprachen = r.a. Sprachen
Bemerkung:
{LM |M TM} = {HM |M TM}.
Die Haltesprachen sind identisch mit den r.a. Sprachen.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Haltesprachen = r.a. Sprachen
Bemerkung:
{LM |M TM} = {HM |M TM}.
Die Haltesprachen sind identisch mit den r.a. Sprachen.
Beweis:
”⊆“:
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Haltesprachen = r.a. Sprachen
Bemerkung:
{LM |M TM} = {HM |M TM}.
Die Haltesprachen sind identisch mit den r.a. Sprachen.
Beweis:
”⊆“: Aus TM M baue TM M ′ mit HM ′ = LM .
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Haltesprachen = r.a. Sprachen
Bemerkung:
{LM |M TM} = {HM |M TM}.
Die Haltesprachen sind identisch mit den r.a. Sprachen.
Beweis:
”⊆“: Aus TM M baue TM M ′ mit HM ′ = LM .
(M ′ rechnet wie M . Wenn M mit δ(q, a) = − halt und q ∈ Q − F ist,
lasse M ′ mit δ′(q, a) = (q, a,N) in eine”Endlosschleife“ gehen.)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Haltesprachen = r.a. Sprachen
Bemerkung:
{LM |M TM} = {HM |M TM}.
Die Haltesprachen sind identisch mit den r.a. Sprachen.
Beweis:
”⊆“: Aus TM M baue TM M ′ mit HM ′ = LM .
(M ′ rechnet wie M . Wenn M mit δ(q, a) = − halt und q ∈ Q − F ist,
lasse M ′ mit δ′(q, a) = (q, a,N) in eine”Endlosschleife“ gehen.)
”⊇“:
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Haltesprachen = r.a. Sprachen
Bemerkung:
{LM |M TM} = {HM |M TM}.
Die Haltesprachen sind identisch mit den r.a. Sprachen.
Beweis:
”⊆“: Aus TM M baue TM M ′ mit HM ′ = LM .
(M ′ rechnet wie M . Wenn M mit δ(q, a) = − halt und q ∈ Q − F ist,
lasse M ′ mit δ′(q, a) = (q, a,N) in eine”Endlosschleife“ gehen.)
”⊇“: Aus TM M baue TM M ′ mit LM ′ = HM .
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Haltesprachen = r.a. Sprachen
Bemerkung:
{LM |M TM} = {HM |M TM}.
Die Haltesprachen sind identisch mit den r.a. Sprachen.
Beweis:
”⊆“: Aus TM M baue TM M ′ mit HM ′ = LM .
(M ′ rechnet wie M . Wenn M mit δ(q, a) = − halt und q ∈ Q − F ist,
lasse M ′ mit δ′(q, a) = (q, a,N) in eine”Endlosschleife“ gehen.)
”⊇“: Aus TM M baue TM M ′ mit LM ′ = HM .
(Andere F in F ′ = Q um.)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 21
Turingmaschinen – Ausgabe
Ausgabe fM(x) von M auf x:
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 22
Turingmaschinen – Ausgabe
Ausgabe fM(x) von M auf x:
Falls M auf x nicht halt, ist fM(x) undefiniert.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 22
Turingmaschinen – Ausgabe
Ausgabe fM(x) von M auf x:
Falls M auf x nicht halt, ist fM(x) undefiniert.
Sonst sei k die (eindeutige) Haltekonfiguration mit
init(x) `∗M k, und k = α1(q, b)α2, α1, α2 ∈ Γ∗, b ∈ Γ, q ∈ Q.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 22
Turingmaschinen – Ausgabe
Ausgabe fM(x) von M auf x:
Falls M auf x nicht halt, ist fM(x) undefiniert.
Sonst sei k die (eindeutige) Haltekonfiguration mit
init(x) `∗M k, und k = α1(q, b)α2, α1, α2 ∈ Γ∗, b ∈ Γ, q ∈ Q.
Dann ist fM(x) das langste Prafix von bα2, das den Blank-
buchstaben B nicht enthalt.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 22
Turingmaschinen – Ausgabe
Ausgabe fM(x) von M auf x:
Falls M auf x nicht halt, ist fM(x) undefiniert.
Sonst sei k die (eindeutige) Haltekonfiguration mit
init(x) `∗M k, und k = α1(q, b)α2, α1, α2 ∈ Γ∗, b ∈ Γ, q ∈ Q.
Dann ist fM(x) das langste Prafix von bα2, das den Blank-
buchstaben B nicht enthalt.
Beachte: Fur die Bestimmung der Ausgabe von M auf x ist
es unerheblich, ob M x akzeptiert oder verwirft.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 22
Partiell rekursive Funktionen
Definition
Eine Funktion f : D → R heißt partiell rekursiv, falls es
eine TM M = (Q,Σ,Γ, . . .) gibt derart dass D = HM ,
R ⊆ (Γ− {B})∗ und f = fM ist.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 23
Partiell rekursive Funktionen
Definition
Eine Funktion f : D → R heißt partiell rekursiv, falls es
eine TM M = (Q,Σ,Γ, . . .) gibt derart dass D = HM ,
R ⊆ (Γ− {B})∗ und f = fM ist.
Definition
Eine Funktion f : Σ∗ → R heißt rekursiv oder deutlicher
total rekursiv, falls es eine TM M = (Q,Σ,Γ, . . .) gibt
derart dass f = fM ist.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 23
Partiell rekursive Funktionen
Definition
Eine Funktion f : D → R heißt partiell rekursiv, falls es
eine TM M = (Q,Σ,Γ, . . .) gibt derart dass D = HM ,
R ⊆ (Γ− {B})∗ und f = fM ist.
Definition
Eine Funktion f : Σ∗ → R heißt rekursiv oder deutlicher
total rekursiv, falls es eine TM M = (Q,Σ,Γ, . . .) gibt
derart dass f = fM ist.
Beachte: Diese TM M halt auf allen Inputs x ∈ Σ∗.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 23
Wozu Turingmaschinen?
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 24
Wozu Turingmaschinen?
• Mathematische Untersuchungen, Vergleich mit anderen Mo-
dellen, Aquivalenz zu Stufen der Chomsky-Hierarchie,”uni-
verselle“ (programmierbare) TM, Konstruktion nichtrekur-
siver Sprachen
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 24
Wozu Turingmaschinen?
• Mathematische Untersuchungen, Vergleich mit anderen Mo-
dellen, Aquivalenz zu Stufen der Chomsky-Hierarchie,”uni-
verselle“ (programmierbare) TM, Konstruktion nichtrekur-
siver Sprachen
Primitive Struktur des Modells gunstig.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 24
Wozu Turingmaschinen?
• Mathematische Untersuchungen, Vergleich mit anderen Mo-
dellen, Aquivalenz zu Stufen der Chomsky-Hierarchie,”uni-
verselle“ (programmierbare) TM, Konstruktion nichtrekur-
siver Sprachen
Primitive Struktur des Modells gunstig.
• Nachweis fuhren, dass f (partiell) rekursiv, dass L rekursiv.
D.h.: TM programmieren!
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 24
Wozu Turingmaschinen?
• Mathematische Untersuchungen, Vergleich mit anderen Mo-
dellen, Aquivalenz zu Stufen der Chomsky-Hierarchie,”uni-
verselle“ (programmierbare) TM, Konstruktion nichtrekur-
siver Sprachen
Primitive Struktur des Modells gunstig.
• Nachweis fuhren, dass f (partiell) rekursiv, dass L rekursiv.
D.h.: TM programmieren!
Primitive Struktur des Modells sehr ungunstig.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 24
Wozu Turingmaschinen?
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 25
Wozu Turingmaschinen?
Beachte: In der Gestaltung der Komponenten Γ, Q, δ sind
wir frei.
Wahle diese Komponenten moglichst gunstig und
strukturiert.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 25
Wozu Turingmaschinen?
Beachte: In der Gestaltung der Komponenten Γ, Q, δ sind
wir frei.
Wahle diese Komponenten moglichst gunstig und
strukturiert.
Gravierende Programmierfehler:
• Unbegrenzt viele Bandbuchstaben;
• Unbegrenzt viele Zustande in der Steuereinheit;”Register“
in der Steuereinheit, das beliebige Zahlen speichert
Turingmaschinen mussen Zahlen in Ziffernschreibweise auf
das Band schreiben!
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 25
1.2 Programmiertechniken
. . . und”Robustheit des TM-Modells“ gegenuber Varianten.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 26
Endlicher Speicher in der Steuereinheit (1.2.1)
Beispiel :
L = {a1a2 · · · an−1an ∈ Σ∗ | n ≥ 2, a1a2 = an−1an}
Sprache der Worter, bei denen die beiden Anfangsbuchstaben
gleich den beiden Endbuchstaben sind.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 27
Endlicher Speicher in der Steuereinheit (1.2.1)
Beispiel :
L = {a1a2 · · · an−1an ∈ Σ∗ | n ≥ 2, a1a2 = an−1an}
Sprache der Worter, bei denen die beiden Anfangsbuchstaben
gleich den beiden Endbuchstaben sind.
Programmieridee: Speichere a1 und a2 in einem Register in
der Steuereinheit.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 27
Endlicher Speicher in der Steuereinheit
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Endlicher Speicher in der Steuereinheit
δ(q0, a) = ((q1, a), a, R), fur a ∈ Σ
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Endlicher Speicher in der Steuereinheit
δ(q0, a) = ((q1, a), a, R), fur a ∈ Σ
δ((q1, a), b) = ((q2, a, b), b, R), fur a, b ∈ Σ
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Endlicher Speicher in der Steuereinheit
δ(q0, a) = ((q1, a), a, R), fur a ∈ Σ
δ((q1, a), b) = ((q2, a, b), b, R), fur a, b ∈ Σ
δ((q2, a, b), c) = ((q2, a, b), c, R), fur a, b, c ∈ Σ
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Endlicher Speicher in der Steuereinheit
δ(q0, a) = ((q1, a), a, R), fur a ∈ Σ
δ((q1, a), b) = ((q2, a, b), b, R), fur a, b ∈ Σ
δ((q2, a, b), c) = ((q2, a, b), c, R), fur a, b, c ∈ Σ
δ((q2, a, b), B) = ((q3, a, b), B, L), fur a, b, c ∈ Σ
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Endlicher Speicher in der Steuereinheit
δ(q0, a) = ((q1, a), a, R), fur a ∈ Σ
δ((q1, a), b) = ((q2, a, b), b, R), fur a, b ∈ Σ
δ((q2, a, b), c) = ((q2, a, b), c, R), fur a, b, c ∈ Σ
δ((q2, a, b), B) = ((q3, a, b), B, L), fur a, b, c ∈ Σ
δ((q3, a, b), b) = ((q4, a), b, L), fur a, b ∈ Σ
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Endlicher Speicher in der Steuereinheit
δ(q0, a) = ((q1, a), a, R), fur a ∈ Σ
δ((q1, a), b) = ((q2, a, b), b, R), fur a, b ∈ Σ
δ((q2, a, b), c) = ((q2, a, b), c, R), fur a, b, c ∈ Σ
δ((q2, a, b), B) = ((q3, a, b), B, L), fur a, b, c ∈ Σ
δ((q3, a, b), b) = ((q4, a), b, L), fur a, b ∈ Σ
δ((q4, a), a) = (q5, a,N), fur a ∈ Σ
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Endlicher Speicher in der Steuereinheit
δ(q0, a) = ((q1, a), a, R), fur a ∈ Σ
δ((q1, a), b) = ((q2, a, b), b, R), fur a, b ∈ Σ
δ((q2, a, b), c) = ((q2, a, b), c, R), fur a, b, c ∈ Σ
δ((q2, a, b), B) = ((q3, a, b), B, L), fur a, b, c ∈ Σ
δ((q3, a, b), b) = ((q4, a), b, L), fur a, b ∈ Σ
δ((q4, a), a) = (q5, a,N), fur a ∈ Σ
Zustandsmenge: Q :={q0, q5} ∪ {(q1, a), (q4, a) | a ∈ Σ} ∪ {(q2, a, b), (q3, a, b) | a, b ∈ Σ}
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Endlicher Speicher in der Steuereinheit
δ(q0, a) = ((q1, a), a, R), fur a ∈ Σ
δ((q1, a), b) = ((q2, a, b), b, R), fur a, b ∈ Σ
δ((q2, a, b), c) = ((q2, a, b), c, R), fur a, b, c ∈ Σ
δ((q2, a, b), B) = ((q3, a, b), B, L), fur a, b, c ∈ Σ
δ((q3, a, b), b) = ((q4, a), b, L), fur a, b ∈ Σ
δ((q4, a), a) = (q5, a,N), fur a ∈ Σ
Zustandsmenge: Q :={q0, q5} ∪ {(q1, a), (q4, a) | a ∈ Σ} ∪ {(q2, a, b), (q3, a, b) | a, b ∈ Σ}Analog kann man bereitstellen: Flagbits, Register aus Flagbits.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 28
Spurtechnik (1.2.2)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 29
Spurtechnik (1.2.2)
∆ Alphabet, k ≥ 1.
Vorstellung: Band hat k Spuren (jede Zelle ist eine Spalte)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 29
Spurtechnik (1.2.2)
∆ Alphabet, k ≥ 1.
Vorstellung: Band hat k Spuren (jede Zelle ist eine Spalte)
Spur 12345
...
...
...
...
...
...
...
...
...
...
e i n s BB z w e i3 3 3 3 Bv i e r 4B B B B 5
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 29
Spurtechnik (1.2.2)
∆ Alphabet, k ≥ 1.
Vorstellung: Band hat k Spuren (jede Zelle ist eine Spalte)
Spur 12345
...
...
...
...
...
...
...
...
...
...
e i n s BB z w e i3 3 3 3 Bv i e r 4B B B B 5
Programmierfehler: k nicht begrenzt.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 29
Spurtechnik
Hierzu:
Γ ⊇ ∆k =
a1
...ak
: a1, . . . , ak ∈ ∆
.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 30
Spurtechnik
Hierzu:
Γ ⊇ ∆k =
a1
...ak
: a1, . . . , ak ∈ ∆
.
Verschiedene Spuranzahlen ≤ k in verschiedenen Bandab-
schnitten – oder gemischt:
∆ ∪∆2 ∪ · · · ∪∆k ⊆ Γ.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 30
Spurtechnik
Hierzu:
Γ ⊇ ∆k =
a1
...ak
: a1, . . . , ak ∈ ∆
.
Verschiedene Spuranzahlen ≤ k in verschiedenen Bandab-
schnitten – oder gemischt:
∆ ∪∆2 ∪ · · · ∪∆k ⊆ Γ.
Programmierfehler: Spuranzahl nicht begrenzt.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 30
Spurtechnik
Markierungen auf Spur 2:
...
.........
B b a n d # # i n s c h r i f t* +* +
TextspurMarkierung
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 31
Spurtechnik
Markierungen auf Spur 2:
...
.........
B b a n d # # i n s c h r i f t* +* +
TextspurMarkierung
Programmierfehler:
unbeschrankt viele Markierungen in einer Zelle.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 31
Technik: Bandinhalt verschieben (1.2.3)
vorher:
Spur 1
Spur 2
nachher:
Spur 1
Spur 2
Hilfsspur
l i n k s r e c h t s u n d s o w e i t e r
c $
B B B
c $
l i n k s B B B B B B B B r e c h t s u n d s o w
r e c h t s u n d s o w
zu verschieben
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 32
Technik: Bandinhalt verschieben (1.2.3)
vorher:
Spur 1
Spur 2
nachher:
Spur 1
Spur 2
Hilfsspur
l i n k s r e c h t s u n d s o w e i t e r
c $
B B B
c $
l i n k s B B B B B B B B r e c h t s u n d s o w
r e c h t s u n d s o w
zu verschieben
Zweck: Erzeugen von Platz im Inneren einer Bandinschrift.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 32
Bandinhalt verschieben
”Detaillierte Beschreibung“, kein TM-Programm:
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 33
Bandinhalt verschieben
”Detaillierte Beschreibung“, kein TM-Programm:
Kopf nach rechts bis zum /c.
Wiederhole folgendes (1.–5.):
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 33
Bandinhalt verschieben
”Detaillierte Beschreibung“, kein TM-Programm:
Kopf nach rechts bis zum /c.
Wiederhole folgendes (1.–5.):
1. Speichere Buchstaben a aus Spur 1 in Steuereinheit;
markiere Zelle mit +;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 33
Bandinhalt verschieben
”Detaillierte Beschreibung“, kein TM-Programm:
Kopf nach rechts bis zum /c.
Wiederhole folgendes (1.–5.):
1. Speichere Buchstaben a aus Spur 1 in Steuereinheit;
markiere Zelle mit +;
2. Fahre Kopf nach rechts bis zum ersten B auf der
Hilfsspur jenseits vom �;uberschreibe dieses B mit dem gespeicherten a;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 33
Bandinhalt verschieben
”Detaillierte Beschreibung“, kein TM-Programm:
Kopf nach rechts bis zum /c.
Wiederhole folgendes (1.–5.):
1. Speichere Buchstaben a aus Spur 1 in Steuereinheit;
markiere Zelle mit +;
2. Fahre Kopf nach rechts bis zum ersten B auf der
Hilfsspur jenseits vom �;uberschreibe dieses B mit dem gespeicherten a;
3. Fahre Kopf nach links, bis + erreicht wird;
losche dieses +;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 33
Bandinhalt verschieben
”Detaillierte Beschreibung“, kein TM-Programm:
Kopf nach rechts bis zum /c.
Wiederhole folgendes (1.–5.):
1. Speichere Buchstaben a aus Spur 1 in Steuereinheit;
markiere Zelle mit +;
2. Fahre Kopf nach rechts bis zum ersten B auf der
Hilfsspur jenseits vom �;uberschreibe dieses B mit dem gespeicherten a;
3. Fahre Kopf nach links, bis + erreicht wird;
losche dieses +;
4. Wenn Kopf in der $-Zelle steht, gehe zu 6.
5. Sonst Kopf um eine Zelle nach rechts und zu 1.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 33
6. Fahre Kopf nach links bis zur /c-Zelle;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 34
6. Fahre Kopf nach links bis zur /c-Zelle;
7. Fahre Kopf nach rechts bis zur �-Zelle, uberschreibe dabei
Spur 1 mit B;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 34
6. Fahre Kopf nach links bis zur /c-Zelle;
7. Fahre Kopf nach rechts bis zur �-Zelle, uberschreibe dabei
Spur 1 mit B;
8. von der �-Zelle (einschließlich) nach rechts gehend kopiere
die Buchstaben von Spur 3 auf dasselbe Feld in Spur 1,
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 34
6. Fahre Kopf nach links bis zur /c-Zelle;
7. Fahre Kopf nach rechts bis zur �-Zelle, uberschreibe dabei
Spur 1 mit B;
8. von der �-Zelle (einschließlich) nach rechts gehend kopiere
die Buchstaben von Spur 3 auf dasselbe Feld in Spur 1, losche
dabei gleichzeitig Spur 3, bis zur ersten Zelle (ausschließlich),
die in Spur 3 ein B enthalt;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 34
6. Fahre Kopf nach links bis zur /c-Zelle;
7. Fahre Kopf nach rechts bis zur �-Zelle, uberschreibe dabei
Spur 1 mit B;
8. von der �-Zelle (einschließlich) nach rechts gehend kopiere
die Buchstaben von Spur 3 auf dasselbe Feld in Spur 1, losche
dabei gleichzeitig Spur 3, bis zur ersten Zelle (ausschließlich),
die in Spur 3 ein B enthalt;
9. fahre den Kopf nach links bis zur /c-Zelle.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 34
6. Fahre Kopf nach links bis zur /c-Zelle;
7. Fahre Kopf nach rechts bis zur �-Zelle, uberschreibe dabei
Spur 1 mit B;
8. von der �-Zelle (einschließlich) nach rechts gehend kopiere
die Buchstaben von Spur 3 auf dasselbe Feld in Spur 1, losche
dabei gleichzeitig Spur 3, bis zur ersten Zelle (ausschließlich),
die in Spur 3 ein B enthalt;
9. fahre den Kopf nach links bis zur /c-Zelle.
Ubung: ein TM-Programm erstellen.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 34
6. Fahre Kopf nach links bis zur /c-Zelle;
7. Fahre Kopf nach rechts bis zur �-Zelle, uberschreibe dabei
Spur 1 mit B;
8. von der �-Zelle (einschließlich) nach rechts gehend kopiere
die Buchstaben von Spur 3 auf dasselbe Feld in Spur 1, losche
dabei gleichzeitig Spur 3, bis zur ersten Zelle (ausschließlich),
die in Spur 3 ein B enthalt;
9. fahre den Kopf nach links bis zur /c-Zelle.
Ubung: ein TM-Programm erstellen.
Wieviele Schritte?
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 34
6. Fahre Kopf nach links bis zur /c-Zelle;
7. Fahre Kopf nach rechts bis zur �-Zelle, uberschreibe dabei
Spur 1 mit B;
8. von der �-Zelle (einschließlich) nach rechts gehend kopiere
die Buchstaben von Spur 3 auf dasselbe Feld in Spur 1, losche
dabei gleichzeitig Spur 3, bis zur ersten Zelle (ausschließlich),
die in Spur 3 ein B enthalt;
9. fahre den Kopf nach links bis zur /c-Zelle.
Ubung: ein TM-Programm erstellen.
Wieviele Schritte? O(l · d), l: Lange, d: Distanz.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 34
Modelleinschrankung: Einseitigunbeschranktes Band (1.2.4)
Idee: Wenn man eine Rechnung auf einem gewohnlichen Band
durchfuhren kann, dann auch auf einem Band, bei dem
niemals eine Zelle links der Eingabe betreten wird
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 35
Modelleinschrankung: Einseitigunbeschranktes Band (1.2.4)
Idee: Wenn man eine Rechnung auf einem gewohnlichen Band
durchfuhren kann, dann auch auf einem Band, bei dem
niemals eine Zelle links der Eingabe betreten wird
verboten
i n p u t B B B B B B B ...
0 1 2 3 4 5
q0
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 35
Einseitig unbeschranktes Band
Formal:
• Zu jeder beliebigen TM M gibt es eine TM M ′ mit LM =LM ′ und HM = HM ′ und fM = fM ′ derart dass der
Bandkopf von M ′ niemals eine Bandzelle links von seiner
anfanglichen Position besucht.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 36
Einseitig unbeschranktes Band
Formal:
• Zu jeder beliebigen TM M gibt es eine TM M ′ mit LM =LM ′ und HM = HM ′ und fM = fM ′ derart dass der
Bandkopf von M ′ niemals eine Bandzelle links von seiner
anfanglichen Position besucht.
Die Behauptung wird konstruktiv bewiesen:
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 36
Einseitig unbeschranktes Band
Formal:
• Zu jeder beliebigen TM M gibt es eine TM M ′ mit LM =LM ′ und HM = HM ′ und fM = fM ′ derart dass der
Bandkopf von M ′ niemals eine Bandzelle links von seiner
anfanglichen Position besucht.
Die Behauptung wird konstruktiv bewiesen:
Gegeben M , kann man M zu einem geeigneten M ′ umbauen.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 36
Einseitig unbeschranktes Band
Formal:
• Zu jeder beliebigen TM M gibt es eine TM M ′ mit LM =LM ′ und HM = HM ′ und fM = fM ′ derart dass der
Bandkopf von M ′ niemals eine Bandzelle links von seiner
anfanglichen Position besucht.
Die Behauptung wird konstruktiv bewiesen:
Gegeben M , kann man M zu einem geeigneten M ′ umbauen.
Achte auf solche Konstruktionen! Wesentliche Technik!
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 36
Einseitig unbeschranktes Band
Idee: Linke Seite des Bandes umklappen.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 37
Einseitig unbeschranktes Band
Idee: Linke Seite des Bandes umklappen.
5
b a n d + v o n + M + 2 s e i t i g B ...
−3 −2 −1 0 1 2 3 4 5
Band
von M’:n + M + 2 s e i t i g B B B B B B
* o v + d n a b B B B B B B B B B
...
...
−1 −2 −3
0 1 2 3 4
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 37
Einseitig unbeschranktes Band
Steuereinheit der neuen TM M ′:
Steuer−
einheit
von M oben
ea Puffer
oben/unten?
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 38
Einseitig unbeschranktes Band
Formal:
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 39
Einseitig unbeschranktes Band
Formal: M ′ = (Q′,Σ,Γ′, B′, q′0, F′, δ′) mit
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 39
Einseitig unbeschranktes Band
Formal: M ′ = (Q′,Σ,Γ′, B′, q′0, F′, δ′) mit
Q′ = Q× {u, o} ∪ {q′0};
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 39
Einseitig unbeschranktes Band
Formal: M ′ = (Q′,Σ,Γ′, B′, q′0, F′, δ′) mit
Q′ = Q× {u, o} ∪ {q′0};Γ′ = Γ× (Γ ∪ {∗}) ∪ Σ;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 39
Einseitig unbeschranktes Band
Formal: M ′ = (Q′,Σ,Γ′, B′, q′0, F′, δ′) mit
Q′ = Q× {u, o} ∪ {q′0};Γ′ = Γ× (Γ ∪ {∗}) ∪ Σ;
B′ = (B,B)
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 39
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
δ′(q′0, a) = ((q0, o), (a, ∗), N), fur a ∈ Σ;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
δ′(q′0, a) = ((q0, o), (a, ∗), N), fur a ∈ Σ;
δ′(q′0, (B,B)) = ((q0, o), (B, ∗), N), (falls der Input ε ist);
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
δ′(q′0, a) = ((q0, o), (a, ∗), N), fur a ∈ Σ;
δ′(q′0, (B,B)) = ((q0, o), (B, ∗), N), (falls der Input ε ist);
δ′((q, o), (a, c)) = ((p, o), (b, c), D), fur q ∈ Q, δ(q, a) = (p, b,D), c 6= ∗;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
δ′(q′0, a) = ((q0, o), (a, ∗), N), fur a ∈ Σ;
δ′(q′0, (B,B)) = ((q0, o), (B, ∗), N), (falls der Input ε ist);
δ′((q, o), (a, c)) = ((p, o), (b, c), D), fur q ∈ Q, δ(q, a) = (p, b,D), c 6= ∗;
δ′((q, u), (c, a)) = ((p, u), (c, b), D), fur q ∈ Q, δ(q, a) = (p, b,D), a 6= ∗,
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
δ′(q′0, a) = ((q0, o), (a, ∗), N), fur a ∈ Σ;
δ′(q′0, (B,B)) = ((q0, o), (B, ∗), N), (falls der Input ε ist);
δ′((q, o), (a, c)) = ((p, o), (b, c), D), fur q ∈ Q, δ(q, a) = (p, b,D), c 6= ∗;
δ′((q, u), (c, a)) = ((p, u), (c, b), D), fur q ∈ Q, δ(q, a) = (p, b,D), a 6= ∗,
wobei R = L, L = R, N = N ;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
δ′(q′0, a) = ((q0, o), (a, ∗), N), fur a ∈ Σ;
δ′(q′0, (B,B)) = ((q0, o), (B, ∗), N), (falls der Input ε ist);
δ′((q, o), (a, c)) = ((p, o), (b, c), D), fur q ∈ Q, δ(q, a) = (p, b,D), c 6= ∗;
δ′((q, u), (c, a)) = ((p, u), (c, b), D), fur q ∈ Q, δ(q, a) = (p, b,D), a 6= ∗,
wobei R = L, L = R, N = N ;
δ′((q, u), (a, ∗))δ′((q, o), (a, ∗))
}=
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
δ′(q′0, a) = ((q0, o), (a, ∗), N), fur a ∈ Σ;
δ′(q′0, (B,B)) = ((q0, o), (B, ∗), N), (falls der Input ε ist);
δ′((q, o), (a, c)) = ((p, o), (b, c), D), fur q ∈ Q, δ(q, a) = (p, b,D), c 6= ∗;
δ′((q, u), (c, a)) = ((p, u), (c, b), D), fur q ∈ Q, δ(q, a) = (p, b,D), a 6= ∗,
wobei R = L, L = R, N = N ;
δ′((q, u), (a, ∗))δ′((q, o), (a, ∗))
}=
((p, u), (b, ∗), R), falls D = L,
((p, o), (b, ∗), R), falls D = R,
((p, o), (b, ∗), N), falls D = N ;
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Neue Ubergangsfkt. (a, b, c ∈ Γ, q, p ∈ Q,D ∈ {L,R,N}):
δ′(q′0, a) = ((q0, o), (a, ∗), N), fur a ∈ Σ;
δ′(q′0, (B,B)) = ((q0, o), (B, ∗), N), (falls der Input ε ist);
δ′((q, o), (a, c)) = ((p, o), (b, c), D), fur q ∈ Q, δ(q, a) = (p, b,D), c 6= ∗;
δ′((q, u), (c, a)) = ((p, u), (c, b), D), fur q ∈ Q, δ(q, a) = (p, b,D), a 6= ∗,
wobei R = L, L = R, N = N ;
δ′((q, u), (a, ∗))δ′((q, o), (a, ∗))
}=
((p, u), (b, ∗), R), falls D = L,
((p, o), (b, ∗), R), falls D = R,
((p, o), (b, ∗), N), falls D = N ;
wobei immer δ(q, a) = (p, b,D).
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 40
Einseitig unbeschranktes Band
Nach dem Halten:
Transport des Ausgabewortes in Spur 1, beginnend in der
∗-Zelle,
abschließen mit (B,B).
Hierfur muss man weitere Zustande einfuhren und δ′ erweitern.
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 41
Bis nachste Woche
• Skript Seiten 25–45 (Beispiel 1.1.19 optional)
• Ubungsaufgaben drucken und vorbereiten
FG Komplexitatstheorie und Effiziente Algorithmen BuK – 30.10.2009 42