• Keine Ergebnisse gefunden

Turing Maschinen I

N/A
N/A
Protected

Academic year: 2022

Aktie "Turing Maschinen I"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

VL-02: Turing Maschinen I

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

WS 2017, RWTH

BuK/WS 2017 VL-02: Turing Maschinen I 1/37

Turing Maschinen I

• Probleme und Berechnungen

• Turing Maschinen

• Turing Berechenbarkeit

• Programmierung von Turing Maschinen

BuK/WS 2017 VL-02: Turing Maschinen I 2/37

Probleme und Berechnungen

Was ist ein Berechnungsproblem?

Informelle Definition von Berechnungsproblem

F¨ur gegebene Eingabensollen bestimmteAusgabenproduziert werden.

Die Berechnung geschieht mit einemAlgorithmus(Handlungsvorschrift).

Algorithmus

x y

Mit ”Problem“ meinen wir ab jetzt immer ein Berechnungsproblem.

Wir ben¨otigen eine pr¨azisere Definition ...

(2)

Alphabete und W¨ orter

I Ein- und Ausgaben sind W¨orter ¨uber einem AlphabetΣ.

I Beispiele f¨ur Alphabete: Σ ={0,1,#}, Σ ={a,b,c, . . . ,z},

Σ ={B,D,F,H,J,K,M,O,. . . ,•}, Σ ={ , , }.

I Σk ist die Menge aller Wörter der Längek, z.B.

{0,1}3 = {000,001,010,011,100,101,110,111}

I Dasleere Wort, also das Wort der Länge 0, bezeichnen wir mit ε.

Dann gilt:Σ0={ε}.

I Σ=S

k∈N0Σk ist derKleenesche AbschlussvonΣ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 2017 VL-02: Turing Maschinen I 5/37

Probleme: als Relationen

I Im Allgemeinen entspricht ein Problem einerRelation R⊆Σ×Σ0∗.

I Ein Paar(x,y)liegt inR, wenny eine zul¨assige Ausgabe zur Eingabex ist.

BuK/WS 2017 VL-02: Turing Maschinen I 6/37

Beispiel: Primfaktorbestimung

Beispiel: Primfaktorbestimmung

Zu einer nat¨urlichen Zahlq≥2suchen wir einen Primfaktor.

Wir einigen uns darauf, Zahlen bin¨ar zu kodieren.

Die Bin¨arkodierung einer nat¨urlichen Zahli bezeichnen wir mitbin(i).

Also zum Beispiel: bin(0) =0,bin(6) =110 Die entsprechende Relation ist

R = {(x,y)∈ {0,1}× {0,1}|x =bin(q),y =bin(p), q,p∈N, q≥2, pprim, p teiltq}

Also zum Beispiel(110,11)∈R, aber(101,11)∈/R.

Probleme: als Funktionen

I Bei vielen Problemen gibt es zu jeder Eingabe eine eindeutige Ausgabe.

I Dann k¨onnen wir das Problem durch eine Funktionf: Σ→Σ0∗

beschreiben.

I Die zur Eingabe x∈Σ gesuchte Ausgabe istf(x)∈Σ0∗. Beispiel: Multiplikation

Zu zwei nat¨urlichen Zahleni1,i2∈Nsuchen wir das Produkt.

Um die Zahleni1 undi2 in der Eingabe voneinander trennen zu k¨onnen, erweitern wir das Alphabet um ein Trennsymbol#, d.h.Σ ={0,1,#}.

Die entsprechende Funktionf : Σ→Σist gegeben durch f(bin(i1)#bin(i2)) = bin(i1·i2)

(3)

(Entscheidungs)Probleme: als Sprachen

I Viele Probleme lassen sich als Ja-Nein-Fragen formulieren.

I DerartigeEntscheidungsproblemesind von der Formf: Σ→ {0,1}, wobei wir 0als

”Nein“ und1als

”Ja“ interpretieren.

I SeiL=f−1(1)⊆Σdie Menge derjenigen Eingaben, die mit

”Ja“

beantwortet werden.

I List eine Teilmenge der W¨orter ¨uber dem Alphabet Σ.

I Eine Teilmenge vonΣwird allgemein alsSprachebezeichnet.

I Die SpracheList die zu dem durchf definierten Entscheidungsproblem geh¨orende Sprache.

BuK/WS 2017 VL-02: Turing Maschinen I 9/37

Beispiel: Entscheidungsproblem

Beispiel: Graphzusammenhang

Problemstellung: F¨ur einen gegebenen ungerichteten Graphen G soll bestimmt werden, obG zusammenh¨angend ist.

Der GraphG liegt dabei in einer geeigneten Kodierungcode(G)∈Σvor, z. B. 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}

BuK/WS 2017 VL-02: Turing Maschinen I 10/37

Turing Maschinen

Zentrale Fragestellung

Frage

Welche Funktionen sind durch einen Algorithmus berechenbar?

bzw.

Welche Sprachen k¨onnen von einem Algorithmus entschieden werden?

• Um diese Fragen in einem mathematisch exakten Sinne kl¨aren zu k¨onnen, m¨ussen wir festlegen, was eigentlich ein Algorithmus ist.

• Zu diesem Zweck definieren wir ein einfaches

”Computer“-Modell:

Die Turingmaschine (TM)

(4)

Deterministische Turingmaschine (TM bzw. DTM)

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 2017 VL-02: Turing Maschinen I 13/37

Deterministische Turingmaschine (TM bzw. DTM)

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 2017 VL-02: Turing Maschinen I 13/37

Deterministische Turingmaschine (TM bzw. DTM)

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 (TM bzw. DTM)

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

(5)

Deterministische Turingmaschine (TM bzw. DTM)

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 2017 VL-02: Turing Maschinen I 13/37

Deterministische Turingmaschine (TM bzw. DTM)

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 2017 VL-02: Turing Maschinen I 13/37

Komponenten der TM

I Q die endliche Zustandsmenge

I Σ das endliche Eingabealphabet

I Γ⊃Σ das endliche Bandalphabet

I B ∈Γ\Σ das Leerzeichen (Blank, in Bildern)

I q0∈Q der Anfangszustand

I ¯q∈Q der Endzustand

I δ: (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

I auf dem Band steht die Eingabex ∈Σeingerahmt von Blanks

I der initiale Zustand ist q0

I der Kopf steht ¨uber dem ersten Symbol vonx

· · ·

· · · x1 x2 x3 x4 x5 x6 x7 x8 x8 x9

q0

DFA Inputx

Nummerierung der Zellen des Bandes

I die initiale Kopfposition wird als Position 0 bezeichnet

I bewegt sich der Kopf einen Schritt

”nach rechts“, erh¨oht sich die Position um 1

I bewegt sich der Kopf um einen Schritt

”nach links“, erniedrigt sich die Position um 1

(6)

Funktionsweise der TM (1)

Ausgangssituation

I auf dem Band steht die Eingabex∈Σeingerahmt von Blanks

I der initiale Zustand istq0

I der Kopf steht ¨uber dem ersten Symbol vonx Nummerierung der Zellen des Bandes

I die initiale Kopfposition wird als Position 0 bezeichnet

I bewegt sich der Kopf einen Schritt

”nach rechts“, erh¨oht sich die Position um 1

I bewegt sich der Kopf um einen Schritt

”nach links“, erniedrigt sich die Position um 1

BuK/WS 2017 VL-02: Turing Maschinen I 15/37

Funktionsweise der TM (2)

Durchf¨uhrung eines Rechenschrittes

I a∈Γ bezeichne das gelesene Symbol (unterm Kopf)

I q∈Q\ {¯q}bezeichne den aktuellen Zustand

I angenommenδ(q,a) = (q0,a0,d), f¨urq0∈Q,a0∈Γ,d∈ {R,L,N}

I dann wird der Zustand auf q0 gesetzt

I an der Kopfposition wird das Symbola0 geschrieben

I der Kopf bewegt sich

um eine Position nach rechts fallsd =R um eine Position nach links fallsd =L

nicht fallsd =N

BuK/WS 2017 VL-02: Turing Maschinen I 16/37

Funktionsweise der TM (3)

Ende der Berechnung

I die TM stoppt, wenn sie den Endzustandq¯erreicht

I 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:

I die TMakzeptiertdas Eingabewort, wenn sie terminiert und das Ausgabewort mit einer 1 beginnt

I die TMverwirftdas Eingabewort, wenn sie terminiert und das Ausgabewort nicht mit einer 1 beginnt

Funktionsweise der TM (4)

Bemerkungen

I Beachte, es gibt die M¨oglichkeit, dass die TM den Endzustand niemals erreicht. Wir sagen dann, die Berechnung terminiert nicht.

I Laufzeit = Anzahl Zustands¨uberg¨ange bis zur Terminierung

I Speicherbedarf = Anzahl Bandzellen, die w¨ahrend der Berechnung besucht worden sind

(7)

Funktionsweise der TM: Beispiel (1)

SeiL={w1|w ∈ {0,1}}die Sprache der 0/1-W¨orter, die auf 1 enden.

Lwirdentschiedendurch die TMM = (Q,Σ,Γ,B,q0,q, δ)¯ mit

I Q ={q0,q1,¯q}

I Σ ={0,1}

I Γ ={0,1,B}

I δ gem¨aß Tabelle

δ 0 1 B

q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept

”accept“ steht als Abk¨urzung f¨ur(¯q,1,N).

”reject“ steht als Abk¨urzung f¨ur(¯q,0,N).

Allgemein:

• M entscheidetL, wennM alle W¨orter in Lakzeptiert und alle W¨orter, die nicht inLsind, verwirft.

• Wenn TM eine Sprache entscheidet, so muss sie immer halten

BuK/WS 2017 VL-02: Turing Maschinen I 19/37

Funktionsweise der TM: 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:

I Solange ein Symbol aus{0,1}gelesen wird,

I ¨uberschreibe das Symbol mitB,

I bewege den Kopf nach rechts, und

I gehe in den Zustandq0, wenn das Symbol eine 0 war, sonst in den Zustandq1

I Sobald ein Blank gelesen wird,

I akzeptiere die Eingabe, falls der aktuelle Zustand q1ist, und

I verwirf die Eingabe ansonsten.

BuK/WS 2017 VL-02: Turing Maschinen I 20/37

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 · · ·

· · · 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

Turing Berechenbarkeit

(8)

Zum Sinn und Zweck des TM-Modells

Die TM dient als unser formales (bzw. mathematisches) Modell zur Beschreibung von Algorithmen.

Die Frage,ob es f¨ur ein Problem einen Algorithmus gibt, setzen wir ab jetzt gleich mit der Frage,ob es eine TM gibt, die dieses Problem l¨ost.

I Frage: Ist das TM-Modell sinnvoll / allgemein genug?

I Frage: Kann das TM-Modell alle denkbaren Algorithmen und alle F¨ahigkeiten abdecken, die ein moderner Computer hat oder ein zuk¨unftiger Computer haben k¨onnte?

I Auf diese Problematik kommen wir sp¨ater noch zur¨uck.

BuK/WS 2017 VL-02: Turing Maschinen I 23/37

Formale Definition: TM-berechenbar

Bzgl. der Berechnungsprobleme beschr¨anken wir uns in dieser Vorlesung auf Funktionen und auf Entscheidungsprobleme (Sprachen).

Definition

Eine Funktionf: Σ→Σheisst rekursiv (TM-berechenbar), wenn es eine TM gibt, die aus der Eingabex den Funktionswertf(x)berechnet.

Definition

Eine SpracheL⊆Σ heisstrekursiv (TM-entscheidbar), wenn es eine TM gibt, die f¨ur alle Eingaben terminiert und die Eingabew genau dann akzeptiert, wennw ∈List.

BuK/WS 2017 VL-02: Turing Maschinen I 24/37

Programmierung von Turing Maschinen

Programmierung der TM am Beispiel

Wir entwickeln eine TM f¨ur die Sprache L={0n1n|n≥1}

SeiΣ ={0,1}, Γ ={0,1,B}, Q={q0, . . . ,q6,¯q}.

Unsere TM arbeitet in zwei Phasen:

I Phase 1: Teste, ob Eingabewort von der Form0i1j miti ≥0und j ≥1ist.

I Phase 2: Teste, obi =j gilt.

Phase 1 verwendet{q0,q1}und wechselt bei Erfolg zuq2. Phase 2 verwendet{q2, . . . ,q6}und akzeptiert bei Erfolg.

(9)

Programmierung der TM am Beispiel - Phase 1

δ 0 1 B

q0 (q0,0,R) (q1,1,R) reject q1 reject (q1,1,R) (q2,B,L)

q0: Laufe von links nach rechts ¨uber die Eingabe, bis ein Zeichen ungleich 0 gefunden wird.

I Falls dieses Zeichen eine 1 ist, gehe ¨uber in Zustandq1.

I Sonst ist dieses Zeichen ein Blank. Verwirf die Eingabe.

q1: Gehe weiter nach rechts bis zum ersten Zeichen ungleich 1.

I Falls dieses Zeichen eine 0 ist, verwirf die Eingabe.

I Sonst ist das gefundene Zeichen ein Blank. Bewege den Kopf um eine Position nach links auf die letzte gelesene 1. Wechsele in den Zustandq2, Phase 2 beginnt.

BuK/WS 2017 VL-02: Turing Maschinen I 27/37

Programmierung der TM am Beispiel - Phase 2

δ 0 1 B

q2 reject (q3,B,L) reject q3 (q3,0,L) (q3,1,L) (q4,B,R) q4 (q5,B,R) reject reject q5 (q6,0,R) (q6,1,R) accept q6 (q6,0,R) (q6,1,R) (q2,B,L)

q2: Kopf steht auf dem letzten Nichtblank. Falls dieses Zeichen eine 1 ist, so l¨osche es, gehe nach links, und wechsele in den Zustandq3. Sonst verwirf die Eingabe.

q3: Bewege den Kopf auf das erste Nichtblank. Dannq4.

q4: Falls das gelesene Zeichen eine 0 ist, ersetze es durch ein Blank und gehe nachq5, sonst verwirf die Eingabe.

q5: Wir haben jetzt die linkeste 0 und die rechteste 1 gel¨oscht. Falls Restwort leer, dann akzeptiere, sonstq6.

q6: Laufe wieder zum letzten Nichtblank und starte erneut inq2.

BuK/WS 2017 VL-02: Turing Maschinen I 28/37

Veranschaulichung der TM

Eingabex =0000011.

· · ·

· · · B 0 0 0 0 0 1 1 B B B

· · ·

· · · B 0 0 0 0 0 1 1 B B B · · ·

· · · B 0 0 0 0 0 1 1 B B B · · ·

· · · B 0 0 0 0 0 1 1 B B B · · ·

· · · B 0 0 0 0 0 1 1 B B B · · ·

· · · B 0 0 0 0 0 1 1 B B B · · ·

· · · B 0 0 0 0 0 1 1 B B B · · ·

· · · B 0 0 0 0 0 1 1 B B B · · ·

· · · B 0 0 0 0 0 1 1 B B B · · ·

· · · B 0 0 0 0 0 1 B B B B · · ·

· · · B 0 0 0 0 0 1 B B B B · · ·

· · · B 0 0 0 0 0 1 B B B B · · ·

· · · B 0 0 0 0 0 1 B B B B · · ·

· · · B 0 0 0 0 0 1 B B B B · · ·

· · · B 0 0 0 0 0 1 B B B B · · ·

· · · B 0 0 0 0 0 1 B B B B · · ·

· · · B 0 0 0 0 0 1 B B B B · · ·

· · · B B 0 0 0 0 1 B B B B · · ·

· · · B B 0 0 0 0 1 B B B B · · ·

· · · B B 0 0 0 0 1 B B B B · · ·

· · · B B 0 0 0 0 1 B B B B · · ·

· · · B B 0 0 0 0 1 B B B B · · ·

· · · B B 0 0 0 0 1 B B B B · · ·

· · · B B 0 0 0 0 1 B B B B · · ·

· · · B B 0 0 0 0 B B B B B · · ·

· · · B B 0 0 0 0 B B B B B · · ·

· · · B B 0 0 0 0 B B B B B · · ·

· · · B B 0 0 0 0 B B B B B · · ·

· · · B B 0 0 0 0 B B B B B · · ·

· · · B B 0 0 0 0 B B B B B · · ·

· · · B B B 0 0 0 B B B B B · · ·

· · · B B B 0 0 0 B B B B B · · ·

· · · B B B 0 0 0 B B B B B · · ·

· · · B B B 0 0 0 B B B B B · · ·

· · · B B B 0 0 0 B B B B B · · ·

· · · B B B 0 0 0 B B B B B

δ 0 1 B

q0 (q0,0,R) (q1,1,R) reject q1 reject (q1,1,R) (q2,B,L) q2 reject (q3,B,L) reject q3 (q3,0,L) (q3,1,L) (q4,B,R) q4 (q5,B,R) reject reject q5 (q6,0,R) (q6,1,R) accept q6 (q6,0,R) (q6,1,R) (q2,B,L)

Konfigurationen: Definitionen

Definition

(i) EineKonfigurationeiner TM ist ein Stringαqβ, f¨urq∈Q und α, β∈Γ.

Bedeutung:auf dem Band stehtαβ eingerahmt von Blanks, der Zustand istq, und der Kopf steht ¨uber dem ersten Zeichen vonβ.

(ii) α0q0β0 istdirekte Nachfolgekonfigurationvonαqβ, fallsα0q0β0in einem Rechenschritt ausαqβentsteht. Wir schreiben

αqβ ` α0q0β0.

(iii) α00q00β00 istNachfolgekonfiguration vonαqβ, falls α00q00β00 in endlich vielen Rechenschritten ausαqβ entsteht. Wir schreiben

αqβ ` α00q00β00.

Bemerkung:Insbesondere giltαqβ`αqβ.

(10)

Konfigurationen: Beispiel

Die f¨ur die Sprache L={0n1n|n≥1}beschriebene TM liefert in Phase 1 auf der Eingabe0011die folgende Konfigurationsfolge.

Phase 1:

q00011 ` 0q0011 ` 00q011 ` 001q11 ` 0011q1B ` 001q21 Beobachtung:abgesehen von Blanks am Anfang und Ende des Strings sind die Konfigurationen eindeutig.

Phase 2:

001q21 ` 00q31 ` 0q301 ` q3001 ` q3B001 ` q4001 `

` q501 ` 0q61 ` 01q6 ` 0q21 ` . . .

BuK/WS 2017 VL-02: Turing Maschinen I 31/37

Techniken zur Programmierung von TMs (1)

Technik 1: Speicher im Zustandsraum

F¨ur beliebiges festesk ∈Nk¨onnen wirk Zeichen unseres Bandalphabets im Zustand abspeichern, indem wir den Zustandsraum um den Faktor|Γ|k vergr¨ossern, d.h. wir setzen

Qneu:=Q×Γk .

Neue Zust¨ande f¨urk =2 sind dann zum Beispiel(q0,B,0),(q1,1,1).

BuK/WS 2017 VL-02: Turing Maschinen I 32/37

Techniken zur Programmierung von TMs (2)

Technik 2: Mehrspurmaschinen

• k-spurige TM: eine TM, bei der das Band in k sogenannteSpuren eingeteilt ist. D.h. in jeder Bandzelle stehen k Zeichen, die der Kopf gleichzeitig einlesen kann.

• Das k¨onnen wir erreichen, indem wir das Bandalphabet um k- dimensionale Vektoren erweitern, z.B.Γneu:= Γ∪Γk.

0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1

1 1 0

0 1 1

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

DFA

Beispiel: Addition mittels 3-spuriger TM (1)

Die Verwendung einer mehrspurigen TM erlaubt es uns, einige Algorithmen viel einfacher zu beschreiben.

Wir verdeutlichen dies am Beispiel der Addition: Aus Eingabe bin(i1)#bin(i2)miti1,i2∈Nsollbin(i1+i2)berechnet werden.

Wir verwenden 3-spurige TM mit AlphabetenΣ ={0,1,#}und

Γ =

 0,1,#,

 0 0 0

,

 0 0 1

,

 0 1 0

, . . . ,

 1 1 1

,B

 .

(11)

Beispiel: Addition mittels 3-spuriger TM (2)

I Schritt 1:Transformation in Spurendarstellung: Schiebe die Eingabe so zusammen, dass die Bin¨arkodierungen voni1 undi2in der ersten und zweiten Spur rechtsb¨undig ¨ubereinander stehen.

Aus der Eingabe0011#0110wird beispielsweise B

 0 0 0

 0 1 0

 1 1 0

 1 0 0

B .

I Schritt 2:Addition nach der Schulmethode, indem der Kopf das Band von rechts nach links abl¨auft. ¨Ubertr¨age werden im Zustand gespeichert. Als Ergebnis auf Spur 3 ergibt sich

B

 0 0 1

 0 1 0

 1 1 0

 1 0 1

B .

I Schritt 3:R¨ucktransformation von Spur 3 ins Einspur-Format:

Ausgabe1001.

BuK/WS 2017 VL-02: Turing Maschinen I 35/37

Techniken zur Programmierung von TMs (continued)

Standardtechniken aus der Programmierung k¨onnen auch auf TMen implementiert werden.

I Schleifenhaben wir bereits an Beispielen gesehen.

I Variablen k¨onnen realisiert werden, indem wir pro Variable eine Spur reservieren.

I Felder (Arrays)k¨onnen ebenfalls auf einer eigenen Spur abgespeichert werden.

I Unterprogramme k¨onnen implementiert werden, indem wir eine Spur des Bandes als Prozedurstack verwenden.

I Rekursive Unterprogrammek¨onnen implementiert werden.

Basierend auf diesen Techniken k¨onnen wir uns klar machen, dass alle bekannten Algorithmen (wie z.B. MergeSort) ohne Weiteres auf einer TM ausgef¨uhrt werden k¨onnen.

BuK/WS 2017 VL-02: Turing Maschinen I 36/37

Organisatorisches

• N¨achste Vorlesung:

Mittwoch, Oktober 18, 14:15–15:45 Uhr, Roter H¨orsaal

• Webseite:

http://algo.rwth-aachen.de/Lehre/WS1718/BuK.php

Referenzen

ÄHNLICHE DOKUMENTE

Basierend auf diesen Techniken k¨ onnen wir uns klar machen, dass bekannte Algorithmen (wie z.B. MergeSort) ohne Weiteres auf einer TM ausgef¨ uhrt werden k¨ onnen... Techniken

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

Eine Diophantische Gleichung mit irgend welchen Unbekannten und mit ganzen rationalen Zahlencoefficienten sei vorgelegt: man soll ein Verfahren angeben, nach welchem sich mittelst

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

I 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

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