• Keine Ergebnisse gefunden

VL-01: Turing Maschinen I (Berechenbarkeit und Komplexit¨at, WS 2019) Gerhard Woeginger

N/A
N/A
Protected

Academic year: 2022

Aktie "VL-01: Turing Maschinen I (Berechenbarkeit und Komplexit¨at, WS 2019) Gerhard Woeginger"

Copied!
150
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

VL-01: Turing Maschinen I

(Berechenbarkeit und Komplexit¨ at, WS 2019) Gerhard Woeginger

WS 2019, RWTH

(2)

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

(3)

Turing Maschinen I

Probleme und Berechnungen Turing Maschinen

Turing Berechenbarkeit

Programmierung von Turing Maschinen

Techniken zur Programmierung von Turing Maschinen

(4)

Probleme und Berechnungen

BuK/WS 2019 VL-01: Turing Maschinen I 4/42

(5)

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

(6)

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

(7)

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, . . .

(8)

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

(9)

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, . . .

(10)

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

(11)

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.

(12)

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

(13)

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.

(14)

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

(15)

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)

(16)

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

(17)

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}

(18)

Turing Maschinen

BuK/WS 2019 VL-01: Turing Maschinen I 14/42

(19)

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).

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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, δ).

(28)

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

(29)

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, δ).

(30)

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

(31)

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, δ).

(32)

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

(33)

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, δ).¯

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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).

(40)

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

(41)

Funktionsweise der TM:

Beispiel

(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

BuK/WS 2019 VL-01: Turing Maschinen I 24/42

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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.

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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

Referenzen

ÄHNLICHE DOKUMENTE

L¨ osung lautet wieder: Probiere alle M¨ oglichkeiten durch Nachteil lautet wieder: Extrem langsamer Algorithmus.. Beispiel 2:

Auch dieses Problem kann dadurch gel¨ ost werden, dass man einfach alle M¨ oglichkeiten durchprobiert. Und auch dieser Algorithmus ist

Variablen k¨ onnen realisiert werden, indem wir pro Variable eine Spur reservieren. Felder (Arrays) k¨ onnen ebenfalls auf einer Spur

Der Kopf von M 0 l¨ auft dann nach rechts bis zum rechtesten #, wobei die k Zeichen an den mit # markierten Spurpositionen im Zustand abgespeichert werden.. An der Zelle mit

Bei inkorrekter Eingabe (z.B.: wenn die Eingabe nicht mit einer TM-Kodierung beginnt; oder: wenn das Wort w Buchstaben enth¨ alt, die nicht zum Eingabealphabet von M geh¨ oren) gibt

Die Inhalte der Register sind nat¨ urliche Zahlen, die beliebig gross werden k¨ onnen.. in den ersten paar Registern

Variablen k¨ onnen realisiert werden, indem wir pro Variable eine Spur reservieren. Felder (Arrays) k¨ onnen ebenfalls auf einer eigenen Spur

Tabellenkalkulationen (ohne Schleifen) sind nicht Turing-m¨ achtig Der Lambda Calculus von Alonzo Church ist ¨ aquivalent zur TM, und daher Turing-m¨ achtig. Die µ-rekursiven