• 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!
44
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

(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

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

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

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.

(9)

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.

(10)

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

(11)

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)

(12)

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.

(13)

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}

(14)

Turing Maschinen

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

Funktionsweise der TM:

Beispiel

(25)

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

(26)

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,

(27)

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

(28)

Turing Berechenbarkeit

(29)

Zum Sinn und Zweck des TM-Modells

Die TM dient als unser formales (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.

Frage: Ist das TM-Modell sinnvoll? Ist es allgemein genug?

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

Auf diese Fragen kommen wir sp¨ater noch zur¨uck.

(30)

Turing Berechenbarkeit

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

Definition

Eine Funktionf : Σ→Σ heisstrekursiv (T-berechenbar), wenn es eine TM gibt, die aus der Eingabex

den Funktionswertf(x)berechnet.

Definition

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

(31)

Programmierung von

Turing Maschinen

(32)

Programmierung der TM am Beispiel

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

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

Unsere TM arbeitet in zwei Phasen:

Phase 1:Teste, ob Eingabe von der Form0i1j miti ≥0undj≥1 Phase 2:Teste, obi =j gilt.

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

(33)

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.

Falls dieses Zeichen eine 1 ist, gehe ¨uber in Zustandq1. Sonst ist dieses Zeichen ein Blank. Verwirf die Eingabe.

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

Falls dieses Zeichen eine 0 ist, verwirf die Eingabe.

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

(34)

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 Zustandq3. Andernfalls 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.

(35)

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)

(36)

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

(37)

Konfigurationen: Definitionen

Definition

(i) Eine Konfigurationeiner TM ist ein Stringαqβ, mitq∈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β0 in einem Rechenschritt ausαqβentsteht. Wir schreiben

αqβ`α0q0β0

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

αqβ`α00q00β00.

Anmerkung: insbesondere giltαqβ`αqβ

(38)

Konfigurationen: Beispiel

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

Phase 1:

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

Phase 2:

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

(39)

Techniken zur Programmierung von

Turing Maschinen

(40)

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 =2sind dann zum Beispiel(q0,BB), (q1,10).

(41)

Techniken zur Programmierung von TMs (2)

Technik 2: Mehrspurmaschinen

k-spurige TM: eine TM, bei der das Band ink sogenannteSpuren eingeteilt ist. D.h. in jeder Bandzelle stehenk 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

(42)

Beispiel: Addition mittels 3-spuriger TM (1)

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

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

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

Γ =

 0,1,#,

 0 0 0

,

 0 0 1

,

 0 1 0

, . . . ,

 1 1 1

,B

(43)

Beispiel: Addition mittels 3-spuriger TM (2)

Schritt 1:Transformation in Spurendarstellung. Schiebe die Eingabe so zusammen, dass die Bin¨arkodierungen voni1undi2in 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

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

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

Ausgabe1001.

(44)

Techniken zur Programmierung von TMen (continued)

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

Schleifenhaben wir bereits an Beispielen gesehen.

Variablenk¨onnen realisiert werden, indem wir pro Variable eine Spur reservieren.

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

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

Rekursive Unterprogrammek¨onnen ebenfalls implementiert werden.

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

Referenzen

ÄHNLICHE DOKUMENTE

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

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

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

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

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