95
Grundlagen der theoretischen Informatik Dr. Jörg Vogel SS 2003

2 Turing-Maschinen

Embed Size (px)

Citation preview

Page 1: 2 Turing-Maschinen

Grundlagen der theoretischen Informatik

Dr. Jörg Vogel

SS 2003

Page 2: 2 Turing-Maschinen
Page 3: 2 Turing-Maschinen

Inhaltsverzeichnis

1 Berechenbarkeit 81.1 Was ist ein Algorithmus? . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Turing-Maschinen 122.1 Wörter und Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1.1 Spezielle Alphabete . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2 Der Begriff der Turing-Maschine . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.1 Beispiele für Turing-Maschinen . . . . . . . . . . . . . . . . . . . . 162.3 Exkurs über Zahlenfunktionen . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3.1 b-näre Zahlendarstellung . . . . . . . . . . . . . . . . . . . . . . . . 182.3.2 b-adische Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.4 Turing-Berechenbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.1 Normierte Startsituation . . . . . . . . . . . . . . . . . . . . . . . . 202.4.2 partielle Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4.3 Wortfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4.4 Entscheidbarkeit, Semientscheidbarkeit und Aufzählbarkeit . . . . 232.4.5 Turing-Maschinen als Akzeptoren und Erkenner . . . . . . . . . . 24

2.5 Techniken zur Programmierung von Turing-Maschinen . . . . . . . . . . . 252.5.1 Endliche Sprache mit schnellem Zugriff . . . . . . . . . . . . . . . 252.5.2 Turing-Bänder mit mehreren Spuren – Mehrspurmaschinen . . . . 252.5.3 Mehrbandmaschninen . . . . . . . . . . . . . . . . . . . . . . . . . 272.5.4 Unterprogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.5.5 Komposition von Turing-Maschinen . . . . . . . . . . . . . . . . . 30

2.6 Rechenzeit und Speichersplatz . . . . . . . . . . . . . . . . . . . . . . . . . 33

3 Partiell-rekursive Funktionen 353.1 Primitiv-rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 353.2 Die Ackermann-Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.3 µ-rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.4 Allgemein-rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . . 43

3.4.1 Eigenschaften primitiv-rekursiver Funktionen . . . . . . . . . . . . 473.5 Partiell-rekursive und Turing-berechenbare Funktionen . . . . . . . . . . . 48

3.5.1 Eigenschaften partiell-rekursiver Funktionen . . . . . . . . . . . . . 53

4 Formale Sprachen und formale Grammatiken 544.1 Grammatiken und Sprachen vom Typ-0 . . . . . . . . . . . . . . . . . . . 55

3

Page 4: 2 Turing-Maschinen

Inhaltsverzeichnis

4.1.1 Beziehungen zwischen Typ-0-Grammatiken und Turing-Maschinen 604.2 Grammatiken und Sprachen vom Typ-1 . . . . . . . . . . . . . . . . . . . 634.3 Grammatiken und Sprachen vom Typ-2 . . . . . . . . . . . . . . . . . . . 654.4 Grammatiken und Sprachen vom Typ-3 . . . . . . . . . . . . . . . . . . . 694.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5 Die Hierarchie der Sprachklassen 715.1 Das Wortproblem für Sprachen vom Typ-i (i = 0, 1, 2, 3) . . . . . . . . . 715.2 Das Pumping-Lemma für kontextfreie Sprachen . . . . . . . . . . . . . . . 735.3 Das Pumping-Lemma für reguläre Sprachen . . . . . . . . . . . . . . . . . 755.4 Kontextfreie Sprachen über einelementigen Alphabeten . . . . . . . . . . . 78

6 Die Hierarchie der Automaten 796.1 Das Phänomen „Nichtdeterminismus“ . . . . . . . . . . . . . . . . . . . . 796.2 Turing-Maschinen vom Typ-0 . . . . . . . . . . . . . . . . . . . . . . . . . 816.3 Turing-Maschinen vom Typ-1 . . . . . . . . . . . . . . . . . . . . . . . . . 836.4 Turing-Maschinen vom Typ-2 . . . . . . . . . . . . . . . . . . . . . . . . . 83

6.4.1 Beschreibung von Linksableitungen durch Kellerautomaten . . . . 846.4.2 Akzeptanzverhalten eines Kellerautomaten . . . . . . . . . . . . . 85

6.5 Turing-Maschinen vom Typ-3 . . . . . . . . . . . . . . . . . . . . . . . . . 87

7 Ausblick in die Theorie der Entscheidbarkeit 887.1 Entscheidbarkeit und Aufzählbarkeit . . . . . . . . . . . . . . . . . . . . . 887.2 Charakterisierung der aufzählbaren Mengen . . . . . . . . . . . . . . . . . 887.3 Codierung von Turing-Maschinen . . . . . . . . . . . . . . . . . . . . . . . 90

4

Page 5: 2 Turing-Maschinen

Auflistung der Theoreme

Sätze

Satz 1.2 Hauptsatz der Algorithmentheorie . . . . . . . . . . . . . . . . . . . . . 11

Satz 1.3 These von Church . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Satz 3.5 stückweise definierte Funktionen . . . . . . . . . . . . . . . . . . . . . . 47

Satz 3.6 obere Schranken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Satz 3.7 Simultane Rekursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Satz 3.8 Wertverlaufsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Satz 3.11 Kleene’scher Normalformsatz . . . . . . . . . . . . . . . . . . . . . . . . 53

Satz 3.12 Parametrisierungssatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Satz 5.1 Hierarchiesatz für Klassen der Chomski-Hierarchie . . . . . . . . . . . . 71

Satz 5.4 Das Pumping-Lemma für CF . . . . . . . . . . . . . . . . . . . . . . . . 73

Satz 5.5 Das Pumping-Lemma für REG . . . . . . . . . . . . . . . . . . . . . . . 75

Satz 7.2 Anhaltesatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Definitionen und Festlegunden

Definition 2.1 Formale Beschreibung der Turing-Maschine . . . . . . . . . . . . . 15

Definition 3.1 Grundfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Definition 3.2 Einsetzungsprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Definition 3.3 Schema der primitiven Rekursion . . . . . . . . . . . . . . . . . . . 36

Definition 3.4 primitiv-rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . 37

Definition 4.6 Typ-1-Grammatik . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Definition 4.7 Typ-1-Normalform-Grammatik . . . . . . . . . . . . . . . . . . . . 63

Definition 4.8 kontextsensitive Grammatik . . . . . . . . . . . . . . . . . . . . . . 64

5

Page 6: 2 Turing-Maschinen

Inhaltsverzeichnis

Definition 6.1 nichtdeterministische Turing-Maschinen . . . . . . . . . . . . . . . 81

Definition 6.2 Formale Definition des Kellerautomaten . . . . . . . . . . . . . . . 85

6

Page 7: 2 Turing-Maschinen

Vorwort

Dieses Dokument wurde als Skript für die auf der Titelseite genannte Vorlesung erstelltund wird jetzt im Rahmen des Projekts „Vorlesungsskripte der Fakultät für Mathematikund Informatik“ weiter betreut. Das Dokument wurde nach bestem Wissen und Gewissenangefertigt. Denoch garantiert weder der auf der Titelseite genannte Dozent, die Personen,die an dem Dokument mitgewirkt haben, noch die Mitglieder des Projekts für dessenFehlerfreiheit. Für etwaige Fehler und dessen Folgen wird von keiner der genanntenPersonen eine Haftung übernommen. Es steht jeder Person frei, dieses Dokument zulesen, zu verändern oder auf anderen Medien verfügbar zu machen, solange ein Verweisauf die Internetadresse des Projekts http: // uni-skripte. lug-jena. de/ enthaltenist.

Diese Ausgabe trägt die Versionsnummer 2562 und ist vom 4. Dezember 2009. Eine (mögli-che) aktuellere Ausgabe ist auf der Webseite des Projekts verfügbar.

Jeder ist dazu aufgerufen, Verbesserungen, Erweiterungen und Fehlerkorrekturen für dasSkript einzureichen bzw. zu melden oder diese selbst einzupflegen – einfach eine E-Mailan die Mailingliste <[email protected]> senden. Weitere Informationen sindunter der oben genannten Internetadresse verfügbar.

Hiermit möchten wir allen Personen, die an diesem Skript mitgewirkt haben, vielmalsdanken:

• Jörg Sommer <[email protected]> (2005)

7

Page 8: 2 Turing-Maschinen

1 Berechenbarkeit

1.1 Was ist ein Algorithmus?

1935 formulierte Alan Turing folgende Frage: „Gibt es eine effektive Prozedur, die dasHilbertsche Problem löst?“

Hilbert’sche Problem: Gegeben sei eine Menge von prädikaten-logischen Formeln undeine weitere Formel F . Ist F eine Folgerung aus der Menge der gegebenen Formeln?

Umformulierung: Ist eine gegebene Formel erfüllbar oder nicht?

Das Problem von Turing war, dass es bis 1935 keine Präzisierung dessen gab, wasein solches Verfahren („effektive Prozedur“) ist, obwohl es schon seit jahrtausendenRechenverfahren gab.

Beispiele für solche Verfahren:

• Grundrechenarten für mehrstellige Zahlen

• Lösungsverfahren für Gleichungen

– lineare Gleichungen

– Polynome

– Differentialgleichungen

– Diophantische Gleichungen

• Konstruktionsverfahren

– regelmäßiges 17-Eck

• Rezepturen. . .

– . . .für Speißen

– . . .für Arzeneimittel

– . . .für Parfüme

allen Rezepturen ist gemeinsam:

• wohlbestimmte Menge an Ausgangsstoffen

8

Page 9: 2 Turing-Maschinen

1.1 Was ist ein Algorithmus?

• Folge exakter Handlungsanweisungen

• → Produkt

den Rechenverfahren ist gemeinsam:

• wohldefinierte Menge von Ausgangsgrößen

• Folge von Rechenschritten

• → Resultat

Dies liefert einen ersten Ansatz für die Formulierung:

Eingabe −−−−−−−→ Algorithmus −−−−−−−→ Ausgabe

Ein konkretes Beispiel für einen Algorithmus ist der Euklidische Algorithmus. Dazuspäter mehr.

Definition 1.1Für zwei natürliche Zahlen x und y bezeichnet x mod y diejenige natürliche Zahl, die alsRest bei der ganzzahligen Division mit dem Dividenden x und dem Divisor y bleibt.

Frage: Ist diese Festlegung sinnvoll? Was ist das Resultat?

Satz 1.1Für je zwei natürliche Zahlen x und y gibt es zwei eindeutig bestimmte Zahlen q und rmit folgenden Eigenschaften:

• x = qy + r

• 0 ≤ r < y

Bemerkung 1.1Satz 1.1 rechtfertigt die folgende Bezeichnung:

1. q = x÷ y

2. r = x mod y

Euklidischer Algorithmus – informal

Eingabe: zwei natürliche Zahlen a und b

Ausgabe: rk−1

1. Schritt: Bestimmt r = a mod bFalls r = 0, dann gib b aus, sonst gehe zum nächsten Schritt.

9

Page 10: 2 Turing-Maschinen

1 Berechenbarkeit

2. Schritt: Bestimme r2 = b mod rFalls r2 = 0, dann gebe r aus, sonst gehe zum nächsten Schritt.

3. Schritt: Bestimmt r3 = r mod r2Falls r3 = 0, dann gebe r2 aus, sonst gehe zum nächsten Schritt.

4. Schritt: Wiederhole das Verfahren solange, bis ein Wert rk = 0 erreicht wird undgib den Wert rk−1 aus.

Euklidischer Algorithmus – formal

1. a0 = a; a1 = b; i = 0

2. while ai+1 6= 0 do

3. ai+2 = ai mod ai+1

4. i = i+ 1

5. return ai

Zwei Fragen ergeben sich aus dieser Definition

1. Ist die Ausgabe ai bzw. rk−1 tatsächlich der größte gemeinsame Teiler der Zahlena und b? – Ist das gegebene Verfahren korrekt?

2. Liefert das Verfahren das Resultat in einer praktikablen Zeit? – Ist das gegebeneVerfahren effizient?

In unserem Fall lassen sich beide Fragen mit ja beantworten.

Eigenschaften von Algorithmen:

• endliche Beschreibung

• endlicher Datenbereich

• beschränkte Menge von Anfangs-Grundoperationen

• schrittweise Ausführung (bzw. endliche Parallelität)

• endliche Dauer jeder Grundoperation

• Determiniertheit – zu jedem Zeitpunkt steht fest, welches der nächste Schritt ist

• Terminierung – das Verfahren endet

mathematische Formalisierung des Algorithmenbegriffs

verschiedene Zugänge:

Termersetzungssysteme• Turing-Maschine (A.Turing, 1936) – Kapitel 2

• Post’sche Systeme (M.Post, 1943)

10

Page 11: 2 Turing-Maschinen

1.1 Was ist ein Algorithmus?

• Markovalgorithmen (M.Markov, 1951)

algebraischer Zugang• partiell-rekursive Funktionen (Kleene, Herbrand, Gödel, 1936) – Kapitel 3

• λ-definierbare Funktionen (Church, 1936)

theoretische Modelle• Registermaschinen (Sheperson, 1964)

Satz 1.2 (Hauptsatz der Algorithmentheorie)Alle verschiedene Formalisierungen des Algorithmenbegriffs sind äuqivalent.

Satz 1.3 (These von Church)Alle Algorithmenbegriffe beschreiben die Klasse der im intuitiven Sinne berechenbarenFunktionen!

11

Page 12: 2 Turing-Maschinen

2 Turing-Maschinen

2.1 Wörter und Sprachen

Eine endliche Menge Σ, z. B. Σ = {a1, a2, . . . , an}, bezeichnet man als Alphabet. EinElement des Alphabets x ∈ Σ nennt man Buchstabe. Jede endliche Folge x1 . . . xm vonBuchstaben aus Σ heißtWort über dem Alphabet Σ. Die Anzahlm der Buchstaben einesWortes w heißt Länge des Wortes und wird mit |w| bezeichnet.

Eine besondere Rolle spielt das „leere Wort“ der Länge null – also kein Buchstabe. DieBezeichnung dafür ist λ oder ε.

Σ∗ bezeichnet die Menge aller endlichen Wörter (inkl. λ). Angenommen die Buch-staben a1, . . . , an von Σ sind geordnet a1 < a2 < . . . < an. Dann ergibt sich hieraus einekanonische Ordnung für Σ∗.

w1 < w2 gdwdef |w1| < |w2| oder(w1 = wx1w

′1, w2 = wx2w

′2 ∧ x1 < x2)

oder in Worten ausgedrück: wenn w1 und w2 die gleiche Länge haben, dann ist dererste Buchstabe von links, in dem sich w1 und w2 unterscheiden, in w1 kleine alsder in w2. Die Reihenfolge von Σ∗ heißt auch quasilexikographische Reihenfol-ge

Es sei Σ ein Alphabet. Dann bezeichnet

Σ0 := {λ}Σ1 := Σ

Σn+1 := {wx : w ∈ Σn, x ∈ Σ}

Σ∗ =∞⋃n=0

Σn

Σ+ := Σ∗ \ {λ}

Für zwei Wörter u, v ∈ Σ∗ mit u = x1 . . . xm und v = y1 . . . yn bezeichnet dieKonkatena-tion (Hintereinanderschreibung) u·v (oder uv) das Wort x1 . . . xmy1 . . . yn.

Für ein Wort w ∈ Σ∗ mit w = x1 . . . xm bezeichnet man das Wort wR = xmxm−1 . . . x1als Spiegelwort.

12

Page 13: 2 Turing-Maschinen

2.1 Wörter und Sprachen

Man bezeichnet L ⊆ Σ∗ als formale Sprache. Für zwei Sprachen L1, L2 ⊆ Σ∗ ist dieKonkaternation L1 · L2 := {u · v : u ∈ L1, v ∈ L2}. Für eine Sprache L ⊆ Σ∗ ist dieSpiegelsprache LR definiert durch {wR : w ∈ L}.

Für ein Wort w ∈ Σ∗ sind diePotenzen von w gleichermaßen definiert:

w0 := λ

w1 := w

wn+1 := wn · w

Die n-te Pozenz ist also das Wort, das durch n-fache Hintereinanderschreibung ent-steht.

Für eine Sprache L ⊆ Σ∗ sind diePotenzen von L folgendermaßen definiert:

L0 := {λ}L1 := L

Ln+1 := Ln · L

Die n-te Potenz einer Sprache besteht also aus all denjenigen Wörtern, die das n-facheProdukt irgendwelcher Wörter aus L sind.

Für eine Sprache L ⊆ Σ∗ bezeichnet

L∗ :=∞⋃n=0

Ln

die Kleene-Hülle von L.

2.1.1 Spezielle Alphabete

Σlatein := {a, b, c, . . . , x, y, z}Σdezi := {0, . . . , 9}Σbool := {0, 1}

ΣTastatur := {a, . . . , z, A, . . . , Z, 0, . . . , 9,−,+, :, . . .} ∪ {␣}

Achtung: Es gilt |␣| = 1!

Bemerkung 2.1Jeder Roman ist ein Wort über dem Alphabet ΣTastatur.

13

Page 14: 2 Turing-Maschinen

2 Turing-Maschinen

Wir definieren für Wörter w ∈ Σ∗bool der Form x1 . . . xn die Funktion

No2(w) : Σ∗bool → N, w 7→n∑i=1

xi2n−i

Das kürzeste Wort w mit der Eigenschaft No2(w) = n heißt Binärdarstellung von n.Schreibweise: bin(n) := w.

Für Wörter w ∈ Σ∗dezi definieren wir analog:

No10(w) :=n∑i=1

xi10n−i

und dieDezimaldarstellung dezi(n) als das kürzeste Wort w mitNo10(w) := n.

Eine Abbildung f : Σ∗ → ∆∗ heißt Homomorphismus von Σ∗ in ∆∗ gdwdef für alleWörter u, v ∈ Σ∗ gilt: f(u · v) = f(u) · f(v).

2.2 Der Begriff der Turing-Maschine

Zunächst eine informale Beschreibung der Bestandteile einer Turing-Maschine:

• Ein nach rechts und links unendliches Arbeitsband (Turing-Band), das in Felder(Zellen) unterteilt ist.

• In jeder Zelle kann ein Buchstabe eines gegebenen Alphabets Σ stehen oder dieZelle ist leer.

Bezeichnung für eine leere Zelle: �

Beispiel für Σ = Σlatin todo: Beispiel des Turing-Bandes

• Auf dem Band agiert ein Lese-Schreib-Kopf.

• Dieser Kopf steht auf genau einer Zelle des Bandes und kann in einem Takt denInhalt dieser Zelle lesen und überschreiben.

• Ein endliches Gedächtnis steuert diesen Arbeitskopf und kann einen von endlichvielen inneren Zuständen annehmen.

• In Abhängigkeit vom gelesenen Symbol und dem inneren Zustand wird eine Aktionausgeführt.

• Eine solche Aktion hat drei Bestandteile:– neues Symbol schreiben

– neuen inneren Zustand annehmen

– Bewegung des Kopfes um eine Zelle

14

Page 15: 2 Turing-Maschinen

2.2 Der Begriff der Turing-Maschine

Definition 2.1 (Formale Beschreibung der Turing-Maschine)Eine Turing-Maschine M ist gegeben durch ein Sextupel M = (Q,Σ, Γ, δ, q0, F ) mitden Elementen

Q . . . eine endliche Menge (Zustandsmenge)Σ . . . ein endliches Alphabet (Eingabealphabet)Γ . . . ein endliches Alphabet (Arbeitsalphabet), wobei Σ ⊆ Γδ . . . Überführungsfunktion Q× Γ → Q× Γ × {L, 0, R} (links, stehen, rechts)

q0 ∈ Q . . . StartzustandF ⊆ Q . . . Finalzustände

Vereinbarung: Blanksymbol � ∈ Γ \ Σ (damit die Turing-Maschine die Enden derEingabe erkennen kann) und Q ∩ Γ = ∅ (dies ist für die Definition einer Konfiguration(Definition 2.2) erforderlich).Beispiel 2.1Beispiel einer aktuellen Situation einer Turing-Maschine.

todo: bild einfügen

Es sei δ(q, b) = (q′, a, R). Damit ist die neue Situation:

todo: bild einfügen

Bemerkung 2.2Dieser Übergang heißt Takt der Maschine.

Definition 2.2Es ein M = (Q,Σ, Γ, δ, q0, F ) eine Turing-Maschine. Eine Konfiguration von M ist einWort α · q ·β ∈ Γ ∗×Q×Γ ∗. Dabei bezeichnet q ∈ Q den aktuellen Zustand der Maschineund α · β ∈ Γ ∗ die aktuelle Bandinschrift der Maschine.

Bemerkung 2.3Zu jedem Zeitpunkt sind höchstens endlich viele Symbole veschieden vom Blanksymbol.Damit beschreibt eine Konfiguration eine Momentansituation von M .

Beispiel 2.2K1 = aqbba und K2 = aaq′ba. Der Lese-Schreib-Kopf befindet sich auf der ersten Zelledes „rechten Teils“ von β.

Definition 2.3Wir definieren auf der Menge der Konfigurationen eine zweistellige Relation

|−−⊆ (Γ ∗ ·Q · Γ ∗)× (Γ ∗ ·Q · Γ ∗)

a1a2 . . . am q︸︷︷︸∈Q

b1b2 . . . bn |−−

a1a2 . . . amcq

′b2 . . . bn : δ(q, b1) = (q′, c, R)a1a2 . . . amq

′cb2 . . . bn : δ(q, b1) = (q′, c, 0)a1a2 . . . q

′amcb2 . . . bn : δ(q, b1) = (q′, c, L)

Zwei Sonderfälle:

15

Page 16: 2 Turing-Maschinen

2 Turing-Maschinen

1. Der Lese-Schreib-Kopf steht am rechten Rand und bewegt sich nach rechts:

a1 . . . amqb1 7→ a1 . . . amcq′�

falls δ(q, b1) = (q′, c, R).

2. Der Lese-Schreib-Kopf steht am linken Rand und bewegt sich nach links:

qb1b2 . . . bn 7→ q′c�b2 . . . bn

falls δ(q, b1) = (q′, c, L).

Definition 2.4Es sei M eine Turing-Maschine und es seien K1,K2 zwei Konfigurationen von M .

1. K2 ist unmittelbare Nachfolgekonfiguration von K1 gdwdef K1 |−− K2.

2. K2 ist eine Folgekonfiguration von K1 gdwdef K2 = K1 oder es existiert eineendliche Folge K ′1,K ′2, . . . ,K ′m mit K1 = K ′1 |−− K ′2,K ′2 |−− K ′3, . . . ,K ′m−1 |−− K ′m =K2.

Schreibweise: K1 |−−∗ K2

Bemerkung 2.4|−−∗ ist eine reflexive und transitive Hülle von |−−.

Definition 2.5Die Startkonfiguration der Turing-Maschine M bei der Eingabe w ∈ Σ∗ ist q0w =Start−KonfM (w). Jede Konfiguration vonM der Form αqFβ heißt Endkonfiguration(oder Finalzustand), falls qF ∈ F .

2.2.1 Beispiele für Turing-Maschinen

Beispiel 2.3L = {w ∈ {a, b}∗ : wR = w} ist die Menge aller Palindrome über {a, b}.

Ziel: Konstruktion einer Turing-Maschine M , die L im folgenden Sinne erkennt:

1. w ∈ L, dann löscht M die Eingabe w, schreibt ein „a“ und stoppt im Finalzustand.

2. w ∈ {a, b}∗ \ L, dann löscht M diese Eingabe w, schreibt ein „b“ und stoppt imFinalzustand.

16

Page 17: 2 Turing-Maschinen

2.2 Der Begriff der Turing-Maschine

Zustände:q0 . . . Startzustandqa . . . merke sich „a“ und Kopf läuft nach rechtsqb . . . merke sich „b“ und Kopf läuft nach rechtsq′a . . . testet „a“ und Kopf läuft nach linksq′b . . . testet „b“ und Kopf läuft nach linksq+ . . . Test positivq− . . . Test negativqF . . . FinalzustandΣ = {a, b}Zustandsüberführungsfunktion δ:HHH

HHHQΓ

a b �

q0 (qa,�, R) (qb,�, R) (qF , a, 0)qa (qa, a, R) (qb, b, R) (q′a,�, L)qb (qb, a, R) (qb, b, R) (q′b,�, L)q′a (q+,�, L) (q−,�, L) (qF , a, 0)q′b (q−,�, L) (q+,�, L) (qF , a, 0)q+ (q+, a, L) (q+, b, L) (q0,�, R)q− (q−,�, L) (q−,�, L) (qF , b, 0)qF (qF , a, 0) (qF , b, 0) (qF ,�, 0)

Die Überführungsfunktion ist stets eine totaldefinierte Fuktion! Das bedeutet, es gibtkeine undefinierten Situationen oder bildlich gesprochen, keine der Tabellenzellen ist leer!Wenn ein Finalzustand erreicht wird, stoppt die Maschine (von außen betrachtet) bzw.ist in einer Endlosschleife (von innen betrachtet).

Beispiel 2.4Wir konstruieren eine Maschine M , die die Sprache L = {anbn : n ≥ 1} ⊆ {a, b}∗ erkennt.

M arbeitet in zwei Etappen:

1. M testet, ob die Eingabe von der Form aibj ist.

2. M testet, ob i = j ist.

q0 . . . falls „a“ gelesen wird: Bewegung nach rechtsfalls „b“ gelesen wird: Übergang in q1falls „�“ gelesen wird: „Fehler“

q1 . . . falls „a“ gelesen wird: „Fehler“falls „b“ gelesen wird: Bewegung nach rechtsfalls „�“ gelesen wird: Übergang in q2

q2 . . . löscht das rechteste „b“: Übergang in q3lese „a“ oder „�“: „Fehler“

q3 . . . Bewegung nach links bis zum ersten �: Übergang in q4q4 . . . streiche das „a“: Übergang zu q5

falls „b“ oder „�“: „Fehler“

17

Page 18: 2 Turing-Maschinen

2 Turing-Maschinen

q5 . . . testet, ob der „Rest“ das leere Wort ist: Fianlzustand q7lesse „a“ oder „b“: Übergang zu q6

q6 . . . Bewegung nach rechts bis zum ersten �: Übergang zu q2q7 . . . Finalzustand

a b c

q0 (q0, a, R) (q1, b, R) (q0,�, 0)?q1 (q1, a, 0)? (q1, b, R) (q2,�, L)q2 (q2, a, 0)? (q3,�, L) (q2,�, 0)?q3 (q3, a, L) (q3, b, L) (q4,�, R)q4 (q5,�, R) (q4, b, 0)? (q4,�, 0)?q5 (q6, a, R) (q6, b, R) (q7,�, 0)q6 (q6, a, R) (q6, b, R) (q2,�, L)q7 (q7, a, 0) (q7, b, 0) (q7,�, 0)

?: Für diese Zustände stoppt die Maschine mit „Fehler“.

Es gilt: M erreicht bei Eingabe w den Finalzustand q7 gdw w ∈ L.

2.3 Exkurs über Zahlenfunktionen

Es sei b > 1 ∈ N Basis

2.3.1 b-näre Zahlendarstellung

Ziffern {0, 1, . . . , b− 1}

Fakt: Jede natrüliche Zahl n ≥ 0 besitzt eine eindeutige Darstellung der Form

m = xmbm + xm−1b

m−1 + . . .+ x2b2 + x1b+ x0

wobei xm, . . . , x0 ∈ {0, . . . , b− 1} und xm 6= 0 sind.

Schreibweise: bnaer(n) = xmxm−1 . . . x2x1x0

bnaer : N→ {0, 1, . . . , b−1}∗ ist eine eindeutige, aber nicht bijektive Abbildung.

speziell: b = 2 mit den Ziffern {0, 1} heißt binär; z. B.: bin(17) = 10001, aber 010001 ∈{0, 1}∗ ist kein Bild der Abbildung.

18

Page 19: 2 Turing-Maschinen

2.4 Turing-Berechenbarkeit

2.3.2 b-adische Darstellung

Ziffern {1, 2, . . . , b}

Faktjede natürliche Zahl n > 0 besitzt eine eindeutige Darstellung der Form

n = ynbn + yn−1b

n−1 + . . .+ y1b1 + y0

wobei yn, yn−1, . . . , y0 ∈ {1, 2, . . . , b}

Schreibweise: bad(m) = ynyn−1 . . . y0, bad(0) = λ.

Die Abbildung bad : N→ {1, 2, . . . , b}∗ ist eine Bijektion.

speziell: b = 2 dyadisch; dya : N → {1, 2}∗ ist injektiv und surjektiv; z. B.: dya(17) =1121

2.4 Turing-Berechenbarkeit

SeiM = (Q,Σ, Γ, δ, q0, F ) eine Turing-Maschine. Ferner seien�,# ∈ Γ,∆ ⊆ Γ\{�}, Σ ⊆Γ \ {�,#} und n > 0.

Eine Turing-Maschine M berechnet eine (n-stellige) Funktion f :(Σ∗)n → ∆∗, falls

gilt:

1. Für (w1, w2, . . . , wn) ∈(Σ∗)n sei f definiert und für die Startkonfiguration

q0w1#w2# . . .#wn gilt:

q0w1#w2# . . .#wn |−−∗ qF f(w1, w2, . . . , wn)

mit qF ∈ F .

2. Falls f für (w1, w2, . . . , wn) ∈(Σ∗)n nicht definiert (Symbol: ⊥) ist, dann aus-

gehend von q0w1#w2# . . .#wn, stoppt M nicht oder M stoppt nicht in einemFinalzustand.

Definition 2.6Eine Wortfunktion f :

(Σ∗)n → ∆∗ heißt Turing-berechenbar gdwdef es eine Turing-

Maschine M gibt, die f berechnet.

Definition 2.7Eine Zahlenfunktion g : Nn → N heißt Turing-berechenbar gdwdef g bei dyadischerCodierung fg (fg ist eine Wortfunktion {1, 2}∗ → {1, 2}∗) Turing-brechenbar ist, d. h.

fg(y1, y2, . . . , yn) = dya(g(dya−1(y1), . . . , dya−1(yn)

))

19

Page 20: 2 Turing-Maschinen

2 Turing-Maschinen

Definition 2.8Eine Sprache L ⊆ Σ∗ heißt Turing-entscheidbar gdwdef die charakteristische Funk-tion χL Turing-berechenbar ist

χL(w) ={

1 : w ∈ L0 : w /∈ L

Definition 2.9Eine Sprache L ⊆ Σ∗ heißt Turing-semientscheidbar gdwdef die partielle charak-teristische Funktion χpL Turing-berechenbar ist

χpL(w) ={

1 : w ∈ L⊥ : w /∈ L

Definition 2.10Eine Sprache L ⊆ Σ∗ heißt Turing-aufzählbar gdwdef eine total definierte Turing-berechenbare Funktion f : Σ∗ →t Σ

∗ existiert, so dass f(Σ∗) = L.

Bemerkung 2.5f könnte z. B. die folgende Abbildung machen

f(w) ={w : w ∈ Lu : w /∈ L

u ist dabei ein bekanntes festes Wort aus L. Dies könnte z. B. λ sein, falls λ ∈ L.

2.4.1 Normierte Startsituation

• Definition trifft keine Aussage über das Verhalten einer Turing-Maschine für Ein-gaben, die nicht von der erwarteten Form sind. Es ist nicht geklärt, was passiert,wenn Zeichen /∈ Σ ∪ Γ auf dem Band stehen.

• Jede Turing-Maschine berechnet für jede natürliche Zahl n > 0 eine n-stelligeFunktion.

2.4.2 partielle Funktionen

Als berechenbare Funktionen werden auch solche angesehen, die nicht überall definiertsind.Beispiel 2.5Wir definieren für Σ = {1, 2} die Turing-Maschine M = ({q0, qF }, Σ,Σ∪{�}, δ, q0, {qF })

δ(q0, 1) = (q0, 1, R) δ(qF , 1) = (qF , 1, 0)δ(q0, 2) = (q0, 2, R) δ(qF , 2) = (qF , 2, 0)δ(q0,�) = (q0,�, R) δ(qF ,�) = (qF ,�, 0)

20

Page 21: 2 Turing-Maschinen

2.4 Turing-Berechenbarkeit

δ(qF , ∗) ist die Verfollständigung der Überführungsfunktion, obwohl qF nie erreicht wird.

M berechnet die „nirgends definierte“ Funktion f : Σ∗ → Σ∗

f(w) =⊥ ∀w ∈ Σn

Dies gilt für den Definitionsbereich D 6= ∅ und damit f(D) = ∅

2.4.3 Wortfunktionen

Die Abbildung bad : N → {1, 2, . . . , b}∗ (für eine Basis b > 1) aus Abschnitt 2.3.2ist eine Bijektion zwischen den Zahlen und den Wörten. Diese Bijektion erlaubt einenatürliche Zahl n mit dem Wort bad(n) und schließlich die Menge N mit {1, 2, . . . , b}∗ zuidentifizieren.

Jedes Alphabet Σ mit k Buchstaben kann durch Umbennen in {1, 2, . . . , k} übersetztwerden und damit kann Σ∗ mit N identifiziert werden.Beispiel 2.6Eine Turing-Maschine, die die Nachfolgerfunktion dyadischer Darstellung berechnet:Σ = {1, 2}, Γ = {1, 2,�}

q0 . . . StartzustandqU1 . . . Übertrag 1qU0 . . . Übertrag 0qF . . . Finalzustand

δ 1 2 �q0 (q0, 1, R) (q0, 2, R) (qU1,�, L)qU1 (qU0, 2, L) (qU1, 1, L) (qF , 1, 0)qU0 (qU0, 1, L) (qU0, 2, L) (qF ,�, R)qF (qF , 1, 0) (qF , 2, 0) (qF ,�, 0)

Wir haben in Definition 2.7 die Festlegung getroffen: Eine Zahlenfunktion g : Nn → N heißtTuring-berechenbar gdwdef die Wortunktion f Turing-berechenbar ist:

f :({1, 2}∗

)n → {1, 2}∗, f(y1, . . . , yn) = dya(g(dya−1(y1), . . . , dya−1(yn)

))

Eine „großzügigere“ Definition der Berechenbarkeit wäre die folgende:

Definition 2.11Eine Zahlenfunktion g : Nn → N heißt Turing-berechenbar gdwdef zwei natürlicheZahlen b1, b2 > 1 und eine Turing-berechenbare Funktion

h : ({1, . . . , b1}∗)n → {1, . . . , b2}∗, (z1, . . . , zn) 7→ b2ad(g(b1ad

−1(z1), . . . , b1ad−1(zn)

))existieren.

Frage: Führen diese zwei verschiedenen Definitionen auf zwei verschiedene Arten vonBerechenbarkeit?

21

Page 22: 2 Turing-Maschinen

2 Turing-Maschinen

Wir zeigen: Falls h Turing-berechenbar ist, dann folgt daraus, dass auch f Turing-berechenbar ist. Beide Definitionen sind also gleichwertig.

f(y1, . . . , yn) = dya(g(dya−1(y1), . . . , dya−1(yn)

))= dya

(b2ad

−1(h(b1ad(dya−1( y1︸︷︷︸

∈{1,2}∗

)

︸ ︷︷ ︸∈N

)

︸ ︷︷ ︸∈{1,...,b1}∗

, . . . , b1ad(dya−1(yn)))

︸ ︷︷ ︸∈{1,...,b2}∗

)

︸ ︷︷ ︸∈N

)

=(b2ad

−1 ◦ dya)h((dya−1 ◦ b1ad)(y1), . . . , (dya−1 ◦ b1ad)(yn))

Fakt

(b2ad−1 ◦ dya) (dya−1 ◦ b1ad)

undUmrechnung von b2-adischer indyadische Darstellung

Umrechnung von dyadischer in b1-adishe Darstellung

sind „einfach“ durch Turing-Maschinen berechenbar.

Bemerkung 2.6 (Verkettung von Funktionen)zur Verkettung von Funktionen:

f gA

a c = g(b)

g ◦ f

b = f(a)B

C

c = g(b) = g(f(a)) = (f ◦ g)(a)

Es gilt: (a, c) ∈ f ◦ g gdwdef ∃b ∈ B : (a, b) ∈ f, (b, c) ∈ g

Fazit: Es gibt einen Begriff der Turing-Berechenbarkeit für Wort- und Zahlenfunktionen,unabhängig von der Darstellung.

Definition 2.12TM ist die Klasse aller Turing-berechenbarer Funktionen.

TM = {f : Nn → N∣∣f ist Turing-berechenbar}

22

Page 23: 2 Turing-Maschinen

2.4 Turing-Berechenbarkeit

2.4.4 Entscheidbarkeit, Semientscheidbarkeit undAufzählbarkeit

Alle diese Begriffen sind zurückgeführt auf die Berechenbarkeit gewisser Funktionen unddamit spezielle Formulierungen der Berechenbarkeit.

Beziehungen zwischen den Begriffen

1. Beobachtung: Die Sprache L ⊆ Σ∗ ist Turing-entscheidbar gdw L = Σ∗ \L ist Turing-entscheidbar

0 : x ∈ L

1 : x 6∈ L

0 : x 6∈ L

1 : x 6∈ LTuring-Maschine zur Berechnungvon χL

Turing-Maschine zur Berechnungvon χL

x ∈ Σ∗

x ∈ Σ∗

2. Beobachtung: Die Sprache L ⊆ Σ∗ ist Turing-entscheidbar gdw die Sprache L und dieKomplementsprache L Turing-semientscheidbar sind.

1 : x ∈ L

1 : x ∈ L⊥

⊥Turing-Maschine zur Berechnungvon χp

L

Turing-Maschine zur Berechnungvon χp

L

x ∈ Σ∗

3. Beobachtung: Eine Sprache L ⊆ Σ∗ ist Turing-semientscheidbar gdw L ist aufzählbar.

⇐ Wenn eine Sprache aufzählbar ist, dann gibt es eine Turing-Maschine Maufz, diedie Funktion f(Σ∗) = L berechnet (Definition 2.10). Eine Turing-Maschine Msemi

kann für eine Eingabe w alle Wörter der Sprache L von Maufz erzeugen lassenund vergleicht, ob die Eingabe w dabei ist. Findet sie diese, stoppt Msemi mit 1,andernfalls ist die Ausgabe undefiniert. Damit berechnet Msemi genau die partiellecharakteristische Funktion χpL (Definition 2.9).

⇒ Umgekehrt existiere eine Turing-Maschine Msemi, die für eine Eingabe w ent-scheidet, ob diese zu L gehört. Msemi kann zur Bestimmung, ob ein Wort u ∈ L ist,1,2,3,. . .viele Schritte benötigen. Man lässt aber M höchstens k Schritte machenund gibt ein festes (bekanntes) a ∈ L aus, falls M nicht nach k Schritten gestoppt

23

Page 24: 2 Turing-Maschinen

2 Turing-Maschinen

hat. Einer Eingabe w wiederum lässt sich eineindeutig ein Paar (u, k) ∈ Σ∗ × Nzuordnen1.

Damit kann man eine Turing-MaschineMaufz konstruieren, die für ein Wort w ∈ Σ∗das Paar (u, k) ∈ Σ∗ × N bestimmt und prüft, ob Msemi(u) nach k Takten stoppt.Ist dies der Fall, gibt Maufz u aus, ansonsten a. Maufz gibt also nur Wörter aus Laus – die Funktion, die Maufz berechnet ist total.

Für ein Wort u ∈ L stoppt Msemi nach einer endlichen Anzahl k an Takten, d. h. esgibt ein Paar (u, k) und damit ein w ∈ Σ∗, für das die Maschine Maufz das Wort uausgibt. Maufz gibt also (irgendwann) jedes Wort aus L aus – Vollständigkeit.

2.4.5 Turing-Maschinen als Akzeptoren und Erkenner

Eine Sprache L ist Turing-entscheidbar gdw χL ist Turing-berechenbar (vgl. Defini-tion 2.8), d. h. falls eine Eingabe w ∈ Σ∗ zu L gehört, endet die Berechnung einerTuring-Maschine in der Konfiguration �qF 1� und falls w /∈ L endet die Berechnung in�qF 0�.

Wir definieren neue Finalzustände (einer neuen Turing-Maschine):

• aus der Konfiguration �qF 1� |−− �q+��, q+ heißt akzeptierender Zustand(wobei das Turing-Band leer ist)

• aus der Konfiguration �qF 0� |−− �q−��, q− heißt ablehnender Zustand (wobeidas Turing-Band leer ist)

Eine solche Turing-Maschine (ohne Ausgabe) heißt Erkenner der Sprache L mit dem ak-zeptierenden Finalzustand q+ und dem ablehnenden Finalzustand q−.

L ist Turing-semientscheidbar gdw χpL ist berechenbar (vgl. Definition 2.9).

Gleichermaßen definieren wir einen akzeptierenden Zustand q+ als denjenigen Finalzu-stand von �qF 1� |−− �q+��. Es gibt jedoch keinen ablehnenden Zustand. Eine solcheTuring-Maschine heißt Akzeptor der Sprache L.

1Ein u kann durch seine Stellung in Σ∗ als Zahl j(u) repräsentiert werden. Weiterhin lässt sich jedesui ∈ Σ∗ mit einer Zahl i ∈ N identifizieren und das Paar (i, k) ∈ N×N lässt sich durch Diagonalisierungmit einer Zahl j(u) identifizieren – DML: Gleichmächtigkeit von Z und N.

24

Page 25: 2 Turing-Maschinen

2.5 Techniken zur Programmierung von Turing-Maschinen

2.5 Techniken zur Programmierung vonTuring-Maschinen

2.5.1 Endliche Sprache mit schnellem Zugriff

Die Daten einer endlichen Datenmenge D können durch folgenden Trick in das „Gedächt-nis“ der Turing-Maschine eingeführt werden:

Qneu = Qalt ×D

Bemerkung 2.7Dies ist keine Änderung des bisherigen Begriffs Turing-Maschine, sondern lediglich eineModifikation, die eine Konstruktion wahrnimmt!

Beispiel 2.7Für w ∈ Σ∗ bezeichnet |w| die Länge von w, d. h. w hat |w| viele Buchstaben. (vgl.Beginn von Abschnitt 2.1)

Wir betrachten die folgende Sprache

L = {w = w1w2 . . . w|w| : w1 6= wj , j = 2, . . . , |w|} ⊆ Σ∗

Wir konstruieren folgende Turing-Maschine M : Σ = {a, b, c}, Γ = Σ ∪ {�}Qneu = {q1, q2, q3} × ΓStartzustand: [q0,�]Finalzustand: [qF ,�]Überführungsfunktion:

δ([q0, X], X) = ([q1, X],�, R) X ∈ {a, b, c}δ([q0,�],�) = ([qF ,�],�, 0) (Finalzustand)δ([q1, X], Y ) = ([q1, X],�, R) X,Y ∈ {a, b, c}, X 6= Y

δ([q1, X],�) = ([q1,�],�, 0) (Finalzustand)δ([q1, X], X) = ([q2,�], X,R) X ∈ {a, b, c}δ([q2,�], X) = ([q2,�], X, L) (M stoppt nicht)

M ist ein Akzeptor für L.

2.5.2 Turing-Bänder mit mehreren Spuren –Mehrspurmaschinen

informell: Das Turing-Band ist in mehrere Zeilen bzw. Spuren unterteilt

25

Page 26: 2 Turing-Maschinen

2 Turing-Maschinen

formal:

Γneu = Σ ∪ Γ (k)alt = Σ ∪ (Γalt × . . .× Γalt)

Dabei ist �k das neue Blanksymbol

Bemerkung 2.8Analog zu Bemerkung 2.7 ist dies keine Änderung des Begriffs Turing-Maschine.

Beispiel 2.8 (Addition mehrstelliger Zahlen in dyadischer Darstellung)

1221122112122

Eingabe: �dya(x)#dya(y)�Σ = {1, 2,#}

1. Initialisierung: k = 3 (3 Spuren)

b ∈ Σ 7→ (b,�,�)� 7→ (�,�,�)

wir erhalten als Bandinhalt:

� dya(x) # dya(y) �� � . . .� � � . . .� �� � . . .� � � . . .� �

2. Übertragung von dya(y) in die 2. Spur:

� dya(x) �� dya(y) �� � . . .� �

3. Stellenweise Addition:

� dya(x) �� dya(y) �� dya(x+ y) �

4. Normierung auf eine Spur (γ1, γ2, γ3) 7→ γ3

26

Page 27: 2 Turing-Maschinen

2.5 Techniken zur Programmierung von Turing-Maschinen

Beispiel 2.9 (Multipikation mehrstelliger Zahlen in dyadischer Darstellung)Bei der Multiplikation zweier Faktoren x und y benötigt das herkömmliche Verfahrenblog2 yc viele Zeilen – also nicht konstant viele!

1221 · 11221

1221 · 212122

1221 · 1112211221

111111

1221 · 12121221221121212

1221 · 211221

12122212121

1221 · 1111221

12211221

1121211

Die Idee ist aber, den erste Faktor x mit jeder Stelle des zweiten Faktors y einzeln zumultiplizieren und die Ergebnisse aufzusummiert.

1. Initialisierung: k = 4 Spuren

2. Frage: y = 0? → ja: gehe zu 3.; nein: gehe zu 4.

3. Lösche den Bandinhalt und stoppe

4. 2. Spur Zwischenergebnis x mal letzte Ziffer von y.

5. Frage: hat y ein weiteres Bit? → ja: gehe zu 6.; nein: gehe zu 9.

6. 3. Spur Zwischenergebnis x mal aktuelles Bit von y.

7. 4. Spur Zwischenergebnis 2.+3. Spur

8. Übertrage das Zwischenergebnis Summe 2.+3. Spur in die 2. Spur und lösche die 3.und 4. Spur, gehe zu 5.

9. Normierung: Das Ergbenis dya(x+ y) steht in der 2. Spur und wird in eine Spurzurückübersetzt

2.5.3 Mehrbandmaschninen

k sei fixiert, k-Band-Turing-Maschine

informell: kBänder mit je einem Kopf

formell: δ : Q× Γ k → Q× Γ k × {L, 0, R}k

Bemerkung 2.9Dies ist eine Erweiterung der bisherigen Definition der Turing-Maschine. help: Wieso dasauf einmal? Weil sich die Abbildungsfunktion geändert hat. Vorher wurden die MengenQ und Γ immer nur uminterpretiert, jetzt wird richtig was geändert.

27

Page 28: 2 Turing-Maschinen

2 Turing-Maschinen

Beispiel 2.10k = 2, L = {w ∈ {a, b}∗ : w = wR}

Wir wissen bereits aus Beispiel 2.3, dass L Turing-entscheidbar durch eine gewöhnliche(1-Band-) Turing-Maschine ist.

Idee:1. q0 läuft an das rechte Ende der Eingabe, → q1

2. q1 liest die Eingabe von rechts nach links und kopiert sie buchstabenweise auf das2. Band, → q2

3. q2 bewegt den Kopf auf Band 2 an das linke Ende, → q3

4. q3 vergleicht beide Bandinhalte buchstabenweise; stets Übereinstimmung → akzep-tiere; irgendwo Unterschied → ablehnen

Satz 2.1Jede Sprache L ⊆ Σ∗, die von einer k-Band-Turing-Maschine entschieden werden kann,kann auch von einer gewöhnlichen (1-Band-) Turing-Maschine entschieden werden.

Beweis:Es seiM eine k-Band-Turing-Maschine, die die Sprache L ⊆ Σ∗ entscheidet. (Schreibweise:L(M) = L: M entscheidet L)

Wir konstruieren eine 1-Band-Turing-Maschine M ′, die die Arbeit von M nachvollzieht,d. h. „simuliert“. (Beweis durch Simulation) M ′ vollzieht die Arbeit von M mit ihrenMitteln nach. Das Arbeitsband von M ′ ist unterteilt in (2k + 1)Spuren. Die Spuren1, 3, . . . , 2k − 1 enthalten Inhalte der Bänder 1, 2, . . . , k von M . Die Spuren 2, 4, . . . , 2kmarkieren die Kopfposition auf den Bändern 1, 2, 3, . . . , k von M . Die Spur 2k+ 1 enthälteine linke und eine rechte Endmarke, die das am weitesten links bzw. rechts liegene Feldeines der Bänder markiert.

Ausgangssituation. . .

. . .von M :� w1 w2 . . . wn � 1. Band

↑� � . . . � � 2. Band

↑...

...� � . . . � � k. Band

Startzustand: q0

. . .von M ′: �w1w2 . . . wn� einzigstes Band, Startzustand q′0

28

Page 29: 2 Turing-Maschinen

2.5 Techniken zur Programmierung von Turing-Maschinen

1. Initialisierung (Einrichten der Spuren):1. � w1 w2 . . . wn �2. � N � . . . � �3. � � . . . � �4. � N � . . . � �5. . � . . . /↑

(k = 2)

2. Simulation: um einen Schritt der Arbeit von M nachzuvollziehen, führt M ′folgende Schritte aus:

a) der Kopf von M ′ bewegt sich von links nach rechts und merkt sich für jedesBand von M das aktuelle gelesene Symbol. Am rechten Rand kennt M ′ denaktuellen Zustand und die aktuell gelesenen Symbole und kann damit gemäßder Überführungsfunktion δ von M einen neuen aktuellen Zustand qt+1 vonM und k neue Buchstaben (von M) und k Bewegungen der Köpfe bestimmen.

b) Der Kopf von M ′ bewegt sich von rechts nach links und überschreibt die Buch-staben in den markierten Feldern gemäß δ, verschiebt die Kopfmarkierungengemäß δ und erreicht die linke Endmarke. Falls hierbei eine Zelle, die eineder beiden Endmarken enthält, beschriftet wird, wird die Marke um ein Feldnach links bzw. rechts verschoben, so dass der Arbeitsbereich von M ′ stetszwischen den Endmarken liegt.

Damit erreicht M ′ eine normierte Zwischensituation und der nächste Schrittvon M kann simuliert werden.

M ′ akzeptiert eine Eingabe w gdw M diese Eingabe akzeptiert.

3. Normierung (Band aufräumen) �

2.5.4 Unterprogramme

Definition 2.13Unterprogramme sind eigenständige Turing-Maschinen, die in größere Turing-Maschineneingebaut sind.

• Ein Teil der Zustände von M und des Arbeitsspeichers von M sind für das Unter-programm reserviert.

• In gewissen Situationen der Hauptprogramms werden Daten an ein Unterprogrammübergeben, dort behandelt und wieder zurück an das Hauptprogramm übergeben.

Beispiel 2.11 (Multiplikation von natürlichen Zahlen in unärer Darstellung)Eingabe: der Form 1n#1m

� 1 . . . 1︸ ︷︷ ︸n−mal

# 1 . . . 1︸ ︷︷ ︸m−mal

29

Page 30: 2 Turing-Maschinen

2 Turing-Maschinen

Resultat: 1n·m

Idee: Kopiere ersten Block (1n) so oft, wie es der zweite Block angibt. Konstruiere eine3-Band-Turing-Maschine

1. Band: Eingabe2. Band: 2. Block (1m)3. Band: Ergebnis

Wir beschreiben die Arbeit der Maschine:q0 . . . Überlaufen des ersten Blocks → q1q1 . . . Überlaufen des zweiten Blocks nach rechts und kopiere Inhalt auf das

zweite Band (lösche ihn auf dem ersten Band) → q2q2 . . . falls auf dem zweiten Band ein Strich gelesen wird, dann gehe zu qu,

falls ein � gelesen wird, gehe zu q3qu . . . kopiere den Inhalt des ersten Bandes auf das dritte Band → q′uq′u . . . gehe mit den Köpfen in die Ausgangsposition → q2q3 . . . Normierung – Resultat auf das erste Band schreiben und Aufräumen

→ qFq0–q3 . . . Turing-Maschine mit Startzustand q0, Finalzustand qFqu, q

′u . . . Unterprogramm, Startzustand qu, Finalzustand q′u, eingebettet in große

Turing-Maschine

2.5.5 Komposition von Turing-Maschinen

Transitionsdiagramme

Beispiel 2.12Am Beispiel einer Turing-Maschine, die binär eine Eins addiert. Zustände der Maschinewerden als Knoten in einem Diagramm dargestellt. Die Überführungsfunktion mittelsbewerteter Kanten.

30

Page 31: 2 Turing-Maschinen

2.5 Techniken zur Programmierung von Turing-Maschinen

q0 q1

q2 qF

1, 0, L

1, 1, L

0, 1, L

0, 0, L

0, 0, R

�, 1, 0

1, 1, R

�,�, R

�,�, L

Die Maschine „i := i+ 1“

Dieser (Mega-)Knoten lässt sich in ein weiteres Transitionsdiagramm (einer größerenTuring-Maschine) einsetzen.

Beispiel 2.13Eine Turing-Maschine, die testet, ob der Bandinhalt „0“ ist oder nicht (binäre Darstellung)

q0

q1 q+

q−

1, 1, 0

�,�, 0

0, 0, R

�,�, L

1, 1, L0, 0, L

Die Maschine „i = 0“

Die Anschlüsse für dieses Unterprogramm (Knoten) führen in den Startzustand undverlassen die Endzustände.

31

Page 32: 2 Turing-Maschinen

2 Turing-Maschinen

Hintereinanderschalten von Turing-Maschinen

Es seienMi = (Qi, Σ, Γi, δi, q0i , Fi) (i = 1, 2) zwei Turing-Maschinen. o. B. d. A. Q1∩Q2 =∅. Die Turing-Maschine M = (Q1 ∪Q2, Σ, Γ1 ∪ Γ2, δ, q01 , F2) realisiert ein hintereinander-schalten von M1 und M2. Dabei gilt:

δ = δ1 ∪ δ2 ∪ {(q1, a) 7→ (q02 , a′, 0) : q1 ∈ F1, a ∈ Γ1, a

′ ∈ Γ2}

Notation: start→M1 →M2 → stopp oder M := M1 ; M2

Beispiel 2.14

start→ i:=i+1 → i:=i+1 → stopp︸ ︷︷ ︸i:=i+2

Beispiel 2.15 (Fallunterscheidung)

δ = δ1 ∪ δ2 ∪ {(q+, a) 7→ (q01 , a′, 0)} ∪ {(q−, a) 7→ (q02 , a

′, 0)}

start→M0 → i=0?{q+ →M1 → . . .→ stopp

q− →M2 → . . .→ stopp

M := M0; if i = 0 then M1 else M2

Beispiel 2.16 (while-Schleifen)

Start

M

q−

q+i=0? stopp

Maschine „while i 6= 0 do M“

32

Page 33: 2 Turing-Maschinen

2.6 Rechenzeit und Speichersplatz

2.6 Rechenzeit und Speichersplatz

Definition 2.14Es sei M = (Q,Σ, Γ, δ, q0, F ) eine Turing-Maschine und w ∈ Σ∗ eine Eingabe.

timeM (w) :=

Anzahl der Rechenschritte von Mbei der Eingabe w falls M bei w stoppt

⊥ M stoppt nicht

spaceM (w) :=

Anzahl der vom Kopf besuchten Zel-len des Arbeitsbandes

falls M bei w stoppt⊥ M stoppt nicht

Damit ist timeM : Σ∗ → N, spaceM : Σ∗ → N.

TIMEM (n) :=

max|w|≤n

timeM (w) timeM (w) definiert

⊥ Msonst

SPACEM (n) :=

max|w|≤n

spaceM (w) spaceM (w) ist definiert

⊥ Msonst

TIMEM : N→ N ist die maximale Anzahl an Rechenschritten, die benötigt wird, umein Wort ein Länge n zu berechnen. Analog ist SPACEM : N → N der maximaleSpeicherplatz, der für die Berechnung eines Wortes der Länge n benötigt wird.

Definition 2.15Es sei t : N→t N und s : N→t N zwei (total definierte) Zahlenfunktionen. Eine Funktionf : N→ N ist Turing-berechenbar mit der Zeitschranke t und der Speicherplatz-beschränkung s, falls es eine Turing-Maschine Mt und eine Turing-Maschine Ms gibt,so dass TIMEMt ≤ t und SPACEMs ≤ s.

Es sei L ⊆ Σ∗ eine formale Sprache. L ist Turing-erkennbar mit der Zeitbeschrän-kung t und der Speicherplatzbeschränkung s gdw ein ErkennerMt (Turing-Maschineohne Ausgabe; s. Abschnitt 2.4.5) und ein Erkenner Ms existieren, die folgende Bedin-gungen erfüllen:

Mt(w ∈ L) = q+,Mt(w /∈ L) = q−, T IMEMt ≤ tMs(w ∈ L) = q+,Ms(w /∈ L) = q−, SPACEMs ≤ s

Satz 2.2Jede Sprache L ⊆ Σ∗, die von einer Mehrband-Turing-Maschine M mit der Zeitbeschrän-kung t und der Speicherplatzbeschränkung s enschieden werden kann, kann auch von einer1-Band-Turing-MaschineM1 mit der Zeitbeschränkung O(s·t) und der PlatzbeschränkungO(s) entschieden werden.

33

Page 34: 2 Turing-Maschinen

2 Turing-Maschinen

P = {L : ∃p, p ist Polynom, T IMEM ≤ p}

P sind alle die Sprachen, die sich von einer Turing-Maschine in Polynomialzeit entscheidenlassen.

34

Page 35: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

Bisher haben wir zur Charakterisierung von Berechenbarkeit (Turing-)Maschinen, dieFunktionen mit Hilfe eines Algorithmus’ berechnen, betrachtet. Jetzt wollen wir einenalgebraischen Ansatz betrachten, der auf einer Menge von Gundfunktionen, die (indutui-tiv) berechenbar sind, und Schemata, die aus „einfachen“ Funktionen neue „komplexe“Funktionen konstruieren, aufbaut.

Beispiel 3.1 (Modulo-Funktion)mod : N× N→ Nmod(a, b) = Rest bei der ganzzahligen Division von a und bmod(a, 0) = mod(0, b) = mod(0, 0) = 0

Für b 6= 0 lässt sich die Funktion rekursiv auf folgende Weise berechnen:

mod(a, b) = if a < b then a else mod (a− b, b)

Vergleiche mit Definition 1.1

Das zugrundeliegende Schema ist folgendes:

• für eine endliche Menge A ⊆ N sind die Werte der Funktion bekannt (mittelsanderer einfacherer Funktionen berechenbar)

• für den „großen“ Rest werden die Funktionswerte durch Werte der Funktion anfrüheren Stellen Bn (mittels anderer einfacher Funktionen) bestimmt.

In unserem Beispiel 3.1 sind dies: A = {0, . . . , b− 1}, Bn = {n− b}.

Ein besonders einfacher Fall liegt vor, wennA = {0} undBn = {n−1}.

3.1 Primitiv-rekursive Funktionen

Festlegung 3.1Wir beschränken uns o. B. d.A. auf Zahlenfunktionen f : Nk → N.

Bemerkung 3.1Eine echte Einschränkung für diesen Abschnitt ist, dass wir nur total definierte Funktionenbetrachten.

35

Page 36: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

Definition 3.1 (Grundfunktionen)Projektion

Inj (x1, . . . , xn) = xj((x1, . . . , xn) ∈ Nn, n ≥ 1, 1 ≤ j ≤ n

)Die Menge aller Projektionen {Inj : n > 0, 1 ≤ j ≤ n}

Konstanten

Cnk (x1, . . . , xn) = k((x1, . . . , xn) ∈ Nn, n ≥ 1, k ≥ 0)

Die Menge aller Konstanten {Cnk : n ≥ 1, k ≥ 0}

Nachfolgerfunktion

N(x) = x+ 1 (x ∈ N)

G. . .ist die Menge aller Grundfunktionen.

Bemerkung 3.2Alle Grundfunktionen sind Turing-berechenbar!

Definition 3.2 (Einsetzungsprinzip)Gegeben seien eine Funktion h: Nm → N und eine Menge von Funktionen gi: Nn → N(i = 1, . . . ,m). Die Funktion f: Nn → N geht aus den Funktionen h und gi durchEinsetzung hervor gdwdef

f(x1, . . . , xn) = h(g1(x1, . . . , xn), . . . , gm(x1, . . . , xn))

Schreibweise: f = SUBm(h; g1, . . . , gm)

Es sei F ⊆ {f : Nn → N, n ≥ 0} eine Menge von (Zahlen-)Funktionen. F heißt abge-schlossen bezüglich des Schemas der Einsetzung gdwdef jede Funktion, die durchEinsetzung von Funktionen aus F hervorgeht, gehört zu F .

Bemerkung 3.3Die Klasse der Turing-berechenbaren Funktionen TM ist abgeschlossen bezüglich desSchemas der Einsetzung! Abbildung 3.1

Definition 3.3 (Schema der primitiven Rekursion)Eine Funktion f : Nn → N geht aus den Funktionen g : Nn−1 → N und h : Nn+1 → Ndurch primitive Rekursion hervor gdwdef

∀x1, . . . , xn−1, y : f(x1, . . . , xn−1, 0) = g(x1, . . . , xn−1)f(x1, . . . , xn−1, y + 1) = h(x1, . . . , xn−1, y, f(x1, . . . , xn−1, y))

Schreibweise: f = PR(g, h)

F heißt abgeschlossen bzgl. primitiver Rekursion gdwdef jede Funktion, die sich durchprimitive Rekursion aus den Funktionen aus F ergibt, selbst zu F gehört.

36

Page 37: 2 Turing-Maschinen

3.1 Primitiv-rekursive Funktionen

Mg1 Mg1 Mgm. . .

. . .x1

. . . . . . . . .

Mh

xn

Abbildung 3.1: Mf als Komposition aus Mh undMg1 , . . . ,Mgm zur Nachbildung des „Schemasder Einsetzung“

Bemerkung 3.4Die Klasse der Turing-berechenbaren Funktionen TM ist abgeschlossen bzgl. primitiverRekursion.Beispiel 3.2Die Addition plus : N×N→ N geht aus den Grundfunktionen durch primitive Rekursionund Einsetzung hervor.

plus(x, 0) = x = I11 (x)

plus(x, y + 1) = x+ (y + 1) = (x+ y) + 1 = plus(x, y) + 1 = N(plus(x, y)

)Da h für PR eine dreistellige Funktion seien muss, wenden wir nochmal das Schema derEinsetzung an:

plus(x, y + 1) = N(I3

3 (x, y, plus(x, y)))

plus(x, y+1) lässt sich durch das Schema der Einsetzung SUB1(N ; I33 ) durch h : N3 → N

ersetzen. Für die Funktion plus gilt also: plus = PR(I1

1 , SUB1(N ; I3

3 )).

Definition 3.4 (primitiv-rekursive Funktionen)Die Klasse Pr der primitiv-rekursiven Funktionen ist die kleinste Klasse vonFunktionen {f : Nn → N

∣∣n ≥ 0} mit folgenden Eigenschaften:

1. Die Grundfunktionen G liegen in Pr. (G ⊆ Pr)

2. Pr ist abgeschlossen bzgl. der Einsetzung.

3. Pr ist abgeschlossen bzgl. der primitiven Rekursion

Die Klasse der primitiv-rekursiven Funktionen lässt sich damit als algebraische Hülleschreiben:

Pr = Γ{SUB,PR}(G)

Dabei steht SUB für SUB = {SUBm : m ∈ N}

37

Page 38: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

Bemerkung 3.5Alle primitiv-rekursiven Funktionen sind Turing-berechenbar!

Frage: Sind alle Funktionen, die total definiert und berechenbar sind, primitiv-rekursiv?

3.2 Die Ackermann-Funktion

F.W.Ackermann definierte 1928 die folgende Funktion, die total definiert und berechenbarist, aber von der gezeigt wurde, dass sie nicht primitiv-rekursiv ist!

Wir benutzen folgende Form: A : N2 → N

A(0, y) := y + 1A(x+ 1, 0) := A(x, 1)

A(x+ 1, y + 1) := A(x,A(x+ 1, y))

Bemerkung 3.6Dieses Definitionsschema enthält eine doppelte Rekursion, die dazu führt, dass dieFunktion exorbitant schnell wächst!

Beispiel 3.3

A(1, 0) = A(0, 1) = 2A(1, 1) = A(0, A(1, 0)) = A(0, 2) = 3A(1, 2) = A(0, A(1, 1)) = A(0, 3) = 4

A(1,y) = y + 2A(1, y + 1) = A(0, A(1, y)) = A(0, y + 2) = (y + 2) + 1 = (y + 1) + 2

A(2, 0) = A(1, 1) = 1 + 2 = 3A(2, 1) = A(1, A(2, 0)) = A(1, 3) = 3 + 2 = 5A(2, 2) = A(1, A(2, 1)) = A(1, 5) = 5 + 2 = 7

A(2,y) = 2y + 3A(2, y + 1) = A(1, A(2, y)) = A(1, 2y + 3) = 2y + 3 + 2 = 2(y + 1) + 3

A(3, 0) = A(2, 1) = 2 · 1 + 3 = 5A(3, 1) = A(2, A(3, 0)) = A(2, 5) = 2 · 5 + 3 = 13A(3, 2) = A(2, A(3, 1)) = A(2, 13) = 2 · 13 + 3 = 29A(3, 3) = A(2, A(3, 2)) = A(2, 29) = 2 · 29 + 3 = 61

A(3,y) = 2y+3 − 3A(3, y + 1) = A(2, A(3, y)) = A(2, 2y+3 − 3) = 2 · (2y+3 − 3) + 3 = 2(y+1)+3 − 3

38

Page 39: 2 Turing-Maschinen

3.2 Die Ackermann-Funktion

A(4, 0) = A(3, 1) = 21+3 − 3A(4, 1) = A(3, A(4, 1)) = A(3, 216 − 3) = 2216 − 3

A(4, 2) = A(3, A(4, 2)) = A(3, 2216 − 3) = 22216− 3

A(4,y) = 22···2}y-mal− 3

A(5, 0) = A(4, 1) = 216 − 3A(5, 1) = A(4, A(5, 0)) = A(4, 216 − 3)

Satz 3.1Die Ackermannfunktion ist (intuitiv) berechenbar, aber nicht primitiv-rekursiv.

Beweis:Die Idee des Beweises ist folgende Beobachtung: Setzt man die Definition der Ackermann-Funktion wiederholt in die allgemeine Form ein (Gleichung 3.1), so sieht man, dass dieAnzahl der ineinander geschachtelten Rekursionen von den Parametern x und y abhängt.Mit Primitiver-Rekursion kann man jedoch nur einfache Rekursion (mit konstanterSchachtelungstiefe) erreichen.

A(x+ 1, y + 1) = A(x,A(x+ 1, y)) = A(x,A(x,A(x+ 1, y − 1))

)=(3.1)

A(x,A

(x,A(xA(x+ 1, y − 2))

))(3.2) �

Haben Pr = Γ{SUB,PR}(G), d. h. jede primitiv-rekursive Funktion lässt sich darstellen ausden Grundfunktionen und endlich oft nötiger Anwendung des Schemas der Einsetzungund des Schemas der primitiven Rekursion.

Für jede konkrete Funktion ergibt sich eine konkrete Darstellung mit einer festen Anzahlvon Einsetzungen und primitiven Rekursionen.Bemerkung 3.7Jede primitiv-rekursive Funktion lässt sich durch einen Ausdruck endlicher Länge übereinem gegebenen Alphabet beschreiben:

Σ = {I, C,N, |,#, ), , , (, x, SUB,PR}

Beispiel 3.4Hatten: plus = PR(I1

1 , SUB1(N, I3

3 )) es ergibt sich:

plus = PR(I#|#|#, SUB#|#(N, I#|||#|||#))

Dies ist ein Wort über dem Alphabet Σ.

Konsequenz:Eine solche Darstellung zeigt:

39

Page 40: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

1. Pr ist abzählbar unendlich

2. Pr ist effektiv nummerierbar (durch systematisches nummerieren der Wörter überΣ)

Dies hat folgende weitere Konsequenzen:Es sei φ0, φ1, φ2, . . . eine Nummerierung aller einstelligen primitiv-rekursiven Funktionen.Wir definieren durch Diagonalisierung eine Funktion ψ

ψ(n) = φn(n) + 1 (n ∈ N)

Es ist leicht einzusehen, dass ψ zwar (intuitiv) berechenbar, aber nicht primitiv-rekursivist.

Ann.: ψ ∈ Pr Dann müsste ψ zu φn gehören und es existiert ein k ∈ N mit ψ = φk. Diesführt aber zu einem Widerspruch: φk(k) = ψ(k) = φk(k) + 1.

3.3 µ-rekursive Funktionen

Programmiersprachen mit Schleifen:

while Bedingung do Anweisung end

wollen solche Schleifen simulierenDefinition 3.5Es sei g : Nn+1 → N eine Funktion mit n > 0. Die Funktion f : Nn → N entsteht aus gdurch das Schema der µ-Rekursion gdwdef für alle (x1, . . . , xn) ∈ Nn gilt:

f(x1, . . . , xn) =

min{t ∈ N : g(x1, . . . , xn, t) = 0} falls ein solches t existiert und

∀0 ≤ y ≤ t g(x1, . . . , xn, y) de-finiert ist

⊥ sonst

Schreibweise: f = µR(g)

Damit gilt: Wenn g berechenbar ist, dann ist auch f berechenbar.

als Schleife:t := 0while g(x1, . . . , xn, t) 6= 0 do t := t+1 end

Definition 3.61. Eine Klasse P von Funktionen heißt abgeschlossen bzgl. µ-Rekursion gdwdef für

alle g ∈ P ist f = µR(g) ∈ P.

2. Die Klasse P der partiell-rekursiven Funktionen ist die kleinste Klasse, die Prumfasst und abgeschlossen bzgl. µ-Rekursion ist. Anders dargestellt: P = Γ{µR}(Pr)

40

Page 41: 2 Turing-Maschinen

3.3 µ-rekursive Funktionen

Äquivalent hierzu ist die folgende Definition:

Definition 3.7Die Klasse P ist die kleinste Klasse, die G umfasst und die abgeschlossen bzgl. Einsetzung,primitiver-Rekursion und µ-Rekursion ist. Anders dargestellt: P = Γ{SUB,PR,µR}(G)

Bemerkung 3.8Dabei werden das Schema der Einsetzung und das Schema der primitiven Rekurision fürpartiell-definierte Funktionen erweitert.

Beispiel 3.5

d(m,n) ={nm falls Teiler existiert⊥ sonst

Zunächst zeigen wir, dass die Signumfunktion, Potenzfunktion und die Betragsfunktionprimitiv-rekursiv sind.

sgn : N→ N;n 7→{

0 : n = 01 : n > 0

exp : N2 → N; (m,n) 7→ mn; (0, 0) 7→ 1ab : N2 → N; (m,n) 7→ |m− n|

sgn(0) = 0 = C00

sgn(n+ 1) = 1 = h(n, sgn(n)) = C21 (n, sgn(n))

sgn = PR(C00 , C

21 )

Die Darstellung ist jedoch nicht eindeutig und so wäre auch folgende möglich:

sgn(0) = I11 (C0

0 )sgn(n+ 1) = C1

1 (I21 (n, n))

sgn = PR(SUB1(I11 , C

00 ), SUB1(C1

1 , I21 ))

Die Abstandsfunktion lässt sich aus anderen primitiv-rekursive Funktionen zusammen-setzen und ist somit selbst primitiv-rekursiv

ab(x, y) = |x− (y + 1)| = sgn(a− b) · (a− b) + sgn(b− a) · (b− a)

41

Page 42: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

Damit ist f : N3 → N primitiv-rekursiv

f(k,m, n) = |k ·m− n|sgn(m)

setzen f in µR(f) ein:

[µR(f)](m,n) ={µk(|k ·m− n| = 0) : falls ein solches k existiert und m 6= 0⊥ : sonst

={µk(k ·m = n) : falls ein solches k existiert⊥ : sonst

={nm : falls m ein Teiler von n ist, m 6= 0⊥ : sonst

= d(m,n)

Beispiel 3.6Die Funktion wurz : N→ N ist partiell-rekursiv

wurz(n) :={√

n :√n ∈ N

⊥ : sonst

Wir betrachten folgende zweistellige Funktion h

h(m,n) = |m− n2| h ∈ Pr

Wir bestimmen µR(h):

[µR(h)](m) ={µn(|m− n2| = 0) : ∃n⊥ : sonst

={√

m :√m ∈ N

⊥ : sonst= wurz(m)

Also ist wurz = µR(h)

Beispiel 3.7Die Funktion ganzwurz : N→ N ist partiell-rekursiv

ganzwurz(m) = gw(m) = b√mc (m ∈ N)

Es gilt:

gw(m) = n⇔ n ≤√m < n+ 1

⇔ n2 ≤ m < (n+ 1)2

42

Page 43: 2 Turing-Maschinen

3.4 Allgemein-rekursive Funktionen

Also gilt:

gw(m) = µn(m < (n+ 1)2)= µn(|(m+ 1)− (n+ 1)2| = 0)

Weiter gilt: gw(m) = wurz(m) falls wurz(m) definiert ist und gw ist total definiert. Damitist gw eine Fortsetung von wurz und gw ist partiell-rekursiv (sogar primitiv-rekursiv)

Satz 3.2Jede partiell-rekursive Funktion lässt sich darstellen als ein Term, der die Symbole fürdie Grundfunktion, die Schemata SUB,PR, µR, sowie weitere notwendige Hilfssymboleenthält.

Vergleiche das Alphabet Σ für primitiv-rekursive Funktionen in Bemerkung 3.7 und füge„µR“ als neues Symbol hinzu!

Die kanonische (quasilexikographische) Auflistung aller dieser Terme liefert eine effektiveNummerierung aller partiell-rekursiven Funktionen. P ist also aufzählbar und abzählbarunendlich.

3.4 Allgemein-rekursive Funktionen

Die Funktion wurz ∈ P aus Beispiel 3.6 und ist partiell (definiert). Die Funktiongw ∈ P aus Beispiel 3.7, total (definiert). Die Fortsetzung von wurz ist gw: gw

∣∣Dwurz

=wurz

Definition 3.8Eine partiell-rekursive Funktion f ∈ P heißt allgemein-rekursiv gdwdef f total definiertist.

Pa bezeichnet die Klasse aller allgemein-rekursiven Funktionen.

Wenn F die Menge aller Zahlenfunktionen bezeichnet, dann gilt:

∅ ⊆ Pr ⊆ Pa ⊆ P ⊆ F

Satz 3.3Alle Inklusionen sind echt:

∅ ( Pr ( Pa ( P ( F1. 2. 3. 4.

Beweis:1. z. B. ist nachfolger ∈ Pr — Definition 3.1

2. Ackermann-Funktion — Abschnitt 3.2

43

Page 44: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

3. wurz ∈ P \ Pa — Beispiel 3.6

4. Es gibt Funktionen aus F \ P, die nicht berechenbar sind:

Wir wissen aus Satz 3.2, dass P eine effektive Numerierung besitzt, d. h. es gibthöchstens abzählbar unendlich viele partiell-rekursive Funktionen. Aber es gibtüberabzählbar viele Zahlenfunktionen, z. B. ist bereits {0, 1}N überabzählbar. �

Bemerkung 3.9Da nicht jede partiell-rekursive Funktion partiell ist, ist µ-rekursive Funktion eine alter-native Bezeichnund.

Da nicht jede primitiv-rekursive Funktion primitiv ist, ist induktiv-rekursive Funktioneine alternative Bezeichnung.

Dennoch bleibt die Frage offen, ob jede partiell-rekursive Funktion zu einer allgemein-rekursiven Funktion fortgesetzt werden kann.

Dazu betrachten wir die folgende Diagonalisierung der partiell-rekursiven Funktionen:φ0, φ1, φ2, . . . ist eine Nummerierung der partiell-rekursiven Funktionen, die sich auseiner Auflistung aller zugehörigen Terme ergibt. Wir definieren nun die folgende Funkti-on

ψ(n) := φn(n) + 1 ={φn(n) + 1 : falls φn(n) definiert ist⊥ : sonst

ψ ist eine berechenbare Funktion, d. h. ψ kommt in der Liste φn vor. Nehmen wir an ψ hatden Index k, also ψ = φk. Dies führt uns jedoch zu dem Problem:

φk(k) = ψ(k) = φk(k) + 1 ={φk(k) + 1 : falls φk(k) definiert ist⊥ : sonst

als dessen Konsequenz nur gelten kann, dass ψ an der Stelle k nicht definiert sei-en kann. ψ(n) ∈ P ist also an min. einer Stelle k nicht definiert und somit nichtallgemein-rekursiv (/∈ Pa). help: Damit ist doch keine Aussage über die Fortsetzunggemacht

Die Eigenschaft partiell-rekursiv sein zu können, ist unverzichtbar für die Definition von Be-rechenbarkeit. Dies führt zu einer negativen Antwort unserer Frage.

Es sei φl eine Nummer irgendeiner allgemein-rekursiven Funktion. Dann gilt: ψ(l) istdefiniert und hat den Wert ψ(l) = φl(l) + 1 und es gilt ψ(l) 6= φl(l). Also gilt ψ 6= φl undφl ist keine Fortsetzung von ψ.

FaktNicht jede partiell-rekursive Funktion kann zu einer allgemein-rekursiven Funktionfortgesetzt werden!

44

Page 45: 2 Turing-Maschinen

3.4 Allgemein-rekursive Funktionen

Satz 3.4Die Menge Pa der allgemein-rekursiven Funktionen besitzt keine effektive Nummerierung!

Beweis:(durch Diagonalisierung) Annahme: es existiert eine Liste f0, f1, f2, . . . über allgemein-rekursive Funktionen. Dann wäre auch die total berechenbare Funktion g(n) = f(n) + 1in der Liste enthalten und es gäbe einen Index m mit g = fm. Dies führt jedoch zu einemWiderspruch (Gleichung 3.3), als dessen Konsequenz nur gelten kann, dass es eine solcheListe – eine effektive Nummerierung – nicht gibt.

fm(m) = g(m) = fm(m) + 1(3.3) �

Frage: Kann man eine nicht berechenbare Funktion aus F\P angeben?

Erinnern wir uns zurück: Eine Sprache L ⊆ Σ∗ heißt entscheidbar gdw die charakteristi-sche Funktion χL berechenbar ist. (Definition 2.8) Die Menge Pa der allgemein-rekursivenFunktionen ist nicht aufzählbar und damit ist nach Abschnitt 2.4.4 die Menge nichtentscheidbar. Die charakteristisch Funktion der allgemein-rekursiven Funktionen ist alsonicht berechenbar

χPa : N→ N χPa(n) ={

1: die Turing-Maschine TMn aus P ist total (∈ Pa)0: sonst

(3.4)

Gibt es ein anschauliches Beispiel einer partiell-rekursiven (d. h. berechenbaren) Funktion,von der es nicht offensichtlich ist, dass sie selbst oder eine ihrer Fortsetzungen nichtprimitv-rekursiv ist?

Für jede natürliche Zahl n ≥ 1 führt die wiederholte Anwendung folgenderRegel nach endlich vielen Schritten auf die Zahl 1:

n 7→{n2 n ist gerade3n+ 1 n ist ungerade

45

Page 46: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

Ein Beispiel hierzu:

12 7→ 13 7→ 10 7→ 5 7→ 16 7→ 8 7→ 4 7→ 2 7→ 14 7→ 2 7→ 15 7→ 16 7→ 8 7→ 4 7→ 2 7→ 16 7→ 3 7→ . . .

7 7→ 22 7→ 11 7→ 34 7→ 17 7→ 52 7→ 26 7→ 13 7→ 40 7→ 20 7→ 10 7→ 5 7→ . . .

8 7→ 4 7→ . . .

9 7→ 28 7→ 14 7→ 7 7→ . . .

10 7→ 5 7→ . . .

Wir fassen alle Zahlen, für die diese Vermutung zutrifft als MengeB = {n ∈ N+ : Vermutung trifft für n zu}zusammen. Nun ist die Frage: Ist B = N+?

Die einmalige Anwendung der Regel entspricht folgender Funktion

f(n) ={n2 n ist gerade3n+ 1 n ist ungerade

f ist definiert durch primitiv-rekursive Funktionen mittels Fallunterscheidung! Deshalbist auch f primitiv-rekursiv.

Die t-malige Anwendung der Regel wird durch die folgende Funktion beschrieben

g(n, 0) = n I11 (n)

g(n, t+ 1) = f(g(n, t)) = f ′(n, t, g(n, t)) SUB(f ′, I33 )

g ist also eine primitv-rekursive Funktion mit PR(I11 , SUB(f ′, I3

3 )).

Wir definieren nun

h(n) ={µt(g(n, t) = 1) : ein solches t existiert⊥ : sonst

h ist partiell-rekursiv und für den Definitionsbereich gilt: Dn = B. Aber es gibt keineBeschreibung von h (oder einer Fortsetzung) als primitv-rekursive Funktion help: Woransieht man das?

g(n, t) = 1 gdw g(n, t)− 1 = 0

46

Page 47: 2 Turing-Maschinen

3.4 Allgemein-rekursive Funktionen

3.4.1 Eigenschaften primitiv-rekursiver Funktionen

Satz 3.5 (stückweise definierte Funktionen)Es seien folgende Funktionen primitiv-rekursiv

f1, . . . , fk, fk+1 : Nn → Nund g1, . . . , gk : Nn → N

und es sei die folgende Bedingung erfüllt: Es gibt keine Tupel (x1, . . . , xn) ∈ Nn mit derEigenschaft, dass für jedes j 6= i gi(x1, . . . , xn) = 0 und gj(x1, . . . , xn) = 0 (d. h. für jedesTupel ist höchstens eine Funktion gi = 0).

Dann ist die Funktion h : Nn → N mit

h(x1, . . . , xn) =

f1(x1, . . . , xn) : g1(x1, . . . , xn) = 0f2(x1, . . . , xn) : g2(x1, . . . , xn) = 0...fk(x1, . . . , xn) : gk(x1, . . . , xn) = 0fk+1(x1, . . . , xn) : sonst

primitiv-rekursiv.

Satz 3.6 (obere Schranken)Es seien g : Nn+1 →t N und h : Nn → N primitiv-rekursiv. Ferner sei f = µR(g) die durchµ-Rekursion aus g entstehende Funktion mit der Eigenschaft, dass für alle (x1, . . . , xn) ∈Nn gilt:

f(x1, . . . , xn) ≤ h(x1, . . . , xn)

(d. h. f ist für alle Tupel (x1, . . . , xn) definiert und es gilt die Ungleichung).

Dann ist f primitiv-rekursiv!

Satz 3.7 (Simultane Rekursion)Es seien g1, g2 : Nn−1 →t N und h1, h2 : Nn+2 →t N primitiv-rekursiv.

Dann sind auch die Funktionen f1, f2 : Nn → N mit

f1(x1, . . . , xn−1, 0) = g1(x1, . . . , xn)f2(x1, . . . , xn−1, 0) = g2(x1, . . . , xn)

und f1(x1, . . . , xn−1, y + 1) = h1(x1, . . . , xn−1, f1(x1, . . . , xn−1, y), f2(x1, . . . , xn−1, y))f2(x1, . . . , xn−1, y + 1) = h2(x1, . . . , xn−1, f1(x1, . . . , xn−1, y), f2(x1, . . . , xn−1, y))

primitv-rekursiv.

47

Page 48: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

Satz 3.8 (Wertverlaufsfunktionen)Es sei A = {0, 1, . . . , l} und ferner sei Bn ⊆ {0, . . . , n− 1} mit der Eigenschaft |Bn| = k.Ferner sei g0, . . . , gl : Nn−1 →t N und h : Nn+k →t N primitv-rekursiv.

Dann ist auch die Funktion f : Nn →t N mit

f(x1, . . . , xn−1, 0) = g0(x1, . . . , xn−1)...

f(x1, . . . , xn−1, l) = gl(x1, . . . , xn−1)f(x1, . . . , xn−1, y + 1) = h(x1, . . . , xn−1, y, z1, . . . , zk)

z1 = f(x1, . . . , xn−1, y1)...

zk = f(x1, . . . , xn−1, yk)By+1 = {y1, . . . , yk}

primitiv-rekursiv.

Beispiel 3.8 (Fibonacci-Zahlen)

F (0) = F (1) = 1F (n+ 1) = F (n) + F (n− 1) n ≥ 2

A = {0, 1}, Bn = {n− 2, n− 1: n ≥ 2}F (0) = F (1) = C0

1

F (n+ 1) = h(n, F (n), F (n− 1))

Für h ist noch zu zeigen, dass h primitiv-rekursiv ist. Der Beweis ist analog dem für plusin Beispiel 3.2:

h(a, b, c) = b+ c

h(a, b, 0) = b

h(a, b, c+ 1) = N(I4

4 (a, b, c, h(a, b, c)))

F ist primitiv-rekursiv!

3.5 Partiell-rekursive und Turing-berechenbareFunktionen

Satz 3.9Jede partiell-rekursive Funktion ist Turing-berechenbar, d. h. P ⊆ TM.

48

Page 49: 2 Turing-Maschinen

3.5 Partiell-rekursive und Turing-berechenbare Funktionen

Beweis:P ist laut Definition 3.6 die kleinste Klasse, die die Grundfunktionen umfasst undabgeschlossen bzgl. SUB,PR und µR ist. Zeigen wir also, dass diese auch Turing-berechenbar sind:

1. Nach Bemerkung 3.2 ist jede Grundfunktion Turing-berechenbar: G ⊆ TM.

2. Nach Bemerkung 3.3 ist TM abgeschlossen bzgl. der Einsetzung: falls g1, . . . , gm : Nn →t

N und h : Nm →t N Turing-berechenbar sind, dann ist auch f : Nn →t N mitf(x1, . . . , xn) = h

(g1(x1, . . . , xn), . . . , gm(x1, . . . , xn)

)Turing-berechenbar!

3. Nach Bemerkung 3.4 ist TM abgeschlossen bzgl. Primitiver-Rekursion, d. h. fallsg : Nn−1 →t N und h : Nn+1 →t N Turing-berechenbar sind, dann ist auch f : Nn →N mit

f(x1, . . . , xn−1, 0) = g(x1, . . . , xn−1)f(x1, . . . , xn−1, y + 1) = h

(x1, . . . , xn−1, y, f(x1, . . . , xn−1, y)

)Turing-berechenbar.

Es sei Mg (bzw. Mh) eine Turing-Maschine, die die Funktion g (bzw. h) berechnet.Mg(x1, . . . , xn−1) bezeichnet im Folgenden das Resultat der Berechnung von Mg

bei Eingabe (x1, . . . , xn−1).

Wir beschreiben folgende Turing-Maschine für die Eingabe (x1, . . . , xn−1, y):begin (Eingabe: x1, . . . , xn−1, y)

a) t := 0

b) z := Mg(x1, . . . , xn−1)

c) while t 6= y do

d) z := Mh(x1, . . . , xn−1, t, z)

e) t := t+ 1

f) end

g) return z

end

Die so beschriebene Turing-Maschine berechnet f !

4. TMist abgeschlossen bzgl. µ-Rekursion, d. h. falls g : Nn+1 → N Turing-berechenbarist, dann ist auch f : Nn → N Turing-berechenbar, wobei

f(x1, . . . , xn) = µt(g(x1, . . . , xn) = 0

)begin (Eingabe: x1, . . . , xn)

49

Page 50: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

a) t := 0

b) z := Mg(x1, . . . , xn, t)

c) while z 6= 0 do

d) t := t+ 1

e) z := Mg(x1, . . . , xn, t)

f) end

g) return t

end �

Satz 3.10Jede Turing-berechenbare Funktion ist partiell-rekursiv. TM ⊆ P

Beweis:Die Idee dabei ist, die Arbeitsweise von Turing-Maschinen durch primitiv- bzw. partiell-rekursive Funktionen „zu beschreiben“.

Es sei M = (Q,Σ, Γ, δ, q0, F ) eine Turing-Maschine.

Das Arbeitsalphabet Γ = {�, a1, a2, . . . , am−1} wird interpretiert (indetifiziert) mit derZahlenmenge {0, 1, 2, . . . ,m− 1} des m-nären Systems.

Schreibweise: KonfM (w, t) bezeichnet die Konfiguration (Bandinschrift, Kopfposition,Zustand) von M bei Eingabe w nach dem Takt t und wird beschrieben durch

yl . . . y2y1︸ ︷︷ ︸linker Teil

x0q︸︷︷︸Zustand

x0x1 . . . xk︸ ︷︷ ︸rechter Teil

Die Berechnung von M bei Eingabe w wird vollständig durch die Folge von Konfiguratio-nen beschrieben.

KonfM (w, 0) |−− KonfM (w, 1) |−− KonfM (w, 2) |−− . . . |−− KonfM (w, t)

Dabei ist K0 = StartM (w) die Startkonfiguration, Kt eine Finalkonfiguration undKi |−− Ki+1 gemäß δ.

Wir definieren:

Z(w, t) = q

R(w, t) =k∑0xim

i

L(w, t) =l∑0yim

i

50

Page 51: 2 Turing-Maschinen

3.5 Partiell-rekursive und Turing-berechenbare Funktionen

Damit ist die Konfiguration KonfM (w, t) mit Hilfe der drei Funktionen Z,R und Lvollständig beschrieben. Die Beschreibung der Bandinschrift ist auf diese Weise eindeutig!

Mithilfe von simultaner Rekursion zeigen wir jetzt noch, dass die definierten Funktionen(sogar) primitiv-rekursiv sind.

Anfang:

Z(w, 0) = q0

R(w, 0) =n∑0wim

i w = w1w2 . . . wn

L(w, 0) = 0

Schritt an der Stelle t→ t+ 1:es sei Z(w, t) = q der aktuelle Zustand und das aktuelle Symbol x = R(w, t) mod m.Ferner sei

δ(q, x) = q′x′

nach rechtsstehen bleibennach links

Damit lässt sich ein Schritt der Überführungsfunktion auf die folgende Weise nachbilden:

Z(w, t+ 1) = q′

R(w, t+ 1) =

R(w, t)÷m : nach rechtsR(w, t)− x+ x′ : stehenbleiben(R(w, t)− x+ x′

)m+ y0 : nach links

L(w, t+ 1) =

L(w, t)m+ x′ : nach rechtsL(w, t) : stehenbleibenL(w, t)÷m : nach links

Wir definieren:

stoppM (w) := µt(Z(w, t) ∈ F

)1. Fall Ein solches t existiert nicht, d. h. M stoppt bei Eingabe w nicht.

Dann ist stoppM (w) =⊥.

2. Fall Ein t existiert, d. h. M stoppt und stoppM (w) ist definiert.

51

Page 52: 2 Turing-Maschinen

3 Partiell-rekursive Funktionen

Die Funktion stoppM ist partiell-rekursiv.

Wir definieren weiterhin:

ResM (w) = R(w, stopp(w))

Damit gilt: Das Ergebnis der Berechnung von M bei Eingabe w ist ResM (w) gdw einErgebnis existiert.

Damit haben wir gezeigt, dass jede Turing-berechenbare Funktion f eine Darstellung derfolgenden Form mit den primitiv-rekursiven Funktionen Z,L und R und einer µ-Rekursionbesitzt:

f(w) = ResM (w) = R(w, µt(Z(w, t) ∈ F

)) �

Bemerkung 3.10Der Beweis hängt wesentlich davon ab, dass ÷ und mod primitiv-rekursiv sind.

Dazu die nun folgende Herleitung.

Es seien f : Nn+1 →t N und g : Nn →t N primitiv-rekusiv. Ferner gelte

∀(x1, . . . , xn) ∈ Nn∃y ≤ q(x1, . . . , xn) (f(x1, . . . , xn) = 0)

Dann ist eine Funktion h : Nn → N primitiv-rekursiv, wobei

h(x1, . . . , xn) = µy(f(x1, . . . , xn, y) = 0

)Beweis:Hilfsfunktion h′ : Nn+1 → N

h′(x1, . . . , xn, z) = µy(y ≤ z ∧ f(x0, . . . , xn, y) = 0)

:=z∑i=0

sgn( i∏j=0

f(x1, . . . , xn, j))

h′ ist primitiv-rekursiv und es gilt:

h(x1, . . . , xn) = h′(x1, . . . , xn, g(x1, . . . , xn)

)Also ist auch h primitiv-rekursiv! �

Anwendung:

x÷ y = µz((x+ 1)− (z + 1)y = 0

)

Ausnahme: x÷ 0 := 0

52

Page 53: 2 Turing-Maschinen

3.5 Partiell-rekursive und Turing-berechenbare Funktionen

x y z11 4 212 4 313 4 3

und damit

x mod y = x− y(x÷ y)

3.5.1 Eigenschaften partiell-rekursiver Funktionen

Satz 3.11 (Kleene’scher Normalformsatz)Jede (n-stellige) partiell-rekursive Funktion f besitzt die Darstellung der Form

f(x1, . . . , xn) = g(µy(h(x1, . . . , xn, y) = 0)

)mit primitiv-rekursiven Funktionen g : N→t N und h : Nn+1 →t N

Satz 3.12 (Parametrisierungssatz)Jede (n-stellige) partiell-rekursive Funktion f besitzt eine Darstellung der Form

f ={(g1(t), g2(t), . . . , gn(t), gn+1(t)

): t ∈ N

}mit (einstelligen) primitiv-rekursiven Funktionen g1, . . . , gn+1 : N→t N oder f ist nirgendsdefinitert.

53

Page 54: 2 Turing-Maschinen

4 Formale Sprachen und formaleGrammatiken

Unverzichtbare Bestandteile höherer Programmiersprachen sind:

• Wertzuweisung

• Bedingungen testen

• Fallunterscheidung

• Schleifen

Rein von der Intuition her, können all diese Bestandteile (von Programmen) durchspezielle Turing-Maschinen realisiert werden. Das bedeutet: alles was sich mit solchenProgrammiersprachen berechnen lässt, kann auch von Turing-Maschinen berechnetwerden und ist damit auch partiell-rekursiv.

Programmiersprachen sind „künstliche“ Sprachen (formale Sprachen) mit der gemein-samen Eigenschaft, dass ihre Syntax durch exakte Regeln definiert ist. Das heißt für jedeZeichenkette ist es wohl definiert, ob sie ein Wort (Programm) in der gegebenen formalenSprache darstellt oder nicht.

Solche formalen Sprachen werden durch formale Grammatiken definiert. Damit wird derBegriff der formalen Grammatik zu einer weiteren mathematischen Präzesierung desBegriffs Algorithmus.

Grammatiken erzeugen Wörter. Wir wollen aber Funktionen berechnen! Eine Grammatikberechnet eine Funktion, indem sie ihren Graphen erzeugt.

Es sei f : Σ∗ → ∆∗ eine Funktion (die durch eine Turing-Maschine berechnet wird). Dannlässt sich eine Grammatik konstruieren, die die folgende Sprache erzeugt:

{(u, v) : u ∈ Σ∗, v ∈ ∆∗ ∧ f(u) = v}

Dies ist gerade der Graph von f .

54

Page 55: 2 Turing-Maschinen

4.1 Grammatiken und Sprachen vom Typ-0

4.1 Grammatiken und Sprachen vom Typ-0

Definition 4.1Eine „Typ-0-Grammatik“ oder einfach nur Grammatik genannt ist ein ViertupelG = (N,T, S, P ) mitN . . . ist ein endliches (nichtleeres) Alphabet – Menge der Nichtterminale oder

VariablenT . . . ist ein endliches (nichtleeres) Alphabet mit N ∩ T = ∅ – Menge der TerminaleS . . . S ∈ N ist das StartsymbolP . . . P ⊆ (N ∪ T )∗ × (N ∪ T )∗ ist eine endliche Menge von Paaren der Form (p, q),

wobei p /∈ T ∗ (d. h. p enthält mindestens ein Nichterminal).P ist die Menge der Produktionen oder Regeln von G.

Schreibweise: p→ q

Nun stellt sich die Frage, wie mit Hilfe dieser Regeln Wörter erzeugt werden können. EinAnsatz ist die folgende Idee: Falls ein Wort w = wlpwr bereits (irgendwie) erzeugt istund es eine Regel p→ q gibt, dann wird w′ = wlqwr erzeugt. Beginnen werden wir mitdem Startsymbol S.

Definition 4.2Es sei G = (N,T, S, P ) eine Grammatik.

1. Ein Wort w′ heißt in einem Schritt aus einem Wort w ableitbar gdwdef es zweiWörter wl und wr gibt, die das Wort w bilden als w = wlpwr, eine Produktionp→ q exsistiert und es gilt w′ = wlqwr

Schreibweise: w → w′

2. Ein Wort v heißt ableitbar aus einem Wort u gdwdef es eine Folge von Wörternw0, w1, . . . , wn mit w0 = u,wn = v und entsprechende Produktionen wi → wi+1 füri = 0, . . . , n− 1 gibt.

Eine solche Folge heißt Ableitung der Länge n

Schreibweise: u→∗ v

3. Die von dieser Typ-0-Grammatik G erzeugte Typ-0-Sprache ist gegeben durch

L(G) := {w ∈ T ∗ : S →∗ w}

Eine Sprache L heißt Typ-0-Sprache gdwdef eine Grammatik G mit L(G) = Lexsistiert.

4. CH(0) = {L : L ist Typ-0-Sprache} ist die Klasse der Typ-0-Sprachen.

55

Page 56: 2 Turing-Maschinen

4 Formale Sprachen und formale Grammatiken

Beispiel 4.1

G = (N,T, S, P )N = {S,R,L}T = {a,#}P = {S → #aL#, Regel 1

= aL→ Laa, Regel 2= #L→ #R, Regel 3= #L→ #, Regel 4= Ra→ aaR, Regel 5= R#→ L#, Regel 6= R#→ #} Regel 7

Konkrete Beispiele für Ableitungen:

S → #aL# Regel 1#aL#→ #Laa# Regel 2

#Laa#→ #aa# Regel 4

⇒ #aa# ∈ L(G)

#Laa#→ #Raa# Regel 3#Raa#→ #aaRa# Regel 5

#aaRa#→ #aaaaR# Regel 5#aaaaR#→ #aaaa# Regel 7

⇒ #aaaa# ∈ L(G)

#aaaaR#→ #aaaaL# Regel 6#aaaaL#→ #aaaLaa# Regel 2

. . .

L(G) = {# a . . . a︸ ︷︷ ︸2i

#: i ∈ N, i ≥ 1}

Grammatiken erzeugen Sprachen, häufig werden die Eigenschaften von Sprachen als Ei-genschaften von Grammatiken nachgewiesen! Diese Nachweise werden vereinfacht, falls esgelingt die Produktionen zu vereinfachen: durch Normalformen.

56

Page 57: 2 Turing-Maschinen

4.1 Grammatiken und Sprachen vom Typ-0

Definition 4.3Eine Grammatik G = (N,T, S, P ) ist in Chomski-Normalform vom Typ-0 gdwdef

1. P enthält höchstens eine Regel der Form p→ λ (λ: leeres Wort)

2. alle Produktionen haben eine der folgenden Formen

a) X → Y Z

b) XY → Z

c) X → a

wobei X,Y, Z ∈ N, a ∈ T ∪ {λ}.

Bemerkung 4.1Diese Einschränkung ist drastisch! Auch unsere Beispielgrammatik aus Beispiel 4.1 erfülltdiese Einschränkung nicht.

Definition 4.4Zwei Grammatiken G1 und G2 sind äquivalent gdwdef L(G1) = L(G2)

Satz 4.1Zu jeder Grammatik G vom Typ-0 gibt es eine äquivalente Normalformgrammatik vomTyp-0.

Beweis:Der Beweis ist konstruktiv und beschreibt einen Algorithmus, wie man aus einer gegebenenGrammatik G eine äquivalente Normalformgrammatik G′ erzeugt. Der Algorithmusvollzieht sich in folgenden Globalschritten und wird in Beispiel 4.2 an der Grammatikaus Beispiel 4.1 illustriert.

1. Schritt: Alle Terminalsymbole sollen nur noch in Regeln der Form 2c auftreten.Dazu wird:

• für jedes Terminalsymbol t ∈ T ein Nichtterminalsymbol t′ ∈ N1 definiert,

• jede Regel (p → q) ∈ P wird durch (p′ → q′) ∈ P1 ersetzt, indem alleTerminale t in p und q durch t′ ersetzt werden und so die neuen p′ und q′

entstehen und

• eine neue Regel t′ → t (∀t ∈ T ) neu aufgenommen werden.

Die so beschriebene Grammatik bezeichnen wir mit G1 = (N1, T, S, P1)

2. Schritt: Wenn es mehrere Regeln der Form p→ λ gibt, wird ein neues Nichttermi-nal L eingeführt, alle diese Regeln durch p→ L ersetzt und eine neue Regel L→ λhinzugefügt.

57

Page 58: 2 Turing-Maschinen

4 Formale Sprachen und formale Grammatiken

3. Schritt: Nun sollen alle Regeln p→ q, die aus mehr als einem Symbol bestehen, soumgewandelt werden, dass sie entweder von Form 2a oder Punkt 2b sind.

Dazu wird für jede Regel (die nicht schon von der Form 2a oder 2b ist) ein neuesNichtterminal B ∈ N2 definiert und die alte Regel p→ q durch zwei neue Regelnersetzt: p→ B,B → q.

Das Ergebnis ist die Grammatik G2 = (N2, T, S, P2).

4. Schritt: Als nächster Schritt soll die Längenbeschränkung realisiert werden. Dabeibetrachten wir Regel p→ q ∈ P2, für die (|p| > 2 und |q| = 1) oder (|p| = 1 und|q| > 2) ist. Es sei X → Y1Y2 . . . Yn und n > 2 die Form von p→ q.

Wir definieren neue Nichtterminale D1, D2, . . . , Dn−2 und ersetzen p → q durchdie Regeln

X → Y1D1, D1 → Y2D2, D2 → Y3D3, . . . , Dn−3 → Yn−2Dn−2, Dn−2 → Yn−1Yn

Falls X1X2 . . . Xn → Y die Form von p→ q ist, dann definieren wir neue Nichtter-minale E1, E2, . . . , En−2 und ersetzten p→ q durch

X1X2 → E1, E1X3 → E2, E2X4 → E3, . . . , En−3Xn−1 → En−2, En−2Xn → Y

5. Schritt: Alle Regeln der Form X → Y , die also auf beiden Seiten nur ein Terminaloder Nichtterminal stehen haben, werden nun noch durch je zwei neue RegelnX → VW und VW → Y ersetzt, wobei X,Y ∈ N4. �

Beispiel 4.2An einem Beispiel wollen wir nun den Algorithmus aus Satz 4.1 an der Grammatik ausBeispiel 4.1 nachvollziehen.

1. Schritt:

G1 = (N1, T, S, P1)N1 = N ∪ {A,Z} = {S,R,L,A,Z}P1 = {S → ZALZ, Regel 1

= AL→ LAA, Regel 2= ZL→ ZR, Regel 3= ZL→ Z, Regel 4= RA→ AAR, Regel 5= RZ → LZ, Regel 6= RZ → Z, Regel 7= Z → #,= A→ a}

L(G1) = {#am#: m = 2n, n ≥ 1} = L(G)

58

Page 59: 2 Turing-Maschinen

4.1 Grammatiken und Sprachen vom Typ-0

2. Schritt: Dieser Fall tritt bei unserer Beispielgrammatik nicht auf.

3. Schritt:

G2 = (N2, T, S, P2)N2 = N1 ∪ {B1, B2, B3, B4}P2 = {S → ZALZ, Regel 1

= AL→ B1, B1 → LAA, Regel 2= ZL→ B2, B2 → ZR, Regel 3= ZL→ Z, Regel 4= RA→ B3, B3 → AAR, Regel 5= RZ → B4, B4 → LZ, Regel 6= RZ → Z, Regel 7= Z → #,= A→ a}

4. Schritt:

G3 = (N3, T, S, P3)N3 = N2 ∪ {D1, B2, E1, E2}P3 = {S → ZD1, D1 → AD2, D2 → LZ, Regel 1

= AL→ B1, B1 → LE1, E1 → AA, Regel 2= ZL→ B2, B2 → ZR, Regel 3= ZL→ Z, Regel 4= RA→ B3, B3 → AE2, E2 → AR, Regel 5= RZ → B4, B4 → LZ, Regel 6= RZ → Z, Regel 7= Z → #,= A→ a}

5. Schritt: Dieser Fall tritt bei unserer Beispielgrammatik nicht auf.

Wir haben jetzt zu der Grammatik G eine äquivalente Grammatik G3 in Chomski-Normalform vom Typ-0 konstruiert.

Wie bereits erwähnt werden Grammatiken für höhere Programmiersprachen eingesetzt.Sie dienen der Definition der Syntax der Sprache. Zur Prüfung der syntaktischenKorrektheit eines Programms stellt sich die Frage, ob das gegebene Programm tatsächlichden Regeln der Grammatik entspricht. Gilt also:

P ∈ L(G)

59

Page 60: 2 Turing-Maschinen

4 Formale Sprachen und formale Grammatiken

Diese Frage bezeichnet man als das Wortproblem. Sie ist gleichwertig zu der Fragenach einem Parser 1 für die Grammatik G.

Für Grammatiken vom Typ-0 gibt es trotz der Einschränkungen keinen Parser, d. h. esgibt Grammatiken vom Typ-0, für die kein Algorithmus existiert, der entscheidet, obfür eine Eingabe w gilt: w ∈ L(G) oder w /∈ L(G). Typ-0-Grammatiken sind sowohl austheoretischer wie aus praktischer Sicht zu allgemein.

4.1.1 Beziehungen zwischen dem Leistungsvermögen vonTyp-0-Grammatiken und Turing-Maschinen

Satz 4.2Falls L ⊆ Σ∗ Turing-aufzählbar ist, dann existiert eine Typ-0-Grammatik G mit L(G) =L.Beweis:Wenn L Turing-aufzählbar ist, dann existiert (nach Definition 2.10) eine Turing-MaschineM mit M(Σ∗) = L. Dazu können wir eine Turing-Maschine M ′ konstruieren: Acc(M ′) =L. Ausgehend von M ′ konstruieren wir eine Grammatik G, die alle Wörtet erzeugt, dievon M ′ akzeptiert werden.

Es sei Σ∗ = {λ = w0, w1, . . .} die kanonische (quasilexikographische) Auflistung vonΣ∗. Für eine Eingabe u simuliert die neue Turing-Maschine M ′ die Maschine M auf diefolgende Weise:

M ′ vollzieht die Berechnungen von M für die Eingabe w0, w1, w2, . . . nach und vergleichtjedes (Zwischen-)Ergebnis M(w0),M(w1),M(w2), . . . mit der Eingabe u. Falls für ein igilt: M(wi) = u, dann löscht M ′ den gesamten Bandinhalt und geht in den einzigstenakzeptierenden Finalzustand q+.

Dann gilt:

u ∈ L gdw ∃i : M(wi) = u

gdw M ′ stoppt bei Eingabe ugdw M ′ akzeptiert die Eingabe u (mit leerem Band und Finalzustand q+)gdw u ∈ Acc(M ′)

o. B. d.A. fordern wir:

• der Startzustand q0 kommt nur in der Anfangskonfiguration vor,

• eine neues Symbol # wird an das rechte Ende der Eingabe gesschrieben und

• das Turingband rechts von # wird nicht benutzt.1Parser: effizienter Algorithmus, der nachweist, ob P Programm ist (∈ L(G)) oder nicht (/∈ L(G))

60

Page 61: 2 Turing-Maschinen

4.1 Grammatiken und Sprachen vom Typ-0

M ′′ sei eine so modifizierte Turing-Maschine.

Start−M ′′(u) = q0u1u2 . . . uk# u = u1 . . . uk

AccM ′′(u) ={q+ : u ∈ L⊥ : sonst

Ziel ist es nun eine Typ-0-Grammatik G zu konstruieren, die ausgehend von der akzep-tierenden Konfiguration q+ von M ′′ jede mögliche Startkonfiguration q0u1 . . . uk# unddamit L durch „Rückwärtsrechnung“ erzeugt.

Wir beschreiben eine solche Grammatik in drei Schritten:

1. Schritt: Erzeugung der akzeptierenden Konfiguration mit ausreichend vielen Blank-symbolen �:

S → q+, q+ → q+�, q+ → �q+

(erzeugen damit �iq+�j , i, j ∈ N)

2. Schritt: „Rückwärtsrechnung“

1. falls δ(q, a) = (q′, a′, R), dann erstelle die Regel a′q′ → qa

2. falls δ(q, a) = (q′, a′, L), dann erstelle die Regel q′ba′ → baq (∀b ∈ Γ )

3. falls δ(q, a) = (q′, a′, 0), dann erstelle die Regel q′a′ → qa

Mithilfe dieser Regeln lässt sich für jede Konfiguration k von M ′′ eine Vorgän-gerkonfiguration k− mit k− |−−M ′′ k erzeugen. Als Zwischenergebnis erhalten wirKonfigurationen der Form �� . . .�q0u1 . . . uk#, wobei u1 . . . uk ∈ L

3. Schritt: Die Schlussregel soll noch die �, q0 und # löschen:

�q0 → q0, q0a→ aq0(∀a ∈ Σ), q0#→ λ

Als Endergebnis erhalten wir: u1 . . . un ∈ L, also L(G) = L. �

Das Pendant zum vorherigen Satz liefert der nächste:Satz 4.3Jede Sprache L ⊆ Σ∗, die durch eine Typ-0-Grammatik erzeugt werden kann, ist auchTuring-aufzählbar.Beweis:Es sei G = (N,T, S, P ) die Grammatik vom Typ-0 (in Normalform) mit L(G) = L. Jedesolche Grammatik erzeugt einen markieren Arbeitsbaum für L(G). Es sei S →∗ u.Die direkten Nachfolgeableitungen Succ für ein u (S →∗ u) sind

Succ(u) = {v : u→ v}

Gründe für v ∈ Succ(u):

61

Page 62: 2 Turing-Maschinen

4 Formale Sprachen und formale Grammatiken

• an mehreren Stellen in u ist eine Regel aus P anwendbar (z. B. Regel a → b beiaca kann zu bca oder acb führen) oder

• an ein und derselben Stelle sind verschiedene Regeln anwendbar (z. B. Regeln a→ bund a→ c bei da können zu db oder dc führen)

Deshalb:

• nummerieren wir die Regeln aus P – fixiert

• nummerieren wir von links nach rechts alle Stellen in u, an denen eine Regelanwendbar ist

Damit ergeben sich Paare (r, s) für einen Schritt u→ v, die besagen: v ergibt sich ausu (in einem Schritt), indem an der Stelle s die Regel r angewendet wird. Schreibweise:u

(r,s)−−→ v.

Definieren induktiv:

Succ0({S}) = {S}Succk+1({S}) = Succ

(Succk({S})

)Damit gilt: u ∈ Succk({S}) gdw u ist in k Schritten aus S ableitbar (S →k u).

Und weiterhin gilt:

L =( ∞⋃k=0

Succk({S}))∩ T ∗

Das heißt w ∈ L gdw w ∈ T ∗ ∧ ∃k : w ∈ Succk({S})

markierter Ableitungsbaum von G:

Knotenmenge V :

V =∞⋃k=0

Succk({S})

Kantenmenge E: für jedes u ∈ V und alle v ∈ Succ({u}) ziehen wir eine Kante u→ v

mit der Marke (r, s), falls u (r,s)−−→ v.

Dieser Baum ist abzählbar und eingeteilt in Schichten Succ0({S}), Succ1({S}), . . . todo:Skizze einfügen

Es sei w ∈ L(G) (vergleiche Skizze). Wir konstruieren eine Turing-Maschine, die eineEingabe w genau dann akzeptiert, wenn w ∈ L(G), und anderenfalls nicht stoppt.

Die Turing-Maschine M arbeitet bei Eingabe w prinzipell so: M durchmustert denAbleitungsbaum Schicht für Schicht (Breitensuche) solange, bis sie die Eingabe findet.

62

Page 63: 2 Turing-Maschinen

4.2 Grammatiken und Sprachen vom Typ-1

Die Markierung der Kanten im Baum ermöglicht die Orientierung der Maschine. EineEingabe wird genau dann gefunden, wenn w ∈ L(G). In diesem Fall akzeptiert M dieEingabe.

w ∈ Acc(M) �

Definition 4.5Da Typ-0-Sprachen von Turing-Maschinen aufgezählt werden können, bezeichnet mandie Klasse der Typ-0-Sprachen auch mit RE (recursive enumerable). RE = CH(0)(vgl. Definition 4.2)

4.2 Grammatiken und Sprachen vom Typ-1

Ausgangspunkt für unsere kommenden Überlegungen ist, dass das Wortproblem fürSprachen vom Typ-0 unlösbar ist.

Definition 4.6 (Typ-1-Grammatik)Eine Grammatik G = (N,T, S, P ) heißt Typ-1-Grammatik oder vom Erweiterungs-typ oder nicht verkürzend gdwdef

• für alle Regeln (p→ q) ∈ P gilt:

|p| ≤ |q| oder p→ q ist S → λ

• Falls S → λ ∈ P , dann kommt S auf keiner rechten Seite einer Regel vor.

Eine Sprache L ⊆ Σ∗ ist vom Typ-1 gdwdef es eine Typ-1-Grammatik G mit L(G) = Lgibt.

CH(1) bezeichnet die Klasse aller Typ-1-Sprachen.

Definition 4.7 (Typ-1-Normalform-Grammatik)Eine Typ-1-Grammatik G = (N,T, S, P ) ist Typ-1-Normalform gdwdef in P kommennur Regeln der folgenden Form vor (außer S → λ, falls λ ∈ L(G)):

1. X → Y Z,

2. XY → UV oder

3. X → a

für U, V,X, Y, Z ∈ N und a ∈ T

Satz 4.4Zu jeder Typ-1-Grammatik G gibt es eine äquivalente Typ-1-Normalform-Grammatik G′mit L(G) = L(G′).

63

Page 64: 2 Turing-Maschinen

4 Formale Sprachen und formale Grammatiken

Beweis:(Beweis ist konstruktiv) todo: aus Übung ergänzen �

Eine weitere wichtige Grammatikklasse ist die folgende

Definition 4.8 (kontextsensitive Grammatik)Eine Grammatik G = (N,T, S, P ) heißt kontextsensitiv gdwdef alle Regeln haben dieForm:

• uAv → uwv oder

• S → λ

wobei A ∈ N und w ∈ (N ∪ T )+ und u, v ∈ (N ∪ T )∗.

Falls S → λ eine Regel ist, dann kommt S auf keiner rechten Seite einer Regel vor.

Beispiel 4.3 (für eine kontextsensitive Grammatik)

G = (N,T, S, P )N = {S, S′, A,A′, B,B′}T = {a, b}P = {S → λ, S → S′, S′ → ABS′, AB → A′B,

A′B → A′A,A′A→ BA,BA→ B′A,

B′A→ B′B,B′B → AB,A→ a,B → b}

Einerseite ist G kontextsensitiv, andererseits ist G beinahe Typ-1-Normalform (eineAusnahme).

Frage: Welche Sprache wird von dieser Grammatik überhaupt erzeugt? Ansatz: S′ →ABS′ ersetzen durch S′ → AC und C → BS′.

Satz 4.5Zu jeder kontextsensitiven Grammatik G gibt es eine äquivalente Typ-1-Grammatik G′mit L(G) = L(G′) und umgekehrt

Definition 4.9Man bezeichnet die Klasse der Typ-1-Sprachen auch mit CS = CH(1).

Satz 4.6Für Sprachen vom Typ-1 ist das Wortproblem lösbar! Das heißt, zu jeder GrammatikG (vom Typ-1 oder kontextsensitiv) gibt es einen Algorithmus, der entscheidet, ob füreine Eingaben w gilt:

w ∈ L(G) oder w /∈ L(G)

64

Page 65: 2 Turing-Maschinen

4.3 Grammatiken und Sprachen vom Typ-2

Die kontextsensitiven Sprachen sind für die Praxis die bedeutendste Sprachklasse!Alle Programmiersprachen sind kontextsensitiv!

Aber: Das Wortproblem ist für kontextsensitive Sprachen zwar lösbar, jedoch i. a. nichteffizient!

Deshalb werden Programmiersprachen i. a. nicht durch rein-kontextsensitive Gramma-tiken beschrieben, sondern durch weiter vereinfachte Grammatiken bis auf „Ausnah-men“: z. B. im „linken Kontext“ muss für jeden Bezeichner zuvor der Typ deklariertsein.

4.3 Grammatiken und Sprachen vom Typ-2

Da wir mit Typ-1-Grammatik das Wortproblem lösen können, steht nun die Frage nacheinem effizienten Parser.Definition 4.10Eine Grammatik G = (N,T, S, P ) ist vom Typ-2 oder kontextfrei gdwdef alle Regelnsind von der Form A→ w wobei A ∈ N und w ∈ (T ∪N)∗ – auf der linken Seite stehtgenau ein Nichtterminal.

Eine Sprache L ⊆ Σ∗ heißt kontextfrei oder vom Typ-2, falls eine kontextfreie Gram-matik G mit L(G) = L existiert.

CH(2) = CF bezeichnet die Klasse der kontextfreien Sprachen.

Klar ist: CH(2) ⊆ CH(0) und CH(1) ⊆ CH(0), aber gilt auch CH(2) ⊆ CH(1)?

An zwei Beispielen zeigen wir, dass nicht jede kontextfreie Grammatik kontextsensitivist.Beispiel 4.4Eine kontextfreie Sprache ist die Menge alle korrekten Klammerausdrücke, die sogenannteDyck-Sprache D2.

(()()) ∈ D2, ((())) ∈ D2, ())() /∈ D2

T = {(, )}N = {S}P = {S → (S), S → SS, S → λ}

Diese Grammatik ist nicht vom Typ-1, weil S auf einer rechten Seite auftaucht, obwohles die Regel S → λ gibt!

65

Page 66: 2 Turing-Maschinen

4 Formale Sprachen und formale Grammatiken

Beispiel 4.5Die Menge aller Palindrome PAL = {w ∈ Σ∗ : w = wR}.

T = {a, b}N = {S}P = {S → aSa, S → bSb, S → λ, S → a, S → b}

Auch diese Grammatik ist nicht kontextsensitiv.

Satz 4.7Zu jeder kontextfreien Grammatik gibt es eine λ-freie Grammatik 2 G′, die kontextfreiist und für die gilt: L(G′) = L(G) \ {λ}.

Beweis:Wir nehmen an, die Grammatik hat die Regeln

A→ λ

C → A1AA2

C → A1A2

Wir definieren Mi induktiv als die Menge der Nichtterminale, die nach i Ableitungsschrit-ten in das leere Wort überführt werden. A ∈Mi gdw A→i λ

M1 = {A ∈ N : (A→ λ) ∈ P}Mi+1 = Mi ∪ {B ∈ N : (B → u) ∈ P mit u ∈Mi}

Damit gilt: Für alle i = 1, 2, . . . ist stets Mi ⊆ N . Also existiert ein Grenzwert k mitMk = Mk+1 = Mk+2 = . . . Es gilt dann A ∈Mk gdw A→∗ λ.

Damit können wir folgende Regelmenge P ′ definieren:

P ′ = P \ {A→ λ : (A→ λ) ∈ P} ∪ {C → u′ : u′ 6= λ ∧ ∃(C → u) ∈ P∧u′ entsteht durch weglassen min. eines Symbols aus Mk} �

Beispiel 4.6Nehmen wir an, wir haben die Regel C → A1A2A3A4A5 und es gilt

Ai ∈ N, A2, A3, A4 ∈Mk, A1, A5 /∈Mk

2„λ-frei“ bedeutet, es gibt keine Regel der Form w → λ

66

Page 67: 2 Turing-Maschinen

4.3 Grammatiken und Sprachen vom Typ-2

Dann werden folgende Regeln zusätzlich aufgenommen:

C → A1A3A4A5

C → A1A2A4A5

C → A1A2A3A5

C → A1A4A5

C → A1A3A5

C → A1A2A5

C → A1A5

Fallunterscheidung:

1. Fall: λ /∈ L(G). Dann gilt: L(G′) = L(G) \ {λ} = L(G) und damit ist G′ äquivalent(und λ-frei) zu G

2. Fall: λ ∈ L(G). Wir konstruieren G′′ durch folgende Angaben:

N ′′ = N ∪ {S′′}, P ′′ = P ′ ∪ {S′′ → λ, S′′ → S}

Insgesamt erhalten wir: L(G′) = L(G) \ {λ}, G′ = (N,T, S, P ′).

Dann gilt: G′′ = (N ′′, T, S′′, P ′′) und L(G′′) = L(G) ∪ {λ} = L(G) und G′′ ist kontext-sensitiv.

Damit haben wir:Satz 4.8Jede kontextfreie Sprache ist kontextsensitiv. (obwohl nicht jede kontextfreie Gram-matik kontextsensitiv ist.)

Dies bedeutet für die Chomsky-Hierarchie:

• CH(0) = RE. . .die Klasse der rekursiv-aufzählbaren Sprachen

• CH(1) = CS. . .die Klasse der kontextsensitiven Sprachen

• CH(2) = CF . . .die Klasse der kontextfreien Sprachen

CF ⊆ CS ⊆ RE

Definition 4.11Eine kontextfreie GrammatikG = (N,T, S, P ) ist inNormalform für Typ-2-Grammatikengdwdef

• falls λ ∈ L(G), dann (und nur dann) gilt die Regel S → λ,

• S tritt in keiner rechten Seite einer Regel auf und

67

Page 68: 2 Turing-Maschinen

4 Formale Sprachen und formale Grammatiken

• außer der λ-Regel haben alle Regeln die Form:

A→ BC oder A,B,C ∈ NA→ a a ∈ T

Satz 4.9Zu jeder kontextfreien Grammatik G gibt es eine äquivalente kontextfreie Grammatik G′in Normalform!

Beobachtung: Falls w ∈ L(G′) und |w| > 1 ist, dann gibt es in G′ eine Ableitung vonw der Länge 2n− 1. Diese Beobachtung ist Grund dafür, dass das Wortproblem fürkontextfreie Sprachen effizient lösbar ist!

Ausgangspunkt ist das Wort w = w1 . . . wn ∈ L

1. wn muss aus einem NichtterminalAn entstanden sein; altes Wort: w′ = w1 . . . wn−1An

2. wn−1 muss aus einem Nichtterminal An−1 entstanden sein; altes Wort: w′′ =w1 . . . wn−2An−1An

3. An−1 und An müssen aus einem Nichtterminal A′n entstanden sein; altes Worts:w′′′ = w1 . . . wn−2A

′n

4. Mit dem Wort w′′′ können wir wieder zu Punkt 2 gehen.

Um ein Wort der Form w = w1 . . . wn−1An um einen Buchstaben zu verkürzen (w′ =w1 . . . w

′n−2An) braucht es zwei Schritte. Für das gesamte Worte also 2(n−1) Schritte um

ein Nichtterminal – das Startsymbol – zu erreichen. Ein zusätzlicher Schritt (Punkt 1) istnoch notwendig, um das Ausgangswort in diese Form zu bringen.Satz 4.10Zu jeder kontextfreien Grammatik G gibt es einen effizienten Algorithmus, der entscheidet,ob eine Eingabe w ∈ L(G) ist oder nicht.

Was heißt effizient?

• Laufzeit z. B. des Algorithmus’ von Kasany/Younger: O(n3) für eine vollständigeSprachanalyse

• Laufzeitredurzierung durch „schnelle Matrixmultiplikation“ von Solovay/Strassen:O(nlog2 7)

• offene Frage: Gibt es einen Algorithmus in O(n2)?

Das Wortproblem in der Chomski-HierarchieCH(0) unlösbarCH(1) lösbarCH(2) effizient lösbar

68

Page 69: 2 Turing-Maschinen

4.4 Grammatiken und Sprachen vom Typ-3

4.4 Grammatiken und Sprachen vom Typ-3

Als Ziel steht die weitere Vereinfachung der Regeln, um das Wortproblem mit linearemAufwand zu lösen.

Definition 4.12Eine Grammatik G = (N,T, S, P ) ist eine Typ-3- oder rechtslineare oder reguläreGrammatik gdwdef alle Regeln sind von der Form

A→ w oder w ∈ T ∗, A ∈ NA→ wB B ∈ N

Definition 4.13Eine Grammatik G = (N,T, S, P ) heißt linkslinear gdwdef alle Regeln sind von derForm

A→ w oder w ∈ T ∗, A ∈ NA→ Bw B ∈ N

Satz 4.11Zu jeder rechtslinearen Grammatik G gibt es eine äquivalente linkslineare Gram-matik G′ und umgekehrt!

Definition 4.14Eine Sprache L ⊆ Σ∗ ist eine Typ-3-Sprache oder reguläre Sprache, falls es einereguläre Grammatik G mit L(G) = L gibt.

CH(3) = REG. . .bezeichnet die Klasse der Typ-3-Sprachen (regulären Sprachen)

Es gilt:

REG ⊆ CF ⊆ CS ⊆ RE

69

Page 70: 2 Turing-Maschinen

4 Formale Sprachen und formale Grammatiken

4.5 Zusammenfassung

Grammatik allgemeine Form Chomski-NormalformTyp-0 (p→ q) ∈ (N ∪ T )+ × (N ∪ T )∗

p enthält min. ein X ∈ N, p 6= λX → aX → Y ZXY → Z

Typ-1 S → λ und S in keiner rechtenSeite|p| ≤ |q|oderS → λ und S in keiner rechtenSeiteuAv → uwv,w ∈ (N ∪ T )+

kontextsensitiv

X → aX → Y ZXY → UV

Typ-2 A→ w,w ∈ (N ∪ T )∗ X → aX → Y Z

Typ-3 A→ wA→ wB,w ∈ T ∗rechtslinear

X → aX → aY

A→ wA→ Bw,w ∈ T ∗linkslinear

X → aX → Y a

A,B ∈ N, U, V,X, Y, Z ∈ (N ∪ T )

70

Page 71: 2 Turing-Maschinen

5 Die Hierarchie der Sprachklassen

Wir wissen bereits:

Typ-3 Typ-2 Typ-1 Typ-0regulär kontextfrei kontextsensitiv aufzählbarREG ⊆ CF ⊆ CS ⊆ RE

Satz 5.1 (Hierarchiesatz für Klassen der Chomski-Hierarchie)

REG ( CF ( CS ( RE

Beweis:1. RE \ CS 6= ∅ wegen Satz 5.2 und Satz 5.3 �

5.1 Das Wortproblem für Sprachen vom Typ-i(i = 0, 1, 2, 3)

Wiederholung: Als Wortproblem bezeichnet man die Frage, ob für eine Eingabe w undeine Sprache L ⊆ Σ∗ vom Typ-i (i = 0, . . . , 3) gilt

w?∈ L

Satz 5.2Das Wortproblem für Sprachen vom Typ-0 ist nicht lösbar. Das heißt, es gibt Sprachenvom Typ-0, die nicht entscheidbar sind.

Beweis:Im Kapitel über Aufzählbarkeit und Entscheidbarkeit todo: Link ergänzen; Den Beweisgibt es nicht �

Satz 5.3Das Wortproblem für Sprachen vom Typ-1 ist lösbar. Das heißt, jede Sprache vom Typ-1ist entscheibbar.

Es gilt: Das Wortproblem für Sprachen vom Typ-1 ist PSPACE-vollständig, d. h.dieses Problem ist praktisch hochgradig ineffizient.

71

Page 72: 2 Turing-Maschinen

5 Die Hierarchie der Sprachklassen

Beweis:Es sei G = (N,T, S, P ) eine (Normalform-)Grammatik vom Typ-1 und es sei w ∈ Σ∗(=T ∗).

1. Fall: w = λ, (triviale Fall) Frage: Gilt λ ∈ L(G)? Oder anders formuliert: Ist (S →λ) ∈ P?

2. Fall: w 6= λ, es sei |w| = n, dann gilt n ≥ 1

Idee: berechnen alle Wörter x ∈ (N ∪ T )∗ mit |x| ≤ n. Dies funktioniert, weil die Regelnnicht verkürzend sind; wir definieren dazu Wortmengen Zn(m).

Dabei ist Zn(m) die Menge alljener Wörter über (N ∪ T ), die höchstens die Länge nhaben und in höchstens m Schritten aus S ableitbar sind.

Zn(m) = {x ∈ (N ∪ T )∗ : |x| ≤ n ∧ S →k x, k ≤ m}

Induktive Definition von Zn(m):

Zn(0) := {S}Zn(m+ 1) := Zn(m) ∪ {x ∈ (N ∪ T )∗ : |x| ≤ n ∧ ∃y ∈ Zn(m) mit y → x}

Dann gilt:

{w ∈ L(G) : |w| ≤ n} ⊆⋃m≥0

Zn(m)

und es gilt:

Zn(0) ⊆ Zn(1) ⊆ . . . ⊆ Zn(m) ⊆ Zn(m+ 1) ⊆ . . .

Andererseits ist durch die Längenbeschränkung |x| ≤ n (x ∈ Zn(m)) die Anzahl dermöglichen Wörter in Zn(m) beschränkt und damit endlich.

∣∣∣ ⋃m≥0

Zn(m)∣∣∣ ≤ n∑

i=1(|N |+ |T |)i(5.1)

Deshalb existiert ein k ≥ 1 mit Zn(k) = Zn(k + 1)

Dies liefert den folgenden Algorithmus:begin { Eingabe: w }

1. n := |w|

2. m := 0

3. Zn(0) = {0}

4. repeat

72

Page 73: 2 Turing-Maschinen

5.2 Das Pumping-Lemma für kontextfreie Sprachen

5. berechne Zn(n+ 1)

6. m := m+ 1

7. until w ∈ Zn(m) oder Zn(m+ 1) = Zn(m)

8. if w ∈ Zn(m)

9. then return „Ja, w ∈ L(G)“

10. else return „Nein, w 6= L(G)“ �

Bemerkung 5.1zu Gleichung 5.1: Im allgemeinen sind für die Eingaben w der Länge n exponentiell vieleZwischenschritte x ∈ ⋃m≥0 Zn(m) zu berechnen ⇒ O(kn).

5.2 Das Pumping-Lemma für kontextfreieSprachen

Satz 5.4 (Das Pumping-Lemma für CF )Es sei L ∈ CF . Dann existiert ein n ∈ N+, so dass für alle Wörter z ∈ L mit |z| ≥ n eineZerlegung z = uvwxy mit folgenden Eigenschaften existiert:

1. |vx| ≥ 1 (v 6= λ oder x 6= λ)

2. |vwx| ≤ n

3. ∀k ≥ 1: uvkwxky ∈ L

Beweis:Es sei G mit L(G) = L eine (Chomski-)Normalform-Grammatik vom Typ-2. Es sei dieAnzahl der Nichtterminale |N | = n1 und es sei n = 2n1 .

Wir beschreiben die Ableitung von z in der Grammatik G durch einen Ableitungsbaum.Ein solcher Ableitungsbaum ist ein Binärbaum mit einer Wurzel, die mit dem Start-symbol S markiert ist und mit |z| vielen Blättern, die mit den Buchstaben aus z markiertsind. siehe Abbildung 5.1 Alle inneren Knoten sind mit Nichtterminalen markiert: Esgibt zwei Sorten von inneren Knoten:

• mit einem Sohn: die stehen für Regeln der Form X → a und haben alle die Höhe 1

• mit zwei Söhnen: die stehen für Regeln der Form X → Y Z

73

Page 74: 2 Turing-Maschinen

5 Die Hierarchie der Sprachklassen

u v w x yz =

v0

S

Ai

vi

Aj

vj

h ≥ n1

≤ n1

Abbildung 5.1: Allgemeiner Ableitungsbaum einer kontextfreien Grammatik.

Der gesamte Graph ist der Ableitungsbaum T für z. Die Höhe von T sei h + 1. Danngilt: h ≥ log2|z| ≥ log2 n = n1. Also ist h ≥ n1 = |N |.

Es gibt insgesamt n1 verschiedene Nichtterminale. Für h > n1 gibt es darum auf einemPfad von der Wurzel S bis zu einem Blatt zi mit dem Knoten v0 = S, v1, v2, . . . , vn, vn+1 =zi zwei Knoten vi und vj (i < j), die mit dem Nichtterminal A markiert sind, und füralle anderen vk (k ≥ i+ 1) sind die Markierungen verschieden. Die Höhe des Knotens viwird somit durch n1 beschränkt.

Wir setzen A = Ai = Aj !

Die durch Ai und Aj bestimmten Teilbäume bewirken eine Zerlegung des Wortes z inz = uvwxy.

Eigenschaften dieser Zerlegung:

1. Die Knoten vi stehen für die Anwendung der Regel Ai → BC. o. B. d.A. sei vj einNachfolger des Knotens, der mit C markiert ist.

Dann ist das Wort, das aus B abgeleitet wird, ein Anfangswort von v.

Deshalb ist v 6= λ (andersnfalls x 6= λ) und damit gilt |vx| ≥ 1.

2. Da die Höhe des Knotens vi durch n1 beschränkt ist, hat der durch Ai bestimmteTeilbaum höchstens 2n1 = n Blätter!

Das hierdurch erzeugte Wort ist vwx und es gilt |vwx| ≤ n.

74

Page 75: 2 Turing-Maschinen

5.3 Das Pumping-Lemma für reguläre Sprachen

3. • Wird der Teilbaum bei Aj durch den Teilbaum Ai erzeugt (m. a.W. bei vjwird nochmal der Teilbaum Ai verwendet), ergibt sich ein AbleitungsbaumT 2

2 für das Wort z2 = uv2wx2y

• dieser Vorgang lässt sich beliebig oft wiederholen

• wird der Teilbaum bei Ai durch den Teilbaum bei Aj ersetzt, ergibt sich deinAbleitungsbaum T 0

2 für das Wort z0 = uwy

Insgesamt: mit z = uvwxy gehören alle Wörter uvkwxky (k ∈ N) zu L! �

Beispiel 5.1Wir wissen bereits (aus der Übung), dass L = {anbncn : n ∈ N} eine kontextsensitiveSprache ist. Nehmen wir nun an, L sei auch eine kontextfreie Sprache. Dann gilt dasPamping-Lemma (Satz 5.4) und es gibt eine natürliche Zahl n, so dass für alle z ∈ L mit|z| ≥ n ein Zerlegung z = uvwxy mit den Eigenschaften 1, 2 und 3 existiert.

Wir betrachten folgendes Wort: z = anbncn für dieses spezielle n. Dann ist |z| = 3n ≥ n.

Nun untersuchen wir die entsprechende Zerlegung z = uvwxy. Nach Eigenschaft 2 gilt|vwx| ≤ n. Damit kann das Teilwort vwx aber nicht gleichzeitig a’s und b’s und c’senthalten.

Entsprechendes gilt für das Teilwort vx. Es gibt also mindestens einen Buchstaben, dernicht in vx vorkommt.

Aus der Eigenschaft 1 folgt, dass |vx| ≥ 1 ist, d. h. vx enthält mindestens einen Buchsta-ben.

Wegen Eigenschaft 3 gehört uwy zu L. Aber dieses Wort hat weniger a’s als b’s unddamit nicht die Form anbncn, womit es nicht Teil der Sprache L seien kann.

Aus diesem Widerspruch folgt, dass die Annahme L ∈ CF falsch ist.

5.3 Das Pumping-Lemma für reguläreSprachen

Satz 5.5 (Das Pumping-Lemma für REG)Für jede Sprache L ∈ REG gibt es eine natürliche Zahl n, so dass für alle Wörter z ∈ Lmit |z| ≥ n eine Zerlegung z = uvw existiert, die folgende Eigenschaften erfüllt:

1. |v| ≥ 1

2. |uv| ≤ n

3. für alle k ∈ N0 ist uvkw ∈ L

75

Page 76: 2 Turing-Maschinen

5 Die Hierarchie der Sprachklassen

u v wz =

An

vn

z1 z2

Aj

vj

zj

vi

Ai

zi

v1

S

zn

≤ n1

h ≥ n1

Abbildung 5.2: Ableitungsbäume für linkslineare Grammatiken sehen wie eine Raupemit der Haarlänge 1 aus todo: Die Zeichnung könnte noch flacher sein

Beweis:o. B. d. A. λ /∈ L. Idee des Beweises: Es sei G eine linkslineare Grammatik in Normalformvom Typ-3. Alle Regeln sind von der Form A→ Ba oder A→ a.

Wir setzen n1 = |N |. Dabei ist G = (N,T, S, P ) und n = n1 + 1.

Wie sehen in einer solchen Grammatik die Ableitungsbäume aus? Abbildung 5.2 �

Beispiel 5.2Wir wissen, dass L = {anbn : n ∈ N} eine kontextfreie Sprache ist. Treffen wir nun dieAnnahme, L sei regulär.

Dann würde das Pumping-Lemma für reguläre Sprachen Satz 5.5 gelten und wir könntenein (spezielles) n (für diese Sprache) finden, so dass für alle Wörter z ∈ L mit |z| ≥ neine Zerlegung z = uvw mit den Eigenschaften 1, 2 und 3 existiert.

Wir betrachten jetzt das Wort z = anbn für dieses spezielle n. Dann folgt aus Eigenschaft2, dass |uv| ≤ n und damit |v| ≤ n ist. Eigenschaft 1 liefert: |v| ≥ 1. Diese beiden Sachenzusammen ergeben: 1 ≤ |v| ≤ n.

Also kommen in v a’s vor und keine b’s. Also hat uw weniger a’s als b’s und damit nichtdie Form anbn, obwohl nach Eigenschaft 3 uw ∈ L ist – Widerspruch.Beispiel 5.3

L1 = {am2 : m ∈ N} w ∈ L1 gdw w ∈ {a}∗ ∧ |w| ist Quadratzahl(5.2)

76

Page 77: 2 Turing-Maschinen

5.3 Das Pumping-Lemma für reguläre Sprachen

Prüfen wir, ob diese Sprache regulär ist und nehmen dazu an, sie sei es.

Entsprechend gilt dann das Pumping-Lemma für reguläre Sprachen Satz 5.5 und wirfinden eine natürliche Zahl n, so dass für alle Wörter z ∈ L1 mit |z| ≥ n eine Zerlegungz = uvw mit den Eigenschaften 1, 2 und 3 existiert.

Wir betrachten das Wort zn2 mit der zugehörigen Zerlegung z = uvw.

Eigenschaft 1 und 2 liefern 1 ≤ |v| ≤ |uv| ≤ n.

Wegen Eigenschaft 3 ist auch uv2w ∈ L1 und es gilt:

n2 = |uvw| < |uv2w| = |uvw|+ |v| ≤ n2 + n < n2 + 2n+ 1 = (n+ 1)2

Die Länge des Wortes uv2w ist aber demnach keine Quadratzahl (n2 < |uv2w| < (n+1)2),weshalb es nicht zur Sprache L1 gehört – Widerspruch. Die Annahme L1 sei eine reguläreSprache war also falsch.

Beispiel 5.4

L2 = {ap : p ist Primzahl} w ∈ L2 gdw w ∈ {a}∗ ∧ |w| ist Primzahl(5.3)

Prüfen wir, ob diese Sprache regulär ist und nehmen dazu an, sie sei es.

Entsprechend gilt dann das Pumping-Lemma für reguläre Sprachen Satz 5.5 und wirfinden eine natürliche Zahl n, so dass für alle Wörter z ∈ L2 mit |z| ≥ n eine Zerlegungz = uvw mit den Eigenschaften 1, 2 und 3 existiert.

Wir betrachten das Wort z = ap (n + 2 ≤ p ist prim) und die zugehörige Zerlegungz = uvw.

Eigenschaft 1 liefert wieder, dass v mindestens einen Buchstaben hat, und Eigenschaft 3liefert zi = uviw ∈ L2 (∀i ∈ N)

|zi| = |uw|+ i|v|

Dabei muss |uw| ≥ 2 sein, denn

|uw| = |z| − |v| ≥ n+ 2− |v|≥ n+ 2− n = 2 wegen Eigenschaft 2 |v| ≤ n

Setzen wir i = |uw|. Dann gilt für dieses i:

|zi| = |uw|+ |uw||v| = |uw| · (1 + |v|)(5.4)

zi ist aber nicht in L2, da die Länge |zi| keine Primzahl ist (Faktorisierung in |uw|·(1+|v|)).

77

Page 78: 2 Turing-Maschinen

5 Die Hierarchie der Sprachklassen

5.4 Kontextfreie Sprachen über einelementigenAlphabeten

Ist die Sprache L1 aus Gleichung 5.2 oder die Sprache L2 aus Gleichung 5.3 kontext-frei?

Überprüfen wir L1 und behaupten dazu L1 sei kontextfrei.

Dann gilt das Pumping-Lemma für kontextfreie Sprachen Satz 5.4 und wir finden einenatürliche Zahl n1, so dass für alle Wörter z ∈ L1 mit |z| ≥ n eine Zerlegung z = uvwxymit den Eigenschaften 1, 2 und 3 existiert.

Da nur ein Buchstabe vorhanden ist, ist die Position der Teilwörter unwesentlich undkann als z = u′v′w′ geschrieben werden. Für einbuchstabige Sprachen fallen die Aussagender beiden Pumping-Lemma Satz 5.4 und Satz 5.5 also zusammen.

L1 und L2 sind also nicht kontextfrei und es gilt sogar der folgende Satz:

Satz 5.6Jede kontextfreie Sprache L ⊂ {a}∗ über einem einbuchstabigen Alphabet ist regulär.

78

Page 79: 2 Turing-Maschinen

6 Die Hierarchie der Automaten

Ausgangspunkt ist der folgende Satz:Satz 6.1Eine Sprache L ⊆ Σ∗ ist vom Typ-0 gdw es eine gewöhnliche deterministischeTuring-Maschine M mit L(M) = L gibt.

Dies erlaubt die folgende Sprechweise: Gewöhnliche Turing-Maschinen sind Turing-Maschinen vom Typ-0.help: Widerspruch zu Definition 6.1

Was sind dann Turing-Maschine vom Typ-i (i = 1, 2, 3)?

6.1 Das Phänomen „Nichtdeterminismus“

Wir hatten im Beweis von Satz 4.3 für eine Typ-0-Grammatik in Normalform G =(N,T, S, P ) den markierten Ableitungsbaum mit Succ(u) = {v : u→ v gemäß Regel (p→q) ∈ P} definiert. Typisch dabei ist, dass aus einer Situation mehrere Nachfolgersituatio-nen entstehen. Anders war es bisher mit Turing-Maschinen, bei denen aus einer Situationgenau eine Nachfolgersituation entsteht.

Dies wirft einige Fragen auf:

1. Können Turing-Maschinen mit dieser Fähigkeit des nichtdeterminierens ausgestattetwerden.

2. Was heißt es für eine solche Turing-Maschine, dass sie die Eingabe akzeptiert?

3. Haben nichtdeterministische Turing-Maschinen eine größere Berechnungskraft alsgewöhnliche deterministische Turing-Maschinen?

Zur Frage 1 ist folgendes zu sagen: Bisher war die Überführungsfunktion δ für eine Turing-Maschine M = (Q,Σ, Γ, δ, q0, F ) als Funktion definiert. Die Berechnung von M bei einerEingabe w ist eine eindeutig bestimmte Folge von Konfigurationen

Start−KonfM (w) = K0 |−− K1 |−− K2 |−− . . . |−−{Kacc

. . .

Jede Berechnung ist ein (endlicher oder unendlicher) Pfad. Das ist Determinismus!(Dies ist gerade der Unterschied zu Ableitungen in Grammatiken!)

79

Page 80: 2 Turing-Maschinen

6 Die Hierarchie der Automaten

todo: Skizze

Abbildung 6.1: caption

Ein Möglicher Ausweg wäre, wir erlauben für jede Konfiguration mehrere Nachfol-ger mit dem Effekt, dass die Berechnung für eine Eingabe w die Form eines todo:Skizze Berechnungsbaumes bekommt (Nichtdeterminismus) (Der Berechnungs-baum der Turing-Maschine entspricht dem markierten Ableitungsbaum der Gramma-tik.)

Formal gesprochen heißt das, die Überführungsfunktion

δ : Q× Γ → Q× Γ × {L,R, 0}

wird durch eine Überführungsrelation

δ ⊆(Q× Γ

)×(Q× Γ × {L,R, 0}

)ersetzt. Diese Relation lässt sich ihrerseits als Funktion schreiben:

δ : Q× Γ → P(Q× Γ × {L,R, 0})

Eine nichtdeterministische Turing-Maschine ist eine Turing-Maschine mit einersolchen Überführungsfunktion.

Zur Frage 2 folgendes: Wir können den Berechnungsbaum wie ein Labyrinth betrachten(Abbildung 6.1). Es gibt zwei Strategien, dieses Labyrinth abzulaufen:

1. Obelix-Strategie: an jeder Verzweigung klont sich Obelix, wobei einer der Kloneden Schatz findet

2. Asterix-Strategie: ein Asterix durchläuft systematisch alle Gänge

Gemäß der Obelix-Stategie akzeptiert eine nichtdeterministische Turing-Maschine eineEingabe w, wenn sie auf einem Pfad erfolgreich war:

L(M) = {w ∈ Σ∗ : Start−KonfM (w) |−−∗ Kacc}

Zur Frage 3 folgendes: Gemäß der Asterix-Strategie lässt sich jede nichtdeterministi-sche Turing-Maschine (Algorithmus, Arbeitsweise) durch eine deterministische Turing-Maschine (Algorithmus, Arbeitsweise) simulieren! Daher sind beide Systeme gleichmächtigin Bezug auf Berechenbarkeit.

Jedoch besteht ein wesentlicher Unterschied im Zeitaufwand. Für ein Labyrinth derTiefe t benötigt die Obelix-Strategie lineare Laufzeit O(t), die Asterix-Strategie hingegenexponentiellen Zeitaufwand O(2t).

80

Page 81: 2 Turing-Maschinen

6.2 Turing-Maschinen vom Typ-0

Turing-Maschine Sprachklasse Automatennichtdeterm.determ.

Typ-0: gewöhnliche, nichtdeterministi-sche Turing-Maschine

RE RE ?a

Turing-MaschinenRE

Typ-1: nichtdeterministische Turing-Maschine mit endlichem Band

CS LBA ?b

linear beschränkte Autom.DLBA

Type-2: nichtdeterministische Turing-Maschine mit einem Einwegeingabe-bandc und einem zweiten Turing-Band,auf dem der Kopf stehts am rechtenEnde der Eingabe steht

CF PDA )Kellerautomaten

DPDA

Typ-3: nichtdeterministische Turing-Maschine, bei dem die Eingabe auf ei-nem Einwegeingabeband steht

REG NFA =endliche Automaten

DFA

aP -NP -Problem: Sind nichtdeterministische Turing-Maschinen schneller als (NP ) P ) odergleichschnell wie (NP = P ) deterministische Turing-Maschinen

bLBA-Problem: LBA ) DLBA oder LBA = DLABcEinwegeingabeband: jedes Zeichen kann nur einmal gelesen werden

Tabelle 6.1: Beziehungen zwischen Turing-Maschinen, Sprachen und Automaten

6.2 Turing-Maschinen vom Typ-0

Definition 6.1 (nichtdeterministische Turing-Maschinen)Als eine nichtdeterministische Turing-Maschine M = (Q,Σ, Γ, δ, q0, F ) bezeichnetman eine Turing-Maschine mit der Überführungsfunktion

δ : Q× Γ → P(Q× Γ × {L,R, 0})

Die von einer nichtdeterministischen Turing-Maschine akzeptierte Sprache beinhaltet alleWörter, für die es einen akzeptierenden Berechnungspfad gibt.

L(M) = {w ∈ Σ∗ : Start−KonfM (w) |−−∗ Konfacc}

DTM . . . Klasse der Sprachen, die durch eine deterministische Turing-Maschine ak-zeptiert werden

NTM . . . Klasse der Sprachen, die durch eine nichtdeterministische Turing-Maschineakzeptiert werden

CH(0) . . . Klasse der Sprachen, die durch eine Grammatik vom Typ-0 erzeugt werden

Wir wissen bereits aus Abschnitt 4.1.1, dass DTM = CH(0). Es gilt also DTM ⊆ CH(0)– für jede deterministische Turing-Maschine existiert eine GrammatikG vom Typ-0, so dassG die MaschineM durch „Rückwärtsberechnung“ simmuliert – Satz 4.2.

81

Page 82: 2 Turing-Maschinen

6 Die Hierarchie der Automaten

Dieser Beweis lässt sich wortwörtlich auf nichtdeterministische Turing-Maschine über-tragen. Das heißt, NTM ⊆ CH(0). Andererseits gilt DTM ⊆ NTM und damitCH(0) ⊆ DTM ⊆ NTM ⊆ CH(0).

Wie lässt sich die Grammatik G unmittelbar durch eine nichtdeterministische Turing-Maschine M simulieren? Eingabe für die nichtdeterministische Turing-Maschine M seiein Wort w ∈ Σ∗. w ∈ L(G) gdw S →∗G w Die nichtdeterministische Turing-Maschine M„rät“ rückwärts eine mögliche Ableitung für w. (Der Berechnungsbaum von M entsprichtdamit möglichen Ableitungsfolgen!)

Einschub: P -NP bisher: DTM = NTM (Grundsätzlich die selbe Berechnungskraft,falls keine Einschränkung)

dagegen:P . . . Klasse aller Sprachen, die durch eine deterministische Turing-Maschine mit

polynomieller Rechenzeit akzeptiert werdenNP . . . Klasse aller Sprachen, die durch eine nichtdeterministische Turing-Maschine

mit polynomieller Rechenzeit akzeptiert werden

Die Rechenzeit einer deterministischen Turing-Maschine ist die Länge der Berech-nung als Folge von Konfigurationen oder mit anderen Worten: ist die Länge des Berech-nungspfades.

Die Rechenzeit einer nichtdeterministischen Turing-Maschine ist die Tiefe des Be-rechnungsbaumes.

Diese Rechenzeit wird gemesssen bzgl. der Länge der Eingabe. Polynomielle Rechenzeitheißt also, es gibt ein Polynom p, so dass für alle Eingaben w ∈ Σ∗ gilt:

ZeitM (w) ≤ p(|w|)

Die Arbeit einer nichtdeterministischen Turing-Maschine lässt sich in „Rate-“ und„Testphasen“ aufteilen.Beispiel 6.1 (Erfüllbarkeitsproblem)Es sei F eine Formel mit den Atomen A1, . . . , An. F gehört zu SAT gdw es eine Belegungβ : {A1, . . . , An} 7→ {0, 1} mit Iβ(F ) = 1 gibt.

SAT = {F : F ist Formel in konjunktiver Normalform und F ist erfüllbar} ∈ NP

Eine nichtdeterministische Turing-Maschine MN rät eine Belegung β und berechnet Iβ.Ist Iβ(F ) = 1 akzeptiert sie, wenn nicht rät sie die nächste Belegung. Existiert keineBelegung β mit Iβ(F ) = 1, stoppt die Turing-Maschine nie.

Die Frage, ob SAT ∈ P ist bis jetzt ungeklärt. Es ist aber bereits gezeigt worden,dass SAT ∈ DEXP (in exponenzieller Zeit mit deterministischen Turing-Maschinenentscheidbar).

Wäre SAT ∈ P , so wäre P = NP . Damit ist SAT ein NP -schweres Problem. SATist NP -vollständig.

82

Page 83: 2 Turing-Maschinen

6.3 Turing-Maschinen vom Typ-1

Beispiel 6.2 (Hamiltonkreis-Problem)

HC = {G : G = (E, V ) einfacher ungerichter Graph und G besitzt Hamiltonkreis}

Wir interpretieren G = (E, V ) als ein Straßennetz, in dem die Knoten v ∈ V Städte unddie Kanten e ∈ E Straßen zwischen den Städten sind. Als Hamiltonkreis bezeichnetman eine Rundreise durch G, bei der jede Stadt genau einmal besucht wird und man inder Stadt, in der man begonnen hat, endet. Wenn es eine solche Rundreise gibt, besitztG einen Hamiltonkreis.

Es gilt: HC ∈ NP . Eine nichtdeterministische Turing-Maschine MN rät eine Folgevon Kanten (n! Möglichkeiten) und prüft, ob diese geratene Folge einen Hamiltonkreisbildet.

Die Frage, ob HC ∈ P , ist ebenfalls ungeklärt, aber man konnte – wie schon fürSAT – zeigen, dass HC ∈ DEXP . Gleichfalls gilt: Könnte man zeigen, dass HC ∈P , so wäre NP = P . Damit ist HC auch ein NP -vollständiges (NP -schweres)Problem.

6.3 Turing-Maschinen vom Typ-1

Formal gesehen, ist eine Turing-Maschine vom Typ-1, eine Turing-Maschine mit demSonderzeichen . am linken Ende und / am rechten Ende, die nicht überschrieben und nichtverrückt werden dürfen. Für die Überführungsfunktion heißt das

δ(q, .) = (q′, ., L)δ(q, /) = (q′, /, L)

mit dem Effekt, dass sich der gesamte Bereich zwischen . und / vollzieht.

Eine solche Turing-Maschine kann für eine Eingabe w (mit .w/) rückwärts die Ab-leitung einer nichtverkürzenden Grammatik (vom Typ-1 – Abschnitt 4.2) nachvollzie-hen.

6.4 Turing-Maschinen vom Typ-2

Motivation: Wir betrachen Linksableitungen von kontextfreien Grammatiken (Abschnitt 4.3)in Normalform (Definition 4.11).

83

Page 84: 2 Turing-Maschinen

6 Die Hierarchie der Automaten

Beispiel 6.3

G = (N,T, S, P )N = {S,A,B}T = {a, b, c}P = {S → SS, S → aAa, S → bBb,

A→ aAa,A→ c

B → bBb,B → c}

Eine mögliche Linksableitung wäre:

S → SS → bBbS → bcbS → bcbSS → bcbaAaS

→ bcbaaAaaS → bcbaacaaS → bcbaacaaaAa→ bcbaacaaaca ∈ T ∗

Für jedes w ∈ L(G) existiert stets eine Linksableitung. Es sei S →∗ uAv →∗ w, d. h.uAv ist ein Zwischenergebnis einer Linksableitung und hat die Form u ∈ T ∗, A ∈ N, v ∈(N ∪ T )∗

6.4.1 Beschreibung von Linksableitungen durchKellerautomaten

Einwegeingabeband: die Eingaben w steht zwischen zwei Endmarken . und / und kann(nur) von links nach rechts gelesen werden. Das Kellerband ist ein Turing-Arbeitsbandmit einer linken Endmarke ∗ (Kellersymbol) und der Einschränkung, dass der Kopfstehts am rechten Ende des Bandinhalts steht.

Ein Zwischenergebnis uAv einer Linksableitung steht für:u . . . steht für den Teil der Eingabe w, der bereits gelesen wurdev . . . ist der Inhalt des KellerbandesA . . . wird in der Zustandsmenge gespeichert

Die Überführungsfunktion der entsprechenden Turing-Maschine:

δ : Q× (Σ ∪ {., /})︸ ︷︷ ︸=Σ′

× (Γ ∪ {∗})︸ ︷︷ ︸=Γ ′

→ Q× Γ ′ × {R, 0}

Für einen Kellerautomaten sieht die Überführungsfunktion etwas anders aus:

δ : Q× (Σ′ ∪ {λ})× Γ ′ → Q× Γ ′

zwei Regeltypen der Grammatik:

84

Page 85: 2 Turing-Maschinen

6.4 Turing-Maschinen vom Typ-2

1. A→ a: Buchstabe wird verglichen mit dem nächsten Buchstaben der Eingabe. FallsÜbereinstimmung → weiterrechnen, falls nicht → Abbrechen.

„Leseschritt“

2. A → BC: kein Test von Buchstaben der Eingabe, sondern schreiben C auf dasKellerband und nehmen B als neuen Zustand an.

Definition 6.2 (Formale Definition des Kellerautomaten)Ein nichtdeterministischer Kellerautomat K ist ein Tupel K = (Q,Σ, Γ, δ, q0, F ).

Q . . . endliche Menge der ZuständeΣ . . . endliche Menge, Eingabealphabet, ., / /∈ ΣΓ . . . endliche Menge, Kelleralphabet, ∗ /∈ Γ

q0 ∈ Q . . . StartzustandF ∈ Q . . . Finalzustände

die Überführungsfunktion

δ : Q× (Σ ∪ {., /} ∪ {λ})× (Γ ∪ {∗})︸ ︷︷ ︸=Γ ′

→ P(Q× Γ ′)

6.4.2 Akzeptanzverhalten eines Kellerautomaten

Ein Konfiguration (q, w′, γ) ist eine Momentanbeschreibung des Automaten, die gegebenist durch den aktuellen Zustand q, den noch nicht gelesenen Teil w′ der Eingabe und denkellerinhalt γ.

Es sei w′ = aw′′ und γ = γ′A (Topsymbol des Kellers)

1. (Lese-Schritt), (q′, β) ∈ δ(q, a,A), Nachfolgekonfiguration: (q′, w′′, γ′β)

a) γ ∈ Γ+ – Schreib- oder Push-Operation

b) γ = λ – Lösch- oder Pop-Opteration

2. (λ-Schritt), (q′, β) ∈ δ(q, λ,A), Nachfolgekonfiguration: (q′, w′′, γ′β)

a) β ∈ Γ ∗ – Push-Operation (von links nach rechts bzw. von unten nach oben)

b) β = λ – Pop-Operation (von rechts nach links bzw. oben nach unten)

Dies ist gerade das Kellerprinzip oder auch Push-Down-Prinzip genannt.

Es gibt zwei Möglichkeiten, wie ein Kellerautomat eine Eingabe w akzeptieren kann:

• entweder mit Finalzuständen

L(K) = {w ∈ Σ∗ : (q0, w/, ∗) |−−∗ (q, /, ∗γ) ∧ q ∈ F}

85

Page 86: 2 Turing-Maschinen

6 Die Hierarchie der Automaten

• oder mit einem leeren Keller

Lλ(K) = {w ∈ Σ∗ : (q0, w/, ∗) |−−∗ (q, /, ∗) ∧ q ∈ F}

Satz 6.2Zu jedem Kellerautomaten K, der mit Finalzuständen akzeptiert, gibt es einen äquiva-lenten Kellerautomat K ′, der mit einem leeren Keller akzeptiert, so dass L(K) = Lλ(K ′)

Beispiel 6.4

L = {wwR : w ∈ {0, 1}∗}

Idee: Wir lesen die Eingabe und schreiben w auf das Kellerband. Aufgrund des Keller-prinzips ist w von rechts nach links, also in umgekehrter Reihenfolge zu lesen und wirdmit der Eingabe wR vergleichen.

Dabei haben wir ständig die Wahl zwischen „weiter w einlesen“ und „beginnen wR zutesten“. Dies ist gerade der Nichtdeterminismus des Kellerautomaten.

Σ = {0, 1}Γ = {0, 1}Q = {q0, q1, q+, q−}F = {q+}

Seien a, b ∈ {0, 1}, wobei a 6= b

δ(q0, a, ∗) = {(q0, ∗a)}δ(q0, /, ∗) = {(q+, ∗)}δ(q0, a, b) = {(q0, ba)}δ(q0, a, a) = {(q0, aa), (q1, λ)}δ(q1, a, a) = {(q1, λ)}δ(q1, /, ∗) = {(q+, ∗)}δ(q1, a, b) = {(q−, b)}

Satz 6.3Eine Sprache L ⊆ Σ∗ ist von Typ-2 gdw L wird von einem nichtdeterministischenKellerautomat akzeptiert.

86

Page 87: 2 Turing-Maschinen

6.5 Turing-Maschinen vom Typ-3

6.5 Turing-Maschinen vom Typ-3

Definition 6.3Ein nichtdeterministischer Automat M ist ein Tupel M = (Q,Σ, Γ, δ,Q0, F ) wobei

Q . . . endliche Menge von ZuständenQ0 ⊆ Q . . . endliche Menge von AnfangszuständenF ⊆ Q . . . endliche Menge von Finalzuständen

und der Überführungsfunktion

δ : Q×Σ → P(Q)

Diese Überführungsfunktion δ wird fortgesetzt zu einer erweiterten Überführungs-funktion δ′

δ′ : P(Q)×Σ∗ → P(Q)δ′(Q′, wa) =

⋃q∈Q′

δ(δ(q, w), a

)

L ⊆ Σ∗ wird von M akzeptiert gdw L = {w ∈ Σ∗ : δ′(Q0, w) ∩ F 6= ∅}

87

Page 88: 2 Turing-Maschinen

7 Ausblick in die Theorie derEntscheidbarkeit

7.1 Entscheidbarkeit und Aufzählbarkeit

Widerholung: todo: Links finden

• L ⊆ Σ∗ heißt entscheidbar gdw χL ist berechenbar

• L ⊆ Σ∗ heißt semientscheidbar gdw χPL ist berechenbar

χL(w) ={

1 : w ∈ L0 : w /∈ L

χPL (w) ={

1 : w ∈ L⊥ : sonst

• L ⊆ Σ∗ heißt aufzählbar gdw es eine total definierte und berechenbare Funktion fmit f(Σ∗) = L gibt oder L = ∅.

These von Church (Satz 1.3): Jede im intuitiven Sinne mit Hilfe eines Algorithmus’berechenbare Funktion ist berechenbar.

7.2 Charakterisierung der aufzählbaren Mengen

Definition 7.1Es sei M eine Turing-Maschine, die die Funktion ResM : Σ∗ → ∆∗ berechnet.

Die Menge DM = {u ∈ Σ∗ : die Maschine M stoppt bei Eingabe u} heißtHaltebereichder Turing-Maschine M . (DM ist gerade der Definitionsbereich der Funktion ResM )

Die Menge WM = {v ∈ ∆∗ : ∃u ∈ Σ∗ : v = ResM (u)} heißt Ergebnisbereich derTuring-Maschine M . (WM ist gerade der Wertebereich der Funktion ResM )

Satz 7.1Für eine Menge L ⊆ Σ∗ sind folgende Aussagen äquivalent:

1. L ist aufzählbar

2. L ist Ergebnisbereich einer Turing-Maschine

88

Page 89: 2 Turing-Maschinen

7.2 Charakterisierung der aufzählbaren Mengen

3. L ist Haltebereich einer Turing-Maschine

4. χPL ist berechenbar

5. L wird von einer Typ-0-Grammatik erzeugtBeweis:1. ⇒ 2.

1. Wenn L = ∅ ist, dann ist L der Ergebnisbereich einer Turing-Maschine, dienirgends stoppt.

2. Wenn L 6= ∅ ist, Dann ist L = f(Σ∗) und jede Turing-Maschine, die fberechnet, hat L als Ergebnisbereich

2. ⇒ 3. L sei der Ergebnisbereich einer Turing-Maschine. D∗M = {v1, v2, v3, . . .} sei eineAufzählung von DM in quasilexikographischer Reihenfolge. Wir konstruieren eineTuring-Maschine M ′, die für eine Eingabe w ∈ Σ∗ genau dann stoppt, wenn M dasErgebnis w produziert.

M ′ arbeitet wie folgt: für Eingabe w wird (nacheinander) erzeugt:

w##KonfMi (v0)#KonfMi−1(v1)# . . .#KonfMi−j(vj)# . . .#KonfM0 (vi)

Prüfe, ob ein Resultat von M vorliegt:

Ja: vergleiche die Eingabe w mit dem Resultat ResM (vj) = u

Ja: dann (lösches alles überflüssige und) stoppe

Nein: dann künfig ignorieren und weiterrechen

Nein: Bestimme für jedes KonfMi−j(vi) die Nachfolgekonfiguration KonfMi−j+1(vi)sowie KonfM0 (vi+1)

Es gilt: w ∈WM gdw w ∈ DM

3. ⇒ 4. Es sei M eine Turing-Maschine mit DM = L. M ′ arbeitet wie M , wobei aufeiner zusätzlichen Spur alle Felder markiert werden, die der Arbeitskopf gelesen hat.Falls M bei einer Eingabe w stoppt, löscht M ′ alle markierten Bandinhalte undschreibt „1“. Falls M bei der Eingabe w nicht stoppt, dann stoppt auch M ′ nicht.

Damit berechnet M ′ gerade χPL .

4. ⇒ 5.1. L = ∅ klar

2. L 6= ∅: Es sei wfix ein Wort aus L. Wir schreiben folgenden Algorithmus„dovetailing“ (engl. Schwalbenschwanz)

Eingabe: w ∈ Σ∗

a) Bestimme die Nummer n von w in der quasilexikographischen Aufzählung(d. h. bestimme DM (n) = w)

89

Page 90: 2 Turing-Maschinen

7 Ausblick in die Theorie der Entscheidbarkeit

b) Verstehen n als Cantornummer und bestimmen n = c(l(n), r(n)

)c) setzen u = vl(n) und t = r(n)

d) M sei eine Turing-Maschine, die χPL berechnet. Simuliere die Arbeit vonM auf der Eingabe u mit insgesamt t Takten! Falls M das Resultat „1“liefert (u ∈ L), liefert der Algorithmus die Ausgabe u. Sollte M nicht dasResultat „1“ liefern, gibt der Algorithmus die Ausgabe wfix aus.

Das bedeutet also:

• für jede Eingabe stoppt der Algorithmus

• alle Ausgaben gehören zu L

• jedes Wort aus L kommt als Ausgabe vor

w ∈ L⇒ χPL (w) = 1⇒ ResM (w) = 1⇒ ∃t0 ∈ N : M liefert ResM (w) = 1 in t0 Takten

n0 sei die Nummer von w (w = vn0). Weiter sei n = c(n0, t0). BeiEingabe vn liefert der Algorithmus gerade w.

5. ⇒ 1. Satz 4.3 �

7.3 Codierung von Turing-Maschinen

Wir kennen aus Satz 3.2 bereits ein „Wörterbuch“ der partiell-rekursiven Funktionen undwollen jetzt ein „Wörterbuch“ der Turing-berechenbaren Funktionen. Die Idee ist, wirkonstruieren die folgende Turing-Maschine M = (Q,Σ, Γ, δ, q0, F ).

Q = {0, 1, . . . , n}Σ ⊆ Γ = {a0 = �, a1, a2, . . . , ak−1}

F = {1}q0 = 1

δ besteht aus k·n Zeilen zu je fünf Werten (i, aj) 7→ (i, ak, bew). Wir betrachten

A = {a0, . . . , ak−1} ∪ {0, 1, . . . , n} ∪ {;, ,}

90

Page 91: 2 Turing-Maschinen

7.3 Codierung von Turing-Maschinen

Die Turing-Maschine kann umkehrbar eindeutig durch folgendes Wort wTM ∈ A∗ darge-stellt werden:

wTM := n, a0, . . . , ak−1, ai1 , . . . , air ,

0, a0, δ(0, a0), 0, a1, δ(0, a1), . . . , 0, ak−1, δ(0, ak−1),1, . . .2, . . ....n, a0, δ(n, a0), . . . . . . . . . . . . . . . . . . . . . , n, ak−1, δ(n, ak−1)

Definition 7.2wTM heißt Standardcodierung der Turing-Maschine TM .

Für ein beliebiges w ∈ A∗ ist es entscheidbar, ob eine Turing-Maschine TM mit w =wTM existiert. Das Alphabet A hängt offensichtlich von TM ab (da Γ ⊆ A). Es seiA = {b1, . . . , bj}. Verwenden deshalb B = {0, 1} und definieren die folgende Abbildungβ : A∗ → B∗ durch

β(λ) = λ

β(bi) = 10i (1 ≤ i ≤ j)β(uv) = β(u) · β(v) (u, v ∈ A)

β ist ein Homomorphismus von A∗ nach B∗ und eindeutig bestimmt!Definition 7.3bwTM = β(wTM ) heißt binäre Standardcodierung von TM . (bwTM ∈ {0, 1}∗ und fürjedes w ∈ {0, 1}∗ ist entscheidbar, ob es eine binäre Standardcodierung ist.)

Die binäre Standardcodierung liefert eine effektive Nummerierung aller Turing-Maschinen:Eingabe: nErzeuge: das n-te Wort über {0, 1}∗, das binäre Standardcodierung einer Turing-Maschineist. Dies sei bwn.

Nach der These von Church (Satz 1.3) gibt es eine Turing-Maschine, die als Ergebnisbe-reich gerade {bw0, bw1, bw2, . . .} hat.Definition 7.4Tn sei diejenige Turing-Maschine TM mit bwTM = bwn. n heißt Gödelnummer derTuring-Maschine.

Eine Gödelisierung ist also eine effektive Nummerierung der Turing-Maschinen!

Wir haben damit auch zwei Gödelisierungen der aufzählbaren Mengen:Dn = DTn . . . ist Haltebereich von TnWn = WTn . . . ist Ergebnisbereich von Tn

Wir betrachten Turing-Maschinen mit {0, 1} ⊆ Σ.

91

Page 92: 2 Turing-Maschinen

7 Ausblick in die Theorie der Entscheidbarkeit

Definition 7.5H := {bwTM11n : die Turing-Maschine TM stoppt bei Eingabe w} (H ⊆ {0, 1}∗) DieWortmenge H heißt Halteproblem für Turing-Maschinen.

Satz 7.2 (Anhaltesatz)1. H ist aufzählbar

2. H ist nicht entscheidbar

3. H̄ = {0, 1}∗ \H ist nicht aufzählbar

Definition 7.6Eine Turing-Maschine, die H aufzählt, heißt universelle Turing-Maschine.

Bemerkung 7.1H ∈ CH(0) \ CH(1)

92

Page 93: 2 Turing-Maschinen

Index

PSPACE-vollständig, 71F, 43

abgeschlossen bezüglich des Schemas derEinsetzung, 36

ablehnender Zustand, 24ableitbar, 55

in einem Schritt, 55Ableitung der Länge n, 55Ableitungsbaum, 73akzeptierender Zustand, 24Akzeptor, 24allgemein-rekursiv, 43Alphabet, 12Asterix-Strategie, 80

Basis, 18berechnet, 19Berechnungsbaumes, 80Binärdarstellung, 14Blanksymbol, 15Buchstabe, 12

charakteristische Funktion, 20Chomski-Hierarchie, 68, 69Chomski-NF

Typ-0, 57Chomsky-Hierarchie, 67

D2, siehe Dyck-SpracheDeterminismus, 79DEXP , 82Dezimaldarstellung, 14÷, 52dovetailing, 89DTM, 81Dyck-Sprache, 65

Einsetzungsprinzip, 36

Einwegeingabeband, 81, 84Endkonfiguration, 16ε, 12Ergebnisbereich, 88Erkenner, 24Euklidischer Algorithmus, 9, 10

Finalzustand, 16Folgekonfiguration, 16formale Sprache, 13Fortsetung, 43Funktion

nirgends definierte, 21

Grammatikλ-freie, 66Erweiterungstyp, 63kontextfrei, 65kontextsensitiv, 64linkslinear, 69nicht verkürzend, 63rechtslinear, 69Typ-0, 55Typ-1, 63Typ-1-Normalform, 63Typ-2, 65Typ-3, 69

Grundfunktionen, 36Gödelisierung, 91Gödelnummer, 91

Haltebereich, 88Halteproblem, 92Hamiltonkreis, 83Homomorphismus, 14

kanonische, 60kanonische Ordnung, 12

93

Page 94: 2 Turing-Maschinen

INDEX

Kellerautomat, 85Kellerautomaten, 84Kellerband, 84Kellerprinzip, 85Kellersymbol, 84Klasse

allg.-rek. Fkt., 43kontextfreie Sprachen, 65part.-rek. Fkt, 40SprachenTyp-3, 69

Turing-ber. Fkt., 22Typ-0-Sprachen, 55Typ-1-Sprachen, 63

Klasse Pr der primitiv-rekursiven Funk-tionen, 37

Klasse der Typ-0-Sprachen, 63Klasse der Typ-1-Sprachen, 64Kleene-Hülle, 13Konfiguration, 15Konkatenation, 12Konkaternation, 13

λ, 12leere Wort, 12Länge des Wortes, 12

markieren Arbeitsbaum, 61markierter Ableitungsbaum, 62Menge aller endlichenWörter, 12mod, 9, 53µ-Rekursion, 40

nicht definiert, 19Nichtdeterminismus, 79, 80Nichtterminale, 55Normalform

Grammatik, siehe Chomski-NFTyp-2-Grammatik, 67

Normalformen, 56NP -schwer, 82, 83NP -vollständig, 82, 83NTM, 81

Obelix-Strategie, 80

Palindrome, 16, 66Parser, 60partielle charakteristische Funktion, 20Potenzen, 13primitive Rekursion, 36Produktionen, 55Programmiersprachen, 54, 59Projektion, 36Push-Down-Prinzip, 85

quasilexikographische, 60quasilexikographische Reihenfolge, 12

Rechenzeitdeterministische, 82nichtdeterministische, 82polynomielle, 82

Regeln, 55Rest bei der ganzzahligen Division, 9

SAT , 82Speicherplatzbeschränkung, 33Spiegelsprache, 13Spiegelwort, 12Sprache

kontextfrei, 65, 67kontextsensitiv, 67rek.-aufzählb., 67Typ-0, 55, 79Typ-1, 63Typ-2, 65Typ-3, 69

Sprachenkontextsensitiv, 65

Standardcodierung, 91binäre, 91

Startkonfiguration, 16Startsymbol, 55Succ, 61Syntax, 59

Takt, 15Terminale, 55TM, 22totaldefinierte Fuktion, 17

94

Page 95: 2 Turing-Maschinen

INDEX

Turing-aufzählbar, 20Turing-Band, 14Turing-berechenbar, 19, 21Turing-berechenbar mit der Zeitschranke,

33Turing-entscheidbar, 20Turing-erkennbar mit der Zeitbeschrän-

kung, 33Turing-Maschine, 15

deterministische, 79gewöhnliche, 79nichtdeterministische, 80–82universelle, 92

Turing-semientscheidbar, 20

unmittelbare Nachfolgekonfiguration, 16

Variablen, 55

Wort, 12Wortfunktion, 19Wortproblem, 60, 64, 65, 68

kontextfreie Sprachen, 68

Zahlenfunktion, 19

Überführungsfunktionerweiterte, 87

Überführungsrelation, 80

äquivalent, 57

95