+ All Categories
Home > Documents > THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem...

THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem...

Date post: 30-Aug-2019
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
164
THEORETISCHE INFORMATIK Vorlesungsskript Jiˇ ı Ad´ amek Institut f¨ ur Theoretische Informatik Technische Universit¨ at Braunschweig Februar 2016
Transcript
Page 1: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

THEORETISCHE INFORMATIK

Vorlesungsskript

Jirı Adamek

Institut fur Theoretische Informatik

Technische Universitat Braunschweig

Februar 2016

Page 2: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen
Page 3: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

Inhaltsverzeichnis

1 Endliche Automaten 1

1.1 Mathematische Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Definition der endlichen Automaten . . . . . . . . . . . . . . . . . . . 5

1.3 Nichtdeterministische Automaten . . . . . . . . . . . . . . . . . . . . . 10

1.4 Regulare Ausdrucke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.5 Der Brzozowsky-DEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.6 Aquivalente Zustande . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.7 Konstruktion eines Quotient-DEA . . . . . . . . . . . . . . . . . . . . 25

1.8 Minimierung von Automaten . . . . . . . . . . . . . . . . . . . . . . . . 26

1.9 Beweise der Regularitat . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.10 Algorithmische Aspekte von Automaten . . . . . . . . . . . . . . . . . 32

1.10.1 Algorithmus fur Zugehorigkeit zu einer regularen Sprache . . 32

1.10.2 Algorithmus fur verschiedene Darstellungen . . . . . . . . . . 32

1.10.3 Eigenschaften regularer Sprachen . . . . . . . . . . . . . . . . . 33

1.10.4 Minimierung von Automaten . . . . . . . . . . . . . . . . . . . 34

2 Kontextfreie Sprachen und Kellerautomaten 35

2.1 Die Idee einer formalen Grammatik . . . . . . . . . . . . . . . . . . . . 35

2.2 Kontextfreie Grammatik . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.3 Anwendungen von kontextfreien Grammatiken . . . . . . . . . . . . . 40

2.4 Ableitungsbaume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.5 Kontextfreie und regulare Sprachen . . . . . . . . . . . . . . . . . . . . 47

2.6 Eigenschaften kontextfreier Sprachen . . . . . . . . . . . . . . . . . . . 52

2.7 Nullierbare Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.8 Chomsky-Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

2.9 Algorithmen fur kontextfreie Sprachen . . . . . . . . . . . . . . . . . . 64

2.10 Kellerautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

2.11 Kellerautomaten und kontextfreie Sprachen . . . . . . . . . . . . . . . 69

3 Turingmaschinen 73

3.1 Definition einer Turingmaschine . . . . . . . . . . . . . . . . . . . . . . 73

i

Page 4: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

ii INHALTSVERZEICHNIS

3.2 Modifikationen von Turingmaschinen . . . . . . . . . . . . . . . . . . . 79

3.2.1 TM mit mehreren finalen Zustanden . . . . . . . . . . . . . . . 79

3.2.2 TM mit zusatzlichem Gedachtnis . . . . . . . . . . . . . . . . . 80

3.2.3 TM mit erweitertem Bandalphabet . . . . . . . . . . . . . . . 81

3.2.4 TM mit mehrspurigem Band . . . . . . . . . . . . . . . . . . . 82

3.2.5 TM mit mehreren Bandern . . . . . . . . . . . . . . . . . . . . 83

3.3 Nichtdeterministische Turingmaschinen . . . . . . . . . . . . . . . . . 86

3.4 Rekursiv aufzahlbare Sprachen . . . . . . . . . . . . . . . . . . . . . . . 90

3.5 Rekursive Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

4 Church-Turing-These, rekursive Funktionen und Grammatiken 95

4.1 Berechenbare Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . 95

4.2 Primitive Rekursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

4.3 µ-rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

4.4 Grammatiken und Turingmaschinen . . . . . . . . . . . . . . . . . . . 104

5 Unentscheidbare Probleme 111

5.1 Universelle Turingmaschine . . . . . . . . . . . . . . . . . . . . . . . . . 111

5.2 Das Halteproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

5.3 Ein Rechner als Turing-Maschine . . . . . . . . . . . . . . . . . . . . . 117

6 Unentscheidbare Probleme 119

6.1 Das Akzeptanzproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

6.2 Akzeptanz des leeren Wortes . . . . . . . . . . . . . . . . . . . . . . . . 120

6.3 Ist eine TM ein Algorithmus? . . . . . . . . . . . . . . . . . . . . . . . 121

6.4 Das Problem von “hello world” Programmen . . . . . . . . . . . . . . 122

6.5 Satz von Rice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

6.6 Minimierung von Turingmaschinen . . . . . . . . . . . . . . . . . . . . 125

7 Komplexitat von Algorithmen 127

7.1 Beispiele effizienter Algorithmen . . . . . . . . . . . . . . . . . . . . . . 128

7.2 Komplexitatsklasse P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3 Polynomiale Reduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

7.4 Robustheit der Klasse P . . . . . . . . . . . . . . . . . . . . . . . . . . 139

7.4.1 TM mit zusatzlichem Gedachtnis . . . . . . . . . . . . . . . . . 139

7.4.2 TM mit mehrspurigem Band . . . . . . . . . . . . . . . . . . . 139

7.4.3 Mehr-Band TM . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

7.5 Komplexitatsklasse NP . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

7.6 NP-Vollstandigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

7.7 Weitere NP-vollstandige Probleme . . . . . . . . . . . . . . . . . . . . 146

7.8 Raumkomplexitat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

7.9 Raumkomplexitat von mehr-Band-TM . . . . . . . . . . . . . . . . . . 157

Page 5: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

Kapitel 1

Endliche Automaten

kapEA

In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesemSkript untersuchen werden: die endlichen Automaten. Wie bei den realistischerenModellen (Kellerautomaten, Turingmaschinen, usw.), die in den folgenden Kapi-teln behandelt werden, gibt es auch zwei Typen von endlichen Automaten: die, dieformale Sprachen akzeptieren und die, die Funktionen berechnen.

Eine formale Sprache ist nichts anderes als eine Menge von Wortern, die uber einemAlphabet Σ gebildet werden, z. B. uber dem binaren Alphabet Σ = {0,1}. Siereprasentieren fur uns alle Entscheidungsprobleme.

Beispiel: Hat ein gegebener Graph G eine Clique von 14 Elementen?

Das ist ein Entscheidungsproblem: die Antwort auf jede Eingabe, die einen Gra-phen codiert, ist JA oder NEIN. Es gibt verschiedene Codierungsmoglichkeiten furGraphen uber dem Alphabet {0,1} (z. B. als Liste aller Knoten und Kanten oderals Adjazenzmatrix zwischen Knoten und Kanten), aber fur jede feste Codierungc laßt sich die Antwort auf die obige Frage auf folgende Weise ersetzen: L sei dieformale Sprache aller Codes der Graphen mit Antwort JA, also

L = { c(G)∣G ist ein Graph mit einer Clique von 14 Elementen} .

Wir fragen dann, ob ein gegebenes Wort zu der Sprache L gehort.

Diese einfache Formulierung ermoglicht es, dass wir uns weiterhin mit formalenSprachen anstatt Entscheidungsproblemen beschaftigen konnen. So mussen wir nichtmehr die verschiedenen Codierungen der Eingaben diskutieren, sondern konnen an-nehmen, dass vorher eine geeignete Codierung vereinbart wurde.

Nicht alle Probleme sind Entscheidungsprobleme, oft ist ein Ergebnis zu berechnen,anstatt eine Frage mit JA oder NEIN zu beantworten.

Beispiel: Gegeben ist ein Graph G, finde eine Clique mit 14 Elementen.

Was hier erwartet wird, ist eine Funktion f , die jedem binaren Wort w = c(G),wobei G ein Graph mit einer Clique von 14 Elementen ist, ein Wort f(w), das eineCodierung einer konkreten Clique ist, zuordnet. Auch die Berechnungsproblemehaben viel mit den formalen Sprachen zu tun – z. B. ist der Definitionsbereichunserer Funktion f genau die oben erwahnte formale Sprache L.

Wir werden also Maschinen untersuchen, die entweder formale Sprachen erkennenoder Funktionen zwischen formalen Sprachen berechnen. Wir beginnen mit densehr simplen, aber fur einige Anwendungen noch hinreichenden, endlichen Automa-

1

Page 6: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2 KAPITEL 1. ENDLICHE AUTOMATEN

ten. Ihre Theorie ist klarer als die der komplizierteren Maschinen, die wir spatereinfuhren.

Vorher geben wir noch kurz einige Grundbegriffe an, die im ganzen Skript einewichtige Rolle spielen.

1.1 Mathematische Grundbegriffe

(a) Mengen

Eine Menge kann durch eine Aufzahlung ihrer Elemente gegeben werden, z. B.:

• A = {2} – nur ein Element, 2,

• B = ∅ (leere Menge) – kein Element,

• C = {a, b, c,2}

oder durch eine erzeugende Eigenschaft P in der Form {x;x hat Eigenschaft P},z. B.:

• A = {x;x ist eine gerade Primzahl},

• ∅ = {x;x ≠ x}.

Fur unendliche Mengen gibt es nur die zweite Variante.

Wichtiges Beispiel:

• N bezeichnet die Menge aller naturlichen Zahlen.

In diesem Skript ist 0 eine naturliche Zahl, also

• N = {0,1,2, ...}.

Eine Teilmenge einer Menge A ist eine Menge B mit der Eigenschaft, dass

x ∈ B Ô⇒ x ∈ A.

Notation: B ⊆ A.

Wir benutzen die ubliche Notation fur die Mengenoperationen:

A ∪B Vereinigung,

A ∩B Durchschnitt,

A −B Komplement, A −B = {x;x ∈ A und x ∉ B},A ×B Kartesisches Produkt, A ×B = {(x, y);x ∈ A und y ∈ B}.

(b) Relationen und Funktionen

Eine Relation zwischen zwei Mengen A und B ist eine Menge R von Paaren (a, b),wobei a ∈ A und b ∈ B gilt. Wir sagen, dass a in Relation R zu b steht und schreibenaRb. Formal ist eine Relation R dasselbe wie eine Teilmenge von A × B. Im Fall

Page 7: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.1. MATHEMATISCHE GRUNDBEGRIFFE 3

A = B nennen wir R eine Relation auf der Menge A. Diese heißt reflexiv , fallsaRa fur alle a ∈ A gilt, und transitiv , falls

aus aRb und bRc folgt aRc (a, b, c ∈ A)

Fur jede Relation R auf der Menge A bezeichnen wir mit R∗ die kleinste reflexiveund transitive Relation, die R enthalt, die sogenannte reflexive transitive Hullevon R. Also gilt fur zwei Elemente a, b aus A:

aR∗b

genau wenna = b

oder

es gibt a = c1, c2, . . . , cn = b in A mit ciRci+1 fur i = 1, . . . , n − 1

Eine Funktionf ∶ A→ B

ist eine Relation f ⊆ A × B mit der Eigenschaft, dass es fur jedes Element a ∈ Agenau ein Element b ∈ B gibt, mit dem a in Relation steht; das bezeichnen wir wieublich mit

f(a) = b.A heißt der Urbildbereich oder Definitionsbereich und B der Wertebereich derFunktion f . Ein schwacherer Begriff ist der einer partiellen Funktion f ∶ A⇀ B:das ist eine Relation, die fur jedes Element a ∈ A hochstens ein Element b ∈ B hat,das in Relation zu a steht.

Funktionen nennen wir manchmal auch totale Funktionen, wenn wir betonen wollen,dass wir sie von den partiellen Funktionen unterscheiden.

Beispiel 1. Die Nachfolgerfunktion ist eine (totale) Funktion suc: N → N. DieVorgangerfunktion ist dagegen eine partielle Funktion pred: N→N, die durch

pred(n) = n − 1 fur alle n ≥ 1

definiert ist (und pred(0) ist nicht definiert).

Funktionen zweier Variablen lassen sich als (ubliche) Funktionen formalisieren, de-ren Definitionsbereich ein kartesisches Produkt ist. Also ist

f ∶ A ×B → C

eine Funktion, die Variablen aus A und B nimmt und ihnen Werte in C zuordnet.

(c) Worter

Eine nichtleere endliche Menge heißt auch Alphabet und ihre Elemente werdenauch Buchstaben genannt. Beispiel: das binare Alphabet ist die Menge mit zweiBuchstaben, 0 und 1.

Falls Σ ein Alphabet ist und n eine naturliche Zahl, so wird ein geordnetes n-Tupelvon Elementen aus Σ als Wort der Lange n uber dem Alphabet Σ bezeichnet. Wirschreiben die Worter, etwas informell, ohne Kommas oder Klammern einfach als

Page 8: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

4 KAPITEL 1. ENDLICHE AUTOMATEN

• a fur a ∈ Σ (Worter der Lange 1)

• ab fur a, b ∈ Σ (Worter der Lange 2)

usw.

Der Fall n = 0 entspricht dem leeren Wort , das mit

• ε

bezeichnet wird. Fur die Lange eines Wortes w schreiben wir

∣w∣,

z. B. ∣ε∣ = 0, ∣ab∣ = 2 usw.

Die Menge aller (endlichen!) Worter uber dem Alphabet Σ bezeichnen wir mit Σ∗.Beispiel: fur das binare Alphabet Σ = {0,1} gilt

Σ∗ = {ε,0,1,00,01,10,11,000, . . .}.

Die Konkatenation zweier Worter u = a1a2 . . . an und v = b1b2 . . . bm ist das Wortuv = a1a2 . . . anb1b2 . . . bm (ohne

”Lucke“ geschrieben, denn

”Lucke“ kann selbst ein

Symbol in Σ sein).

Vereinbarung. Weiter nehmen wir immer an, daß jedes Alphabet, das hier be-trachtet wird, die beiden Symbole

ε (leeres Wort) und # (Blankzeichen)

nicht als Elemente enthalt. Das vermeidet Unklarheiten des Typs, ob εε die Kon-katenation zweier leerer Worter ist (also εε = ε), oder ein Wort der Lange 2 – diezweite Variante schließen wir hier aus.

Daruberhinaus nehmen wir an, dass fur zwei Elemente a ≠ b des Alphabets, bkein Wort mit Prafix a ist. Also ist beispielsweise {0,1,13} kein Alphabet wahrend{0,1,24} eines ist.

(d) Formale Sprachen

Eine formale Sprache ist eine Menge von Wortern. Genauer: eine formale Spracheuber dem Alphabet Σ ist das gleiche wie eine Teilmenge L der Menge Σ∗,

L ⊆ Σ∗.

Beispiel: Σ∗ selbst ist eine formale Sprache, aber auch ∅ ist eine. Die Menge L allerbinaren Codierungen der Graphen, die eine Clique mit 14 Elementen haben, ist eineformale Sprache L ⊆ {0,1}∗.

Page 9: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.2. DEFINITION DER ENDLICHEN AUTOMATEN 5

(e) Graphen

Ein gerichteter Graph ist eine Menge V (von Knoten) zusammen mit einerRelation E auf V , d.h. E ⊆ V ×V . Die Paare (a, b) ∈ E heißen Kanten des Graphen.Beispiel:

●b

��●a

??

●c

__

mm

bezeichnet den gerichteten Graphen mit den Knoten a, b, c und den Kanten (a, b),(b, c), (c, b) und (c, c). Falls die Kanten oder Knoten mit Symbolen eines AlphabetsM bezeichnet werden, sprechen wir von markierten Graphen. Konkreter ist einkantenmarkierter Graph ein Tripel (V,E, f), wobei (V,E) ein gerichteter Graphund f ∶ E →M eine Funktion ist. Beispiel:

●b

0��●a

0

??

●c

1

__

1

mm

bezeichnet den obigen Graphen mit der Markierung

f ∶ V → {0,1}

mit dem Wert 0 fur (a, b) und (b, c) und dem Wert 1 fur (b, c) und (c, c).

1.2 Definition der endlichen AutomatensectDEA

Reale Rechner bestehen aus einem Prozessor, der sich in einem von endlich vie-len Zustanden befindet, einem Speicher und einer Ein-/Ausgabe-Einheit. Falls derSpeicher beliebig erweitert werden kann, betrachten wir ihn als potentiell unendlich.Wenn aber keine Erweiterung moglich ist, konnen wir die Zustande des Speichersauch als globale Zustande des Rechners betrachten. Dann hat der Rechner also nurendlich viele Zustande. Wir befassen uns jetzt mit einem solchen Rechner, der nochdazu

• die Eingabe mit einem”read-only“ Kopf bearbeitet, der sich systematisch von

links nach rechts bewegt und

• das Ausgabealphabet {JA, NEIN} hat, so dass wir einfach zwei Typen vonZustanden unterscheiden: die finalen Zustande (Antwort JA) und die nichtfinalen (Antwort NEIN).

Mathematisch laßt sich solch eine einfache Maschine dadurch beschreiben, dass wirfur jedes Paar

(q, s) q - Zustand, s - Eingabesymbol

den nachsten Zustandδ(q, s)

bestimmen. Sei also Q die Menge aller Zustande und Σ das Eingabealphabet. Dannbeschreibt die Ubergangsfunktion

δ ∶ Q ×Σ→ Q

Page 10: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

6 KAPITEL 1. ENDLICHE AUTOMATEN

die Arbeitsweise der Maschine. Wir gehen davon aus, dass die Bearbeitung derEingabe immer in demselben (initialen) Zustand beginnt. Das fuhrt zur folgendenDefinition:

Definition. Ein deterministischer endlicher Automat (DEA) ist ein Funf-tupel

A = (Q,Σ, δ, q0, F ),wobei

Q eine endliche Zustandsmenge,

Σ ein Eingabealphabet,

δ ∶ Q ×Σ→ Q die Ubergangsfunktion,

q0 ∈ Q der Initialzustand

und

F ⊆ Q die Menge aller akzeptierender (oder finaler) Zustande

ist

Notation. Statt δ(q, s) = q′ schreibt man auch

q s // q′

oder(q, s)→ q′.

Wir benutzen auch� � // , um den Initialzustand und die finalen Zustande zu

kennzeichnen:

� � // q Initialzustand

q Finaler Zustand

bspDEA Beispiel 1. SeiA = ({q0, q1, q2},{0,1}, δ, q0,{q2})

der Automat, dessen Ubergangsfunktion δ wie folgt definiert ist:

(q0,0)→ q0

(q0,1)→ q1

(q1,0)→ q2

(q1,1)→ q1

(q2,0)→ q1

(q2,1)→ q0

Diesen Automaten kann man durch den folgenden markierten Graphen reprasen-tieren:

� � // q01 //

0

q1

1

0~~q2

1

``0>>

Page 11: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.2. DEFINITION DER ENDLICHEN AUTOMATEN 7

Das Wort 0110 wird akzeptiert, denn der Initialzustand q0 wird dadurch in einenfinalen Zustand uberfuhrt.

q00Ð→ q0

1Ð→ q11Ð→ q1

0Ð→ q2 ∈ F.

Das Wort 001100 wird nicht akzeptiert.

Definition. 1. Eine Konfiguration eines DEA A = (Q,Σ, δ, q0, F ) ist ein Paar(q,w), wobei q ein Zustand und w ein Wort uber Σ ist (der momentane Zu-stand und der noch nicht gelesene Teil des Eingabewortes). Konfigurationen(q0,w) heißen Initialkonfigurationen und Konfigurationen (q, ε) heißen Fi-nalkonfigurationen .

2. Fur jede Konfiguration (q,w) mit w = s1s2 . . . sn heißt die Konfiguration

(q′,w′) mit q′ = δ(q, s1) und w′ = s2 . . . sn

die Folgekonfiguration , und wir bezeichnen dies mit dem Symbol

(q,w) ⊢ (q′,w′).

Kurzer:(q, s1s2 . . . sn) ⊢ (δ(q, s1), s2 . . . sn).

bspDEA0110

Beispiel 1 (Fortsetzung) Der Automat aus Beispiel 1 berechnet das Wort 0110durch die folgende Reihe von Konfigurationen:

(q0,0110) ⊢ (q0,110) ⊢ (q1,10) ⊢ (q1,0) ⊢ (q2, ε)

Bemerkung 1. Das kartesische Produkt Q×Σ∗ ist also die Menge aller moglichenKonfigurationen und ⊢ (Folgekonfiguration) ist eine Relation auf dieser Menge. Wirbezeichnen durch ⊢∗ die reflexive und transitive Hulle dieser Relation. Fur zweiKonfigurationen (q,w) und (q′,w′) aus Q ×Σ∗ gilt demzufolge

(q,w) ⊢∗ (q′,w′),

wenn eine Berechnung, die in der Konfiguration (q,w) anfangt, endet in der Kon-figuration (q′,w′). Dies gilt genau dann, wenn entweder (q,w) = (q′,w′) ist oderKonfigurationen (q1,w1), . . . , (qn,wn) existieren, so dass (q,w) = (q1,w1), (q′,w′) =(qn,wn) und

(q1,w1) ⊢ (q2,w2) ⊢ . . . ⊢ (qn,wn)gilt. Die Liste der Konfigurationen

(qi,wi), i = 1, . . . , n

heißt Berechnung von (q′,w′) aus (q,w).

Definition. Ein DEA A = (Q,Σ, δ, q0, F ) akzeptiert ein Wort w uber Σ∗, falls dieInitialkonfiguration (q0,w) zu einer Berechnung mit Endkonfiguration (q, ε) fuhrt,wobei q ein finaler Zustand ist. Das heißt, falls es einen Zustand q ∈ F gibt mit

(q0,w) ⊢∗ (q, ε).

Die Sprache aller Worter, die A akzeptiert, wird mit L(A) bezeichnet und heißt dievon A akzeptierte Sprache . Kurz:

L(A) = {w ∈ Σ∗; es gibt q ∈ F mit (q0,w) ⊢∗ (q, ε)}

Page 12: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

8 KAPITEL 1. ENDLICHE AUTOMATEN

Beispiel 2. Ist eine Zahl gerade? Dies ist die Sprache aller Worter in Σ = {0,1, . . . ,9},die folgende Eigenschaften erfullen:

(a) die letzte Ziffer ist 0,2,4,6,8

(b) wenn die erste Ziffer 0 ist, dann ist die Wortlange 1

q10,1,...,9 // q2

0,1,...,9

� � // q0

0>>

1,3,5,7,9

$$

2,4,6,8 // q3

1,3,5,7,9

��q4

2,4,6,8

OO

Das Wort 123 wird wie folgt berechnet

(q0,123) ⊢ (q4,23) ⊢ (q3,3) ⊢ (q4, ε)

und nicht akzeptiert, weil der letzte Zustand in Q-F liegt.

B:sechs Beispiel 3. Die Sprache L ⊆ {0,1}∗ aller Worter mit einer geraden Anzahl von0’en und einer geraden Anzahl von 1’en wird von dem Automaten

� � // q0

1 //

0��

q1

1oo

0��

q2

1 //0

OO

q3

1oo

0

OO

akzeptiert.

Definition. Eine Sprache heißt regular , falls es einen DEA gibt, der sie akzeptiert.

bspRegTriv Beispiel 4. Σ∗,∅ und die Menge aller geraden Zahlen sind regular.

bspNichtReg Beispiel 5 (Eine nicht regulare Sprache). Uber dem Alphabet {a} definieren wirdie Sprache L = {ε, a, aaaa, . . .} aller Worter der Lange k2 (k = 0,1,2, . . .)Wir zeigen, dass jeder Automat A mit L ⊆ L(A) auch Worter außerhalb L akzep-tiert, also L ≠ L(A). Sei n die Anzahl der Zustande von A. Da n2 von A akzeptiertwird, gibt es einen

”Weg durch A“, der nach n2 Schritten in einem finalen Zustand

endet:

q0 − initial

q1 = δ(q0, a)q2 = δ(q1, a)⋮

qn2 = δ(qn2−1, a) − final.

Die Zustande qi, i = 0, . . . , n, sind nicht alle verschieden, da A nur n Zustande hatund hier n+1 Indizes auftreten. Daher existieren i und k mit 0 < k ≤ n und qi = qi+k:

Page 13: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.2. DEFINITION DER ENDLICHEN AUTOMATEN 9

� � // q0 // q1 // . . . // qi //

��

qi+k+1 // . . . // qn2

qi+k−1

66

qi+1

tt. . .

]]

Weil A das Wort an2

der Lange n2 = i + k + (n2 − i − k) akzeptiert, folgt, dass auch

an2+k mit n2 + k = i+ 2k + (n2 − i− k) von A akzeptiert wird. (In beiden Fallen wird

derselbe Weg durch A zuruckgelegt, im zweiten Fall wird der Zyklus qi, . . . , qi+k−1, qizweimal durchlaufen.) Es gilt aber: n2 < n2+k, da k > 0, und (n+1)2 > n2+n ≥ n+k,

da k ≤ n. Also liegt n2 + k zwischen n2 und (n + 1)2 und an2+k kann kein Wort der

Sprache L sein.

Beobachtung. Sei A ein DEA mit Eingabealphabet Σ.

beobOneStepAbl 1. Fur jedes Wort u uber Σ gilt:

aus (q,w) ⊢ (q′,w′) folgt (q,wu) ⊢ (q′,w′u).

In der Tat, fur w = s1s2 . . . sn haben wir

q′ = δ(q, s1) und w′ = s2 . . . sn.

Sei u = t1 . . . tm, dann gilt also

q′ = δ(q, s1) und w′u = s2 . . . snt1 . . . tm.

Das sagt genau, dass (q,wu) ⊢ (q′,w′u), weil wu = s1 . . . snt1 . . . tm.

2. Es gilt ebenfalls fur jedes Wort u, dass

aus (q,w) ⊢∗ (q′,w′) folgt (q,wu) ⊢∗ (q′,w′u).

Dies ist nur eine wiederholte Anwendung von 1.

Notation. Die Ubergangsfunktion δ ∶ Q ×Σ → Q konnen wir von Buchstaben ausΣ auf Worte aus Σ∗ erweitern: wir definieren δ∗ ∶ Q × Σ∗ → Q einem Paar (q,w)durch Induktionin der Lange n des Wortes w wie folgt:

n = 0: δ∗(q, ε) = q (keine Eingabe ⇒ keine Bewegung)

n + 1: hier w = vs und v hat lange n, deswegen ist δ∗(q, v) = q schon definiert. Wirsetzen δ∗(q, vs) = δ(q, s)

Diese Funktion δ∗ weist jeder Konfiguration (q,w) den Endzustand der Berechnungdes Eingabewertes w zu.

Jetzt konnen wir die Sprache L(A) noch kurzer definieren: es besteht aus allenWorten w mit

δ∗(q0,w) ∈ F.

Page 14: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

10 KAPITEL 1. ENDLICHE AUTOMATEN

1.3 Nichtdeterministische AutomatensectNEA

Nichtdeterministische Automaten sind wie endliche Automaten definiert, nur hatdie Ubergangsfunktion δ(q, s) mehrere Moglichkeiten. Kurz: δ ist keine Funktion,sondern eine Relation zwischen Q ×Σ und Q:

Beispiel 1. Lexikale Analyse von Positionen. Nehmen wir alle binaren Worter, dieauf Position 2 von rechts eine 1 haben. Dafur haben wir den Automat

� � // q0

0,1

1 // q1

0,1 // q2

Der ist aber nicht deterministisch: aus q0 kann Eingabe 1 zu q0 oder q1 fuhren usw.

Analog fur

L(n) = alle binaren Worter mit 1 auf Position n von rechts.

Der Automat

� � // q0

0,1

1 // q1

0,1 // q20,1 // . . . 0,1 // qn

hat n + 1 Zustande und akzeptiert die erwunschte Sprache. Es gibt auch DEA’sdafur, aber diese sind sehr kompliziert – und sehr groß: L(n) braucht mindestens 2n

Zustande, siehe Beispiel 2 in 1.8.

Beispiel 2. Textsuche. Eine haufig benotigte Aufgabe im Internet ist die Unter-suchung von Dokumenten auf gewisse Worter (sogenannte Schlusselworter). Dieswird mit NEAs durchgefuhrt. Nehmen wir an, dass nur ein Schlusselwort a1 . . . akim Alphabet Σ (= ASCII-Zeichen, zum Beispiel) gegeben wird. Hier ist unser Au-tomat:

� � //

Σ

a1 // a2 // // . . . ak //

Bei mehreren Schlusselwortern ist der NEA analog. Konkret fur Schlusselworter:web und ebay:

� � // w //

Σ

e��

e // b //

b // a // y //

Definition. Ein nichtdeterministischer endlicher Automat (NEA) ist einQuintupel A = (Q,Σ, δ, q0, F ), wobei Q, Σ und F ⊆ Q endliche Mengen sind, δ ⊆(Q ×Σ) ×Q eine Relation ist und q0 ∈ Q.

bspNEA Beispiel 3.

� � // q0

1

0

��

0

q1

1//

0

UUq2

1

UU

Page 15: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.3. NICHTDETERMINISTISCHE AUTOMATEN 11

Das ist der nichtdeterministische Automat mit Σ = {0,1}, Zustanden q0 (initial), q1

und q2 (final) und den angedeuteten Ubergangen.

Bemerkung 1. 1. Wir verwenden dieselbe Notation wie im deterministischenFall. Speziell schreiben wir

q s // q′ oder (q, s)→ q′

statt (q, s)δq′. Hier konnen jedoch zwei verschiedene Ubergangsregeln (q, s)→q′ dieselbe linke Seite haben (und umgekehrt muß fur ein Paar (q, s) keineRegel mit dieser linken Seite vorhanden sein).

2. Auch Konfigurationen sind, wie im deterministischen Fall, als Paare (q,w)in Q × Σ∗ definiert. Fur jede Konfiguration (q,w) mit w = s1s2 . . . sn gibt esim allgemeinen mehrere Folgekonfigurationen: alle Konfigurationen (q′,w′),wobei (q, s1)→ q′ und w′ = s2 . . . sn. Wir benutzen wieder das Symbol ⊢, also

(q, s1s2 . . . sn) ⊢ (q′, s2 . . . sn) fur alle q′ ∈ Qmit (q, s1)→ q′.

Die reflexive und transitive Hulle dieser Relation wird wieder mit ⊢∗ bezeich-net.

3. Wichtige Frage: wann wird ein Wort akzeptiert? Jedes Eingabewort w hatnaturlich verschiedene Berechnungen. Falls wenigstens eine Berechnung ineinem finalen Zustand endet, sagen wir, dass der NEA das Wort w akzeptiert:

Definition. Fur einen NEA A wird ein Wort w uber Σ akzeptiert , falls es einenfinalen Zustand q mit (q0,w) ⊢∗ (q, ε) gibt. Die Menge L(A) aller akzeptiertenWorter heißt die von A akzeptierte Sprache .

bspNEAakzeptiert

Beispiel 1 (Fortsetzung) Der nichtdeterministische Automat aus Beispiel 3 ak-zeptiert die Sprache L aller Worter, die entweder

1. genau eine 0 enthalten, oder

2. die Form 1i0j1k mit i ≥ 0, j > 0, k > 0 haben.

Kann diese Sprache von einem deterministischen Automaten mit nur drei Zustandenakzeptiert werden? NEIN (Beweis spater, siehe ??, Beispiel ??)

Mit 23 = 8 Zustanden geht es:

Notation. Fur jede Menge Q bezeichnet PQ (die Potenzmenge von Q) die Mengealler Untermengen von Q. Beispiel: P{0,1} = {∅,{0},{1},{0,1}}.

Konstruktion. Sei A ein NEA. Wir konnen einen DEA A′ mit derselben Sprachekonstruieren:

L(A) = L(A′).

Die Idee ist, dass jede Gruppe M von Zustanden von A (das heißt, jede Untermen-ge M ⊆ Q) als ein einziger Zustand des neuen Automaten betrachtet wird. Dannergibt die nichtdeterministische Ubergangsrelation δ die folgende deterministischeUbergangsfunktion δ′: fur jeden Zustand von A′, das heißt jede Menge M ⊆ Q undjedes Eingabesymbol s ∈ Σ, bezeichnen wir durch

δ′(M,s)

Page 16: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

12 KAPITEL 1. ENDLICHE AUTOMATEN

die Menge aller Zustande q , fur die gilt (q, s)→ q (in δ), wobei q in M liegt. Kurzer:

defdeltastrichdefdeltastrich (1) δ′(M,s) = {q ∈ Q; es gibt q ∈M mit (q, s)δq}.

Also ist A′ der folgende deterministische Automat

A′ = (2Q,Σ, δ′,{q0}, F ′),

wobei δ′ durch (1) (fur alle M ∈ 2Q und s ∈ Σ) definiert ist, {q0} der Initialzustandist und F ′ genau die Zustande von A′ enthalt, in denen wenigstens ein Finalzustandvon A liegt:

F ′ = {M ; M ⊆ Q und M ∩ F ≠ ∅}.

Beispiel 1 (Fortsetzung) Der DEA, der Beispiel 1 darstellt, hat 8 = 23 Zustande:

{q0, q1, q2}0

xx

1

&&� � //{q0}

1

0 // {q1, q2}

0��

1 // q2

1

��

{q0, q2}

1

��0oo

{q0, q1}

1

OO

0//{q1}

1

88

0,1

UU

satzPotenzKonstr Satz 1. Die Automaten A und A′ akzeptieren dieselbe Sprache.

Beweis. Fur jedes Wort s1 . . . sn uber Σ bezeichnen wir durch M0,M1, . . . ,Mn

die Zustande der Berechnung des Wortes im Automat A′ ∶ M0 = {q0} und Mi+1 =δ′(Mi, si+1). Wir beweisen, dass

potenzkonstrbewpotenzkonstrbew (2)ein Zustand q von A genau dann in Mn liegt, wenn eine Berechnung vons1 . . . sn durch A existiert, die in q endet.

Damit wird bewiesen, dass, falls s1 . . . sn in L(A′) liegt (falls also Mn ∈ F ′ einenfinalen Zustand von A enthalt), eine Berechnung durch A existiert, die in einemfinalen Zustand endet – also akzeptiert auch A das Wort s1 . . . sn. Umgekehrt gibtes, falls A das Wort akzeptiert, eine Berechnung, die in einem finalen Zustandendet. Dieser Zustand ist, aufgrund von (2), ein Element von Mn – das beweist,dass Mn ∈ F ′, also akzeptiert A′ das Wort s1 . . . sn.

Der Beweis von (2) erfolgt durch Induktion uber die Lange n des gegebenen Wor-tes:

n = 0 ∶ Hier ist Mn = {q0} und eine Berechnung von ε durch A endet immer inq0.

n→ n + 1 ∶ Da Mn+1 = δ′(Mn, sn+1), sagt uns (1), dass Mn+1 einen Zustand q genaudann enthalt, wenn es einen Zustand q in Mn gibt mit (q, sn+1)δq. Beider Induktionsvoraussetzung sind diese Zustande q genau die, die in Adurch eine Berechnung von s1 . . . sn erreicht werden konnen. Hier folgt(2) also aus der Beobachtung, dass die Berechnung von s1 . . . snsn+1

einen Zustand q genau dann erreicht, wenn es einen Zustand q gibt, derdurch die Berechnung von s1 . . . sn erreicht werden kann und (q, sn+1)δqerfullt.

Bemerkung 2. Bei vielen Anwendungen ist es moglich, einen viel kleineren DEAzu konstruieren indem wir uns auf die Zustandem die vom Initialzustand durch einEingabewort erreichbar sind, beschranken.

Page 17: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.3. NICHTDETERMINISTISCHE AUTOMATEN 13

Definition. Ein Zustand q eines DEA A = (Q,Σ, δ, q0, F ) ist erreichbar , falls esein Wort w in Σ∗ mit (q0,w) ⊢∗ (q, ε) gibt. Der folgende DEA

Ar = (Qr,Σ, δr, q0, F ∩Qr)

wobei Qr die Menge aller erreichbaren Zustande von A ist und δr die Restriktionvon δ ist, heißt der erreichbare Teil von A. Falls A = Ar ist, also jeder Zustandvon A erreichbar ist, heißt A ein erreichbarer Automat .

bemErreichbarAbg Bemerkung 3. Falls q erreichbar ist, ist auch der Zustand q′ = δ(q, s) (fur jedess ∈ Σ) erreichbar, denn

aus (q0,w) ⊢∗ (q, ε) folgt (q0,ws) ⊢∗ (q, s) ⊢ (q′, ε).

Wir erhalten also eine Funktion δr ∶ Qr ×Σ→ Qr als Restriktion von δ ∶ Q×Σ→ Q.

bemErreichbarEqiv Bemerkung 4. Es gilt: A und Ar sind aquivalent, d.h. sie akzeptieren dieselbeSprache. Es ist namlich leicht zu sehen, dass (q0,w) ⊢∗ (q, ε) in A genau dann gilt,wenn es auch in Ar gilt.

Beispiel 1 (Fortsetzung) Die obere Konstruktion des DEA mit 8 Zustanden istnicht erreichbar: die Zustande {q0, q1} und {q0, q1, q2} konnen weggelassen werden.

Beispiel 4. Im Automat A

q1

0

1

��

� � // q0

0>>

1

q3

0``

1~~q2

0,1

UU

ist der Zustand q3 nicht erreichbar. Alle anderen Zustande sind aber erreichbar,deswegen ist Ar der folgende Automat

q1

0

1

��

� � // q0

0>>

1 q2

0,1

UU

Page 18: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

14 KAPITEL 1. ENDLICHE AUTOMATEN

Beispiel 5. Fur den NEA

q3

q1

1>>

0// q4

� � // q0

1>>

1 q2

1

0 // q5

q6

konstruieren wir einen aquivalenten DEA als den erreichbaren Teil der obigen Kon-struktion:

� � // {q0} 1 //

0

��

{q1, q2}

1

zz0

��{q3, q6}

0,1

��

`

OO

{q4, q5}

0,1xx∅0,1 88

Dieser hat also 5 (und nicht 27 = 128) Zustande.

Bemerkung 5. Fur manche Anwendungen ist es geschickt, auch spontane Ubergange,d.h. Ubergange ohne Eingabe, zu erlauben. Dazu benutzen wir ε als ein Spezialsym-bol, das

”keine Eingabe“ bezeichnet. Jetzt konnen wir den spontanen Ubergang von

q nach q′ im selben Stil wie die anderen Ubergange (q, s)→ q′ bezeichnen, namlichals

q ε // q′ oder (q, ε)→ q′.

Genauer: die Ubergangsrelation δ ⊆ (Q × Σ) × Q wird jetzt durch eine Relationδ ⊆ (Q× (Σ∪ {ε}))×Q ersetzt. Die spontanen Ubergange heißen auch ε-Ubergangeund die entsprechenden Maschinen ε-NEAs:

Definition. Ein nichtdeterministischer endlicher Automat mit spontanenUbergangen (ε-NEA) ist ein Quintupel A = (Q,Σ, δ, q0, F ), wobei Q, Σ undF ⊆ Q endliche Mengen sind, δ ⊆ (Q × (Σ ∪ {ε})) ×Q eine Relation ist und q0 ∈ Q.

Bemerkung 6. Fur jeden ε-NEA definieren wir, wie zuvor, eine Konfigurationals ein Paar (q,w) in Q × Σ∗. Die Folgekonfigurationen einer Konfiguration (q,w)sind

1. wie bisher: alle Konfigurationen (q′, s2 . . . sn), wobei w = s1s2 . . . sn und (q, s1)→q′,

und

2. alle Konfigurationen (q′,w), wobei (q, ε)→ q′ – also alle Konfigurationen, diedurch spontane Ubergange den Zustand andern, ohne das restliche Eingabe-wort zu beeinflussen.

Page 19: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.3. NICHTDETERMINISTISCHE AUTOMATEN 15

Kurz: ⊢ ist die kleinste Relation auf die Menge Q ×Σ∗ aller Konfigurationen mit

(q, s1s2 . . . sn) ⊢ (q′, s2 . . . sn) falls (q, s1)→ q′

und

(q, s1s2 . . . sn) ⊢ (q′, s1s2 . . . sn) falls (q, ε)→ q′

Die Bedeutung von ⊢∗ ist wie oben, ein Wort w uber Σ wird akzeptiert, falls eseinen finalen Zustand q gibt mit (q0,w) ⊢∗ (q, ε).

NEAS0u1s Beispiel 6. Der folgende ε-NEA

� � // q00 //

ε

q1

1��

q2

ε

OO

akzeptiert das leere Wort, denn es gibt die folgende Berechnung

(q0, ε) ⊢ (q2, ε) ⊢ (q1, ε).

Auch 01 wird aufgrund der Berechnung

(q0,01) ⊢ (q1,1) ⊢ (q2, ε) ⊢ (q1, ε)

akzeptiert.

Bemerkung 7. Speziell gilt fur Zustande q und q′

(q, ε) ⊢∗ (q′, ε)

genau dann wenn es eine Berechnung wie folgt gibt:

q ε // q1ε // q2 // . . . ε // qi

ε //qi+1ε //qi+2 // . . . ε // q′

Wir sagen, dass q′ in der ε-Hulle von q liegt.

Definition. Zwei Automaten A und A′ (DEA, NEA, oder ε-NEAs) heißen aqui-valent , falls sie dieselbe Sprache akzeptieren, das heißt, L(A) = L(A′).

Konstruktion. Fur jeden ε-NEA A = (Q,Σ, δ, q0, F ) konstruieren wir einen aqui-valenten ε-NEA: wir lassen Q und q0 unverandert und definieren

A = (Q,Σ, δ, I , F )

wie folgt: in δ haben wir einen Ubergang

q s // q′

genau dann wenn q′ in der ε-Hulle eines Zustandes q liegt, fur den der Ubergang

q s // q

vorhanden ist. Und

F =⎧⎪⎪⎨⎪⎪⎩

F ∪ {q0} wenn die ε-Hulle von q0 einen Zustand aus F enthalt

F sonst.

Satz 2. Die Automaten A und A sind aquivalent.

Page 20: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

16 KAPITEL 1. ENDLICHE AUTOMATEN

Beweis.(a) Sei w ein Wort, dass A akzeptiert. Falls w = ε, folgt aus der Definition von F ,dass q0 final in A ist, also akzeptiert auch A das leere Wort. Falls w = s1s2 . . . sn, n >0, bedeutet das, dass es einen finalen Zustand q ∈ F gibt und eine Berechnung inA der Form

BerInABerInA (3)� � // q0

ε // . . . ε // s1 // ε // // . . . ε // sn // ε // ε // . . . // q

Bezeichnen wir mit qi den Zustand, den A nach der Eingabe si erreicht (i = 1, . . . , n),dann gilt in A:

q0s1 // q1

q1s2 // q2

qn−1sn // qn , sogar qn−1

sn // q

Also haben wir eine Berechnung in A

BerInAsBerInAs (4)� � // q0

s1 // q1s2 // . . . sn // q

und da q ∈ F , ist das Wort s1s2 . . . sn von A akzeptiert.

(b) Sei w ein Wort, das A akzeptiert. Falls w = ε, bedeutet das, dass q0 ∈ F .Also entweder q0 ∈ F (dann akzeptiert A naturlich ε) oder q0 ∈ F − F und Aakzeptiert ε aufgrund der Definition von F . Falls w = s1s2 . . . sn, n > 0, haben wireine Berechnung (4) in A mit q ∈ F . Daraus folgt, dass wir in A eine Berechnung (3)haben. Falls q ∈ F , akzeptiert also A das Wort w = s1s2 . . . sn. Falls q ∈ F − F , gilt:q = q0, und A akzeptiert ε. Das letzte bedeutet, dass es einen Finalzustand q1 ∈ Fgibt mit der folgenden Berechnung:

� � // q0ε // ε // . . . ε // q1

Diese Berechnung kann, da q = q0, an die von (3) angeknupft werden, und wir sehen,dass (q0, s1 . . . sn, ) ⊢∗ (q1, ε). Daraus folgt, dass A das Wort s1s2 . . . sn akzeptiert.

1.4 Regulare AusdruckesectReg

Wir wollen jetzt die regularen Sprachen (siehe Abschnitt 1.2) charakterisieren.

Notation. Wir verwenden die folgenden Operationen fur Sprachen L ⊆ Σ∗:

1. Vereinigung

L1 ∪L2 – ist die Sprache aller Worter, die in L1 oder L2 liegen.

2. Konkatenation

L1 ⋅L2 (oder nur L1L2)

ist die Sprache aller Worter w1w2 mit w1 ∈ L1,w2 ∈ L2.

Falls L1 = L2 = L, schreiben wir L2 statt L ⋅L (analog L3 usw.).

Page 21: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.4. REGULARE AUSDRUCKE 17

3. Iteration (oder Kleenescher Stern)

L∗ = {ε} ∪L ∪ (L ⋅L) ∪ (L ⋅L ⋅L) ∪ . . .

ist die Sprache aller Worter w1w2 . . .wn mit w1, . . . ,wn ∈ L (n ∈N)(inklusive ε fur den Fall n = 0); wir benutzen auch

L+

fur die Sprache aller Worter w1w2 . . .wn mit w1, . . . ,wn ∈ L und n ≥ 1.

4. Komplement

L = Σ∗ −L.

Beispiel 1. Fur L1 = {00} und L2 = {1,101} gilt

L1 ∪L2 = {00,1,101}L1 ⋅L2 = {001,00101}

L∗1 = {ε,00,0000, . . .}.

satzRegAbgPlusCat Satz 1. Falls L1 und L2 regulare Sprachen sind, sind auch die Sprachen L1 ∪ L2

und L1 ⋅L2 regular.

Beweis. Fur Li (i = 1,2) gibt es nach Definition einen DEA Ai = (Qi,Σ, δi, q0i, Fi),der Li akzeptiert. Wir konnen ohne Beschrankung der Allgemeinheit annehmen,dass die Zustandsmengen Q1 und Q2 disjunkt sind.

1. Regularitat von L1∪L2: die folgende”parallele Komposition“ von A1 und A2:

● q01 F1

● q02 F2

q0

ε

::

ε$$

� � //

akzeptiert die Sprache L(A1) ∪L(A2) = L1 +L2. Formal ist dies der ε-NEA

A = (Q1 ∪Q2 ∪ {q0},Σ, δ, q0, F1 ∪ F2),

wobei q0 ∉ Q1 ∪Q2 und δ durch die folgenden Ubergangsregeln definiert wird:

E:fuenfE:fuenf (1) (q, s)→ δi(q, s) fur alle q ∈ Qi, i = 1,2, s ∈ Σ

und(q0,#)→ q10, (q0,#)→ q20.

2. Regularitat von L1 ⋅L2: die folgende”serielle Komposition“ von A1 und A2:

● q01 F1 ● q02 F2� � // ε //

ε

,,

ε

22

akzeptiert die Sprache L(A1) ⋅L(A2) = L1 ⋅L2. Formal ist dies der ε-NEA

A = (Q1 ∪Q2,Σ, δ, q01, F2),

wobei δ durch (1) und (q,#)→ q02 fur alle q ∈ F1 definiert wird.

Page 22: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

18 KAPITEL 1. ENDLICHE AUTOMATEN

kor:finiteregular Folgerung 1. Jede endliche Sprache ist regular.

Beweis. Fur L = {w1, . . . ,wn} gilt: L ist die Vereinigung der Sprachen Li = {wi},und Li ist die Konkatenation der Sprachen Lij = {sj}, falls wi = s1 . . . sk oderLi = {ε}. Die Sprache {sj} bzw. {ε} sind regular: siehe die folgenden NEAs:

� � // sj // und� � // Daher ist L regular.

satzRegAbgStar Satz 2. Falls L eine regulare Sprache ist, sind auch L∗ und L+ regular.

Beweis. Der folgende”Feedback“ eines L akzeptierenden AutomatenA = (Q,Σ, δ, q0, F ):

● q0 F

ε

FF� � //

akzeptiert die Sprache L+. Formal definieren wir den ε-NEA A′ = (Q,Σ, δ′, q0, F ),wobei δ′ die ursprungliche Ubergangsfunktion mit den zusatzlichen spontanen Ubergangen

(q, ε)→ q0 fur alle q ∈ F

ist. Es gilt L(A′) = L(A)+ = L+.

Der Fall L∗ = L+ ∪ {ε} folgt aus Satz 1 und Folgerung 1.

l00p11s Beispiel 2. Die Sprache L aller Worter in {0,1}∗, in denen jeder Buchstabe wie-derholt wird, d. h.

L = ({11} ∪ {00})∗,wird von dem folgenden Automaten akzeptiert:fur 11 haben wir

� � // ● 1 // ● 1 // ●

analog fur {00}. Die parallele Komposition dieser Automaten:

● 1 // ● 1 // ●

� � // ●

ε

@@

ε�� ●

0// ●

0// ●

akzeptiert die Sprache {11} ∪ {00}. Jetzt machen wir den Feedback mit q0 final:

● 1 // ● 1 // ●

ε

��� � // ●

ε

@@

�

� //

●0// ●

0// ●

ε

SS

Dieser Automat akzeptiert die Sprache L.

Page 23: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.4. REGULARE AUSDRUCKE 19

Definition. Ein regularer Ausdruck uber einem Alphabet Σ = {s1, . . . , sn} istein Ausdruck mit den Operationen +, ⋅, ∗, die auf Buchstaben s1, . . . , sn und auf dieSymbole ε und ∅ angewendet werden. Genauer: die regularen Ausdrucke r werdendurch BNF wie folgt definiert:

r ∶∶= s1 ∣ . . . ∣ sn ∣ ε ∣∅ ∣ (r + r) ∣ (rr) ∣ (r∗)

Jeder regulare Ausdruck reprasentiert eine Sprache:

si reprasentiert {si}, die Sprache, die nur das Wort si enthalt

ε reprasentiert {ε}, die Sprache, die nur das leere Wort enthalt

∅ reprasentiert ∅ (kein Wort)

L1 +L2 reprasentiert die Vereinigung

L1L2 reprasentiert die Konkatenation

L∗ reprasentiert die Iteration

(L) reprasentiert dasselbe wie L.

Konvention 3. Wie in der Arithmetik bindet ● (Konkatenation) starker als +.Dies erlaubt uns viele uberflussige Klammern wegzulassen.

Beispiel 3. Die Sprache aller Worter, die entweder mit 11 beginnen oder enden,wird durch 11(0 + 1)∗ + (0 + 1)∗11 reprasentiert.

Beispiel 4. Fur jede endliche Sprache L = {s1s2 . . . sn, t1t2 . . . tm, . . . , u1u2 . . . uk}gibt es einen regularen Ausdruck, der L reprasentiert:

s1s2 . . . sn + t1t2 . . . tm + ⋅ ⋅ ⋅ + u1u2 . . . uk.

Folgerung 2. Jede Sprache, die durch einen regularen Ausdruck reprasentiert wird,ist regular.

Beweis. Die trivialen Falle si, ε und ∅ reprasentieren regulare Sprachen – sieheFolgerung 1. Fur kompliziertere regulare Ausdrucke wissen wir schon aus den Satzen1 und 2, dass die Operationen +, ⋅, ∗ die Regularitat erhalten.

Satz 4 (Kleenescher Satz). Eine Sprache ist genau dann regular, wenn sie durcheinen regularen Ausdruck reprasentiert werden kann.

Beweis. Dies ist ein konstruktiver Beweis: fur jeden DEA, A, konstruieren wireinen regularen Ausdruck, der L(A) reprasentiert. Seien q0 (initial), q1, . . . , qn alleZustande von A. Wir bezeichnen mit Lij die Sprache aller Worter, die qi nach qjuberfuhren, also

w ∈ Lij ⇐⇒ (qi,w) ⊢∗ (qj , ε).Wenn wir einen regularen Ausdruck fur jede Sprache Lij finden, sind wir fertig, dafalls qji , qj2 , . . . qjm alle finalen Zustande sind, gilt

L(A) = L0j1 ∪L0j2 ∪ ⋅ ⋅ ⋅ ∪L0jm .

Um einen regularen Ausdruck fur Lij zu finden, fuhren wir noch eine”Verfeinerung“

dieser Sprache ein: wir bezeichnen mit

Lkij (k = 0, . . . , n + 1)

die Sprache aller Worter w = s1 . . . sn in Lij :

qis1 // s2 // . . .

sr−1 // sr // qj

Page 24: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

20 KAPITEL 1. ENDLICHE AUTOMATEN

wo die inneren (nicht markierten) Zustande nur Indizes kleiner als k benutzen. D.h.,jeder innere Zustand ist qd fur d < k. Z.B. L0

ij erlaubt gar keinen inneren Zustand:

L0ij besteht aus (a) s ∈ Σ mit qi

s //qj und (b) ε wenn i = j.Es ist klar, dass

Lij = Ln+1ij .

Es genugt also zu zeigen, wie jede Sprache Lkij (fur beliebige i, j und k) durch einenregularen Ausdruck reprasentiert wird kann. Das beweisen wir durch Induktion uberk:

k = 0 ∶ Fur L0ij mit i ≠ j ist der regulare Ausdruck die Summe aller s mit

δ(qi, s) = qj . Wenn i = j kommt noch der Summand ε dazu.

k → k + 1 ∶ Fur jedes Wort w in Lk+1ij bezeichnen wir mit s die Zahl aller inneren

Zustande, die qk gleich sind. Falls s = 0 ist, liegt w in Lkij . Falls s > 0,konnen wir das Wort so in s Worter w = w1w2 . . .ws zerlegen, dass dieBerechnung des ersten Teils w1 den Zustand qi zum ersten Mal nach qkuberfuhrt (also liegt w1 in Lkik), die Berechnung von w2 von der erstenzur zweiten

”Begegnung“ mit qk fuhrt (also liegt w2 in Lkkk), analog

w3, . . . ,ws−1 und ws uberfuhrt den Zustand qk beim letzten Auftretennach qj (also liegt ws in Lkkj). Beispiel: s = 2.

W1³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ

W2³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ

W3³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ

qi // . . . // qk // . . . // qh // . . . // qj

Es folgt, dass

entweder w ∈ Lkij oder w ∈ Lkik ⋅ (Lkkk)∗ ⋅Lkkj .

Umgekehrt ist es leicht zu sehen, dass alle Worter aus Lkik ⋅ (Lkkk)∗ ⋅Lkkjin Lk+1

ij liegen. Es gilt also

rekLijkrekLijk (*) Lk+1ij = Lkij ∪Lkik ⋅ (Lkkk)∗ ⋅Lkkj .

Das ergibt einen regularen Ausdruck fur Lk+1ij aufgrund von regularen

Ausdrucken fur Lkij (Induktionsvoraussetzung).

Beispiel 5. Wir beschreiben einen regularen Ausdruck fur die Sprache, die derfolgende Automat akzeptiert:

� � // q0

a //

b

UUq1

boo

a

UU

Wir suchenL(A) = L2

01.

Erst berechnen wir L0ij

L0ij j = 0 1

i = 0 ε + b a1 b ε + a

Dann L1ij = L0

ij +L0i0(L0

00)∗L0oj . Zum Beispiel

L100 = L0

00 +L000(L0

00)0L100 = ε + b + (ε + b)(ε + b)∗(ε + b) = b∗

Page 25: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.5. DER BRZOZOWSKY-DEA 21

Hier alle Ergebnisse:

L1ij j = s 1

i = 0 b∗ b∗a1 b∗ ε + b∗a

Zuletzt L201:

L201 = L1

01 +L101(L1

11)∗L111

= b∗a + b∗a(ε + b∗a)∗(ε + b∗a)= b∗a(ε + (ε + b∗a)+)= b∗a(ε + b∗a)∗

= (a + b)∗a

1.5 Der Brzozowsky-DEAsectABL

Hier charakterisieren wir regulare Sprachen als genau die, die nur endliche Ableitun-gen haben. Dies ermoglicht uns ein einfaches Beispiel einer nicht regularen Sprachezu zeigen. Die Ableitungen konnen fur eine Konstruktion von DEAs benutzt werden.Im nachsten Abschnitt zeigen wir, dass diese Konstruktion optimal ist.

Definition. Gegeben sei eine Sprache L ⊆ Σ∗ und ein Wort w ∈ Σ∗. Die Ableitungw−1L ist die Sprache aller Worter u mit wu ∈ L.

Bemerkung 1. L selbst ist eine Ableitung: man setze w = ε.

Beispiel 1. (1) Die Sprache L ⊆ {0,1}∗ aller Worter von gerader Lange hat dieAbleitung 0−1L von allen Wortern ungerader Lange. Es ist leicht zu sehen, dassalle Ableitungen von L gleich L oder 0−1L sind.

(2) Die Sprache L = {0n1n;n ∈ N} hat die Ableitungen

0−1 = {0n−11n;n ≥ 1}00−1 = {0n−21n;n ≥ 2}

die alle voneinander verschieden sind.

(3) Die Sprache L aller Worter uber {a, b} die dieselbe Anzahl von a’s und b’s be-sitzen ist nicht regular: alle Ableitungen (an)−1L sind voneinander verschieden.

Lemma 1. (wv)−1L = v−1(w−1L).

Beweis. Die rechte Seite besteht aus genau den Wortern u mit vu ∈ w−1L, d.h. mitwvu ∈ L.

Konstruktion. Wenn eine Sprache L nur endlich viele Ableitungen besitzt, defi-nieren wir den Brzozowsky DEA fur L wie folgt:

(a) Zustande sind alle Ableitungen von L.

(b) Der Initialzustand ist L.

(c) Eine Ableitung w−1L ist akzeptierend g.d.w. w ∈ L.

(d) Die Ubergange sind fur jedes a ∈ Σ durch Ka //a−1K definiert. (D.h., wenn

K = w−1L, dann ist der Folgezustand a−1(w−1K) = (aw)−1K.)

Page 26: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

22 KAPITEL 1. ENDLICHE AUTOMATEN

Beispiel 1 (Fortsetzung) Die Sprache aller Worter gerader Lange hat den Br-zozowsky DEA

� � // L0,1 //

0−1L0,1

oo

Beobachtung. Der Brzozowsky DEA akzeptiert L.

In der tat, jedes Wort w ∈ Σ∗ mit w = aa . . . an hat die folgende Berechnung (sieheLemma oben):

� � // La1 // a−1

1 La2 // a1a

−12 L

a3 // . . . an // w−1L

Das Wort wird akzeptiert g.d.w. der zustand w−1 akzeptierend ist, d.h., w ∈ L

Satz 1. Eine Sprache ist regular, g.d.w. sie nur endlich viele Ableitungen besitzt.

Beweis. Wenn L endlich viele Ableitungen besitzt, ist sie durch einen BrzozowskyDEA akzeptiert und deswegen regular.

Umgekehrt, wenn L ⊆ Σ∗ regular ist, gibt es einen DEA, A, der mit n Zustanden Lakzeptiert. Wir beweisen, dass L hochstens n Ableitungen besitzt. Fur jedes Wortw ∈ Σ∗ bezeichnen wir durch qw den Zustand von A, den wir vom Initialzustanddurch die Eingabe w erreichen. Es genugt zu beweisen, dass zwei Worter w und vdie selbe Ableitung ergeben, wenn sie qw = qv erfullen:

qw = qv ⇒ w−1L = v−1L

In der Tat, ein Wort u liegt in w−1L genau dann, wenn die Berechnung

q0 // . . . // qw // . . . // qwu

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶w

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶u

in einem akzeptierenden Zustand qwu endet. Das bedeutet, dass der DEA, den wiraus A bekommen, wenn der Initialzustand zu qw geandert wird, w akzeptiert. Dasselbe gilt fur u ∈ v−1L. Deswegen folgt w−1L = v−1L aus qw = qv.

Beispiel 2. Die Sprache aller Worter uber {a, b} mit der gleichen Anzahl von a’sund b’s ist nicht regular, denn sie hat unendlich viele Ableitungen.

1.6 Aquivalente Zustande

Wir zeigen, wie zu jedem erreichbaren DEA ein minimaler DEA fur die selbe Sprachekonstruiert werden kann. Dieser minimale Automat ist durch die Anzahl seinerZustande vollig bestimmt.

Wir haben durch L(A) die Sprache, die ein DEA akzeptiert, indem er im Initial-zustand q0 anfangt, bezeichnet: ein Wort w ∈ Σ∗ liegt in L(A) g.d.w. δ∗(q0,w) einakzeptierender Zustand ist (siehe Notation in 1.2). Nehmen wir an, dass wir stattq0 einen anderen Zustand q ∈ Q gewahlt haben. Dann bezeichnen wir durch

A(q)

den so geanderten Automat. Seine Sprache L(A(q)) besteht aus allen Wortern wmit dem Zustand δ∗(q,w) akzeptierend.

Page 27: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.6. AQUIVALENTE ZUSTANDE 23

Definition. Zwei Zustande q und r eines DEAs heißen aquivalent wenn sie dieselbe Sprache akzeptieren, d.h.,

LA(q) = LA(r)Notation. q ≈A r (oder nur q ≈ r wenn A klar ist).

Beispiel 1. Im DEA

q1

a

b

��

� � // q0

a??

b ��

q2 a,bkk

q3

a

>>b

OO

sind q1 und q3 aquivalent. In der Tat, beide Zustande akzeptieren a(a + b)∗ DieZustande q0 und q1 sind nicht aquivalent: q1 akzeptiert a, q0 nicht.

Satz 1. Wenn die Zustande q und r aquivalent sind und nach Eingabe a ∈ Σ be-kommen wir die zustande q′ und r′, sind auch diese aquivalent. Kurz:

q ≈ r⇒ δ(q, a) ≈ δ(r, a)Beweis. Der Zustand q′ akzeptiert ein Wort w:

w³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ

q a // q′ // . . . // q′′

g.d.w. die Berechnung in einem akzeptierenden Zustand q′′ = δ∗(q′,w) endet. DasWort aw wird im Zustand q mit demselben Ergebnis berechnet: δ∗(q, aw) = δ∗(q′,w) =q′′. Deswegen gilt:

L(A(q)) = aL(A(q′)).Analog

L(A(r)) = aL(A(r′))Da L(A(q′)) = L(A(r′)), folgt daraus L(A(q)) = L(A(r)).Bemerkung 1. a. Umgekehrt: wenn zwei Zustande q und r nicht aquivalent sind,

und wenn wir fur eine Eingabe a Ubergange q a // q sowie ra // r

haben, sind auch q und r nicht aquivalent.

b. Ein akzeptierender Zustand ist zu keinem nicht-akzeptierenden Zustand aquiva-lent. Es gilt namlich: q ∈ F g.d.w. ε ∈ LA(q)

Algorithmus 2. fur die Aquivalenz ≈. Wir formen eine tabelle in der jedes zuge-ordnete Paar von Zustanden qi ≠ qj einmal vorkommt

q0

q1

q2

⋮qn

q0 q1 . . . qn−1

Dann kreuzen wir nicht-aquivalente Paare an. Dies geschieht rekursiv bis kein neuesnicht-aquivalentes Paar vorkommt, dann ist ≈ durch die ungekreuzten Paare cha-rakterisiert.

Page 28: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

24 KAPITEL 1. ENDLICHE AUTOMATEN

Erster Schritt Kreuze jedes Paar von Zustanden an, wobei ein akzeptierend undder andere nicht-akzeptierend ist.

Rekursiver Schritt Nimm ein ungekreuztes paar (qi, qj) und versuche eine Ein-gabe a ∈ Σ zu finden, fur die das Paar δ(qi, a) und δ(qj , a) angekreuzt wird. Dannkreuze (qi, qj) an.

Beispiel 2. Im Oberen DEA ergibt Schritt 1

q1 ×q2 × ×q3 ×

q0 q1 q2

Im Schritt 2 ergibt Eingabe a neue”nicht-Aquivalenzen“: q0 /≈ q1 und q0 /≈ q3:

q1 ×q2 × ×q3 × ×

q0 q1 q2

Hier endet der Algorithmus und ergibt

q1 ≈ q3

und sonst nur qi ≈ qi.

Beispiel 3. Der DEA

A0 //

1

��

B1 //0

��

C

1

0

{{D

0oo1

��E

1//

0

AAF

1//0

??

G

0

UU1

cc H0oo 1

__

ergibt

B ×C × ×D × × ×E × × ×F × × × ×G × × × × × ×H × × × × × ×

A B C D E F G

Nur A ≈ E, H ≈ B und F ≈D bleiben ubrig.

Satz 3. Der Algorithmus ist korrekt: nach endlich vielen Schritten endet er unddann gilt: ein Paar von zustanden ist aquivalent g.d.w. er nicht angekreuzt ist.

Page 29: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.7. KONSTRUKTION EINES QUOTIENT-DEA 25

Beweis. Ein Automat von n Zustanden hat nur (n2) verschiedene Paare und nach

so vielen Schritten endet der Algorithmus. Wir beweisen, dass (a) jedes angekreuztePaar (qi, qj) erfullt qi /≈ qj und (b) jedes nicht angekreuzte erfullt qi ≈ qj .

(a) Induktion in der Zahl k des Schrittes, wo das Paar angekreuzt wurde. Indukti-onsanfang: k = 0. Wenn qi akzeptierend ist und qj nicht, ist es klar, dass qi /≈ qjgilt.

Induktionsschritt: in Schritt k wird (qi, qj) nur dann angekreuzt, wenn es einin Schritt k − 1 angekreuztes Paar (q′i, q′j) gibt mit q′i = δ(qi, a) und q′j = δ(qj , a)fur eine Eingabe a ∈ Σ. Nach Induktionsvorraussetzung gilt q′i /≈ q′j . Aus Satz 1folgt qi /≈ qj .

(b) Diese Aussage konnen wir so formulieren: wenn qi /≈ qj , dann wird (qi, qj) an-gekreuzt. Nehmen wir ein Wort w, das Zeuge von qi /≈ qj ist. D.h., δ∗(qi,w)ist akzeptierend und δ∗(qj ,w) nicht (oder umgekehrt). Wir beweisen, dass dasPaar angekreuzt wird, per Induktion in der Lange k des Wortes w.

Induktionsanfang: k = 0. D.h., w = ε und wir sehen, dass qi akzeptierend ist undqj nicht. Das Paar wird im ersten Schritt angekreuzt.

Induktionsschritt: w = av mit ∣v∣ = k − 1. Setzen wir q′i = δ∗(qi, a) und q′j =δ∗(qj , a). Dann gilt: δ∗(q′i, v) = δ∗(qi,w) ist akzeptierend und δ∗(qj , v) = δ∗(qj ,w)nicht:

v³¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹·¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹µ

qia // q′i // . . . //

qja // q′j // . . . //

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶v

Da ∣v∣ = k − 1, besagt die Induktionsvorraussetzung, dass (q′i, q′j) angekreuztwurde. Wenn dies im Schritt l passiert, wird (qi, qj) im Schnitt l+1 angekreuzt.

1.7 Konstruktion eines Quotient-DEA

Gegeben sei ein DEA. Wir berechnen die Aquivalenzrelation ≈ und bekommen einenneuen DEA A.

Zustande: Aquivalenzklassen [q] von Zustanden von A, d.h. [q] ⊆ Q ist die mengealler zu q aquivalenten Zustande.

Ubergange: [q] a // [r] g.d.w. q a // s in A mit r ≈ s.

Initialzustand: [q0]Akzeptierende Zustande: [q] mit q ∈ F .

Page 30: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

26 KAPITEL 1. ENDLICHE AUTOMATEN

Beispiel 3 (Fortsetzung):

G

1

vv

D,F1oo

0

��� � // A,E

1))

0 // B,H

0

==

1 // C

1

UU

0

gg

Satz 1. Der Quotient-DEA A akzeptiert dieselbe Sprache wie A.

Beweis. Erstens, die Definition der Ubergange ist korrekt auf Grund von Satz 1:wenn die Klasse [q] durch einen anderen Zustand q′ dargestellt wird, d.h., q ≈ q′,dann haben wir einen Ubergang q′

a // s′ in A von dem wir wissen, dass s ≈ s′.Mit anderen Worten [r] = [s] = [s′]. Und wenn q ein akzeptierender zustand in A′

ist, sind alle zustande in [q] akzeptierend.

Wir beweisen fur jedes Wort w = a1 . . . an, dass w von A akzeptiert wird, g.d.w. Aes akzeptiert. Sei

q0a1 // q1

a2 // . . .an // qn

die Berechnung von w in A. Dann folgt aus der Definition von A, dass w die folgendeBerechnung hat:

[q0]a1 // [q1]

a2 // . . .an // [qn]

Dann akzeptiert A das Wort g.d.w. qn akzeptierend in A ist, dies ist dazu aquivalent,dass [qn] ein akzeptierender Zustand von A ist, d.h., A das Wort akzeptiert.

1.8 Minimierung von AutomatensectMin

Definition. Ein DEA heißt minimal wenn er

(a) erreichbar ist

und

(b) paarweise nicht-aquivalente Zustande hat.

Bemerkung 1. Bedingung (a) sagt, dass der DEA nicht durch wegwerfen vonZustanden minimiert werden kann. Bedingung (b) sagt, dass keine Minimierungdurch Identifikation von Zustanden moglich ist. Zusammen bedeuten sie, wie wirunten beweisen, dass die Anzahl der zustande minimal ist.

Beispiel 1. Der Brzozowsky DEA ist minimal. In der Tat, jeder zustand w−1Lwobei w = a1 . . . an ist vom Initialzustand q0 erreichbar: siehe Beobachtung in 1.5.Und fur beliebige Zustande w−1L ≠ v−1L gibt es ein Wort u mit wu ∈ L und vu /∈ L(oder umgekehrt) und dann fuhrt die Eingabe u den Zustand zum akzeptierendenZustand (wu)−1L, wahrend sie den Zustand v−1L zum nicht-akzeptierenden Zustand(vu)−1L fuhrt. Deswegen sind die Zustande w−1L und v−1L nicht aquivalent.

Page 31: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.8. MINIMIERUNG VON AUTOMATEN 27

Bemerkung 2. Die folgenden DEAs

� � // q 0 //

1 ��

r 1hh0

��s

0,1

??� � // q0

0 //

1 ��

q1 1kk0

~~q2

0,1

>>

sind, bis auf Umbenennung der Zustande, gleich. Im allgemeinen, gegeben DEAs

A = (Q,Σ, δ, q0, F ) und A′ = (Q′,Σ, δ′, q′0, F′)

mit dem selben Eingangsalphabet Σ, sagen wir, dass sie bis auf Umbenennung derZustande gleich sind, wenn es eine Bijektion (d.h. invertierbare Funktion) b ∶ Q→ Q′

zwischen den Zustanden gibt, sodass

(a) fur jeden Ubergang q a // r in A gibt es den Ubergang q′a // r′ in A′,

wobei q′ = b(q) und r′ = b(r),

(b) b(q0) = q′0

und

(c) q ist ein akzeptierender Zustand in A g.d.w. b(g) ein akzeptierender Zustand inA′ ist.

Satz 1. Jeder minimale DEA ist bis auf Umbenennung der Zustande gleich demBrzozowsky DEA.

Beweis. Gegeben sei ein minimaler DEA A = (Q,Σ, δ, q0, F ) mit Sprache L = L(A).Fur jedes Wort w ∈ Σ∗ bezeichnen wir durch qw den Zustand, den A bei Eingabew erreicht. Wenn wir den Initialzustand von A zu qw andern, bekommen wir denDEA A(qw), der w−1L akzeptiert: ein Wort u wird vom neuen DEA akzeptiert

q0 // . . . // qw // . . . // q

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶w

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶u

g.d.w. der Zustand q final ist, d.h., wenn wu ∈ L. Deswegen wenn qw = qv fur zweiWorte gilt, sehen wir, dass w−1L = v−1L. Umgekehrt, wenn w−1L = v−1L, sind dieZustande qw und qv gleich, denn A ist minimal und qw ≈ qv. In der Tat, A(qw)akzeptiert w−1L, die selbe Sprache wie A(q, v). Deswegen haben wir eine Funktionb, die jedem Zustand w−1L des Brzozowsky DEA den Zustand qw von A zuordnet.Ein Ubergang

w−1La // (wa)−1L

in Brzozowsky’s DEA entspricht einem Ubergang

qwa // qwa

in A. Der Initialzustand L wird zu b(L) = qε = q0 uberfuhrt: q0 ist durch das leereWort erreichbar. Und ein Zustand w−1L ist akzeptierend g.d.w. w ∈ L, und diesbedeutet genau, dass qw akzeptierend in A ist.

Folgerung 3. (Minimal = Zustand-minimal). Sei A ein minimaler DEA, der Lakzeptiert und n Zustande hat. Jeder L akzeptierender DEA hat wenigstens nZustande. Und wenn er genau n Zustande hat, ist er gleich A bis auf Umbenennungder Zustande.

Page 32: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

28 KAPITEL 1. ENDLICHE AUTOMATEN

Beweis. In der Tat, nach dem vorigen Satz ist n die Anzahl aller Ableitungen. SeiA0 ein DEA, der L akzeptiert. Der Zustand qw der ein A0 mit Eingabe w akzeptierterfullt:

A0(qw) akzeptiert w−1L.

Deswegen aus w−1L ≠ v−1L folgt, dass qw ≠ qv. Wir sehen, dass A0 wenigstens nZustande hat.

Wenn A0 genau n Zustande hat, folgt daraus, dass er Zustand-minimal ist. Des-wegen ist er erreichbar (denn der erreichbare Teil kann nicht kleiner sein) und hatnicht-aquivalente Zustande (denn der Quotient kann nicht kleiner sein). Dann istA0 minimal. Deswegen sind A,A0 und der Brzozowsky DEA alle gleich bis Umbe-nennung der Zustande.

Beispiel 2. Die Sprache

L(n) = (a + b)∗b(a + b)n

fur die wir in 1.3, Beispiel 1 einen NEA mit n+ 1 Zustande gesehen haben, brauchtwenigstens 2n Zustande wenn DEAs benutzt werden. Dies folgt daraus, dass dieAbleitungen w−1L wobei w alle 2n Worter der Lange n sind, paarweise verschiedensind. In der Tat, gegeben zwei solche Worter w ≠ v, unterscheiden sie sich auf Stellei = 1, . . . , n. Sagen wir wi = a und vi = b. Das Wort wai−1 hat b auf Stelle n von links,d.h., es liegt in L(n), so dass ai−1 ∈ v−1L. Aber wai−1 liegt in L(n) nicht, ai−1 /∈ w−1L.Deswegen w−1L ≠ v−1L.

Beispiel 3. Nichtdeterministische Automaten haben nicht die Eigenschaft, dassder minimale Automat durch seine Anzahl von Zustanden eindeutig bestimmt wird.Z.B. die NEAs

� � //

0,1

0 // und

� � //

0,1

0 //

0,1oo

akzeptieren beide die Sprache aller Worter mit dem letzten Symbol 0. Und sie sindsicher minimal. Aber ihre Ubergangsstrukturen sind unterschiedlich.

1.9 Beweise der RegularitatsectRegBew

Wenn wir beweisen wollen, dass eine Sprache regular ist, konnen wir verschiedeneMethoden kombinieren:

1. regulare Ausdrucke beschreiben regulare Sprachen,

2. endliche Automaten (auch nichtdeterministische) akzeptieren regulare Spra-chen,

3. die Anzahl von Ableitungen ist endlich

Zusammensetzung 4. Zusammensetzung aus einfacheren regularen Sprachen.

Zu 4 wissen wir, dass die Operationen +, ⋅,∗ aus regularen Sprachen wieder regulareSprachen erzeugen. Wir zeigen jetzt zwei weitere Eigenschaften dieses Typs:

satzRegAbgKompl Satz 1. Falls L ⊆ Σ∗ eine regulare Sprache ist, ist auch ihr Komplement L = Σ∗−Lregular.

Page 33: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.9. BEWEISE DER REGULARITAT 29

Beweis. Sei M ein DEA, der L akzeptiert. Sei M derselbe Automat, bei dem nurdie Mengen F (aller finalen Zustande) und Q − F (aller nicht finalen Zustande)vertauscht sind:

M = (Q,Σ, δ, q0, F ) Ô⇒ M = (Q,Σ, δ, q0,Q − F ).

Dann akzeptiert M ein Wort genau dann, wenn M das Wort nicht akzeptiert, also

L(M) = Σ∗ −L(M).

Korollar 1. Der Durchschnitt zweier regularer Sprachen ist regular.

Beweis. Dies folgt aus den bekannten de Morganschen Regeln:Falls L1, L2 ⊆ Σ∗ regular sind, so sind auch Σ∗ −L1 und Σ∗ −L2 regular, deswegenist

L = (Σ∗ −L1) + (Σ∗ −L2) = Σ∗ − (L1 ∩L2)

regular und aus Satz 1 folgt dann, dass auch

L1 ∩L2

regular ist.

Korollar 2. Fur jede regulare Sprache L ⊆ Σ∗ ist auch die Sprache L+ regular.

Beweis. Falls ε ∈ L, ist L+ = L∗ regular, nach Satz 2 in Abschnitt 1.4

L+ = L∗ ∩ (Σ∗ − {ε})

und da L∗ regular ist (siehe 1.4) und Σ∗−{ε}, als Komplement der regularen Sprache{ε}, regular ist, ist auch L+ regular.

Beispiel 1. Sei L die Sprache aller Worter uber dem Alphabet Σ = {0,1, . . . ,9},die dezimale Codierungen von Zahlen, die durch sechs teilbar sind, darstellen. Also:

L = {w ∈ Σ∗;w ist eine durch sechs teilbare Zahl}.

Um zu zeigen, dass L regular ist, beobachten wir, dass ausser 0 kein Wort in L mitdem Buchstaben 0 beginnt, also ist L eine Untermenge der regularen Sprache

L1 = 0 + (1 + 2 + ⋅ ⋅ ⋅ + 9)(0 + 1 + 2 ⋅ ⋅ ⋅ + 9)∗

aller Worter, die eine Zahl codieren. Ferner stellen wir fest, dass eine Zahl genaudann durch sechs teilbar ist, wenn sie gerade und durch drei teilbar ist. Also gilt

L = L1 ∩L2 ∩L3,

wobei L2 die Sprache aller Worter, die mit einer geraden Zahl enden, ist:

L2 = (0 + 1 + 2 ⋅ ⋅ ⋅ + 9)∗(0 + 2 + 4 + 6 + 8),

und L3 die Sprache aller Worter ist, bei denen die Summe aller Ziffern durch 3teilbar ist. Es bleibt zu zeigen, dass L3 regular ist. Wir untersuchen die Nerode-Aquivalenz von L3: falls Worter w1,w2 uber {0,1, . . . ,9} zwei Zahlen reprasentieren,die modulo 3 kongruent sind, sind sie Nerode-aquivalent, denn w1u ist genau danndurch 3 teilbar, wenn w2u durch 3 teilbar ist. Jedes Wort ist also Nerode-aquivalentzu ε, 1, 2 oder 3. Die Nerode-Aquivalenz hat 4 Klassen, deswegen ist L3 regular.

Page 34: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

30 KAPITEL 1. ENDLICHE AUTOMATEN

Beispiel217 Beispiel 2. Ist die Sprache L ⊆ {a, b}∗ aller Worter, deren Lange ungerade ist unddie eine gerade Zahl an a’s beinhalten, regular? Wir sprechen also von der Sprache

L = L1 ∩L2,

wobei L1 die Sprache aller Worter ungerader Lange und L2 die Sprache der Wortermit gerader Anzahl von a’s ist. Es gilt: die Menge L1 aller Worter gerader Langeist regular:

L1 = (aa + ab + ba + bb)∗.Also ist L1 auch regular. Die Sprache L2 ist regular, denn sie wird von dem folgendenAutomaten akzeptiert:

� � //

b

a //

b

aoo

Bemerkung 1. In Beispiel 5 aus 1.2 haben wir eine Sprache gezeigt, die nichtregular ist. Jetzt wollen wir ein Kriterium formulieren, das uns oft erlaubt, dieNichtregularitat zu beweisen.

Satz 2 (Pumping-Lemma fur regulare Sprachen). Falls L ⊆ Σ∗ eine regulare Spra-che ist, dann besitzt sie eine Konstante n ≥ 1, so dass fur jedes Wort w aus L derLange ∣w∣ ≥ n eine Zerlegung

w = xyz mit x, y, z ∈ Σ∗

existiert, fur die gilt

1. y ≠ ε und ∣xy∣ ≤ n

und

2. das”

aufgepumpte“ Wort xykz liegt in L fur jedes k = 0,1,2, . . .

Beweis. Sei M ein DEA, der L akzeptiert, und sei n die Anzahl seiner Zustande.Fur jedes Wort w ∈ L, das mindestens n Buchstaben hat, mussen sich in der Be-rechnung von w Zustande wiederholen. Das heißt, falls

w = s1s2 . . . sp (p ≥ n)

bezeichnen wir mit q0, . . . , qp die Zustande von M in der Berechnung von w: q0 istder initiale Zustand und

q1 = δ(q0, s1), . . . , qp = δ(qp−1, sp).

Dann konnen die Zustande q0, . . . , qp nicht alle voneinander verschieden sein, dawir nur n Zustande zur Verfugung haben und p + 1 > n. Wir betrachten die ersteWiederholung eines Zustandes in der Folge q0, . . . , qp, d. h. es seien k und i diekleinstmoglichen Indices mit

qi = qi+k, fur i = 1, . . . , n und k ≥ 1.

q0// q1

// . . . // qi //

��

qi+k+1// . . . // qp

qi+k−1

55

qi+1

tt. . .

\\

Page 35: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.9. BEWEISE DER REGULARITAT 31

Wir setzen

x = s1s2 . . . si

y = si+1si+2 . . . si+k

z = si+k+1si+k+2 . . . sn

Da k ≥ 1, gilt y ≠ ε. Da k und i die erste Wiederholung darstellen, also so klein wiemoglich gewahlt wurden, gilt ferner k+i ≤ n und somit ∣xy∣ ≤ n. Die Berechnung vonw = xyz endet im Zustand qp, der final sein muß, weil w akzeptiert wird. Aber auchdie Berechnung von xyyz endet im Zustand qp: nachdem xy berechnet worden ist,befindet sich der Automat M im Zustand qi+k = qi, und von diesem Zustand fuhrtihn das Wort yz nach qp. Deswegen wird auch xyyz akzeptiert. Analoges gilt furxyrz, falls r > 0. Und xz wird auch akzeptiert: hierbei wird der Kreis qi, . . . , qi+k−1

ausgelassen.

Beispiel 3. Ist die Sprache

L = {01,0011,000111, . . .} = {0n1n;n = 1,2,3, . . .}regular? Nein, denn sonst hatten wir ein Wort xyz, y ≠ ε, so dass xymz ∈ L fur allem ≥ 0. Aber aus xyz ∈ L, y ≠ ε, folgt xyyz ∉ L. Falls namlich y nur aus 0’en besteht,hat xyyz mehr 0’en als 1’en, analog falls y nur aus 1’en besteht. Aber falls y 0’ensowie 1’en beinhaltet, hat xyyz eine 1 vor einer 0, also wieder xyyz ∉ L.

Bemerkung 2. Das Pumping-Lemma wird oft fur Beweise, dass eine Sprache Lnicht regular ist, benutzt. Dazu mussen wir die Aussagen des Pumping-Lemmanegieren (wobei die Negation von

”es existiert X“ ist

”fur alle . . . nicht X“ und

umgekehrt). D.h., fur jede Zahl n mussen wir ein Wort w in L finden mit Lange∣w∣ ≥ n so dass das folgende gilt:

fur jede Zerlegung w = xyz mit y ≠ ε und ∣xy∣ ≤ n existiert ein k ≥ 0 mitxykz /∈ L.

Beispiel 4. Ist die Sprache

L = {0n1k0m;n, k,m = 0,1,2, . . .}regular? Bestimmt! Sie ist doch reprasentiert durch

0∗1∗0∗.

Bemerkung 3. Was konnen wir uber eine Sprache L sagen, wenn es uns nichtgelingt durch Pumping-Lemma zu beweisen, dass L nicht regular ist? Konnen wirdann behaupten, dass L regular ist? NEIN! Pumping Lemma ist keine Aquivalenz,nur eine Eigenschaft aller regularen Sprachen. Das illustriert das nachste

Beispiel 5. Die Sprache L aller Worter aibjck wobei i, j, k = 0,1,2,3 . . . und es gilt

wenn i = 1 dann j = k

ist nicht regular. Trotzdem hat jedes Wort w ≠ ε von L eine Zerlegung w = xyz mit

y ≠ ε und ∣xy∣ ≤ 2

so dass alle Worter xykz in L liegen.

(a) Die Zerlegung. Wahle x = ε und y = aa. Das klappt fur alle aibjck mit i ≥ 2.Fur i = 1 wahle x = ε und y = a und fur i = 0 wahle y = b (wenn j ≠ 0) oder y = c(sonst).

(b) Die Nichtregularitat von L. Die Sprache L1 aller Worter abjcj ist nicht regular:dies ist analog zum Beispiel 3. Es gilt L1 = L∩ab∗c∗. Das beweist, dass L nichtregular ist, denn der Durchschnitt regularer Sprachen ist regular.

Page 36: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

32 KAPITEL 1. ENDLICHE AUTOMATEN

1.10 Algorithmische Aspekte von Automaten

1.10.1 Algorithmus fur Zugehorigkeit zu einer regularen Spra-che

Gegeben eine regulare Sprache L wollen wir einen Algorithmus beschreibend, derfur Eingabe w, ein Wort, entscheidet, ob w in L liegt. Wenn L durch einen DEAdargestellt wird, ist dies eine einfache Aufgabe: wir geben die n Buchstaben vonw = s1 . . . sn ein, simulieren die n Schritte des DEAs und und am Ende wissen wir,ob der Zustand akzeptierend ist. Dies ist ein Algorithmus in linearer Zeit: es dauertO(∣w∣) Schritte.

Was passiert, wenn eine ε-NEA benutzt wird? Erinnern wir uns an ε-HULLE(q)rekursiv berechnet als die Menge S mit

S ∶= {q};

fur alle Zustande p /∈ S und r ∈ S mit rε // p setze S ∶= S ∪ {p}

Wenn die ε-NEA k Zustande hat, dauert ein rekursiver Schritt Zeit ≤ ak (a eine Kon-stante) und es gibt hochstens k rekursive Schritte. Deswegen ist ε-HULLE(q) in ak2

Schritten berechnet. Gegeben ein Wort w = s1 . . . sn, definiere Mengen W0, . . . ,Wn

von zustande wie folgt:

W0 = ε-HULLE(q0)

Wi+1 = ⋃r∈Wi ⋃q ε-HULLE(q)

wobei q durch alle Zustande mit psi+1 // q lauft. Dann gilt:

w liegt in L g.d.w. Wn ∩ F ≠ ∅

Wir brauchen hochstens k ⋅(ak2) = ak3 Schritte um Wi+1 zu berechnen, deswegen istdie gesamte Zeit ak3n. Da a sowie k Konstanten sind, ist dies wieder ein Algorithmusin Zeit O(n).Was passiert wenn L durch einen regularen Ausdruck reprasentiert wird? Wiederbekommen wir einen Algorithmus in linearer Zeit:

1.10.2 Algorithmus fur verschiedene Darstellungen

Um einen regularen Ausdruck in einen ε-NEAs umzuwandeln, brauchen wir nurlineare Zeit. Der ε-NEAs hat daruber hinaus die folgenden Eigenschaften:

(1) nur ein akzeptierender Zustand, aus dem keine Ubergange fuhren

und

(2) nur ein initialer Zustand, zu dem keine Ubergange fuhren.

Gegeben einen regularen Ausdruck r, definieren wir einen solchen ε-NEA A(r)rekursiv. Basisfall ist klar:

A(∅) = �� // A(ε) = �

� // A(s) = �� // s // (s ∈ Σ)

Page 37: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

1.10. ALGORITHMISCHE ASPEKTE VON AUTOMATEN 33

Fur zusammengesetzte Ausdrucke benutzen wir A(r1),A(r2) . . . auf Unterausdruckeri von r und definieren

A(r1 + r2) = � � // A(r1)

ε

� � //

ε

>>

ε

� � // A(r2)

ε

>>

A(r1r2) = �� // A(r1)

ε // A(r2)ε //

A(r∗) �� // ε // A(r1)

ε //

εOO

Wir sehen, dass bei jedem rekursiven Schritt werden hochstens 2 Zustande mit 4Ubergangen hinzugefugt. Deswegen hat das Ergebnis fur einen Ausdruck der Langen hochstens 2n Zustande und 4n Ubergange (denn wir machen hochstens n rekursiveSchritte).

Einen Automaten in einen regularen Ausdruck umzuwandeln, dazu haben wir imBeweis des Kleeneschen Satzes einen Algorithmus gesehen:

Lk+1ij = Lkij +Lkik(Lkkk)∗Lkkj

Leider ist dies kein effizienter Algorithmus: die Lange des Ausdrucks Lk+iij kann 4-mal großer sein als die Ausdrucke mit deren Index k, deswegen ist die Dauer fureinen Automaten von n Zustanden großer als 4n. Diese exponentielle Zeit deutetan, dass der Algorithmus in der Praxis oft zu langsam wird.

1.10.3 Eigenschaften regularer Sprachen

Gegeben eine regulare Sprache, wie schnell konnen wir uberprufen, ob sie leer ist? Istsie durch einen DEA Automaten dargestellt, mussen wir nur den erreichbaren Teilberechnen und entscheiden, ob dort ein akzeptierender Zustand liegt. Dies dauertZeit O(n2) wobei n die Anzahl der Zustande ist. In der tat, gegeben ein AlphabetΣ mit k Symbolen, berechnen wir

S0 = {q0}

Si+1 = {r; es gibt q ∈ Si und s ∈ Σ mit q s // r }

Die Anzahl der Rekursionsschritte ist hochstens n, jeder Schritt dauert hochstensnk Zeiteinheiten, deswegen gibt es hochstens n2k = O(n2) Zeit. Auch bei anderenDarstellungen (ε-NEA oder regularer Ausdruck) brauchen wir aufgrund der oberenAlgorithmen nur quadratische Zeit.

Eine verwandte Frage: gegeben eine regulare Sprache L uber Σ, gilt L = Σ∗? Wie-der gibt es einen Algorithmus in quadratischer zeit, wenn L als DEA dargestelltwird: wir tauschen die akzeptierenden und nicht-akzeptierenden Zustande um undverwenden den vorigen Algorithmus.

Page 38: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

34 KAPITEL 1. ENDLICHE AUTOMATEN

1.10.4 Minimierung von Automaten

Wir wissen, dass die Minimierung eines DEAs von n Zustanden in zwei Schrittendurchfuhrbar ist:

(1) die Berechnung des erreichbaren Teils (dauert Zeit O(n));

(2) die Berechnung des minimalen Quotient Automaten.

In Schritt (2) haben wir einen Algorithmus, der die Relation ≈ berechnet, gesehen.Das war ein rekursiver Algorithmus, der hochstens n2 rekursive Schritte machte undin jedem Schritt Zeit ≤ kn2 (k Symbole in Σ) brauchte. Deswegen haben wir in ZeitO(n4) die Relation ≈. Die Konstruktion des Quotient-DEA dauert nur nk Schritte:fur jeden Zustand q brauchen wir zu entscheiden, ob seine Klasse [q] neu ist undwenn ja, welche k Ubergange sie macht.

Die Minimierung eines DEA kann in Zeit O(n4) durchgefuhrt werden.

Im Gegensatz, einen Zustand-minimalen NEA fur eine Sprache zu konstruieren istein Problem der Klasse PSPACE und deswegen ist es unwahrscheinlich, dass eseinen Algorithmus mit polynomialer Zeitkomplexitat gibt.

Page 39: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

Kapitel 2

Kontextfreie Sprachen undKellerautomaten

2.1 Die Idee einer formalen Grammatik

Wir haben gesehen, wie endliche Automaten eine Sprache akzeptieren. In vielenGebieten der Software-Entwicklung ist es aber wichtiger, Sprachen zu erzeugen,als zu akzeptieren. Dafur sind die regularen Ausdrucke besser als die endlichenAutomaten geeignet. Das illustrieren wir informell durch einige Beispiele, bevor wirdie formale Definition prasentieren.sectBspAltZweiEinsEins

bspAltZweiEinsEins Beispiel 1. Betrachten wir die Sprache L, die durch den regularen Ausdrucka(a∗ + b∗)b

definiert wird. Dieser Ausdruck”erzeugt“ die Worter der Sprache L, indem er sagt:

1. Der erste Buchstabe ist a.

2. Dann folgt der”Rumpf“ T des Wortes: eine Reihe lauter a’s oder b’s.

3. Am Ende kommt ein b.

Diese Erzeugungsidee kann wie folgt formalisiert werden: sei S ein”Startsymbol“

oder das Symbol, das wir abstrakt”String“ (= Wort) nennen. Wir konnen 1., 2.,

3. kompakt durch die folgenden drei Ersetzungsregeln ausdrucken. Zuerst hat jedesWort die Form aTb, wobei T der

”Rumpf“ aus a∗ + b∗ ist:

1. S → aTb. Das Symbol”→“ soll

”kann sein“ gelesen werden; hier also S (String)

kann a(Rumpf)b sein. Jetzt mussen wir den Rumpf durch geeignete Regelnerzeugen. Zuerst fuhren wir eine Variable A fur

”String aus a’s“ ein; diese

wird durch die folgenden Regeln

2. A → ε ∣ aA (”A kann entweder ε oder von der Form aA sein“) bestimmt.

Analog fur

3. B → ε ∣ bB und letztlich

4. T → A ∣ B (”der Rumpf kann entweder A oder B sein“).

sectBspAltZweiEinsZwei

35

Page 40: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

36 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

bspAltZweiEinsZwei Beispiel 2. Die Sprache aller Worter 0n1n(n = 1,2,3, . . . ) lasst sich durch diefolgenden Regeln

S → 01 ∣ 0S1erzeugen. In dieser Sprache gilt: ein Wort S kann (nur) 01 oder von der Form0(Wort)1 sein.

sectBspAltZweiEinsDrei

bspAltZweiEinsDrei Beispiel 3. Die Sprache aller Palindrome, d.h. aller Worter im Alphabet Σ ={a, b, . . . , z}, die ruckwarts genauso gelesen werden wie vorwarts, lasst sich durchdie folgenden Regeln

S → ε ∣ aSa ∣ bSb ∣ . . . ∣ zSz ∣ a ∣ b ∣ . . . ∣ zerzeugen.

Diese Beispiele illustrieren informell die Idee einer formalen Grammatik:

a. Man unterscheidet zwischen den”eigentlichen“ oder terminalen Symbolen,

in denen die erzeugten Worter geschrieben werden (z.B. a, b in Beispiel 1 inAbschnitt 2.1) und

”Hilfssymbolen“ oder Variablen (z.B. S,T,A,B in Beispiel

1in Abschnitt 2.1).

b. Die Grammatik besteht aus Ersetzungsregeln (kurz Regeln, auch Produktio-nen genannt) der Form A→ w, die uns erlauben, in jedem Wort den Buchsta-ben A durch das Wort w zu ersetzen.

c. Wir interessieren uns lediglich fur die Worter uber dem terminalen Alphabet,die aus dem Startsymbol S ableitbar (durch eine oder mehrere Anwendungender Regeln) sind.

Notation. Ersetzungsregeln A→ w1, . . . ,A→ wn mit derselben linken Seite werdenkompakter als

A→ w1 ∣ w2 ∣ . . . ∣ wnbeschrieben.

2.2 Kontextfreie Grammatik

Definition. Eine kontextfreie Grammatik G ist ein Quadrupel G = (Σ, V, S,P),wobei

Σ ein Alphabet (aller terminalen Symbole) ist,V ein Alphabet (aller Variablen oder nichtterminalen Symbole) ist, das zu

Σ disjunkt ist,S ∈ V das Startsymbol ist undP eine endliche Untermenge von V × (Σ ∪ V )∗ ist, deren Elemente Pro-

duktionen (oder Regeln) heißen und in der Form A → a1a2 . . . an mitA ∈ V und a1 . . . an ∈ (Σ ∪ V )∗ dargestellt werden.

Bemerkung 1. Die Anwendung der Produktion A → a1a2 . . . an auf ein Wortw bedeutet, dass im Wort w der Buchstabe A durch das Wort u = a1a2 . . . anersetzt wird. (Das ist nur moglich, falls w den Buchstaben A enthalt. Falls w denBuchstaben an verschiedenen Stellen enthalt, sind verschiedene Ergebnisse einerAnwendung der Produktion auf w moglich.)Formal: Sei w = w′Aw′′ ein Wort, wobei w′,w′′ ∈ (Σ ∪ V )∗ Worter sind. DasErgebnis der Anwendung der Produktion A → u auf w ist das Wort w′uw′′. Fallsn = 0, die Produktion also die Form A → ε hat, ist das Ergebnis der Anwendungauf w = w′Aw′′ das Wort w′w′′. Da ε die Rolle der Bezeichnung des leeren Worteshat, brauchen wir die folgendeVoraussetzung: Weder Σ noch V enthalt das Symbol ε.

Page 41: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.2. KONTEXTFREIE GRAMMATIK 37

Notation. 1. Mit⇒ bezeichnen wir die Anwendung einer einzelnen Produktion;also schreiben wir fur Worter w, v ∈ (Σ ∪ V )∗

w⇒ v,falls es eine Produktion A→ u der Grammatik und Worter w′,w′′ ∈ (Σ ∪ V )∗gibt, so dass

w = w′Aw′′ und v = w′uw′′.

2. Mit ⇒∗ bezeichnen wir die reflexive und transitive Hulle der Relation ⇒. Dasheißt:

w⇒∗ v [zu lesen: v ist aus w ableitbar]bedeutet, dass w = v oder w ⇒ v, oder es gibt Worter w1, . . . ,wn mitw⇒ w1 ⇒ w2 ⇒ . . . ⇒ wn ⇒ v.

Bemerkung 2. Das Wort w = w′Aw′′ heißt der Kontext , in dem sich der Buchsta-be A befindet. Die obige Definition der Anwendung sagt uns, dass eine ProduktionA → u ohne Berucksichtigung des Kontextes von A angewendet wird – deshalbspricht man von kontextfreien Grammatiken.

Definition. Fur jede kontextfreie Grammatik G heißt die Menge aller Worter uberdem Terminalalphabet Σ, die aus dem Startsymbol ableitbar sind, die von G er-zeugte Sprache L(G). Kurzer: L(G) = {w ∈ Σ∗;S ⇒∗ w}.

Beispiel 1. Palindrome. Hier nehmen wir die Sprache L ⊆ {0,1}∗ aller Worte wderen Umkehrung wR das gleiche Wort ist:

w = wR.

Z.B. ε,0 und 1 sind Palindrome. Jedes andere Palindrom hat die Form

0S0 oder 1S1 (wobei S ein Palindrom ist).

Das konnen wir durch folgende Liste von Regeln (oder Produktionen ausdrucken:

S → ε

S → 0

S → 1

S → 0P0

S → 1P1

Hier ist P eine Variable, die Palindrome darstellt.

Beispiel 2. Arithmetische Ausdrucke. Wir wollen Ausdrucke, die die Operationen+ und ∗ auf Bezeichner (oder Identifier, kurz I) anwenden. Als Bezeichner benut-zen wir Worter uber {a, b,0,1} die mit a oder b anfangen. hier brauchen wir zweiVariablen: E fur Ausdruck (expression) und I fur Bezeichner (identifier) mit den

Page 42: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

38 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

Regeln

E → I

E → E +EE → E ∗EI → a

I → b

I → Ia

I → Ib

I → I0

I → I1

Aufpassen, dies genugt nicht z.B. fur (a+a0) ∗ (b1 + b0), wir brauchen noch

E → (E)

Notation. Alle Regeln mit der selben Variablen auf der linken Seite werden zu-sammengefasst und durch ∣ getrennt. Die obere Liste hat dann die Form

E → I ∣E ∗E∣E +E∣(E)I → a∣b∣Ia∣Ib∣I0∣I1

sectBspAltZweiZweiEins

bspAltZweiZweiEins Beispiel 3. Die SpracheL = {0n1n;n = 1,2,3, . . .}

wird von der folgenden Grammatik G erzeugt wird:G = ({0,1},{S}, S,P),

wobei P die folgenden Produktionen sind:S → 01 ∣ 0S1

Das beweisen wir jetzt formal.

Beweis. (von L = L(G))

1. Wir zeigen zuerst, dass jedes Wort 0n1n ableitbar ist, das heißt, dass L ⊆ L(G)gilt: wir wenden (n − 1)-mal die Produktion A→ 0S1 an und bekommen

S ⇒ 0S1⇒ 00S11⇒ . . . ⇒ 0n−1S1n−1.Jetzt wird die Produktion S → 01 angewendet:

S ⇒∗ 0n−1S1n−1 ⇒ 0n1n.

2. Demnachst zeigen wir, dass L(G) ⊆ L gilt. Wir beweisen eine etwas allgemei-nere Aussage (die auch Worter mit Variablen betrifft).Jedes Wort w ∈ {0,1, S}∗, das aus S ableitbar ist, hat die Form w = 0n1n oderw = 0nS1n. Das beweisen wir durch Induktion uber der Lange k der AbleitungS ⇒∗ w:

k = 0 ∶ w = S ist hier von der zweiten Form (mit n = 0).

k → k + 1 ∶ Falls w′ das vorletzte Wort der Ableitung von w ist, so gilt: S ⇒∗

w′ ⇒ w, und fur w′ haben wir eine Ableitung der Lange k. Nachder Induktionsvoraussetzung gilt also entweder w′ = 0n1n (das istaber nicht moglich, denn es gilt w′ ⇒ w und auf 0n1n kann mankeine Produktion anwenden) oder w′ = 0nS1n. Die beiden Pro-duktionen unserer Grammatik ergeben dann w = 0n+11n+1 oderw = 0n+1S1n+1.

Page 43: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.2. KONTEXTFREIE GRAMMATIK 39

sectBspAltZweiZweiZwei

bspAltZweiZweiZwei Beispiel 4. Hier wollen wir ein Beispiel, das in die Richtung”naturlicher“ Sprachen

geht, vorfuhren. Wir verwenden die folgenden Variablen:S − Startsymbol (oder

”Satz“)

(SBS) − Substantiv(ADJ) − Adjektiv(VRB) − Verb(PHR) − Phrase

mit den folgenden Produktionen:

1. Ein Satz hat die Form (Phrase)(Verb)(Phrase):S → (PHR)(VRB)(PHR)

2. Phrase ist ein Substantiv mit oder ohne einem Adjektiv:(PHR) → (SBS) ∣ (ADJ)(SBS)

3. Produktionen fur Terminalsymbole:(SBS) →

”Apfel“ ∣

”Karl“

(ADJ) →”groß“ ∣

”grun“

(VRB)→”isst“

Genauer: wir betrachten die Grammatik G = (Σ, V, S,P ), wobeiΣ = {

”Apfel“,

”Karl“,

”groß“,

”grun“,

”isst“},

V = {S, (SBS), (ADJ), (VRB), (PHR)}und P aus den oben genannten Produktionen 1. bis 3. besteht.

Einige Beispiele der Satze, die die Grammatik erzeugt:

”Karl“

”isst“

”Apfel“

”groß“

”Karl“

”isst“

”grun“

”Apfel“.

Da unsere Grammatik kontextfrei ist, erhalten wir leider auch Satze, die demintuitiven Kontext nicht entsprechen, wie z.B.

”grun“

”Karl“

”isst“

”grun“

”Karl“.

sectBspAltZweiZweiDrei

bspAltZweiZweiDrei Beispiel 5. Regulare Ausdrucke. Erinnern wir uns an die Definition eines regularenAusdrucks r, sagen wir, uber {0,1}:

r ∶∶= 0 ∣ 1 ∣ ε ∣ ∅ ∣ r + r ∣ r ⋅ r ∣ r* ∣ (r)Das ist fast eine kontextfreie Grammatik fur regulare Ausdrucke mit Startsymbolr. Wir mussen aber die folgenden Details modifizieren:

1. Die ersten vier regularen Ausdrucke werden selbstverstandlich Terminalsym-bole unserer Grammatik. Da aber ε kein Terminalsymbol sein darf, schreibenwir statt dessen

”epsilon“. Also: die Sprache, die nur das leere Wort beinhaltet,

ist mit”epsilon“ reprasentiert.

2. Statt r∗ schreiben wir r∗ (zwei Buchstaben).

3. Wir erlaubten, r ⋅ r als rr zu schreiben, jetzt bestehen wir auf r ⋅ r.

Das heißt, wir arbeiten mit der GrammatikG = (Σ,{r}, r, P ),

wobei die Terminalsymbole die folgenden sind:Σ = {0,1, epsilon, ∅, (, ),+, ⋅,∗},

die einzige Variable r das Startsymbol ist und P die folgende Menge von Produk-tionen ist:

r → 0 ∣ 1 ∣ epsilon ∣ ∅ ∣ r + r ∣ r ⋅ r ∣ r∗ ∣ (r)

Page 44: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

40 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

Es ist klar, dass (mit den obigen Modifikationen) die Sprache L(G) nur regulareAusdrucke uber {0,1} enthalt. Umgekehrt gilt, dass jeder regulare Ausdruck einWort in L(G) ist, denn die Menge aller regularen Ausdrucke ist (laut Definition)die kleinste Menge, in der 0, 1, epsilon und ∅ enthalten sind, und dass fur Elementer1, r2 dieser Menge auch r1+r2, r1 ⋅r2, r1∗ und (r) Elemente sind – und L(G) erfulltdies alles.

Zum Beispiel ist die Sprache aller Worter, die mit 11 anfangen und, falls nochetwas kommt, die Form 1101n0 haben, durch den regularen Ausdruck 11(01*0 + ε)reprasentiert, oder, modifiziert:

1 ⋅ 1 ⋅ (0 ⋅ 1 ∗ ⋅0+epsilon).Dafur haben wir die folgende Ableitung:r⇒ r ⋅ r⇒ r ⋅ (r)⇒ r ⋅ (r + r)⇒ r ⋅ (r ⋅ r + r)⇒ r ⋅ (r ⋅ r ⋅ r + r)⇒ r ⋅ (r ⋅ r∗ ⋅ r + r)⇒ r ⋅ r ⋅ (r ⋅ r∗ ⋅ r + r)⇒ 1 ⋅ r ⋅ (r ⋅ r∗ ⋅ r + r)⇒ 1 ⋅ 1 ⋅ (r ⋅ r∗ ⋅ r + r)⇒ 1 ⋅ 1 ⋅ (0 ⋅ r∗ ⋅ r + r)⇒ 1 ⋅ 1 ⋅ (0 ⋅ 1∗ ⋅ r + r)⇒ 1 ⋅ 1 ⋅ (0 ⋅ 1∗ ⋅ 0 + r)⇒ 1 ⋅ 1 ⋅ (0 ⋅ 1∗ ⋅ 0+ epsilon)

Satz 1. Fur jede kontextfreie Grammatik gilt: aus u1 ⇒∗ u′1 und u2 ⇒∗ u′2 folgtu1u2 ⇒∗ u′1u

′2 fur alle Worter u1u2, u

′1u

′2 uber Σ ∪K.

Proof. 1. Aus u⇒ u′ folgt vuw⇒ vu′w (fur beliebige Worter u,u′, v und w uberΣ ∪ V ). In der Tat haben wir

u = u1Au1 und u′ = u1zu1,wobei A→ z eine Produktion unserer Grammatik ist. Es gilt

vuw = (vu1)A(u2w) und vu′w = (vu1)z(u2w),und das beweist, dass dieselbe Produktion vuw⇒ vu′w ergibt.

2. Aus u ⇒∗ u′ folgt vuw ⇒∗ vu′w. Dies ist eine wiederholte Anwendung desersten Falls.

3. Aus u1 ⇒∗ u′1 und u2 ⇒∗ u′2 folgt u1u2 ⇒∗ u′1u′2. In der Tat gilt

u1u2 ⇒∗ u′1u2

(wir konnen 2. mit v = ε und w = u2 anwenden) undu′1u2 ⇒∗ u′1u

′2

(wir konnen 2. mit v = u′1 und w = ε anwenden).

2.3 Anwendungen von kontextfreien Grammatiken

1. Parser. Grammatiken werden zur Beschreibung von Programmiersprachen an-gewendet. Wo eine regulare Sprache vorhanden ist, z.B., bei Beschreibung der Be-zeichners als lex-Eingabe, konnen DEAs angewendet werden.

Beispiel 1. Bezeichner, die alphanumerisch sind und mit einem Buchstaben an-fangen mussen. In Programmiersprache C:

[A −Z,a − z][A −Z,a − z,0 − 9]∗

Page 45: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.3. ANWENDUNGEN VON KONTEXTFREIEN GRAMMATIKEN 41

dies entspricht dem DEA

� � //

stateA−Z,a−z //

��

A−z,a−z,0−9kk

stateERROR

Aber viele Aspekte der Programmiersprachen sind zu komplex fur eine regulareSprache. Z.B. die richtige Klammerung, wobei die Struktur der rechten Klammernkorrekt zu der den linken Klammern passt. Schon die Sprache L = {(), (()), ((())), . . .}aller solcher Ausdrucke OHNE andere Symbole ist nicht regular! (Erinnern wir unsan den Beweis fur anbn, n ∈ N.) Aber sie ist kontextfrei:

Beispiel 2. Die Grammatik mit Produktionen

S → (T )T → (T )∣ε

erzeugt die obere Sprache.

Befehl YACC in unix-Systemen erzeugt die Syntaxbaume aus einer kontextfrei-en Grammatik. Die Notation von Produktionen, die Aktionen heißen, ist ahnlich,nur → wird durch ∶ ersetzt. Eine Aktion wird ausgefuhrt, sobald ein Knoten desSyntaxbaumes erzeugt wird, der dieser Aktion entspricht. Terminalsymbole werdendurch halbe Ausfuhrungszeichen bezeichnet.

Beispiel 3. Quellcode

Exp ∶ Id∣ Exp ′ +′ Exp∣ Exp ′ ∗′ Exp∣ ′(′ Exp ′)′

Id ∶ ′a′

∣ ′b′

∣ I ′a′

∣ I ′b′

∣ I ′0′

∣ I ′1′

HTML Dokumente Hier ein Beispiel, dass Text als eine Kette von Zeichen Chardefiniert (inkl. leeres Zeichen). Und Dokument Doc als entweder leer oder folgen vonElementen. Wobei Element ist entweder Text oder zusammengehorige Tags, die einDokument einschließen (<EM> und </EM>) oder nur einleiten (<P>). Die letzteMoglichkeit von Tag ist <OL>List</OL> wobei List eine Liste von Listitem ist, diedie Form LIDoc haben:

Char → a∣A∣ . . . ∣z∣Z

Page 46: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

42 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

Text → ε∣ Char Text

Doc → ε∣ Element Doc

Element → Text

∣ <EM> Doc </EM>

∣ <P> Doc

∣ <OL> List </OL>

List → ε∣ Listitem List

Listitem → <LI> Doc

2.4 Ableitungsbaume

Eine Moglichkeit, um Ableitungen anschaulicher zu machen, ist das Benutzen desAbleitungsbaumes (auch Pars-Baume genannt), wobei dir Produktion

A→ a1 . . . andurch den Baum

A

a1 a2 . . . an−1 an

reprasentiert wird. Bevor wir diese Idee formalisieren, zeigen wir zwei Beispieleinformell.sectBspAltZweiDreiEins

bspAltZweiDreiEins Beispiel 1. In der Grammatik fur die Sprache 0n1n (Beispiel 2 in Abschnitt 2.1)wird die Ableitung von 000111 wie folgt reprasentiert:

S

0 S 1

0 S 1

0 1

Hier sehen wir, dass der Baum mit Symbolen aus Σ ∪ V markiert wird, die Blatterterminale Symbole und die inneren Knoten Variablen tragen. Fur jeden innerenKnoten formen alle Markierungen der Nachkommen entweder 01 oder 0S1, was denbeiden Produktionen S → 01 und S → 0S1 entspricht.

sectBspAltZweiDreiZwei

bspAltZweiDreiZwei Beispiel 2. Die Spracheaa(aa + bb)∗

aller Worter, in denen jeder Buchstabe wiederholt wird und die mit aa beginnen,hat die Grammatik

G = ({a, b},{S,T}, S,P )mit den Produktionen P :

Page 47: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.4. ABLEITUNGSBAUME 43

S → aaTT → ε ∣ aaT ∣ bbT.

Hier ist ein Ableitungsbaum fur die Ableitung von aaaabb:

S

a a T

a a T

b b T

ε

Daran sehen wir, dass das Symbol ε (das aufgrund der Produktion T → ε aufge-taucht ist) einfach ignoriert werden soll.

Bemerkung 1. Wir wollen kurz an die Begriffe geordneter und ungeordneterBaum erinnern. Ein gerichteter Graph wird Baum genannt, falls er einen Knotenw (genannt Wurzel) hat, so dass fur jeden weiteren Knoten genau ein gerichteterPfad von der Wurzel zu diesem Knoten existiert. (Ein Pfad zwischen x und y isteine Liste von Knoten x = z0, z1, . . . , zn = y, so dass (zi−1, zi) fur i = 1, . . . , n eineKante ist.) Sei ein solcher Pfad fur einen Knoten x wie folgt gegeben:

w = z0, z1, . . . , zn = x.Dann heißt der Knoten zn−1 der Vorfahre von x. Umgekehrt heißt x ein Kind desKnoten zn−1. Jeder Knoten außer w hat also genau einen Vater. Knoten, die keineSohne haben, heißen Blatter .

Ein geordneter Baum besteht aus folgenden zwei Komponenten:

1. einem Baum B und

2. einer linearen Ordnung aller Kinder von x, fur jeden Knoten x, der kein Blattist.

Falls y und z zwei Sohne von x sind, sagen wir, dass y links von z steht, falls inder Ordnung aller Sohne y vor z steht.

Ein markierter geordneter Baum , kurz: Baum, mit der (gegebenen) Markie-rungsmenge M , ist ein geordneter Baum zusammen mit einer Funktion von derMenge aller Knoten nach M .

Baume konnen kurzer rekursiv definiert werden:

1. Die Wurzel allein mit einer Marke a ∈M ist ein Baum:

a

2. Falls Baume B1, . . . ,Bn (n ≥ 1) und eine Marke a ∈M fur die Wurzel gegebensind, so ist auch

a

B1 B2 Bn. . .

ein Baum.

Page 48: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

44 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

3. Jeden Baum kann man durch endlich viele Anwendungen von 1. und 2. re-prasentieren.

Die Tiefe eines Baumes ist die maximale Lange eines Pfades (von der Wurzel zumentferntesten Blatt).

Definition. Sei G = (Σ, V, S,P ) eine kontextfreie Grammatik. Ein Ableitungs-baum ist ein Baum B mit Markierungen von Knoten in der MarkierungsmengeΣ ∪ V ∪ {ε} so dass gilt:

Jeder innere Knoten wird mit einer Variablen A markiert, und falls alle seineSohne von links nach rechts mit a1, . . . , an markiert werden, ist A → a1 . . . aneine Produktion in P .

Das Ergebnis des Ableitungsbaumes B ist das Wort w aus den Markierungen allerBlatter von links nach rechts, wobei Blatter mit Markierung ε werden ignoriert.Falls alle Blatter von B mit ε markiert sind, gilt wB = ε.sectBspAltZweiDreiDrei

bspAltZweiDreiDrei Beispiel 3. In der Grammatik G aus Beispiel 2 in Abschnitt 2.4 sind die folgendenBaume Beispiele fur Ableitungsbaume:

S S

a a T

S

a a T

b b T

ε

S

a a T

a a T

b b T

ε

Bemerkung 2. Wir wollen jetzt zeigen, dass fur jede kontextfreie Grammatik Ggilt: Ein Wort w liegt in L(G) ⇔ w hat einen Ableitungsbaum mit Wurzel S undw ∈ Σ∗.

Wir mussen betonen, dass es im allgemeinen mehrere Ableitungsbaume fur ein Wortw ∈ L(G) gibt, z.B. hat das Wort abc in einer Grammatik mit den ProduktionenS → aS ∣ ab ∣ Sc ∣ bc die folgenden Ableitungsbaume:

Page 49: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.4. ABLEITUNGSBAUME 45

S

S

a b

c

S

a S

b cKonstruktion eines Ableitungsbaumes: Sei w ein Wort uber Σ, das aus S ab-leitbar ist. Wir konstruieren einen Ableitungsbaum B mit w = wB wie folgt.

Gegeben eine Ableitung S ⇒ w1 ⇒ w2 ⇒ . . . ⇒ wn−1 ⇒ wn = w. Wirkonstruieren Baume B1, . . . ,Bn, so dass die Blatter von Bi das Wort wi formen;der Baum Bn ist dann ein Ableitungsbaum fur w.

• Baum B1: Sei w1 = a1 . . . ap, dann ist S → a1 . . . ap eine Produktion unsererGrammatik. Wir setzen:

B1: S

a1 a2 ap. . .

Falls n = 1, das heißt S ⇒ w, ist dies ein Ableitungsbaum fur w.

• Baum B2: Sei A → b1 . . . bq eine Produktion unserer Grammatik, deren An-wendung die Ableitung w1 ⇒ w2 ergibt:

w1 = a1 . . . ai−1Aai+1 . . . ap (das heißt A = ai)und

w2 = a1 . . . ai−1b1 . . . bqai+1 . . . apWir setzen

B2: S

aiai−1 ai+1. . .a1 . . . ap

b1 b2 bq. . .

Und so weiter.

sectSatzAltZweiDreiEins

satzAltZweiDreiEins Satz 1. Fur jede kontextfreie Grammatik G ist L(G) genau die Sprache allerWorter uber Σ, die einen Ableitungsbaum mit Wurzel S haben.

Beweis. Aus der obigen Konstruktion folgt, dass jedes Wort in L(G) einen Ablei-tungsbaum mit Wurzel S hat. Umgekehrt beweisen wir jetzt, dass fur jeden Ablei-tungsbaum B mit Wurzel X gilt

X ⇒∗ wB .Falls B keine Variablen in den Blattern hat, folgt wB ∈ Σ∗. Falls nun außerdemX = S gilt, haben wir also wB ∈ L(G).

Wir benutzen Induktion uber die Tiefe k des Baumes B.

k = 0 ∶ Hier besteht der Baum B aus der Wurzel allein, also gilt wB = X unddeswegen X ⇒∗ wB .

k → k + 1 ∶ Seien a1, . . . , an die Markierungen aller Kinder der Wurzel (von linksnach rechts).

Page 50: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

46 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

X

a2a1 an. . .

B1 B2 Bn

Mit Bi bezeichnen wir den Baum aller Knoten mit einem Pfad von ai,fur i = 1, . . . , n. Dann ist Bi ein Ableitungsbaum mit Wurzel ai der Tiefe≤ k. Die Induktionsvoraussetzung ergibt also

ai ⇒∗ wBi fur i = 1, . . . , n.Aus der ersten Bemerkung in 2.2 sehen wir, dass dann

a1a2 . . . an ⇒∗ wB1a2 . . . an ⇒∗ wB1wB2a3 . . . an⇒∗ wB1wB2 . . .wBn .

Ferner ist X → a1 . . . an eine Produktion unserer Grammatik, weswegengilt

X ⇒∗ a1 . . . an ⇒∗ wB1wB2 . . .wBn .Aus der Konstruktion der Baume B1, . . . ,Bn sehen wir, dass das WortwB gleich dem Wort wB1wB2 . . .wBn ist. Das beweist also X ⇒∗ w.

sectBspAltZweiDreiVier

bspAltZweiDreiVier Beispiel 4. Die Syntax von vielen Programmiersprachen kann man durch eine kon-textfreie Grammatik erzeugen. Das zeigen wir anhand einer sehr einfachen Sprache,deren Befehle COM nur eine der folgenden Formen 1. bis 3. haben:

1. COM = VAR := AEXP (Zuweisung),wobei VAR eine Variable (sagen wir, hier nur x oder y) und AEXP ein algebrai-scher Ausdruck ist.

2. COM = COM; COM (Verkettung) oder

3. COM = if BEXP then COM else COM,wobei BEXP ein Boolescher Ausdruck ist.

Fur AEXP erlauben wir nur Variablen x, y, Konstanten 0, 1, 2 und Operationen +,∗.Fur Boolesche Ausdrucke sind nur Konstanten true, false oder eine Gleichungzweier algebraischer Ausdrucke mit den ublichen Operationen and, not erlaubt.

Unsere Grammatik G hat also die folgenden terminalen Symbole:Σ = {x, y, 0, 1, 2, +, ∗, true, false, =, ∶ , ; , and, not, if, then, else}

und die folgenden nichtterminalen Symbole:V = {COM, AEXP, BEXP}

mit dem Startsymbol COM. Die Produktionen sind:COM → x ∶= AEXP ∣ y ∶= AEXP ∣ COM; COM ∣

if BEXP then COM else COM

AEXP → x ∣ y ∣ 0 ∣ 1 ∣ 2 ∣ + AEXP AEXP ∣ ∗ AEXP AEXP

BEXP → true ∣ false ∣ AEXP = AEXP ∣ and BEXP BEXP ∣ not BEXPZum Beispiel das Programm

x ∶= 1;if x = y then y ∶= + xy else y ∶= 0

hat den Ableitungsbaum

Page 51: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.5. KONTEXTFREIE UND REGULARE SPRACHEN 47

COM

;COM

x ∶= AEXP

1

COM

if BEXP then COM else COM

AEXP = AEXP y ∶= AEXP y ∶= AEXP

x y + AEXP AEXP 0

x y

sectSatzAltZweiDreiZwei

satzAltZweiDreiZwei Satz 2. Fur eine kontextfreie Grammatik G bezeichnen wir die maximale Langeder rechten Seite einer Produktion mit k. Dann hat jedes Wort in L(G) mit einemAbleitungsbaum der Tiefe i hochstens die Lange ki.

Beweis. Fur jeden Ableitungsbaum B beweisen wir, dass das Wort wB , das dieBlatter von B bilden (wenn ε wie ublich ignoriert wird), hochstens die Lange ki

hat. Der Beweis ist durch Induktion uber die Tiefe i des Baumes B durchzufuhren.

Induktionsanfang i = 0: Ein Baum der Tiefe 0 besteht nur aus der Wurzel und somitgilt: wB hat eine Lange ≤ 1 = k0.

Induktionsschritt: Jeder Baum der Tiefe i + 1 > 0 hat die Form

A

B1 B2 Bn. . .

wobei B1, . . . ,Bn (n ≥ 1) Baume sind, deren Tiefe hochstens i ist. Nach der In-duktionsvoraussetzung gilt: die Lange des Wortes wBj fur j = 1, . . . , n ist hochstenskj . Seien a1, . . . , an die Markierungen aller Sohne von A (d.h. aller Wurzeln vonB1, . . . ,Bn).

1. Falls a1, . . . , an in Σ ∪ V liegen, gilt wB = wB1wB2 . . .wBn (Konkatenation),und die Lange von wB ist also hochstens ki+ki+⋅ ⋅ ⋅+ki = nki. Da A→ a1, . . . , aneine Produktion in P ist, gilt (nach Definition von k) n ≤ k, also nki ≤ ki+1.

2. Falls sich ε unter den a′ks befindet, gilt n = 1 und wB = ε:A

εDie Lange von wB ist 0 ≤ ki+1.

2.5 Kontextfreie und regulare Sprachen

Definition. Eine Sprache heißt kontextfrei , falls sie von einer kontextfreienGrammatik erzeugt werden kann, d.h. falls sie die Form

L(G), G ist eine kontextfreie Grammatikhat.

sectBspAltZweiVierEins

bspAltZweiVierEins Beispiel 1. Kontextfreie Sprachen:

Page 52: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

48 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

a. Die Sprache aller regularen Ausdrucke ist kontextfrei – siehe Beispiel 5 inAbschnitt 2.2.

b. Die (nichtregulare) Sprache L = {0n1n; n = 1,2,3, . . .} ist kontextfrei – sieheBeispiel 3 in Abschnitt 2.2.

c. Die Sprache L = {anbncn; n = 1,2,3, . . .} ist nicht kontextfrei, wie wir inAbschnitt 2.5 beweisen werden.

d. Im Gegensatz zu c. ist die Sprache L = {anbnck; n, k = 1,2,3, . . .} kontextfrei.Sie wird von der folgenden Grammatik

G = ({a, b, c},{S,T}, S,P )mit den Produktionen

S → Sc ∣ TcT → ab ∣ aTb

erzeugt. In der Tat:

(a) Jedes Wort anbnck (n ≥ 1, k ≥ 1) ist ableitbar:

S

cS

cS

cS

cT

a T b

a T b

a T b

a T b

a b

k-mal

(n − 1)-mal

(b) Jedes ableitbare Wort aus {a, b, c}∗ hat die Form anbnck. Allgemeiner: je-des von S ableitbare Wort aus {a, b, c, T}∗ hat entweder die Form anbnck

oder anTbnck. Das folgt aus der Form der Ableitungsbaume und kannleicht durch Induktion uber die Tiefe des Baumes bewiesen werden.

sectSatzAltZweiVierEins

satzAltZweiVierEins Satz 1. Jede regulare Sprache ist kontextfrei.

Bemerkung 1. Fur jede regulare Sprache werden wir in der Tat eine Grammatikfinden, deren Produktionen die Form

A→ ε oder A→ bB (A,B ∈ V, b ∈ Σ)haben.

Beweis. Fur jede regulare Sprache L gibt es einen endlichen AutomatenM = (Q,Σ, δ, q0, F ),

der L akzeptiert. Wir definieren eine Grammatik G, deren Variablen die Zustande

Page 53: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.5. KONTEXTFREIE UND REGULARE SPRACHEN 49

von M sind, wie folgt:G = (Σ,Q, q0,P)

mit den folgenden Produktionen P:A→ ε fur jeden finalen Zustand A und

A→ sB fur jeden Ubergang As //B

Wir beweisen, dass L = L(G) gilt.

1. Zuerst zeigen wir, dass jedes akzeptierte Wort w = s1 . . . sn in der GrammatikG ableitbar ist; also folgt L ⊆ L(G). Aus den Zustanden der Berechnung vons1 . . . sn:

q0s1 //q1

s2 // . . . sn //qnerhalten wir den Ableitungsbaum fur w:

q0

s1 q1

s2 q2

s3 qn−1

sn qn

εohne Variablen in den Blattern.

2. Jetzt zeigen wir, dass jedes ableitbare Wort w = s1 . . . sn von M akzeptiertwird, d.h. L(G) ⊆ L: ein Ableitungsbaum ohne Variablen in den Blatternmuss namlich die obige Form haben, dann folgt aus qi = δ(qi−1, si), dass

δ∗(q0,w) = qn ∈ F .

Definition. Eine regulare Grammatik ist eine kontextfreie Grammatik, deren Pro-duktionen die Form

A→ b1b2 . . . bn oder A→ b1b2 . . . bnBhaben, wobei A,B Variablen sind und b1 . . . bn ein (moglicherweise leeres) Wort austerminalen Symbolen ist.

sectKorAltZweiVierEins

korAltZweiVierEins Korollar 1. Jede regulare Sprache kann durch eine regulare Grammatik erzeugtwerden.

Bemerkung 2. Wir haben im Satz 1 in Abschnitt 2.5 scheinbar etwas mehr bewie-sen: nicht nur, dass regulare Sprachen mit Hilfe der Produktionen A→ b1 . . . bn oderA→ b1 . . . bnB erzeugbar sind, sondern auch, dass uns die einfacheren Produktionen

A→ ε oder A→ bBgenugen. Dies ist allerdings nicht allgemeiner, denn jede regulare Grammatik Gkann so modifiziert werden, dass nur diese einfachere Form der Produktionen vor-kommt. Genauer, eine einfachere Grammatik G′ mit L(G) = L(G′) kann wie folgtkonstruiert werden:

1. Jede Produktion A → b1b2 . . . bn mit n ≥ 1 kann man durch die folgendenProduktionen ersetzen:

Page 54: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

50 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

A → b1B1

B1 → b2B2

⋮Bn−2 → bn−1Bn−1

Bn−1 → bnBnBn → ε

(wobei B1, . . . ,Bn neue Variablen sind, die sich paarweise unterscheiden). Inder Tat, die Produktion

A

b1 b2 bn. . .

wird dann durch

A

b1 B1

b2 Bn−1

bn Bn

εersetzt. (Und kein anderer Ableitungsbaum kann mit den neuen Variablenkonstruiert werden.) Also gilt L(G) = L(G′).

2. Analog ersetzt man

A

b1 b2 bn. . . Bdurch

A

b1 B1

b2 Bn−1

bn B

3. Es bleiben also Produktionen der FormA→ ε, A→ bB oder A→ B.

Aus dem folgenden Satz folgt, dass die letzte Form auch ersetzbar ist.

sectBspAltZweiVierZwei

bspAltZweiVierZwei Beispiel 2. Die folgende GrammatikG = ({0,1},{S,A,B}, S,P )

mit den Produktionen P :S → 01A ∣ 0A ∣ 0BB → 1 ∣ 1BA → ε

ist regular. Sie kann durch die GrammatikG′ = ({0,1},{S,A,B,C,D}, S,R′)

ersetzt werden, deren Produktionen R′ die folgenden sind:

Page 55: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.5. KONTEXTFREIE UND REGULARE SPRACHEN 51

S → 0C ∣ 0A ∣ 0BC → 1AB → 1D ∣ 1BD → εA → ε

sectSatzAltZweiVierZwei

satzAltZweiVierZwei Satz 2. Jede regulare Grammatik erzeugt eine regulare Sprache.

Beweis. Wie aus der obigen Bemerkung folgt, genugt es zu zeigen, dass jede re-gulare Grammatik G = (Σ, V, S,P ), deren Produktionen eine der Formen

A→ ε, A→ bB, oder A→ Bhaben, eine regulare Sprache erzeugt. Wir konstruieren einen NEAS wie folgt:

M = (V,Σ, δ, S,F ),also sind Zustande die Variablen von G, mit S als Initialzustand. Die finale Zustandesind gerade die Variablen, bei denen A→ ε eine Produktion in P ist. Die Ubergangesind durch die Produktionenn der Grammatik bestimmt:

AS→ B im Automaten M ⇔ A→ sB ist eine Produktion und

A#→ B im Automaten M ⇔ A→ B ist eine Produktion.

Dann gilt:L(G) = L(M),

also akzeptiert M ein Wort w genau dann, wenn S ⇒∗ w. In der Tat, falls M dasWort w = s1 . . . sn akzeptiert, haben wir eine Berechnung

(1) � // S# // A1

# // . . . s1 // Ai1# // . . . sn // Ain

# // . . . # // Ak�//

im Automaten M , und wir haben einen Ableitungsbaum ohne Variablen in denBlattern, der diese Berechnung kopiert:(2) S

A1

Ai1−1

s1 Ai1

Ai2−1

s2 Ai2

Ain−1

sn Ain

Ak

εUmgekehrt wird jedes Wort w mit einem Ableitungsbaum B ohne Variablen in denBlattern von M akzeptiert: der Ableitungsbaum kann namlich nur die Form (2)wie oben haben, und daraus konnen wir eine Berechnung (1) des Wortes durch Mableiten.

sectKorAltZweiVierZwei

korAltZweiVierZwei Korollar 2. Eine Sprache ist genau dann regular, wenn sie von einer regularenGrammatik erzeugt werden kann.

Page 56: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

52 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

sectBspAltZweiVierDrei

bspAltZweiVierDrei Beispiel 3. Die Grammatik G′ aus Beispiel 2 in Abschnitt 2.5 ergibt den folgendennichtdeterministischen Automaten, der L(G′) akzeptiert:

S

C

A

B

D

� //

077

1

�����

0

''0

��1ff

1

��_

��sectBspAltZweiVierVier

bspAltZweiVierVier Beispiel 4. Die folgende GrammatikG = ({0,1},{S,T}, S,P )

mit den ProduktionenS → 1 ∣ 11S → T0S0S11

ist nicht regular. Sie erzeugt jedoch eine regulare Sprache: L(G) = 1 + 11.

Bemerkung 3. Jeder innere Knoten p eines Syntaxbaumes mit Markierung Xergibt einen Unterbaum (mit Wurzel-Markierung X) der selbst ein Syntaxbaum ist:

Y

Xp

u w

v

Das Ergebnis des ursprunglichen Baumes ist uvw wobei

(a) v ist das Ergebnis des Unterbaumes

(b) u ist die Markierung der Blatter links von p und w ist die Markierung derKnoten rechts von p.

Das Wort”kontextfrei“ hat mit der oberen Struktur der Worter zu tun: ein Wort

v erscheint im Wort uvw im Kontext, der vom Prafix u und Suffix w besteht. Daalle Produktionen die Form X // . . . , X eine Variable, haben, ist die Anwendungvom Kontext eines Wortes abhangig. Im Kontrast, die Regel xa → ba erlaubt Xdurch b nur im Kontext (Suffix fangt mit a an) zu ersetzen.

2.6 Eigenschaften kontextfreier SprachensectSatzAltZweiFuenfEins

satzAltZweiFuenfEins Satz 1. Fur zwei kontextfreie Sprachen L1 und L2 sind auch die SprachenL1 ∪L2 und L1L2

kontextfrei.

Page 57: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.6. EIGENSCHAFTEN KONTEXTFREIER SPRACHEN 53

Beweis. Wir haben eine Grammatik Gi = (Σi, Vi, Si,Ri) fur die Sprache Li(i = 1,2), und ohne Beschrankung der Allgemeinheit konnen wir voraussetzen, dassV1 ∩ V2 = ∅.

1. Erzeugung der Sprache L1∪L2: sei G die Grammatik mit terminalen SymbolenΣ1 ∪Σ2, Variablen V1 ∪V2 ∪ {S}, wobei S ∉ V1 ∪V2 das Startsymbol von G istund den Produktionen

S → S1 ∣ S2 (*)zusammen mit allen Produktionen in R1 und R2. Dann gilt

L(G) = L1 ∪L2.In der Tat hat jeder Ableitungsbaum B der Grammatik G die Form

S

S1

B1

S

S2

B2

oder

wobei Bi ein Ableitungsbaum der Grammatik Gi fur i = 1,2 ist. Es gilt wB =WBi ∈ Li. Also liegt ein Wort genau dann in L(G), wenn es entweder in L1

oder in L2 liegt.

2. Erzeugung der Sprache L1L2: Sei G dieselbe Grammatik wie in 1., nur wird(*) durch die einzige Produktion

S → S1S2

ersetzt. Die Ableitungsbaume vonG haben die Form S

S1 S2

B1 B2

wobei Bi ein Ableitungsbaum der Grammatik Gi fur i = 1,2 ist. Es giltwB = wB1wB2 . Also liegt ein Wort genau dann in L(G), wenn es die Formw1w2, wobei wi ∈ Li fur i = 1,2 gilt, hat.

sectSatzAltZweiFuenfZwei

satzAltZweiFuenfZwei Satz 2. Falls L eine kontextfreie Sprache ist, ist L∗ auch kontextfrei.

Beweis. Sei G = (Σ, V, S,P ) eine Grammatik fur L. Wir erweitern sie zu einerGrammatik G = (Σ, V ∪ {S}, S,P ), wobei S eine neue Variable ist, indem wir neueProduktionen

S → S S, S → S und S → ε

hinzufugen. Dann gilt:

L(G) = L∗.

In der Tat:

1. L∗ ⊆ L(G):Fur jedes Wort w = w1w2 . . .wn ∈ L∗, wobei die wi in L liegen, haben wirAbleitungsbaume Bi fur wi in der Grammatik G, aus denen der folgendeAbleitungsbaum fur w hergestellt wird:

Page 58: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

54 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

S

S S

S

S

S

B1

. . .

B2

S

S S

S

Bn

ε

Der Ableitungsbaum fur ε ist klar.

2. L(G) ⊆ L∗:Fur jedes Wort w ∈ L(G) haben wir einen Ableitungsbaum B mit Wurzel S inder Grammatik G mit w = wB . Durch Induktion uber die Tiefe i des BaumesB zeigen wir, dass w ∈ L∗:

i = 1 ∶ Hier ist B der Baum

S

εund wB = ε ∈ L∗.

i→ i + 1 ∶ Der Ableitungsbaum B hat eine der folgenden Formen: entweder

S

S

B

wobei B ein Ableitungsbaum in der Grammatik G ist, dann gilt

wB ∈ L ⊆ L∗,oder

S

S S

B1 B2

wobei B1, B2 Ableitungsbaume der Grammatik G sind, dann giltw = wB1wB2 . Die Baume B1, B2 haben eine Tiefe ≤ i, also ergibtdie Induktionsvoraussetzung wB1 ,wB2 ∈ L∗. Daraus folgt w ∈ L∗.

sectKorAltZweiFuenfEins

korAltZweiFuenfEins Korollar 1. Die Klasse aller kontextfreien Sprachen enthalt alle regularen Spra-chen und ist unter den Operationen ∪, ⋅ und ∗ abgeschlossen.

Bemerkung 1. Leider ist diese Klasse nicht unter Durchschnitt abgeschlossen.Um das zu zeigen, mussen wir Mittel zur Verfugung haben, um zu beweisen, dasseine Sprache nicht kontextfrei ist. Fur regulare Sprachen war das Pumping-Lemma

Page 59: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.6. EIGENSCHAFTEN KONTEXTFREIER SPRACHEN 55

solch ein Mittel (siehe 1.8). Auch fur kontextfreie Sprachen gilt ein, hier ein bisschenkomplizierterer, Satz desselben Stils. Bevor wir ihn aber beweisen, wollen wir nocheine Eigenschaft der kontextfreien Sprachen erwahnen:

sectSatzAltZweiFuenfDrei

satzAltZweiFuenfDrei Satz 3. (ohne Beweis) Falls L1 eine kontextfreie Sprache und L2 eine regulareSprache ist, so ist L1 ∩L2 kontextfrei.

Bemerkung 2. In einem Ableitungsbaum B konnen wir einen beliebigen Knotenp auswahlen und durch B′ den Baum aller Nachfolger von p bezeichnen:

S

B′

p

Dann ist B′ ein A-Baum. Falls x das Wort aller Blatter von B ist, die vor denBlattern von B′ stehen, und y das Wort aller Blatter nach den Blattern von B′:

S

B′

p

x y

wB′gilt wB = xwB′y.

sectBspAltZweiFuenfNull

bspAltZweiFuenfNull Beispiel 1. In dem BaumB: S

X Y

0 1 X X

0 1 0 1wahlen wir den Knoten y mit der Markierung Y . Dann istB′: Y

X X

0 1 0 1Hier ist x = 01, wB′ = 0101 und y = ε.Sei A die Variable, die den Knoten p markiert. Dann ist B′ ein verallgemeinerterAbleitungsbaum mit A an der Wurzel. Falls B′′ ein beliebiger verallgemeinerterAbleitungsbaum mit derselben Markierung der Wurzel ist, konnen wir B′ durch B′′

ersetzen und bekommen einen neuen Ableitungsbaum

S

B′′

A

x y

wB′′der das Wort xwB′′y erzeugt. In dem oberen Beispiel sei

Page 60: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

56 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

B′′: Y

Z

0 0 0dann ergibt die Ersetzung von B′ durch B′′ im Ableitungsbaum

S

X Y

0 1 Z

0 0 0

Diese Uberlegungen werden im Beweis des folgenden Pumping-Lemmas verwendet:

Pumping-Lemma fur kontextfreie Sprachen: Fur jede kontextfreie Sprache Lexistiert eine Zahl n, so dass jedes Wort w in L mit der Lange ∣w∣ ≥ n eine Zerlegung

w = uvxyz, mit u, v, x, y, z ∈ Σ∗ und den folgenden Eigenschaften hat:

1. v ≠ ε oder y ≠ ε,

2. ∣vxy∣ ≤ n,

3. uvrxyrz liegt in L fur alle r = 0,1,2, . . ..

Beweis. Wir haben eine Grammatik G mit L = L(G) und bezeichnen miti = die Anzahl aller Variablen von G

und mitk = die maximale Lange der rechten Seite einer Produktion von G.

Wir beweisen, dass die Zahln = ki+1

die gewunschte Konstante ist.

Sei w ein Wort aus L, das eine Lange großer gleich n hat. Wir wahlen einen Ablei-tungsbaum B fur w mit der kleinsten Anzahl an Knoten. Nach Satz 2 in Abschnitt2.4 wissen wir, dass B die Tiefe großer als i haben muss. Es existiert also in B einPfad der Lange i + 1 in B. Jeder seiner i + 1 Knoten, die keine Blatter sind, wirdalso mit einer Variablen markiert. Das ergibt i + 1 Markierungen, obwohl es nuri Variablen gibt. Es mussen sich also Markierungen wiederholen. Wir konnen alsozwei Knoten p und q aus B wahlen, so dass

1. q ein Nachfolger von p ist,

2. p und q dieselbe Markierung A haben und

3. p die großte Tiefe unter Knoten mit 1. und 2. besitzt.

Wir bezeichnen den Unterbaum von B, den alle Nachfolger von p bilden, als B′.Man beachte, dass die Tiefe von B′ hochstens i + 1 ist, weil der langste Pfad in B′

diese Lange hat (gabe es einen langeren Pfad konnte man ein p mit großerer Tiefein B wahlen!). Dann hat B die folgende Form:

Page 61: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.6. EIGENSCHAFTEN KONTEXTFREIER SPRACHEN 57

B

p

B′

qu z

w′Das Wort w = wB hat also die Form

w = uw′z,wobei w′ = wB′ das Wort aller Blatter von B′, u das Wort aller Blatter von B, dielinks von B′ stehen und z das Wort aller Blatter von B, die rechts von B′ stehenist. Eine analoge Situation gilt fur B′ selbst: sei B′′ der Unterbaum aller Nachfolgervon q. Dann hat B′ die folgende Form:

B′p

q

B′′

v y

xDas Wort w′ hat also die Form w′ = vxy, wobei wB′′ = x. Hier gilt v ≠ ε odery ≠ ε, denn falls v = y = ε, d.h., falls jeder Vorganger von q im Baum B′ nur einenSohn hat, konnen wir einen kleineren Ableitungsbaum fur w finden (aber B ist derkleinste!): Es genugt, in B den Unterbaum B′ durch B′′ zu ersetzen.

Da der Baum B′ hochstens die Tiefe i + 1 hat, gilt nach Satz 2 in Abschnitt 2.4außerdem ∣vxy∣ = ∣w′∣ ≤ ki+1 = n.

Der Baum B sieht jetzt wie folgt aus:

B

p

B′

qu z

B′′

v y

xDa die Knoten p und q dieselbe Markierung tragen, konnen wir einen neuen Ablei-tungsbaum erstellen, indem wir B′′ durch eine Kopie des Baumes B′ ersetzen:

B

p

p

B′

B′

qu z

B′′

v y

v y

x

Page 62: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

58 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

Da B keine Variablen in den Blattern hat, gilt dasselbe fur den letzten Baum. Daszeigt, dass das Wort uvvxyyz zu L(G) = L gehort. Diesen Prozess konnen wir wie-derholen: im letzten Baum ersetzen wir B′′ durch B′ und erhalten uv3xy3z ∈ L, usw.Letztendlich konnen wir direkt B′ im Baum B durch B′′ ersetzen und bekommeneinen Ableitungsbaum fur uxz.

Beispiel 2. Die Sprache L = {ak;k = 0,1,4,9 . . .} aller Worter uber {a} von qua-dratischer Lange ist nicht kontextfrei.

In der Tat, gegeben sei n wie im Pumping-Lemma, setzen wir

w = an2

und beweisen, dass keine Zuerlegung w = avxyz die Eigenschaften besitzen kann.Sei

p = ∣y∣ + ∣v∣ (p > 0 da y ≠ ε oder v ≠ ε).Aus ∣vxy∣ ≤ n folgt p ≤ n. Das Wort

xv2xy2z ∈ L

hat die Lange n2+p und dies muss ein Quadrat sein. Das ist ein Widerspruch, denn

n2 < n2 + p < (n + 1)2

Die erste Ungleichung folgt aus p > 0 und die zweite besagt, dass p < 2n+1, was ausp ≤ n folgt.

sectBspAltZweiFuenfEins

bspAltZweiFuenfEins Beispiel 3. Die SpracheL = {akbkck;k = 1,2,3, . . .}

ist nicht kontextfrei. Wir zeigen, dass keine Konstante n das Pumping-Lemma furL erfullt. Wir wahlen

w = anbncn.Falls das Pumping-Lemma fur L gilt, haben wir also eine Zerlegung

anbncn = uvxyz,so dass

v ≠ ε oder y ≠ ε und uv2xy2z ∈ L.Wir zeigen, dass das nicht moglich ist.

1. Falls y nur aus einem Buchstaben besteht, muss v zwei Buchstaben (also a undb) enthalten, denn sonst waren die drei Buchstaben nicht in gleicher Anzahlin uv2xy2z enthalten. Dann findet man aber in uv2xy2z ein b vor einem a,also gilt uv2xy2z ≠ L.

2. Falls v nur aus einem Buchstaben besteht, konnen wir fur y analog zu 1.argumentieren.

3. Falls v sowie y mehrere Buchstaben enthalten, findet man in uv2xy2z wiederein b vor einem a.

sectBspAltZweiFuenfZwei

bspAltZweiFuenfZwei Beispiel 4. Zwei kontextfreie Sprachen, deren Durchschnitt nicht kontextfrei ist.Sei

L1 = {anbnck;n, k = 1,2,3, . . .}die kontextfreie Sprache aus Beispiel 1.d in Abschnitt 2.5, Analog zeigt man, dassdie Sprache

L2 = {akbncn;n, k = 1,2,3, . . .}kontextfrei ist. Aber

L1 ∩L2 = {anbncn;n = 1,2,3, . . .}ist nicht kontextfrei, wie wir oben gesehen haben.

Page 63: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.7. NULLIERBARE VARIABLEN 59

sectKorAltZweiFuenfDrei

korAltZweiFuenfDrei Korollar 2. Kontextfreie Sprachen sind nicht unter der Komplementbildung ab-geschlossen, d.h., es gibt kontextfreie Sprachen L ⊆ Σ∗, so dass L = Σ∗ − L nichtkontextfrei ist.

In der Tat folgt aus der DeMorganschen Regel

L1 ∩L2 = L1 +L2,dass eine Klasse von Sprachen, die unter + und Komplementbildung abgeschlossenist, auch unter Durchschnitt abgeschlossen sein muss.

2.7 Nullierbare VariablensectNullierbareVariablen

In diesem Abschnitt zeigen wir, wie man Produktionen des Typs A → ε loswer-den kann. Erst zeigen wir einen einfachen Algorithmus, der entscheidet, ob eineGrammatik das leere Wort erzeugt.sectDfNullierbar

dfNullierbar Definition. In einer kontextfreien Grammatik heißt eine Variable A nullierbar ,falls aus ihr ε abgeleitet werden kann, d.h. falls

A⇒∗ ε.

Beobachtung. Fur eine kontextfreie Grammatik G gilt: ε liegt in L(G) genaudann, wenn das Startsymbol nullierbar ist.

Berechnung der Menge V0 aller nullierbaren Variablen erfolgt durch die folgendeRekursion:Anfang: V0 = ∅Rekursiver Schritt: V0 ∶= V0 ∪ {A ∈ V ; es gibt eine Produktion A→ B1B2 . . .Bn mitB1,B2, . . . ,Bn ∈ V0}.Also liegen nach dem ersten Durchgang in V0 alle Variablen A, fur die es eineProduktion A → ε gibt. Nach dem zweiten Schritt alle Variablen, fur die es eineProduktion A→ B1B2 . . .Bn mit Produktionen B1 → ε, . . . ,Bn → ε gibt, usw. Nachdem letzten Durchgang hat V0 die folgende Eigenschaft:

Fur jede Produktion A→ B1B2 . . .Bn mit B1,B2, . . . ,Bn ∈ V0 gilt A ∈ V0.

Es ist leich zu sehen, dass jede durch diese rekursive Prozedur in V0 gelegte Variablenullierbar ist. Umgekehrt, sei A nullierbar, und sei n die Lange der Ableitung vonε aus A. Dann liegt A nach dem n-ten Durchgang der Prozedur oben in V0. Diesist klar fur n = 1; fur großere n benutzen wir Induktion: Sei A→ B1 . . .Bn die ersteProduktion, die die Ableitung A⇒∗ ε benutzt. Dann haben wir kurzere Ableitungenfur B1, . . . ,Bn, d.h. diese Variablen liegen in V0 nach der Induktionsvoraussetzung.Die obige Eigenschaft von V0 beweist A ∈ V0.sectSatzGrammatikOhneANachEpsilon

satzGrammatikOhneANachEpsilon Satz 1. Jede kontextfreie Sprache L, die ε nicht enthalt, hat eine kontextfreieGrammatik ohne Produktionen A→ ε.

In der Tat zeigen wir einen Algorithmus, der fur jede kontextfreie Grammatik G,fur die ε /∈ L(G) gilt, eine kontextfreie Grammatik G erzeugt mit

L(G) = L(G)so dass G keine Produktionen A→ ε hat.

Beweis. Sei G′ die Grammatik, die aus G dadurch entsteht, dass neue Produktio-nen hinzugefugt werden: fur jede Produktion

B → w1w2 . . .wi−1Awi+1 . . .wn,wobei A nullierbar ist, fugen wir die Produktion

B → w1w2 . . .wi−1wi+1 . . .wn

Page 64: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

60 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

hinzu. Diese Prozedur wird solange wiederholt, bis keine neue Produktionen entste-hen. Das andert bestimmt nicht die akzeptierte Sprache, d.h.

L(G) = L(G′).Jetzt bezeichnen wir durch G die Grammatik, die wir erhalten, wenn wir aus G′ alleProduktionen der Form A→ ε entfernen. Es ist klar, dass L(G) ⊆ L(G′). Zeigen wirL(G′) = L(G). Damit ist der Satz bewiesen.

Fur jedes Wort w in L(G′) wahlen wir den kleinsten Ableitungsbaum B. Wir bewei-sen, dass kein Blatt von B mit ε markiert ist. Dann ist B ein Ableitungsbaum derGrammatik G, also w ∈ L(G). Falls aber ein Blatt t mit ε markiert ware, konntenwir einen kleineren Ableitungsbaum finden: sei t′ der Vater von t und t′′ sein Groß-vater (aufpassen: t hat einen Großvater, d.h. t′ ist nicht die Wurzel. Dann hatte Bdie Form

S

εDann ware aber w = ε, was der Voraussetzung ε /∈ L(G′) wiedersprache.)

Sei X die Markierung des Großvaters t′′ und w1, . . . ,wn die Markierungen seinerSohne. Einer davon, der i-te, ist wohl t′. Da sein Sohn t mit ε markiert ist, wird t′

mit einer nullierbaren Variablen A markiert:BAUM B

S

X

Awi−1. . .w1 wi+1 . . . wn

ε

t′′

t

Aufgrung der Konstruktion von G′ ist dann auch B → w1 . . .wi−1wi+1 . . .wn eineProduktion, die den folgenden kleineren Ableitungsbaum B ergibt:

BAUM B

S

X

wi−1. . .w1 wi+1 . . . wnDas ist der gesuchte Widerspruch.

Bemerkung 1. Fur Grammatiken G, die das leere Wort erzeugen (also mit Snullierbar), gibt es einen ahnlichen Satz: Wir konnen eine Grammatik G mit L(G) =L(G) erzeugen, die die Produktion

S → ε,aber keine andere Produktion der Form A→ ε (A ≠ S) enthalt. Der Beweis ist fastderselbe.

Page 65: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.8. CHOMSKY-NORMALFORM 61

2.8 Chomsky-Normalformsec:CNF

Wir zeigen jetzt, dass jede kontextfreie Grammatik so modifiziert werden kann, dasssie (ohne die erzeugte Sprache zu andern) nur Produktionen der Form

S → ε, A→ a oder A→ BChat, wobei A,B,C nichtterminale Symbole sind und a ein Terminalsymbol ist. Dererste Typ, S → ε, ist nur fur die Erzeugung des leeren Wortes notig. Wir werden unserst auf kontextfreie Sprachen ohne ε konzentrieren und daher nur ProduktionenA → a oder A → BC benutzen. Falls ε in der Sprache liegt, schreiben wir dannimmer noch S → ε am Ende als eine der Produktionen.sectDfChomskyNormalform

dfChomskyNormalform Definition. Chomsky-NormalformEine kontextfreie Grammatik ist in Chomsky-Normalform, falls sie nur Produktio-nen der Form

A→ BC (A,B,C Variablen)A→ a (A Variable, a Terminalsymbol)

oderS → ε

hat.sectBspAltZweiSechsEins

bspAltZweiSechsEins Beispiel 1. Die Grammatik G = ({0,1},{S,A}, S,P ) hat die Produktionen P :S → 0A ∣ AA→ 10A ∣ ε ∣ SB → AA

Das ist keine Normalform-Grammatik, jedoch kann man eine Normalform-Grammatik,die diese Sprache erzeugt, finden, wie wir noch zeigen werden. Zuerst wollen wir abereinen wichtigen Begriff der Graphentheorie einfuhren:

Bemerkung 1. TOPOLOGISCHES SORTIERENGegeben sei ein gerichteter Graph G = (V,E), eine Sortierung seiner Knoten isteine bijektive Abbildung ord ∶ V → {1,2, . . . , n}. Sie heißt topologisch , falls furjede Kante (v,w) in E gilt ord(v) < ord(w). Z.B. hat von den folgenden GraphenG1 und G2

●??

��

��

��

●??

����

��

MM

G1 G2

der Graph G2 keine topologische Sortierung, da er ein Dreieck enthalt – es ist klar,dass nur azyklische Graphen topologische sortiert werden konnen. Der Graph G1

hat die folgenden topologischen Sortierungen:

1

2 3

4

5

??

��

��

��

2

3 1

4

5

??

��

��

��

Jeder azyklische Graph hat eine topologische Sortierung: man findet einen Knoten

x ohne Vorganger (x kann gefunden werden, wenn wir mit einem beliebigen Knotenstarten und uns solange wie moglich in Gegenrichtung der Pfeile bewegen – keinKnoten wird wiederholt besucht, also steht am Ende ein Knoten ohne Vorganger).Man setzt ord(x) = 1 und entfernt x aus dem Graphen. Jetzt wird der Prozess mitder Bewertung ord = 2 wiederholt, usw.

Page 66: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

62 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

Genauer: wir haben den folgenden Algorithmus fur topologisches Sortieren. Wirbezeichnen mit

i = Anzahl aller schon sortierten Knotenund

W = Menge aller noch nicht sortierten Knoten.Initialisierung: i ∶= 0 und W ∶= VRekursiver Schritt:

while ein Knoten x ∈W ohne Vorganger in W existiert doi ∶= i + 1;ord(x) = i;W ∶=W − {x}

od

Ende: Falls n = i, ist der Graph azyklisch und ord ist seine topologische Sortierung.Falls n > i, ist der Graph nicht azyklisch.

Normalisierungsalgorithmus:Fur jede kontextfreie Grammatik G mit ε ∉ L(G) konstruieren wir eine Grammatikin Chomsky-Normalform, die dieselbe Sprache erzeugt. Wir illustrieren die einzelnenSchritte jeweils anhand der Grammatik aus Beispiel 1.

Schritt 1: ε-Produktionen werden eliminiert, siehe Abschnitt 2.7

Beispiel 1 - Schritt 1: Wir berechnen die nullierbaren Variablen: V0 = {A,S}.Diesergibt die GrammatikS → 0A ∣ 0 ∣ AA→ 10A ∣ 10 ∣ SB → AA ∣ A

Schritt 2: Alle Produktionen A → B (A,B Variablen) werden ersetzt. Sei H dergerichtete Graph, dessen Knoten alle Variablen und dessen Kanten genau die

”un-

erwunschten“ Produktionen A→ B unserer Grammatik sind.

1. Die Produktionen A → A werden eliminiert. Alle Kreise des Graphen H wer-den wie folgt entfernt. Sei

A1

A2

A3. . .

An''

��oo

RR

77

ein Kreis der Lange n. Wir entfernen A2, . . . ,An aus der Liste aller Varia-blen und ersetzen Ai durch A1 in jeder Produktion der Grammatik (furi = 2, . . . , n). Jede Produktion Ai → w, i ≠ 1, wird durch A1 → w ersetzt.Diesen Prozess wiederholen wir solange, bis kein Kreis ubrigbleibt. Falls Seine der Variablen des Kreises ist, wahlen wir immer S = A1.

2. In der modifizierten Grammatik ist der Graph H azyklisch, und wir konnenseine Knoten, d.h. alle (ubriggebliebenen) Variablen, topologisch sortieren:

V = {A1,A2, . . . ,Am}.Wir entfernen alle Produktionen

Ai → Ajsystematisch nach dem Index i =m,m−1, . . . ,1 mit dem folgenden rekursivenProzess:

i =m ∶ Keine Produktion Am → Aj existiert.

Page 67: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.8. CHOMSKY-NORMALFORM 63

i→ i − 1 ∶ Nachdem alle Produktionen Am → Aj ,Am−1 → Aj , . . . ,Ai → Ajentfernt wurden, ersetzen wir jede Produktion Ai−1 → Aj durchAi−1 → w fur alle Worter w, fur die Aj → w eine Produktion ist.

Schritt 3: Alle Produktionen bekommen die Form A → w, wobei w entweder einWort aus Variablen oder ein einziges Terminalsymbol ist. Man ersetzt in w (falls waus Variablen sowie Terminalsymbolen besteht) jedes Terminalsymbol a durch eineneue Variable Da und fugt die Produktion Da → a zu P hinzu.

Beispiel 1 – Schritt 2: Die obige Grammatik wird durch die GrammatikG′ = ({0,1},{S,A,D0,D1}, S,P ′)mit den Produktionen P ′ ersetzt:

S →D0S ∣ 0 ∣D1D0S ∣D1D0

B → SS ∣D0S ∣ 0 ∣D1D0S ∣D1D0

D0 → 0D1 → 1

Schritt 4: Alle Produktionen A → w, bei denen w langer als zwei ist, werden durchProduktionen des Typs A→ BC ersetzt. Statt A→ B1B2 . . .Bm schreibt man

A → B1C1

C1 → B2C2

C2 → B3C3

⋮Cm−3 → Bm−2Cm−2

Cm−2 → Bm−1Bmwobei C1, . . . ,Cm−2 neue Variablen sind.

Beispiel 1 – Schritt 4: In der obigen Grammatik G′ ersetzen wir S →D1D0S durch

S → D1CC → D0S.

Analog ersetzen wir B →D1D0B durch

B →D1 ∣ C ′

C ′ →D0 ∣ B.

Schritt 5: Die Produktion S → ε wird hinzugefugt, vorausgesetzt S liegt in V0. Hierist die Chomsky Normalform unseres Beispiels:

S →D0S ∣ 0 ∣D1C ∣D1D0 ∣ εC →D0SB → SS ∣D0S ∣ 0 ∣D1C ∣D1D0

C ′ →D0BD0 → 0D1 → 1

Beispiel 1 – Schritt 2: Die nach Schritt 1 erhaltene Grammatik definiert den Gra-phen

S//Aoo

B

OO

Wir entfernen die variable A und bekommen die GrammatikS → 0S ∣ 0 ∣ S10S ∣ 10B → SS ∣ S

Die ergibt den Graphen

Page 68: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

64 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

B // S��

Den Loop S → S eliminieren wir und sortieren den restlichen Graphen topologisch.

B // S1 2

Die Produktion B → S ersetzen wir durch die Produktionen B → w wobei wir vor-her die Produktion S → w hatten. Wir bekommen die Grammatik

S → 0S ∣ 0 ∣ S10S ∣ 10B → SS ∣ 0S ∣ 0 ∣ 10S ∣ 10

2.9 Algorithmen fur kontextfreie SprachensectAlgoFormSprachen

Die Frage, ob fur eine beliebige kontextfreie Sprache L ein gegebenes Wort w zuL gehort kann von einem effizienten Algorithmus entschieden werden, der Cocke-Younger-Kasami (CYK) Algorithmus heißt. Wir nehmen an, dass die Codierung vonkontextfreien Sprachen durch eine Grammatik in Chomsky-Normalform geschieht.Die Entscheidung, ob ein gegebenes Wort w (Eingabe) in L liegt, ist trivial furw = ε:

Die Antwort ist JA genau dann, wenn S → ε eine Produktion von G ist.

Fur nichtleere Worter benutzen wir die Technik der dynamischen Programmierung.Zuerst verallgemeinern wir die Anfrage, ob w in L liegt, d.h., ob S ⇒∗ w gilt, wiefolgt:

gegeben Variable A→ V und nichtleeres Wort w ∈ Σ∗

entscheide, ob A⇒∗ w.Die Idee ist, dass wir fur jedes Wort w = s1 . . . sn den Teil sisi+1 . . . si+j−1 der Langej, der in si beginnt, mit wi,j bezeichnen und wir die Frage

gilt A⇒∗ wi,j?fur alle i = 1, . . . , n und j = 1, . . . , n − i entscheiden. Da

w = w1,n,wird dies unsere Aufgabe losen.

Wir entscheiden A⇒∗ wi,j mit Induktion uber j.

Der Fall j = 1 bedeutet, dass das Terminalsymbol si von A ableitbar ist. Da unsereGrammatik die Chomsky-Normalform hat, ist die Antwort JA, genau wenn A→ sieine Produktion ist.

Sei j > 1 und sei A ⇒∗ wi,k fur alle i und k ≤ j − 1 entschieden. In der AbleitungA⇒∗ wi,j bezeichnen wir mit A→ BC die erste angewendete Produktion:

A

B C

sisi+1 . . . si+k−1 si+k . . . si+j−1

Dann gilt:

Page 69: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.10. KELLERAUTOMATEN 65

(*) B ⇒∗ wi,k und C ⇒∗ wi+k,j−kfur ein k = 1, . . . , j − 1. Umgekehrt folgt aus (*), dass A⇒∗ wi,j gilt.

Um den CYK-Algorithmus genau zu beschreiben, bezeichnen wirVi,j = {A ∈ V ;A⇒∗ wi,j}fur alle i = 1, . . . , n − 1 und j = 1, . . . , n − i + 1.

CYK-Algorithmus

Eingabe: Eine kontextfreie Grammatik G = (Σ, V, S,P ) in Chomsky-Normalformund ein Wort w = s1s2 . . . sn uber Σ.

Erster Schritt: Fur alle i = 1, . . . , n setzt manVi,1 = {A ∈ V ;A→ si ist eine Produktion}

Rekursiver Schritt: Fur alle i = 1, . . . , n und j = 2, . . . , n setzt manVi,j = {A ∈ V ; es gibt k = 1, . . . , j − 1 und B ∈ Vi,k,C ∈ Vi+k,j−k so,

dass A→ BC eine Produktion ist}Ausgabe: JA, falls S in V1,n liegt, NEIN sonst.

sectBspAltZweiSieben

bspAltZweiSieben Beispiel 1. Sei G = ({a, b},{S,A,B,C},R,S) die Grammatik mit den folgendenProduktionen:

S → AB ∣ BCA → BA ∣ aB → CC ∣ bC → AB ∣ a

Fur das Wortbaaba

wird der CYK-Algorithmus die folgenden Mengen Vi,j berechnen:i

j1 2 3 4 5

1 B A,C A,C B A,C2 S,A B S,C S,A3 ∅ B B4 ∅ S,A,C5 S,A,C

Da S in V1,5 liegt, gehort baaba zur Sprache L(G).

2.10 Kellerautomaten

Es gibt kontextfreie Sprachen, die nicht regular sind, also von keinem endlichenAutomaten akzeptiert werden konnen. Wir brauchen also

”starkere“ Maschinen fur

kontextfreie Sprachen. Nehmen wir das Beispiel der Sprache L aller Palindrome(Beispiel 3 in Abschnitt 2.1): um zu verifizieren, dass die Eingabe a1a2 . . . an, dieein read-only Kopf liest, ein Palindrom ist, mussen wir uns im Laufe der Bearbeitungwenigstens an die erste Halfte des Eingabewortes erinnern (um sie mit der anderenHalfte vergleichen zu konnen). Das schafft ein endlicher Automat nicht, denn dazubrauchen wir einen potenziell unendlichen Speicher. Falls wir jetzt aber zu demAutomaten einen externen Speicher hinzufugen, in dem die Eingabe gespeichertwerden kann, ist es moglich, Sprachen wie die aller Palindrome zu akzeptieren. Derexterne Speicher wird die Form eines Kellers (oder Stack, also

”last-in-first-out“

Speichers) haben. Das bedeutet, dass in jedem Schritt das erste Symbol aus demKeller gelesen und weggeworfen wird (pop-Operation) und ein oder mehrere neueSymbole gespeichert werden (push-Operation).

Wir zeigen, dass jede kontextfreie Sprache von einem endlichen Automaten mitexternem Keller akzeptiert werden kann – und umgekehrt, solche Automaten ak-

Page 70: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

66 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

zeptieren gerade die kontextfreien Sprachen. Leider mussen wir hier von Anfang anmit nichtdeterministischen Automaten arbeiten, denn in diesem Berechnungsmodellgilt nicht, dass jeder nichtdeterministische Automat von einem deterministischenAutomaten ersetzt werden kann.

Wir arbeiten hier mit zwei Alphabeten:Σ – das Alphabet der EingabesymboleK – das Alphabet der Kellersymbole.

Der Inhalt des Kellers wird von n Zeichen k1, . . . , kn geformt. Dies wird als ein Wortk1k2 . . . kn ∈K∗ beschrieben (wegen ε ∈K∗ kann der Keller auch leer sein).

Die Ubergangsfunktion δ hat hier, statt zwei Variablen q (Zustand) und s (Ein-gabe), drei Variablen: die dritte, k ∈ K, ist der erste Buchstabe des Kellerwortes.Aufgrund des Tripels (q, s, k) ∈ Q×Σ×K wird entschieden werden, welcher der neueZustand q′ ∈ Q wird und welches Wort w ∈ K∗ im Keller gespeichert werden soll;das schreiben wir in der Form

qs,k/w // q′

Also soll δ eine Untermenge von (Q × Σ ×K) × (Q ×K∗) sein. Aber da wir auchspontane Ubergange (ohne Eingabe, vergleiche mit Automaten, Absatz 1.3) erlau-ben wollen, also Produktionen der Form (q,#, k) → (q′,w), ist δ eine Untermengevon (Q × (Σ ∪ {#}) ×K) × (Q ×K∗).

Beispiel 1. Die Sprache 0n1n (n = 1,2,3, . . .) wird von dem Kellerautomat akzep-tiert, der

(a) im Initialzustand q0 immer Eingabe 0 in den Keller speichert, wenn er k0 oder1 sieht:

q00,0/00 //

0,k0/0k0

q0

(b) Eingabe 1 dazu fuhrt, dass eine 0 aus dem keller entfernt wird und der Zustandzu q1 geandert wird:

q01,0/ε // q1 und q1

1,0/ε // q1

und

(c) Beim Kellertop k0 wird spontan k0 entfernt:

q1#k0/ε // q1

Hier der ganze Kellerautomat:

� � // q0

0,0/00

0,k0/0k0

1,0/ε // q1

#,k0/ε

1,0/ε

Definition. Ein Kellerautomat (englisch: pushdown automaton) P ist ein 7-TupelP = (Q,Σ,K, δ, q0, k0, F )

wobei

Page 71: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.10. KELLERAUTOMATEN 67

Q eine endliche Menge, die Zustandsmenge, ist,Σ und K zwei Alphabete (Eingabe- und Kelleralphabet) sind,δ eine endliche Untermenge von (Q × (Σ ∪ {#}) ×K) × (Q′ ×K∗) ist, deren

Elemente mit (q, s, k)→ (q′,w) bezeichnet werden und Ubergangsregeln heißen,q0 ∈ Q der Initialzustand ist,F ⊆ Q die Menge aller Finalzustande ist undk0 ∈K das Startsymbol ist.

Bemerkung 1. Wie arbeitet ein Kellerautomat? Am Anfang hat er den Zustandq0 und im Keller steht der Buchstabe k0. Jetzt werden die folgenden Schritte durch-gefuhrt:

Erster Schritt: ist entweder spontan, d.h., der Zustand q0 geht in den Zustand q1

uber und der Kellerinhalt wird von k0 zu w1 verandert, falls(q0,#, k0)→ (q1,w1)

eine der Ubergangsregeln ist. Oder der erste Schritt ist nicht spontan: q0 geht nachq1 uber und der Kellerinhalt andert sich zu w1, falls

(q0, s1, k0)→ (q1,w1) mit s1 ∈ Σeine der Ubergangsregeln ist. Im zweiten Fall wird s1 von der Eingabe entfernt, unds2 wird als nachstes Eingabesymbol gelesen.

Zweiter Schritt: dieser tritt nur dann ein, wenn der Keller nach dem ersten Schrittnicht leer ist. Sei k1 das top-Element des Kellers. Wir gehen von dem Zustand q1

zu q2 uber und andern den Kellerinhalt von w1 zu w2 entweder spontan:(q1,#, k1)→ (q2,w2)

oder nicht spontan:(q1, si, k1)→ (q2,w2),

wobei i = 1 oder i = 2 (je nachdem, ob s1 im Schritt 1 entfernt wurde oder nicht).Im zweiten Fall wird si von der Eingabe entfernt, usw.

Formal:

Definition. Eine Konfiguration eines Kellerautomaten ist ein Tripel(q, s1 . . . sn, k1 . . . km) in Q ×Σ∗ ×K∗

das den momentanen Zustand q, die (restliche) momentane Eingabe s1 . . . sn ∈ Σ∗

und den momentanen Kellerinhalt k1 . . . km ∈K∗ beschreibt.

Die Folgekonfigurationen einer Konfiguration (q, s1 . . . sn, k1k2 . . . km) sind alleKonfigurationen (q′, s2 . . . sn,wk2 . . . km), wobei

(q, s1, k1)→ (q′,w) eine Regel ist,sowie alle Konfigurationen (q′, s1 . . . sn,wk2 . . . km), wobei

(q,#, k1)→ (q′,w) eine Regel ist.

Wir schreibenC ⊢ C ′

falls C ′ eine Folgekonfiguration der Konfiguration C ist.

Wie oben, bezeichnet⊢∗

die transitive und reflexive Hulle von ⊢.

Definition. (a) Konfigurationen (q0, s1 . . . sn, k0) heißen initial . Hier ist s1 . . . sndie (ganze) eingehend.

(b) Konfiguration (q, ε, ε) wobei q∈F heißen akzeptierend. D.h. der Keller ist leer(deswegen keine weitere Schritte moglich), es gibt keinen Rest der Eingabe undder Zustand ist akzeptierend.

(c) Ein Wort w = s1 . . . sn ∈ Σ∗ wird von dem Kellerautomaten P akzeptiert, fallswenigstens eine akzeptierende Berechnung von w moglich ist. D.h., von der

Page 72: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

68 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

Initialkonfiguration (q0,w, k0) eine akzeptierende Konfiguration erreicht werdenkann:

(q0,w, k0) ⊢∗ (q, ε, ε) fur ein q ∈ F .

Die Sprache aller von P akzeptierten Worter ist durch L(P ) bezeichnet. KurzL(P ) = {w;w ∈ Σ∗ und es gibt q ∈ F mit (q0,w, k0) ⊢∗ (q0, ε, ε)}.

sectBspAltZweiAchtEins

bspAltZweiAchtEins

Beispiel 1 (Fortsetzung) Der Kellerautomat akzeptiert alle Worter 0n1n. ZumBeispiel die Berechnung von 0011 ist

(q0,0011, k0) ⊢ (q0,011,0k0)⊢ (q0,11,00k0)⊢ (q0,1,0k0)⊢ (q0, ε, k0)⊢ (q1, ε, ε)

Umgekehrt, jedes akzeptierende Wort hat die Form 0n1n. In der tat, wenn (q0,w, k0) ⊢∗(q1, ε, ε) gilt, muss die vorletzte Konfiguration dieser Berechnung (q1, ε, k0) sein. DieAnzahl n von Schritten der Berechnung in denen q0 als Zustand bleibt entsprichtdem Anfang 0n von w. Dann kommt ε1 (und wird nicht verlassen werden). Da dievorletzte Konfiguration keine 0 im Speicher hat, mussen genau n Schritte passieren,d.h., w = 0n1n.

Beispiel 2. Palindrome uber {a, b} von gerader Lange. D.h., L besteht aus wwR

mit w ∈ {a, b}∗. Der Automat bleibt im Zustand q0 und speichert einfach die Eingabe

� � // q0b,x/bx //a,x/ax

q0 wobei x = a, b oder k0

In der”zweiten Halfte“ vergleicht er Eingabe und Kellertop und wenn sie gleich

sind, schmeißt er den Kellertop weg

� � // q0b,b/ε //a/a/ε

q0

Wenn er am Ende k0 sieht, schmeißt er es spontan weg:

� � // q0 a,a/εkk

b,x/bxa,x/ax

b,b/ε#,k0/ε

Jedes Wort wwR wird akzeptiert. Beispiel

(q0, abba, k0) ⊢ (q0, bba, ak0)⊢ (q0, ba, bak0)⊢ (q0, a, ak0)⊢ (q0, ε, k0)⊢ (q0, ε, ε)

sectBspAltZweiAchtDrei

bspAltZweiAchtDrei Beispiel 3. Jeder endliche, nichtdeterministische Automat M kann als Kellerau-tomat, der nie auf den Keller zugreift, aufgefasst werden. Genauer: es genugt, dieUbergangsregeln

(q, s)→ q′

von M in die Form

Page 73: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.11. KELLERAUTOMATEN UND KONTEXTFREIE SPRACHEN 69

(q, s, k0)→ (q′, k0)zu ubersetzen und die spontanen Ubergange

(q,#, k0)→ (q, ε)fur alle finalen Zustande hinzuzufugen.

Bemerkung 2. In den vorigen Beispielen hatten wir schon eine kontextfreie Gram-matik, und wir konstruierten einen zusatzlichen Kellerautomaten. Es gibt aber vieleBeispiele, bei denen es auf den ersten Blick nicht klar ist, was fur eine Grammatikhier zu definieren ware, aber die Konstruktion eines Kellerautomaten ist intuitivklar.

sectBspAltZweiAchtVier

bspAltZweiAchtVier Beispiel 4. Die Sprache L aller Worter in {a, b}∗ mit derselben Anzahl von a’sund b’s.

Der Kellerautomat P speichert am Anfang das gelesene Symbol a oder b zum Start-symbol k0 hinzu und andert den Zustand zu q1:

(q0, a, k0)→ (q1, ak0)(q0, b, k0)→ (q1, bk0).

Danach speichert P entweder eine Reihe von a’s (falls bisher mehr a’s als b’s gelesenwurden), und in diesem Fall fuhrt jedes gelesene b zur Pop-Operation eines a:

1. (q1, a, a)→ (q1, aa)2. (q1, b, a)→ (q1, ε)

oder umgekehrt, P speichert eine Reihe von b’s (falls mehr b’s als a’s gelesen wur-den):

3. (q1, b, b)→ (q1, bb)4. (q1, a, b)→ (q1, ε)

Falls im Kellertop k0 steht, kann P spontan in den Haltezustand q2 ∈ F ubergehen:(q1,#, k0)→ (q2, ε).

Genauer: der folgende Kellerautomat akzeptiert L:

� � // q0b,k0/bk0 //a,k0/ak0

q1

a,b/ε

b,b/bbb,a/εa,a/aa

#,k0/ε // q2

2.11 Kellerautomaten und kontextfreie Sprachen

Wir zeigen jetzt, dass jede kontextfreie Sprache von einem Kellerautomaten akzep-tiert werden kann. Umgekehrt gilt, dass jede von einem Kellerautomaten akzeptierteSprache kontextfrei ist. Also gilt zwischen kontextfreien Sprachen und Kellerauto-maten dieselbe Beziehung wie zwischen regularen Sprachen und endlichen (nichtde-terministischen) Automaten.

Konstruktion eines Kellerautomaten

Fur jede kontextfreie Grammatik G = (Σ, V, S,P ) definieren wir einen Kellerauto-maten PG mit einem einzigen Zustand q (der initial sowie final ist), dem Eingabe-alphabet Σ und dem Kelleralphabet Σ ∪ V , wobei S das Kellerstartsymbol ist. DieUbergangsregeln sind wie folgt:

1. (q, x, x)→ (q, ε) fur alle x ∈ Σ,(also wird eine pop-Operation in dem Falle durchgefuhrt, dass die Eingabemit dem Top-Element des Kellers ubereinstimmt) und

Page 74: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

70 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

2. (q,#,A)→ (q,w) fur alle Ableitungsregeln A→ w der Grammatik G(also erfolgt eine spontane Ersetzung des Top-Elements des Kellers durch einWort nach den Produktionen der Grammatik).

AlsoPG = ({q},Σ,Σ ∪ V, δ, q, S,{q}),

wobei δ von den Ubergangsregeln 1. und 2. geformt wird.

Beispiel 1. Die Grammatik fur Palindrome uber Σ = {a, b}:

S → ε∣a∣b∣aSa∣bSb

ergibt den Kellerautomaten

� � // q0

b,b/ε

a,a/εS,#/bSb

⋮S,#/aS,#ε

Jedes Wort aus L(g) wird akzeptiert: wir formen einen Syntaxbaum und durchsu-chen ihn mit Tiefensuche und bekommen eine Berechnung: Beispiel abbba

S

a S a

b S b

b

(q0, abbba,S) ⊢ (q0, abbba, aSa)⊢ (q0, bbba,Sa)⊢ (q0, bbba, bSba)⊢ (q0, bba, Sba)⊢ (q0, bba, bba)⊢ (q0, ba, ba)⊢ (q0, a, a)⊢ (q0, ε, ε)

Bemerkung 1. Ein Baum wird Tiefensuche durchsucht, falls wir alle Knoten wiefolgt besuchen:

1. Der erste besuchte Knoten ist die Wurzel.

2. Falls der besuchte Knoten kein Blatt ist, ist der nachste besuchte Knoten seinerster Sohn.

3. Falls der besuchte Knoten x ein Blatt ist und noch nicht alle Knoten besuchtwurden, gehen wir von x in Richtung Wurzel, bis wir den ersten Knoten yantreffen, der einen noch nicht besuchten Sohn hat. Wir besuchen als nachstesden ersten noch nicht besuchten Sohn von y.

Der Baum B wird wie angedeutet depth-first durchsucht:

Page 75: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

2.11. KELLERAUTOMATEN UND KONTEXTFREIE SPRACHEN 71

BAUM B TIEFENSUCHE

1

2 11

3 6

4 5 7 8

9 10

sectSatzAltZweiNeunEins

satzAltZweiNeunEins Satz 1. Fur jede kontextfreie Grammatik G akzeptiert der oben konstruierte Kel-lerautomat PG die Sprache L(G).

Beweis. 1. Jedes Wort w in L(G) wird von PG akzeptiert. Falls namlich Bein Ableitungsbaum fur w ist, konnen wir eine Berechnung, die w akzeptiert,wie folgt beschreiben: Der Ableitungsbaum wird depth-first durchsucht. JederSchritt dieser Durchsuchung entspricht einem Schritt der Berechnung, wobeiim Kellertop immer die Markierung des momentanen Knotens gespeichertwird.

In jedem Knoten, der kein Blatt ist und der einer Produktion A → a1 . . . anentspricht, andert sich die Konfiguration von PG spontan, entsprechend derUbergangsregel (q,#,A)→ (q, a1 . . . an).Zum Beispiel, am Anfang

S

a1 a2 an. . .

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶w

andert PG die Konfiguration wie folgt(q,w,S)→ (q,w, a1a2 . . . an),

und die Durchsuchung des Ableitungsbaumes geht zum ganz links stehendenSohn der Wurzel uber. (Im Top des Kellers steht also die Markierung desmomentanen Knotens!)

In jedem Blatt markiert mit a benutzen wir die Ubergangsregel (q, a, a) →(q, ε). Nachdem der ganze Baum durchsucht wurde, erhalten wir die akzep-tierende Konfiguration (q, ε, ε).

2. Umgekehrt, falls w akzeptiert wird, konstruieren wir einen Ableitungsbaumfur w. Die Konstruktion folgt eine akzeptierende Berechnung von w. Der Baumwird Schritt fur Schritt depth-first konstruiert; in jedem Berechnungsschritterzeugen wir einen neuen Knoten des Baumes und markieren ihn mit demTop-Element des Kellers.

Der erste Schritt muss also darin bestehen, dass die Wurzel erzeugt und mitS markiert wird.

Weitere Schritte:

(a) Falls die Berechnung aufgrund der spontanen Ubergangsregel (q,#,A)→(q, a1 . . . an) weiter geht, erzeugen wir n neue Sohne des momentan be-

Page 76: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

72 KAPITEL 2. KONTEXTFREIE SPRACHEN UND KELLERAUTOMATEN

suchten Knotens und markieren sie mit a1, . . . , an. Da der Baum depth-first untersucht wird, gehen wir zum ganz links stehenden Sohn uber (der,wie gewunscht, mit dem Top-Element a1 des Kellers markiert wird).

(b) Falls die Ubergangsregel (q, a, a) → (q, ε) benutzt wurde, bleibt der mo-mentan besuchte Knoten ein Blatt, und wir gehen (depth-first) zumnachsten Knoten uber.

Bemerkung 2. In dem letzten Beweis konstruierten wir einen Kellerautomaten,der nur einen Zustand hat. Das ist im Vergleich mit endlichen Automaten (undderen Zustandsminimierung) uberraschend. Eigentlich gilt aber:

Jeder Kellerautomat P kann durch einen Kellerautomaten P ′ mit nureinem Zustand simuliert werden.

(Die Idee der Simulation ist, dass der Automat P ′ die folgenden Kellersymbole(q, k, q′) ∈ Q×Γ×Q hat und, falls P im Zustand q das Topsymbol k im Keller liestund den Zustand zu q′ andert, entspricht dies dem Symbol (q, k, q′) im Top desKellers von P ′.) Wir fuhren hier den Beweis dieses Simulationssatzes nicht durch.

sectSatzAltZweiNeunZwei

satzAltZweiNeunZwei Satz 2. Eine Sprache ist genau dann kontextfrei, wenn sie von einem Kellerauto-maten akzeptiert wird.

Beweis. Jede kontextfreie Sprache wird, nach Satz 1 in Abschnitt 2.11, von einemKellerautomaten akzeptiert.

Umgekehrt beweisen wir fur jeden Kellerautomaten P , dass die Sprache L(P ) kon-textfrei ist. Wir nehmen an, dass P nur einen Zustand hat (siehe vorige Bemer-kung). Die Variablen der Grammatik sind [k] fur k ∈ Γ. (Die eckigen Klammernunterscheiden Variablen von den terminalen Symbolen in ∑.) Startsymbol ist [k0].Die Ubergangsregeln von P werden als Produktionen einer Grammatik G wie folgtubersetzt:

1. statt (q, x, k)→ (q, k1 . . . kn) schreibt man [k]→ x[k1] . . . [kn] und

2. statt (q,#, k)→ (q, k1 . . . kn) schreibt man [k]→ [k1] . . . [kn].

Genauer: wir formen die kontextfreie GrammatikG = (Σ,Γ, k0, P ),

deren Variablen die Kellersymbole von P sind (in eckigen Klammern) und derenProduktionen die obige Form 1. und 2. haben. Der Beweis, dass

L(G) = L(P )folgt analog zum Beweis von Satz 1 in Abschnitt 2.11:

Falls ein Wort w von G erzeugt wird, d.h., falls wir einen Ableitungsbaum fur whaben, konnen wir den Ableitungsbaum depth-first durchsuchen, und wir bekom-men eine akzeptierende Berechnung fur den Kellerautomaten P : die beginnt mitder Initialkonfiguration (q,w, k0) und geht mit den Ubergangsregeln weiter, die denbenutzten Produktionen im Ableitungsbaum genau entsprechen.

Umgekehrt, falls ein Wort w von P akzeptiert wird, konstruieren wir einen Ab-leitungsbaum fur w dadurch, dass wir depth-first neue Knoten erzeugen, die denUbergangsregeln der Berechnung entsprechen.

Bemerkung 3. Automaten PG, wie oben konstruiert (genauer: deterministischeKellerautomaten, die PG modifizieren), werden im Compilerbau bei der Top-Down-Syntaxanalyse von Programmen benutzt.

Page 77: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

Kapitel 3

Turingmaschinen

kapTM

Weder endliche Automaten noch Kellerautomaten sind genugend starke Berech-nungsmodelle, denn sie sind nicht fahig, selbst so einfache Sprachen wie z. B.{anbncn;n ≥ 1} zu akzeptieren. Wir fuhren jetzt ein Modell einer Maschine ein,die eine sehr starke Leistung hat, obwohl die Definition nicht komplizierter als dieder Kellerautomaten ist: die Turingmaschinen. Diese Maschinen wurden von AlanTuring in den 1930’er als Formalisierung des intuitiven Begriffs des Algorithmuseingefuhrt. Turing versuchte zu zeigen, dass jeder Rechenprozess, den ein Menschaufgrund einer (endlichen, eindeutigen) Anweisung durchfuhren kann, auch automa-tisch von einer Maschine durchgefuhrt werden kann. Was einem menschlichen Rech-ner zur Verfugung steht, ist eine endliche Liste von Instruktionen, die zusammenmit den Daten in seinem Gedachtnis eine endliche Menge von (inneren) Zustandenformt. Außerdem hat er einen unbeschrankten Raum, in dem er lesen, schreiben unduberschreiben darf. Das kann (zweidimensional) durch einen beliebig erweiterbarenPapierstoß realisiert werden, oder aquivalent, falls alle Zeilen als Erweiterungen derersten angesehen werden, als ein (eindimensionales) unendliches Band. Das formaleModell ist dann dem eines Kellerautomaten ahnlich: anstelle des Kellers gibt es hierein Band, auf dem sich ein read-and-write-Kopf unbeschrankt bewegt.

Die Leistungsfahigkeit von Turingmaschinen ist trotzdem unvergleichlich großer alsdie der Kellerautomaten. Es zeigt sich, dass die Klasse aller Probleme, die mit Tu-ringmaschinen gelost werden konnen, dieselbe ist wie die Klasse aller Probleme, diemoderne Rechner mit modernen Programmiersprachen losen konnen. Die Church-sche These, die wir s0pater genauer erlautern, behauptet, dass die Turingmaschinesogar ein ganz allgemeines Modell des Begriffs des Algorithmus ist. Also kann einProblem genau dann mit einem Algorithmus gelost werden, wenn eine Turingma-schine es losen kann. Diese These kann nicht bewiesen werden (der Begriff des Algo-rithmus ist eben doch nur intuitiv), aber sie wurde mehrmals uberzeugend dadurchuntermauert, dass andere – oft grundsatzlich verschiedene – Berechnungsmodelledieselbe Klasse losbarer Probleme ergeben.

3.1 Definition einer Turingmaschine

Eine Turingmaschine besteht – analog zum Kellerautomaten – aus inneren Zustan-den, externem Speicher und einer Betriebseinheit, die aufgrund des momentanenZustandes und des gerade gelesenen Symbols entscheidet, welcher der nachste Zu-stand ist und wie der Speicher geandert wird. Im Vergleich zu Kellerautomatenhat hier der Speicher den Typ eines (unbeschrankten) Bandes, auf dem sich ein

73

Page 78: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

74 KAPITEL 3. TURINGMASCHINEN

Lese-/Schreibkopf frei bewegt:

a b b a

⇑Kopf

Band

Betriebseinheit

●q1

●q0

●q3

●q2

��

{{

. . . . . .

(Obwohl das Band unbeschrankt ist, ist zu jedem Zeitpunkt nur ein endlicher Teilbeschrieben; der Rest ist leer.) Noch ein Unterschied im Vergleich zu den Kellerau-tomaten: wir arbeiten zuerst nur mit deterministischen Turingmaschinen, denn siesind (wie im Fall der endlichen Automaten) genauso leistungsfahig wie die nichtde-terministischen. Das beweisen wir spater. Die Ubergangsfunktion δ einer Turingma-schine entscheidet aufgrund des momentanen Zustandes q und des gerade gelesenenBandsymbols s, ob

1. sich der Zustand zu q′ andert und sich der Kopf nach links (L) oder rechts(R) bewegt oder

2. sich der Zustand zu q′ andert und der Kopf das momentane Bandsymbol miteinem neuen Symbol s′ uberschreibt.

Das beschreiben wir als Funktionδ(q, s) = (q′, s′), wobei s′ = L, R oder s′ ∈ Σ ist.

(Σ ist das gegebene Eingabealphabet). Wir mussen aber auch Bandfelder, die nichtbeschriftet sind, behandeln. Dazu fuhren wir ein Spezialsymbol

# (Blank)ein, das unbeschriftete Felder bezeichnet. In der Formel δ(q, s) = (q′, s′) sind q undq′ also Zustande, s ein Symbol aus Σ ∪ {#} und s′ ein Symbol aus Σ ∪ {#,L,R}.

Obwohl die Turingmaschine, wie wir sie jetzt definieren, deterministisch ist, gibt esneben 1. und 2. noch eine weitere Moglichkeit fur ihr Verhalten, namlich dass

3. die Maschine im Zustand q auf dem Bandsymbol s halt und die Berechnungendet.

Formal wird dies dadurch beschrieben, dass δ(q, s) nicht definiert ist.

Hier ist δ also eine partielle Funktion. Es gibt einen wichtigen Grund fur diesendritten Fall: der Kopf der Turingmaschine ist kein read-only-Kopf (wie im Fallder endlichen Automaten und Kellerautomaten). Der Impuls, eine Berechnung zubeenden, erfolgt hier also nicht durch das Ende der Eingabe.

Im Vergleich mit den DEA oder Kellerautomaten ergibt sich eine kleine Vereinfa-chung: es genugt ein finaler Zustand, wir brauchen keine Menge F ⊆ Q (vergleiche3.2 unten).

Notation. Wir bezeichnen Σ = Σ ∪ {∗} als die Menge aller Bandsymbole.sectDefTuringmaschine

defTuringmaschine Definition. Eine Turingmaschine (TM) ist ein FunftupelM = (Q,Σ, δ, q0, qF )

wobei

Page 79: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.1. DEFINITION EINER TURINGMASCHINE 75

Q eine endliche Menge (aller Zustande),Σ eine endliche Menge (das Eingabealphabet), die die Symbole L, R und

# nicht enthalt,δ eine partielle Funktion (die Ubergangsfunktion) mit Definitionsbereich

Q × (Σ ∪ {#}) und Wertebereich Q × (Σ ∪ {#,L,R}),q0 ∈ Q der Initialzustand undqF ∈ Q der Finalzustand ist.

Notation. Wir schreiben statt δ(q, s) = (q′, s′) oft nur(q, s)→ (q′, s′)

und sprechen von Ubergangsregeln . Wenn s′ = L, bedeutet diese Regel, dass derLesekopf nach links geht. Analog fur s′ = R. Wenn s′ in Σ liegt, wird das geleseneSymbol s durch s′ uberschrieben und der Kopf bewegt sich nicht.

sectBspAltDreiEinsEins

bspAltDreiEinsEins Beispiel 1. Teilbarkeit durch 5. Der Algorithmus, der fur eine Zahl entscheidet, obsie durch 5 teilbar ist, ist einfach: akzeptiert werden Zahlen mit der letzten Ziffer 0oder 5. Wir lesen also die Eingabe s1 . . . sn bis wir das letzte beschriebene Feld snerreichen (also: bis # erscheint und dann einen Schritt zuruck). Falls sn = 0 oder 5,gehen wir in den Finalzustand qF uber:(q0, i)→ (q0,R) fur i = 0,1, . . . ,9 (wir lesen weiter)(q0,#)→ (q1, L) einen Schritt zuruck und in den neuen Zustand q1

(q1,0)→ (qF ,0)(q1,5)→ (qF ,5)

} falls sn = 0 oder 5, ist der letzte Zustand qF

Genauer: die folgende TMM = ({q0, q1, qF },{0,1, . . . ,9}, δ, q0, qF ),

deren Ubergangsregeln oben aufgelistet sind, akzeptiert die Sprache aller Worteruber Σ = {0,1, . . . ,9}, die mit 0 oder 5 enden. Beispiel einer Berechnung: fur dieEingabe 132 wird die TM die folgenden Schritte machen:

⇑q0

⇑q0

⇑q0

⇑q0

⇑q1

Initialkonfiguration

Haltekonfiguration

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

231## # # # #

231## # # # #

231## # # # #

231## # # # #

231## # # # #

Da kein Ubergang (q1,2)→ definiert ist, halt hier die Turingmaschine. Die Eingabe132 wird nicht akzeptiert, da q1 nicht der Finalzustand ist.

Page 80: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

76 KAPITEL 3. TURINGMASCHINEN

Die Berechnung von Eingaben formalisieren wir jetzt.

Konfigurationen: Eine Konfiguration einer Turingmaschine ist die vollstandigeInformation uber die TM zu einem Zeitpunkt der Berechnung; sie wird durch (1)den momentanen Zustand q, (2) den Inhalt des Bandes und (3) die Position desKopfes bestimmt. Also ist (1) ein Element der Menge Q. Wir konnen (2) und (3)zusammenfassen, indem wir sagen, welches Wort uL links vom Kopf steht, welchesWort uR rechts steht und welches Symbol a aus Σ = Σ ∪ {#} der Kopf liest. Dabeiist uL entweder leer, oder hat das erste Symbol aus Σ und die weiteren aus Σ:

uL ∈ Σ ×Σ∗ ∪ {ε}.

Analog uR ∈ Σ∗ ×Σ ∪ {ε}.

Eine Konfiguration ist also ein Quadrupel

(q, u, a, v), wobei q ∈ Q,u ∈ Σ ×Σ∗ ∪ {ε}, a ∈ Σ und v ∈ Σ

∗ ×Σ ∪ {ε}.Die Menge aller solcher Quadrupel

K = Q × (Σ ×Σ∗ ∪ {ε}) ×Σ × (Σ∗ ×Σ ∪ {ε})

heißt Konfigurationsmenge .

Die ublichere (und ubersichtlichere) Schreibweise ist, u, a, v zu konkatenieren und azu unterstreichen:

(q, uav).In Beispiel 1 hat die Berechnung also die Konfigurationen

(q0,132)(q0,132)(q0,132)(q0,132#) und(q1,132)

Berechnung: Die Eingabes1s2 . . . sn ∈ Σ∗

wird immer so auf das Band geschrieben, dass die Buchstaben ohne Leerzeichenhintereinander stehen. Der Kopf wird auf den ersten Buchstaben gestellt und derZustand ist initial. Mit anderen Worten heißt das: wir erwarten am Anfang, dassdie Konfiguration die folgende Form hat:(∗) (q0, s1s2 . . . sn), wobei s1 . . . sn ∈ Σ∗.Der Fall der leeren Eingabe ε ∈ Σ∗ (also n = 0) entspricht der Konfiguration

(q0,#).Konfigurationen der Form (∗) heißen Initialkonfigurationen .

Falls die Turingmaschine eine Konfiguration(q, s1s2 . . . si−1sisi+1 . . . sn)

erreicht hat, gibt es zwei Moglichkeiten: entweder ist δ(q, si) nicht definiert, dannheißt die Konfiguration Haltekonfiguration , oder es gilt

δ(q, si) = (q′, s′) mit s′ ∈ {L,R} ∪Σ,dann definieren wir die Folgekonfiguration wie folgt:

1. falls s′ =L, dann ist die Folgekonfiguration(q′, s1s2 . . . si−1sisi+1 . . . sn)

2. falls s′ =R, dann ist die Folgekonfiguration(q′, s1s2 . . . si−1sisi+1 . . . sn)

3. falls s′ ∈ Σ, dann ist die Folgekonfiguration(q′, s1s2 . . . si−1s

′si+1 . . . sn).

Page 81: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.1. DEFINITION EINER TURINGMASCHINE 77

Konfiguration δ(q, si) Folgekonfiguration

(q, s1s2 . . . si−1sisi+1 . . . sn) (q′,L) (q′, s1s2 . . . si−1sisi+1 . . . sn)(q, s1s2 . . . si−1sisi+1 . . . sn) (q′,R) (q′, s1s2 . . . si−1sisi+1 . . . sn)(q, s1s2 . . . si−1sisi+1 . . . sn) (q′, s′) (q′, s1s2 . . . si−1s

′si+1 . . . sn)(q, s1s2 . . . si−1sisi+1 . . . sn) nicht definiert keine (Haltekonfiguration)

Tabelle 3.1: tabFolgekonfigurationDefinition der Folgekonfiguration der TM

sectTabFolgekonfiguration

Diese Definition ist in Tabelle 3.1 zusammengefasst.

Bemerkung 1. Wie ist der Fall 1 zu verstehen, falls i = 1 gilt? Die Folgekonfigura-tion zu (q0, s1 . . . sn) ist naturlich (q′,#s1 . . . sn). Analog folgt im Fall 2 aus i = n,dass die Folgekonfiguration (q′, s1 . . . sn#) ist.

Notation. Die Relation”Folgekonfiguration“ auf der Menge K aller Konfiguratio-

nen bezeichnen wir mit dem Symbol ⊢. Also ergibt der 1. Fall(q, s1s2 . . . si−1sisi+1 . . . sn) ⊢ (q′, s1s2 . . . si−1sisi+1 . . . sn)

usw. Die reflexive und transitive Hulle dieser Relation wird mit ⊢∗ bezeichnet; d.h.,K ⊢∗ K ′ bedeutet, dass K und K ′ zwei Konfigurationen sind, die entweder gleichsind oder dass es Konfigurationen

K =K0,K1, . . . ,Kn =K ′

mit Ki−1 ⊢ Ki fur i = 1, . . . , n gibt. Wir sagen, dass die Konfiguration K ′ von Kberechenbar ist.

In Beispiel 1 in Abschnitt 3.1 gilt(q0,132) ⊢ (q0,132) ⊢ . . . ⊢ (q1,132)

und, die letzte Konfiguration hat keine Folgekonfiguration, da sie eine Haltekonfi-guration ist.

sectDefTMKonfiguration

defTMKonfigurationen Definition. Fur jede Turingmaschine ist die Berechnung einer Eingabe s1s2 . . . sn∈ Σ∗ eine endliche oder unendliche Liste von Konfigurationen:

K0 ⊢ K1 ⊢ K2 ⊢ . . .wobei

1. K0 die Initialkonfiguration mit K0 = (q0, s1s2 . . . sn) ist, und

2. falls die Liste endlich ist, ist die letzte Konfiguration eine Haltekonfiguration.

Wir sagen, dass die Turingmaschine die Eingabe genau dann akzeptiert , wenn ihreBerechnung endlich ist und der Zustand der letzten Konfiguration final ist.

Bemerkung 2. Die Berechnung einer Eingabe w hat also drei mogliche Ergebnisse:

1. die TM halt und akzeptiert w,

2. die TM halt und akzeptiert w nicht,

3. die TM halt nicht (und akzeptiert w deshalb nicht).

Am Anfang ist die Eingabe”kompakt“, also ohne Unterbrechung (durch #) auf dem

Band geschrieben. Im Verlauf der Berechnung kann # an jeder Stelle erscheinen.

Page 82: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

78 KAPITEL 3. TURINGMASCHINEN

Beispiel 1. (Fortsetzung) Die Berechnung der Eingabe 132 haben wir beschrie-ben. Die letzte Konfiguration ist (q1,132). Da q1 nicht final ist, wird 132 nichtakzeptiert.

Auch das leere Wort wird nicht akzeptiert: hier haben wir eine 1-Schritt-Berechnung,denn (q0,#) ist eine Haltekonfiguration, und q0 ist nicht final.

Diese Turingmaschine halt auf jede Eingabe (eine wichtige Eigenschaft, wie wirspater erfahren werden) und akzeptiert genau die Eingaben, deren letztes Symbol0 oder 5 ist.sectDefSpracheEinerTM

defSpracheEinerTM Definition. Fur jede Turingmaschine M = (Q,Σ, δ, q0, F ) bezeichnen wir mitL(M)

die Sprache aller Worter uber Σ, die M akzeptiert.sectBspAltDreiEinsDrei

bspAltDreiEinsDrei Beispiel 2. DEA als Turing-Maschine. Gegeben sei ein DEA, A = (Q,Σ, δ, q0, F ),definieren wir eine TM

A = (Q ∪ {qf},Σ, δ, q0, qf) wobei qf /∈ Q

wie folgt:

(a) jedem Ubergang (q, s) //q′ in A entspricht der Ubergang (q, s) //(q′,R)in A

und

(b) fur jeden Zustand q ∈ F , der in A final ist, den Ubergang (q,∗) //(qf ,∗) .

Dann hat die Turing-Maschine dieselbe Berechnung einer Eingabe s1 . . . sn wie derDEA: wir starten in

s1 s2 . . . sn

⇑q0

. . . . . .

und fur den Ubergang (q0, s1) //q1 in A ist die nachste Konfiguration

s1 s2 . . . sn

⇑q1

. . . . . .

usw.

Wenn wir die Konfiguration

s1 s2 . . . sn

⇑qn

. . . . . .

erreichen, dann

qn final ⇒ die nachste Konfiguration mit Zustand qf akzeptiert

und

qn nicht final ⇒ keine weitere Konfiguration und die letzte akzeptiert nicht.

Page 83: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.2. MODIFIKATIONEN VON TURINGMASCHINEN 79

Bemerkung 3. Fur einen DEA von k Zustanden und m Eingaben hat die entspre-chende TM km + 1 Zustande.

Beispiel 3. Eine Turing-Maschine fur die Sprache

a+b+c+

Da diese Sprache regular ist, wird sie durch einen DEA akzeptiert:

� � // qo

a

a //

b,c

''

q1

b

b //

a,c

q2

c

c //

a,b

~~

q3

a,b,c

wwq5

a,b,c

UU

Diesen DEA konnen wir als eine TM mit 5 × 3 + 1 = 16 Zustanden simulieren.

Beispiel 4. Die Sprache aller Worter der Form

[anbncn] mit n = 1,2,3, . . .

ist nicht kontextfrei. (Beweis analog zu dem fur anbncn.) Aber sie kann durch eineeinfache TM akzeptiert werden. Die Simulieren den folgenden Algorithmus:

1. uberprufe, ob das innere Wort in der Sprache a+b+c+ liegt: dann genugt die TMaus dem vorigen Beispiel.

2. rekursiv losche ein a dann ein b und dann ein c solange bis der Inhalt des Bandesdie Form

[## . . .#]Wenn 2. gelungen ist, akzeptiere, sonst akzeptiere nicht.

3.2 Modifikationen von TuringmaschinensectModifikationenTM

Wir behaupteten in der Einleitung zu diesem Kapitel, dass Turingmaschinen zueiner starken Leistung fahig sind. Das ist auf den ersten Blick nicht leicht zu erken-nen. Aber wir fuhren jetzt kompliziertere Maschinen ein, mit deren Hilfe schon rechtkomplizierte Sprachen akzeptiert werden konnen. Anschließend zeigen wir, dass sichalle diese neuen Maschinen auf den einfachen Fall reduzieren lassen. (Das ist keineUberraschung: erinnern wir uns an die Churchsche These, die behauptet, dass sichalle Berechnungsmodelle auf TM reduzieren lassen!)

3.2.1 TM mit mehreren finalen ZustandensubsectTMmehrereFinal

Wir konnen das Konzept der Turingmaschinen zu einer Maschine M = (Q,Σ, δ, q0,F ) verallgemeinern, die der obigen entspricht, nur ist F ⊆ Q eine Menge finalerZustande. Jede solche Maschine kann durch die folgende TM

M ′ = (Q ∪ {qF },Σ, δ′, q0, qF )simuliert werden: qF ist ein neuer Zustand, und δ′ besteht aus allen Ubergangsre-geln, die in δ enthalten sind, und zusatzlich werden in δ′ noch die folgenden Regeln

Page 84: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

80 KAPITEL 3. TURINGMASCHINEN

(q, s)→ (qF , s)aufgenommen, wobei q ∈ F ein Zustand ist, fur den δ(q, s) undefiniert ist. (Alsofuhren Haltekonfigurationen (q, s) von M , bei denen q final ist, zu Haltekonfigura-tionen (qF , s) von M ′.)

Die Anzahl von Schritten, die M ′ macht, ist n + 1 wenn M n Schritte macht.

3.2.2 TM mit zusatzlichem Gedachtnissubsect-TM-gedaechtnis

Wir konnen die Definition einer TM so modifizieren, dass die Maschine in jedemSchritt zusatzlich einen Zugriff auf ein Gedachtnis hat, wobei Symbole eines end-lichen Alphabets A gespeichert werden. Die Ubergangsfunktion δ entscheidet jetztaufgrund (1) des Zustandes, (2) des gelesenen Symbols aus Σ ∪ {#} und (3) desgespeicherten Symbols aus A. Die Ubergange haben jetzt die Form

(q, a, s) //(q′, s′) mit q, q′ ∈ Q,a ∈ A, s ∈ Σ und s′ ∈ Σ ∪L,R

Fur Initialkonfigurationen nehmen wir an, dass ein ausgewahltes Symbol a0 ∈ Agemerkt wird.sectBspaltDreiZweiEins

bspAltDreiZweiEins Beispiel 1. Die Sprache aller Worter, deren erstes Symbol nie wieder vorkommt,also

L = {s1 . . . sn ∈ Σ∗; s1 ≠ si fur i = 2, . . . , n},kann durch eine TM mit zusatzlichem Gedachtnis wir folgt akzeptiert werden: dieTM liest das erste Symbol und speichert es im Gedachtnis (also A = Σ, d.h., daszusatzliche Gedachtnis kann ein Symbol aus Σ speichern). Dies in Initialzustandq0. Dann vergleicht die TM im Zustand q1 die anschließend gelesenen Symbole mitdem gespeicherten und halt und akzeptiert nicht, falls sie eine Ubereinstimmungfeststellt. Sobald die TM das Blanksymbol liest, halt sie und akzeptiert im Zustandq0, der initial sowie final ist. Diese TM braucht nur zwei Zustande: q0, initial undfinal, in dem s1 gespeichert wird, und q1, in dem nach rechts gegangen und mit demSpeicher verglichen wird.

Bemerkung 1. Eine TM mit zusatzlichem Gedachtnis ist eigentlich eine TM indem vorher definierten Sinne, deren Zustandsmenge das kartesische Produkt

Q ×Aist (d. h. die Menge aller Paare (q, a), wobei q ein Zustand und a ∈ A ist). DieUbergange der Maschine sind also von (q, a) ∈ Q × A und s ∈ S abhangig. DerInitialzustand ist (q0, a0), und alle Zustande (qF , a), a ∈ A, sind final.

Zum Beispiel gilt fur die Maschine aus Beispiel 1, dass A = Σ (mit s0 ∈ Σ beliebiggewahlt) und die Zustandsmenge

Q = {q0, q1} ×Σist. Wir konnen sie wie folgt als

”normale“ TM beschreiben, wobei der Initialzustand

(q0, s0) und alle Zustande (q0, s) final sind. So gibt es die folgenden Ubergangsre-geln:

((q0, s0), s)→ ((q1, s),R) fur alle s ∈ Σ((q1, s), s′) → ((q1, s),R) fur alle s′ ∈ Σ, s′ ≠ s((q1, s),#) → ((q0, s0),#).

Zum Beispiel wird die Eingabe stt wie folgt berechnet:((q0, s0), stt) ⊢ ((q1, s), stt) ⊢ ((q1, s), stt) ⊢ ((q1, s), stt#) ⊢ ((q0, s0), stt#).

Hier halt die TM und akzeptiert.

Page 85: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.2. MODIFIKATIONEN VON TURINGMASCHINEN 81

3.2.3 TM mit erweitertem BandalphabetsubsectTMErwBandalph

Manchmal ist es geschickt, zusatzliche (Hilfs-)Symbole auf das Band schreiben zudurfen, die nicht zum Eingabealphabet gehoren. Das bedeutet, dass außer demEingabealphabet Σ noch ein Bandalphabet Γ mit Σ ⊆ Γ gegeben wird und dieUbergangsfunktion δ mit allen Symbolen aus Γ arbeitet, d.h., δ ist eine partielleFunktion mit Definitionsbereich Q×(Γ∪{#}) und Wertebereich Q×(Γ∪{#,L,R}).Eine TM mit erweitertem Bandalphabet ist also ein 6-Tupel

M = (Q,Σ,Γ, δ, q0, qF )wobei Σ ⊆ Γ das Eingabealphabet und

δ ∶ Q × (Γ ∪ {#})→ Q × (Γ ∪ {#,L,R})eine partielle Funktion ist. Die Sprache, die M akzeptiert, ist die Sprache

L(M) ⊆ Σ∗

aller Worter uber dem (kleineren) Eingabealphabet Σ, fur die M im Finalzustandhalt.sectBspAltDreiZweiVier

bspAltDreiZweiVier Beispiel 2. Eine 1-Band TM, die die Sprache {anbncn;n ≥ 1} akzeptiert. Hierhaben wir Σ = {a, b, c}, und wir benutzen Γ = {a, b, c, [, ]}. Die TM wird erst dieEingabe mit [ und ] umklammern:

(q0, a) → (q0,L)(q0,#)→ (q0, [ )(q0, [ ) → (q1,R)(q1, x) → (q1,R) fuR x = a, b, c(q1,#)→ (q1, ] ).

Jetzt kann sie die TM von Beispiel 2 in Abschnitt 3.1 simulieren.

Beispiel 3. Eine einfache TM fur die Sprache anbncn(n ≥ 1). Wir loschen dieSymbole nicht, sondern ersetzen sie mit einem neuen Symbol X. Die TM hat dasBandalphabet a, b, c,X und arbeitet wie folgt (der Kopf ignoriert das Symbol X):

(1) Das gelesene a wird durch X ersetzt.

(2) Kopf geht nach rechts zum ersten b, das mit X ersetzt wird. Wenn keine bgefunden wird oder erst c vorkommt, halt die TM und akzeptiert nicht.

(3) Kopf geht nach rechts zum ersten c, das mit X ersetzt wird. Wenn kein c vor# gefunden wird, halt die TM und akzeptiert nicht.

(4) Kopf geht nach links bis # und dann rechts bis

(4a) ein a gefunden wird, dann wiederholt sich der Zyklus (1) - (3)

oder

(4b) b oder c gefunden wird, dann halt die TM und akzeptiert nicht

oder

(4c) # gefunden wird, dann halt die TM und akzeptiert.

Bemerkung 2. Fur jede TM mit erweitertem Bandalphabet M gibt es eine (”nor-

male“) TM, die M simuliert.

(a) Nehmen wir erst an, dass Γ eine Untermenge von Σ+ ist. D.h. die neuen Symbolesind Worter s1 . . . sk im ursprunglichen Alphabet Σ. Jeden Ubergang

(q, s1 . . . sk) // (q′, s′1 . . . sl)

Page 86: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

82 KAPITEL 3. TURINGMASCHINEN

der TM konnen wir durch eine Sequenz von Ubergangen einer neuen TM mitBandalphabet Σ simulieren: der Kopf, statt das Wort s1 . . . sk auf einmal zulesen, liest es in k Schritten und speichert es im zusatzlichen Gedachtnis. DannSchreibt der Kopf, statt s′1 . . . s

′l auf einmal, das Wort in l Schritten, indem er

s1 . . . sk im zusatzlichen Gedachtnis zur Verfugung hat.

(b) Wenn Γ ein beliebiges Alphabet ist, konnen wir es mit Wortern aus Σ codieren:da die Menge Γ endlich ist und die Menge Σ+ unendlich ist, gibt es eine injektiveFunktion γ ∶ Γ→ Σ+ mit γ(s) = s fur alle s ∈ Σ(⊆ Γ). Dann konnen wir, statt Γ,mit der gleichmachtigen Menge Γ = γ(Γ), die Untermenge von Σ+ ist, arbeitenund den Fall (a) anwenden.

3.2.4 TM mit mehrspurigem BandsubsectTMMehrspur

Wir arbeiten hier mit einer Modifikation von TM, die darin besteht, dass das Bandin k Spuren unterteilt wird, die alle gleichzeitig gelesen werden. Stellen wir uns erstvor, dass k = 2 ist. Wir schreiben Symbole aus dem Eingabealphabet Σ = Σ1 aufSpur 1 und Symbole eines Hilfsalphabetes Σ2 auf Spur 2:

# 0 1 0 0 1 # # #

# # a # b # # a #

. . . . . .

. . . . . .

Die Maschine entscheidet in jedem Schritt abhangig vom Zustand und dem Inhaltbeider Spuren (1) was der nachste Zustand wird und (2) ob sich der Kopf bewegtoder beide Spuren gleichzeitig uberschrieben werden.

Eine 2-Spur-TM ist eigentlich eine TM im vorher definierten Sinne, deren Bandal-phabet aus Paaren (s1, s2), mit s1 ∈ Σ1 und s2 ∈ Σ2, geformt wird. Die einzigeAusnahme ist das Paar (#,#), das jetzt als Blank-Symbol dient. Also ist eine 2-Spur-TM einfach eine TM mit dem Eingabealphabet

Σ = Σ1 ×Σ2 − {(#,#)}.Analoges gilt fur k-spurige Maschinen, die auf der i-ten Spur Symbole aus Σi tragen(i = 1, . . . , k): das sind also die

”normalen“ TM mit Eingabealphabet

Σ = Σ1 ×Σ2 × ⋅ ⋅ ⋅ ×Σk − {(#,#, . . . ,#)}und mit dem Blanksymbol (#,#, . . . ,#).sectBspAltDreiZweiZwei

bspAltDreiZweiZwei Beispiel 4. Primzahltest

Wir zeigen, wie man eine 3-spurige TM konstruiert, die die Sprache L aller Prim-zahlen (in binarer Darstellung) akzeptiert. Hiermit kann man auch gut die Ideevon Turing illustrieren, dass jeder Algorithmus mit einer TM automatisiert werdenkann. Wir verwenden hier den primitiven Algorithmus, der jede Zahl n durch alleTestzahlen 2,3,4, . . . , n−1 teilt und n akzeptiert, falls alle Divisionen einen positivenRest ergeben.

1 0 1 1 1

1 0 1

1 0 1 1 1

⇑q0

EINGABESPUR

TESTZAHLSPUR

HILFSSPUR

. . . . . .

. . . . . .

. . . . . .

Die Spuren der TM sind (1) Eingabespur, die wahrend der Berechnung unverandertbleibt, (2) Testzahlspur, die am Anfang mit 1 beschriftet wird und in jedem Berech-

Page 87: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.2. MODIFIKATIONEN VON TURINGMASCHINEN 83

nungsdurchgang um eins vergroßert wird (sodass in dem ersten Berechnungsdurch-gang durch 2 dividiert wird, im zweiten mit 3, usw.) und (3) eine Hilfsspur. Wirschreiben am Anfang also die gegebene Zahl n = 1,2,3, . . . auf Spur 1, die Zahl 1auf Spur 2 und nichts auf Spur 3. Der Initialzustand q0 uberpruft (durch Vergleichmit Spur 2), ob auf Spur 1 eine Zahl n ≥ 2 steht. Im Fall von n = 0 oder n = 1, wirdder Zustand q0 zu

q−, einem nicht-finalen Haltezustandverandert. (Also werden 0 und 1 nicht akzeptiert.) Falls n ≥ 2 ist, werden Berech-nungsdurchgange rekursiv durchgefuhrt, die man wie folgt beschreiben kann:

Anfang eines Berechnungsdurchganges: Spur 1 wird auf Spur 3 kopiert. Die Zahlauf Spur 2 wird um 1 vergroßert. Die Spuren 1 und 2 werden verglichen und fallsdie Zahlen gleich sind, wird der Zustand zu

q+, einem finalen Haltezustandgeandert (die Eingabe wird also akzeptiert, denn keine Zahl kleiner n, die n teilt,wurde gefunden).

Rumpf eines Berechnungsdurchganges: Die Zahl von Spur 3 wird durch die auf Spur2 dividiert (z.B. durch wiederholte Subtraktion).

Ende eines Berechnungsdurchganges: Jetzt steht auf Spur 3 der Rest der Eingabemodulo der Testzahl. Falls der Rest 0 ist, wird der Zustand zu q− verandert. Fallsder Rest positiv ist, wird der Kopf nach links zum ersten Symbol 1 von Spur 1geschoben und ein neuer Berechnungsdurchgang beginnt.

Es ist leicht einzusehen, dass sich diese informale Beschreibung der Turingmaschinerelativ einfach durch eine formal definierte TM realisieren lasst.

3.2.5 TM mit mehreren Bandern

Die nachste Modifikation von TM ist eine Maschine, die mehrere Bander hat undbei der auf jedem Band ein Lese-/Schreibkopf steht. Die k Kopfe bewegen sichunabhangig voneinander und schreiben auch unabhangig voneinander auf ihren in-dividuellen Bandern. Die Kontrolle ist aber zentral (durch den gegebenen Zustand):

Band 1

Band 2

Kopf 1

Kopf 2

●●

q0

q1

q2q3

q422YY

\\

. . . . . .

. . . . . .

SCHEMA EINER 2-BAND TM

Das bedeutet, dass der Ubergangsfunktion δ hier der Zustand q und die k gelesenenSymbole

(s1, s2, . . . , sk) ∈ Σk

zur Verfugung stehen. (Wir bezeichnen mit Ak = A × A × ⋅ ⋅ ⋅ × A die Menge allerk-Tupel von Elementen aus A). Hier ist Σ die Menge aller Bandsymbole von al-len k Bandern. Als Ergebnis haben wir einen neuen Zustand q′ und ein k-Tupelvon Symbolen aus {L,R} ∪ Σ ∪ {#}. Das heißt, dass δ eine partielle Funktion mitUrbildbereich Q × (Σ ∪ {#})k und Wertebereich Q × (Σ ∪ {#,L,R})k ist.sectDefKBandTM

defKBandTM Definition. Eine k-Band-Turingmaschine ist ein Funftupel M = (Q,Σ, δ, q0, qF ),die wie eine TM definiert wird, nur ist δ jetzt eine partielle Funktion mit Urbildbe-reich Q × (Σ)k und Wertebereich Q × (Σ ∪ {L,R})k.

Page 88: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

84 KAPITEL 3. TURINGMASCHINEN

Die Berechnung durch eine k-Band TM ist analog zum Fall einer 1-Band TM defi-niert. Eine Konfiguration hat die Form

(q, u1a1v1, u2a2v2, . . . , ukakvk),wobei q der Zustand und uiaivi der Inhalt des i-ten Bandes bezeichnet. Fallsδ(q, a1 . . . ak) definiert ist, wird die Folgekonfiguration individuell auf jedem Bandberechnet. Falls δ(q, a1 . . . ak) undefiniert ist, heißt die Konfiguration Haltekonfi-guration. Band 1 dient als Eingabeband, das heißt, die Initialkonfiguration fur eineEingabe s1 . . . sn ist

(q0, s1 . . . sn,#,#, . . . ,#´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶(k−1)−mal

)

Die Eingabe wird akzeptiert, falls die Maschine eine Haltekonfiguration mit demfinalen Zustand erreicht.sectBspAltDreiZweiDrei

bspAltDreiZweiDrei Beispiel 5. Eine 2-Band TM, die die Sprache{anbncn;n ≥ 1}

akzeptiert.

Die TM hat ein Eingabeband (Band 1) und ein Hilfsband (Band 2). Band 1 bleibtunverandert, Band 2 ist am Anfang leer.

a a . . . a b b . . . b c c . . . c # #

⇑Band 1

# # # . . .

⇑Band 2

Initialkonfiguration

Erste Etappe der Berechnung: Solange der Kopf 1 a liest, schreibt Kopf 2 a, undbeide Kopfe bewegen sich ein Feld nach rechts. Nur am Anfang schreibt Kopf 2 einx anstelle von a.

a a . . . a b b . . . b c c . . . c # #

⇑Band 1

x a . . . a # # # . . .

⇑Band 2

Zweite Etappe: Hier bewegen sich Kopf 1 und Kopf 2 gleichzeitig in entgegengesetzteRichtungen: Kopf 1 nach rechts und Kopf 2 nach links, bis Kopf 1 c und Kopf 2x liest. Falls Kopf 1 wahrend dieser Bewegung immer b und Kopf 2 immer a liest,gehen wir zur dritten Etappe uber; falls nicht, halt die TM in einem nicht-finalenZustand (Eingabe nicht akzeptiert).

. . . ## a a . . . a b b . . . b c c . . .

⇑Band 1

. . . # x a . . . a # # # . . .

⇑Band 2

Dritte Etappe: Beide Kopfe bewegen sich gleichzeitig nach rechts, bis Kopf 1 # liest.Falls in jedem dieser Schritte außer dem letzten Kopf 1 c und Kopf 2 a liest und

Page 89: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.2. MODIFIKATIONEN VON TURINGMASCHINEN 85

falls beide Kopfe im letzten Schritt # lesen, dann halt die TM im finalen ZustandqF (Eingabe akzeptiert). Falls nicht, halt die TM und akzeptiert nicht.

Formal konnen wir die Ubergange wie folgt beschreiben:Erste Etappe: (q0, a,#) → (q1, a, x)

(q1, a, x) → (q1,R,R)(q1, a,#) → (q1, a, a)(q1, a, a) → (q1,R,R)

Zweite Etappe: (q1, b,#) → (q2,R,L)(q2, b, a) → (q2,R,L)(q2, c, x) → (q2,R,R)

Dritte Etappe: (q2, c, a) → (q2,R,R)(q2,#,#)→ (qF ,#,#).

Das sind alle Ubergange fur die 2-Band TM mit Bandalphabet Σ = {a, b, c, x} undEingabealphabet Σ = {a, b, c}, die die Sprache aller anbncn(n ≥ 1) akzeptiert. (Ver-gleichen Sie das mit Beispiel 2 in Abschnitt 3.1).

Beispiele von Berechnungen: Die Eingabe aabbcc wird wie folgt berechnet:

(q0, aabbcc,#) ⊢ (q0, aabbcc, x)⊢ (q0, aabbcc, x#)⊢ (q0, aabbcc, xx)⊢ (q0, aabbcc, xx#)⊢ (q0, aabbcc, xx#)⊢ (q0, aabbcc, xx#)⊢ (q0, aabbcc, xx#)⊢ (q0, aabbcc#, xx#)⊢ (qF , aabbcc#, xx#)

und wird akzeptiert. Die Eingabe aabcc wird wie folgt berechnet:(q0, aabcc,#) ⊢ (q0, aabcc, x)

⊢ (q0, aabcc, x#)⊢ (q0, aabcc, xx)⊢ (q0, aabcc, xx#)⊢ (q0, aabcc, xx)⊢ (q0, aabcc, xx#)

und wird nicht akzeptiert.

Bemerkung 3. Simulation einer 2-Band-TM durch eine 1-Band-TM

Sei M = (Q,Σ, δ, q0, F ) eine 2-Band-TM. Wir konstruieren eine 1-Band-TM mitzusatzlichem Gedachtnis, M , die die Maschine M Schritt fur Schritt simuliert. DasBand von M ist 4-spurig:

a a b a aBand 1

0 1 0Band 2

Maschine M

a a b a a # # # #

# # # ⇑ # # # # #

0 1 0 # # # # # #

⇑ # # # # # # # #

Maschine M

. . . . . .

. . . . . .

. . . . . .

. . . . . .

Band 1 der Maschine M wird auf die Spur 1 von M kopiert, die Kopfposition desKopfes von Band 1 steht auf der Spur 2. Analog wird Band 2 auf Spur 3 von Mkopiert und die Kopfposition des Bandes auf Spur 4. Das Eingabealphabet von M

Page 90: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

86 KAPITEL 3. TURINGMASCHINEN

ist alsoΣ = (Σ ∪ {#}) × {⇑,#} × (Σ ∪ {#}) × {⇑,#} − {(#,#,#,#)},

wobei (#,#,#,#) das Blank-Symbol ist.

Die Zustande von M und M sind dieselben. Die Maschine M muss sich die letztenvon Kopf 1 und Kopf 2 gelesenen Symbole merken, also hat sie ein zusatzlichesGedachtnis der Form (s1, s2, x), wobei si ∈ Σi ∪ {#} das aktuelle Symbol von Bandi (= 1,2) der Turingmaschine M ist und x ∈ {l, r} aussagt, ob Kopf 2 (also dasSymbol ⇑ auf Spur 4)links oder rechts von Kopf 1 (dem Symbol ⇑ auf Spur 2) steht.

1. Anfang der Simulation: Auf Spur 1 steht die Eingabe v1v2 . . . vn von M , dieSpuren 2 - 4 sind leer. Wir schreiben je ein ⇑ auf die Spuren 2 und 4 unter v1

von Spur 1.

# v1 v2 . . . vn #

# ⇑ # . . .

# # # . . .

# ⇑ # . . .

SPUR 1

SPUR 2

SPUR 3

SPUR 4

. . . . . .

. . . . . .

. . . . . .

. . . . . .

2. Berechnungsschritt: Am Anfang der Simulation einers Schrittes von M stehtder Kopf von M unter dem Symbol ⇑ auf Spur 2. Das gerade gelesene Symbolvon Spur 1 wird als s1 im zusatzlichen Gedachtnis gespeichert. Danach suchtder Kopf von M das Symbol ⇑ auf Spur 4: entweder stehen die beiden Sym-bole ⇑ untereinander, sonst suchen wir links bzw. rechts, falls im zusatzlichenGedachtnis x = l bzw. x = r steht. Sobald ⇑ gefunden ist, wird das geradegelesene Symbol von Spur 3 als s2 gespeichert. Aufgrund des Zustandes q vonM und des Paares (s1, s2) im zusatzlichen Gedachtnis werden jetzt die Kopf-positionssymbole auf den Spuren 3 und 4 so bewegt, wie die Maschine M dieKopfe bewegt, und die Symbole auf den Spuren 1 und 3 werden so uberschrie-ben, wie M die Symbole auf beiden Bandern uberschreibt. (Das geschieht inendlich vielen Schritten der Kopfbewegung von M .) Die Eingabe x ∈ {l, r} imGedachtnis wir aktualisiert und der Kopf wird nach ⇑ auf Spur 2 bewegt.

3. Ende der Simulation: Die Maschine M halt genau dann, wenn eine Halte-konfiguration von M erreicht wird. Und M akzeptiert genau dann, wenn Makzeptiert.

sectSatzAequivalenzKBandTMEinBandTM

satzAequivalenzKBandTMEinBandTM Satz 1. Fur jede k-Band-TM gibt es eine (1-Band-) TM, die dieselbe Sprache ak-zeptiert.

Beweis. Fur k = 2 folgt der Beweis aus der gerade beschriebenen Simulation unddem Fakt, dass eine 4-spurige TM mit zusatzlichem Gedachtnis durch eine TMsimuliert werden kann (siehe Kapitel 3.2.2). Fur k > 2 ist der Beweis analog undwird dem Leser uberlassen.

3.3 Nichtdeterministische Turingmaschinen

Analog zum Fall nichtdeterministischer Automaten fuhren wir hier nichtdetermi-nistische TM ein. Statt einer partiellen Funktion δ ∶ Q ×Σ → Q ×Σ ∪ {L,R} habenwir hier eine Relation δ:sectDefNichtdeterministischeTuringmaschine

defNichtdeterministischeTuringmaschine Definition. Eine nichtdeterministische Turingmaschine M (NTM) ist einFunftupel M = (Q,Σ, δ, q0, qF ), das wie eine TM definiert wird, außer dass hier δ

Page 91: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.3. NICHTDETERMINISTISCHE TURINGMASCHINEN 87

eine Relationδ ⊆ [Q ×Σ] × [Q × (Σ ∪ {L,R})]

ist.

Wir schreiben, wie oben,(q, s)→ (q′, s′)

falls die Relation δ das Quadrupel (q, s, q′, s′) enthalt. Der ganze Unterschied be-zuglich der Notation zwischen einer TM und einer nichtdeterministischen TM ist,dass fur eine deterministische TM fur zwei beliebige Ubergangsregeln

(q, s)→ (q′, s′) und (q, s)→ (q′, s′)gilt, dass, falls die linken Seiten gleich sind (q = q und s = s), auch die rechtenSeiten gleich sein mussen (q′ = s′ und s′ = s′). Fur nichtdeterministische TM giltkeine solche Einschrankung.

Beispiel 1. stochastischer Zahlengenerator.Wir beschreiben eine nichtdeterministische Turingmaschine M , die auf ihr Bandentweder eine beliebige Zahl n ≥ 1 (in binarer Form) schreibt und halt oder niehalt. Im Initialzustand q0 schreibt M eine 1 und geht zum Zustand q1, in dem diefolgende Wahl getroffen wird: entweder wird der Haltezustand qF erreicht, oder eswird ein neues Symbol 0, 1 geschrieben und (unter Verwendung eines Hilfezustandesq2) der Kopf nach rechts bewegt.Formal:

M = ({q0, q1, q2, qF },{0,1}, δ, q0, qF )wobei δ durch die folgenden Ubergangsregeln beschrieben wird:

(q0,#)→ (q0,1)(q0,1) → (q1,R)(q1,#)→ (q2,0)(q1,#)→ (q2,1)(q1,#)→ (qF ,#)(q2, i) → (q1,R) fur i = 0,1.

Beispiel:

Page 92: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

88 KAPITEL 3. TURINGMASCHINEN

1

1

1

1

1

1

1

0

0

0

0

0

1

1

1

⇑q0

⇑q0

⇑q1

⇑q2

⇑q1

⇑q2

⇑q1

⇑qF

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

Konfigurationen und die Berechnung von Eingaben sind genauso definiert wie furdie (deterministischen) TM. Hier hat eine Eingabe naturlich nicht nur eine, sondernmehrere Berechnungen.

sectDefTMAkzeptiertW

defTMAkzeptiertW Definition. Eine nichtdeterministische Turingmaschine M akzeptiert die Eingabew ∈ Σ∗, falls es fur w mindestens eine Berechnung gibt, so dass M nach endlich vielenSchritten eine Haltekonfiguration mit dem finalen Zustand erreicht. Die Sprachealler Eingaben, die M akzeptiert, wird mit L(M) bezeichnet.

Bemerkung 1. Die k-Band-TM lassen sich analog zu den nichtdeterministischenk-Band-TM verallgemeinern: hier ist δ eine Relation

δ ⊆ [Q ×Σk] × [Q × (Σ ∪ {L,R})k].

sectBspAltDreiVierZwei

bspAltDreiVierZwei Beispiel 2. Test der Zerlegbarkeit.

Wir zeigen eine nichtdeterministische 3-Band-TM, die die Sprache L ⊆ {∣}∗ allerzerlegbarer Zahlen, also Zahlen der Form

n = pq mit p > 1 und q > 1akzeptiert.

Wie in Beispiel 4 in Abschnitt 3.2.4 hat M ein Eingabeband, ein Testzahlband undein Hilfsband. Im Initialzustand schreibt M die Zahl zwei (∣∣) auf Band 2 (jedeTestzahl ist großer oder gleich ∣∣) und verandert den Zustand zu q1. In q1, demeinzigen nichtdeterministischen Zustand, gibt es zwei Moglichkeiten: entweder wirdein neuer Strich auf Band 2 geschrieben, und der Zustand q1 bleibt, oder der Zustandverandert sich zu q2.

Im Zustand q2 wird wie folgt deterministisch berechnet:

Page 93: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.3. NICHTDETERMINISTISCHE TURINGMASCHINEN 89

1. Die Zahl n auf Band 1 wird mit der Zahl m auf Band 2 verglichen. Falls n ≤mist, halt die Maschine, ohne zu akzeptieren.

2. Falls n >m, wird n auf Band 3 kopiert.

3. Band 2 wird von Band 3 abgezogen, bis auf Band 3 der Rest der Division vonn durch die Testzahl steht. Dann halt die Maschine.

4. Falls Band 3 leer ist, wird die Eingabe akzeptiert, falls Band 3 nicht leer ist,wird sie nicht akzeptiert.

Wir sehen, dass die Testzahl m eine beliebige Zahl m = 2,3,4, . . . sein kann. DieEingabe n wird genau dann akzeptiert, wenn es ein m < n gibt, das n teilt.

sectBspAltDreiVierDrei

bspAltDreiVierDrei Beispiel 3. Simulation eines Kellerautomaten

Wir konnen einfach jeden Kellerautomaten durch eine nichtdeterministische 2-Band-Turingmaschine M simulieren, bei der auf Band 1 die Eingabe des Kellerauto-maten und auf Band 2 der Kellerinhalt steht. M hat ein zusatzliches Gedachtnis, indem die Ubergangsregeln des Kellerautomaten notiert werden. Am Anfang schreibtdie NTM das Symbol k0 auf Band 2. Jede Ubergangsregel

(q, s, k)→ (q′, k1 . . . kn), s ∈ Σ,des Kellerautomaten wird wie folgt simuliert:

s′s. . . s′′ . . .

k′k. . . k′′ . . .

Band 1

Band 2

Ubergang

s′s. . . s′′ . . .

kn. . .k1 k′ k′′ . . .

Falls die Maschine M im Zustand q die Symbole s (Band 1) und k (Band 2) liest,andert sie ihren Zustand zu q′, bewegt den Kopf 1 einen Schritt nach rechts undmacht folgendes auf Band 2:

1. Falls n ≠ 0 (also k1 . . . kn ≠ ε), wird k von kn uberschrieben, und der Kopf 2schreibt, sich nach links bewegend, die Symbole kn−1, . . . , k1.

2. Falls n = 0, loscht Kopf 2 das Symbol k und bewegt sich einen Schritt nachrechts.

Analog wird jede spontane Ubergangsregel(q,#, k)→ (q′, k1 . . . kn)

simuliert: der einzige Unterschied ist, dass hierbei Kopf 1 stehenbleibt.sectSatzSimulationNTMDurchTM

satzSimulationNTMDurchTM Satz 1. Jede NTM kann durch eine (deterministische) TM simuliert werden.

Beweis. Sei M eine NTM, und sei r eine Zahl, so dass es fur jedes Paar (q, s) ausQ × (Σ ∪ {#}) hochstens r Ubergange (q, s) → (q′, s′) gibt. Dann konnen wir dieUbergange durchnummerieren:

(q, s)→ (q′i, s′i) fur i = 1,2, . . . , r(Wiederholungen sind erlaubt). Die einzige Ausnahme ist δ(q, s) = ∅ (Haltekonfi-guration).

Wir simulieren M mit einer 4-Band-TM wie folgt: Band 1 ist das Eingabeband miteinem read-only Kopf. Auf Band 2 werden systematisch alle Zahlen k = 0,1,2,3, . . .

Page 94: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

90 KAPITEL 3. TURINGMASCHINEN

geschrieben, sie geben die Lange der Berechnung vor. Auf Band 3 werden systema-tisch alle k-Tupel aus Zahlen 1, . . . , r erzeugt (k = 1,2,3, . . . ). Auf Band 4 werdenfur jeden Eintrag

i1i2 . . . ikvon Band 3 die ersten k Takte der Maschine M simuliert, aber in jedem Takt wahlenwir den Ubergang, dessen Index auf Band 2 steht. Also wird im Takt n der Ubergang(q, s) → (q′in , s

′in) gewahlt, wobei q der momentane Zustand ist und s das gerade

gelesene Symbol. In einer Haltekonfiguration von M mit q = qF halt M und akzep-tiert die Eingabe, andernfalls, also auch bei Haltekonfigurationen mit q /= qF wird kerhoht und die Simulation fortgesetzt. Es gibt also die folgenden Moglichkeiten furdie Berechnung einer Eingabe w:

1. M halt auf w nach k Schritten fur irgendeine Zahl k und akzeptiert w, d.h.,es gibt eine akzeptierende Berechnung der Lange k von w. Dann halt auch Mauf w und akzeptiert w (mit einem der rk moglichen Inhalte von Band 3);

2. M akzeptiert w nicht, d.h., alle von M bei Eingabe w erreichbaren Haltekon-figurationen haben einen von qF verschienedenen Zustand. Dann halt M nie,denn M schreibt immer langer werdende k-Tupel (k = 1,2,3, . . . ) auf Band 2.Damit gehort w weder zu L(M) noch zu L(M).

Es folgt, dass L(M) = L(M).

3.4 Rekursiv aufzahlbare SprachensectEntscheidRek

defRekursiveSprache Definition. Eine Sprache L heißt rekursiv aufzahlbar oder semientscheidbar ,falls es eine Turingmaschine M gibt, die L akzeptiert.

sectBspAltDreiDreiEins

bspAltDreiDreiEins Beispiel 1. Die folgenden Sprachen sind rekursiv aufzahlbar, denn die oben kon-struierten TM akzeptieren sie:

1. Die Sprache aller durch 5 teilbaren Zahlen (siehe Beispiel 1 in Abschnitt 3.1).

2. Die Sprache aller Primzahlen (siehe Beispiel 4 in Abschnitt 3.2.4).

3. Die Sprache {anbncn;n ≥ 1} (siehe Beispiel 5 in Abschnitt 3.2.5 und Satz 1 inAbschnitt 3.2.5).

4. Jede kontextfreie Sprache (siehe Beispiel 3 in Abschnitt 3.3).sectBspAltDreiDreiZwei

bspAltDreiDreiZwei Beispiel 2. Eine Sprache Lcode, die nicht rekursiv aufzahlbar ist.

Es ist nicht moglich, ein”naturliches“ Beispiel einer nicht rekursiv aufzahlbaren

Sprache zu finden, da alle”naturlichen“ Beispiele durch irgendeinen Algorithmus

beschrieben werden. Aber vorausgesetzt, dass wir eine Codierung fur alle TM mitdem Bandalphabet {0,1} haben (eine solche Codierung wird in Kapitel 5.1 ausfuhr-lich beschrieben), konnen wir eine konkrete Sprache, die nicht rekursiv aufzahlbarist, konstruieren. Wir nehmen also an, dass es fur jede Turingmaschine M mit Ban-dalphabet {0,1} ein Wort c(M) uber {0,1} gibt, sodass der Code c(M) die Spracheder Turingmaschine M vollstandig beschreibt. Das heißt, dass fur alle Turingma-schinen M und M ′ gilt:

c(M) = c(M ′) ⇒ L(M) = L(M ′).Mit Lcode bezeichnen wir die Sprache aller Codeworter w = c(M) solcher Turing-maschinen M , die ihr eigenes Codewort nicht akzeptieren:

Lcode = {w;w = c(M) fur eine Turingmaschine M mit w ∉ L(M)}.Diese Sprache ist nicht rekursiv aufzahlbar.

Page 95: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.5. REKURSIVE SPRACHEN 91

Beweis. Die Annahme, dass es eine Turingmaschine M mit L(M) = Lcode gibt,fuhrt zu einem Widerspruch. Fur das Codewort w = c(M) dieser Maschine Mzeigen wir namlich, dass (a) aus w ∉ Lcode folgt w ∈ Lcode und (b) aus w ∈ Lcode

folgt w ∉ Lcode. Dann ist weder w ∈ Lcode noch w ∉ Lcode wahr.

Zu (a): Da w ∉ L(M) und w = c(M), folgt aus der Definition von Lcode, dassw ∈ Lcode.

Zu (b): Da w ∈ Lcode, gibt es M mit w = c(M) und w ∉ L(M). Aus c(M) = c(M)folgt aber L(M) = L(M); es gilt also w ∉ L(M) = Lcode.

sectSatzLLStrichRekursiv

satzLLStrichRekursiv Satz 1. Falls L und L′ rekursiv aufzahlbaren Sprachen sind, sind auch die SprachenL ∪L′, L ∩L′, LL′ und L∗

rekursiv aufzahlbar.

Beweis. Sei M eine TM, die L akzeptiert, und M ′ eine TM, die L′ akzeptiert. Wirnehmen an, dass M und M ′ auf jede Eingabe halten.

(1) L+L′. Diese Sprache wird von einer 2-Band TM akzeptiert, die auf Band 1 dieMaschine M und gleichzeitig auf Band 2 die Maschine M ′ simuliert. Falls beideMaschinen halten, ist der Zustand der neuen Maschine genau dann final, wenneiner der entsprechenden Zustande (von M oder M ′) final ist.

(2) L∩L′. Der Beweis ist analog zu 1., nur ist ein Zustand genau dann final, wennbeide Zustande (von M sowie von M ′) final sind.

3.5 Rekursive Sprachen

Wie oben erwahnt, reprasentiert eine TM eine formale Darstellung des Begriffs einesAlgorithmus, indem sie eine beliebige Eingabe berechnet (und entweder akzeptiertoder nicht). Die Frage ist, ob wir nur terminierende Algorithmen betrachten durfen,oder ob wir auch Algorithmen erlauben, die unendlich lange berechnen. Im Berech-nungsmodell der TM entsprechen den terminierenden Algorithmen die TM, die aufjede Eingabe halten. Das bedeutet, dass das Nichtakzeptieren immer dadurch er-folgt, dass die TM in einem nichtfinalen Zustand halt. Die allgemeineren, nichtterminierenden Algorithmen werden von allgemeinen TM reprasentiert.

Probleme, die ein terminierender Algorithmus lost, heißen entscheidbar . Die ent-sprechenden formalen Sprachen werden entweder entscheidbar oder rekursiv ge-nannt.

Definition. Eine Sprache heißt rekursiv oder entscheidbar wenn sie von einer TM,die auf jede Eingabe halt, akzeptiert wird.

Beispiel 1. Alle bisher konstruierten TM halten auf jede Eingabe. Deswegen sindalle obere rekursiv aufzahlbaren Sprachen eigentlich rekursiv.

Bemerkung 1. Um ein Beispiel einer Sprache, die zwar rekursiv aufzahlbar abernicht rekursiv zeigen zu konnen, werden wir erst die Eigenschaften von rekursivenSprachen erforschen. Merken Sie, dass in Satz 1 von Abschnitt 3.4 (uber Eigen-schaften von rekursiv aufzahlbaren Sprachen) nichts uber Komplement L = Σ∗ − Lbehauptet wurde? Dies ist ein entscheidender Unterschied zu rekursiven Sprachen.:

Satz 1. Wenn L und L′ rekursive Sprachen im Alphabet Σ sind, sind auch dieSprachen

L ∪L′, L ∩L′, LL′, L∗ und L = Σ∗ −Lrekursiv.

Page 96: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

92 KAPITEL 3. TURINGMASCHINEN

Beweis. (1) L∪L′ und L∩L′: der Beweis ist gleich zu dem im Satz 1 von Abschnitt3.4.

(2) LL′. Hier benutzen wir eine 4-Band-Turingmaschine M . Band 1 ist ein Ein-gabeband mit einem read-only-Kopf. Auf Band 2 steht die Zahl i der Etappe(am Anfang i = 0). Auf Band 3 wird M simuliert, und auf Band 4 wird M ′

simuliert. Jede Eingabe s1 . . . sn der Lange n wird in n + 1 Etappen berechnet.Die i-te Etappe besteht daraus, dass das Wort s1 . . . si auf Band 3 und das Wortsi+1 . . . sn auf Band 4 kopiert werden, und dann simuliert unsere TM die Ma-schine M auf Band 2 und die Maschine M ′ auf Band 3, bis beide Maschinen Mund M ′ halten. Falls sie beide akzeptieren, halt auch M und akzeptiert. Falls Moder M ′ nicht akzeptiert und i < n, wird die nachste Etappe mit i ∶= i+1 durch-gefuhrt. Falls M oder M ′ nicht akzeptiert und i = n, halt M und akzeptiertnicht.

(3) L∗. Dieser Beweis ist analog zu 3. Zunachst pruft M , ob das Eingabeband leerist und akzeptiert gegebenenfalls. Ansonsten erzeugen wir auf Band 2, stattnur einer Zahl i allein, alle moglichen aufsteigenden Listen (i0, i1, . . . , ir) vonZahlen mit

0 = i0 < i1 < i2 < ⋅ ⋅ ⋅ < ir = n wobei r = 1, . . . , n.Band 3 simuliert M : wir kopieren erst s1s2 . . . si1 auf Band 3 und, falls dieSimulation in einem finalen Zustand von M halt, si1+1si1+2 . . . si2 auf Band3 und, falls die Simulation wieder in einem finalen Zustand halt, si2+1 . . . si3auf Band 3 usw. Falls alle Simulationen in finalen Zustanden von M halten,wird die Eingabe von M akzeptiert. Falls irgendeine der Simulationen in einemnichtfinalen Zustand halt, beginnt eine neue Etappe (mit der nachsten Liste aufBand 2). Wenn alle Listen auf Band 2 durchgegangen worden sind, ohne dassbis dahin M akzeptiert hat, halt M in einem nichtfinalen Zustand.

(4) L: Gegeben sei eine TM, M , die L akzeptiert, bezeichnen wir durch M dieselbeTM, nur alle Zustande außer qF sind final und qF ist nicht-final. Wenn M einWort nicht akzeptiert, dann akzeptiert es M : hier ist wichtig, dass M auf dieEingabe halt! Dann halt sie in einem Zustand q ≠ qF der in M final ist. Es gibtalso L(M) = Σ∗ −L(M).

Bemerkung 2. Es ist erstaunlich, dass die Implikation L rekursiv ⇒ L rekursivdie folgende Umkehrung hat:

Satz 2. Wenn eine rekursiv aufzahlbare Sprache L ⊆ Σ∗ auch rekursiv das aufzahl-bare Komplement L = Σ∗ −L besitzt, dann ist L rekursiv.

Beweis. Gegeben sind TM

M fur die Sprache L

und

M fur die Sprache L

Wir konstruieren eine TM, M1, die L akzeptiert und auf jede Eingabe halt: M1 isteine 2-Band TM, die auf Band 1 die Maschine M und auf Band 2 die MaschineM simuliert. Die Maschine M1 rechnet so lange, bis auf Band 1 oder Band 2 dieBerechnung halt. Wenn das passiert, dann

(a) M1 akzeptiert genau wenn M auf Band 1 akzeptiert (falls M halt)

und

Page 97: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

3.5. REKURSIVE SPRACHEN 93

(b) M1 akzeptiert genau wenn M auf Band 2 nicht akzeptiert (falls M halt).

Die einzige Frage ist: halt M1 auf jede Eingabe w2? Ja! Wenn w ∈ L, halt dieMaschine M . Und wenn w ∈ L(= L(M)), dann halt die Maschine M .

Bemerkung 3. Jede rekursive Sprache ist selbstverstandlich rekursiv aufzahlbar,und jede kontextfreie Sprache ist rekursiv, wie sofort bewiesen wird.

REGULAR

KONTEXTFREI

REKURSIV

REKURSIV AUFZAHLBAR

ALLE SPRACHEN

Beispiel 5 in Abschnitt 3.2.5 zeigt, dass die Sprache L = {anbncn;n ≥ 1} rekursiv(aber nicht kontextfrei) ist. Ein Beispiel einer Sprache, die rekursiv aufzahlbar abernicht rekursiv ist, wird in Kapitel 5 vorgefuhrt. Dort zeigen wir, dass ein solchesBeispiel die Sprache

Lhalt

aller Worter c(M)w ist, wobei M eine Turingmaschine und w ein Eingabewort ist,auf das die Turingmaschine M halt. (Das bedeutet, dass das

”Halteproblem“ nicht

entscheidbar ist.)

Page 98: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

94 KAPITEL 3. TURINGMASCHINEN

Page 99: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

Kapitel 4

Church-Turing-These,rekursive Funktionen undGrammatiken

4.1 Berechenbare Funktionen

Der beruhmte Logiker Alfonzo Chruch, als er gesehen hat, dass sein am Anfang der1930’er eingefuhrte λ-Kalkul genau dieselbe ”berechenbare” Funktion, definiert alsdie µ-rekursive Funktion hat einige Jahre vor Turings Paper uber TM die These for-muliert, dass der intuitive Begriff einer Funktion, die mechanisch berechnet werdenkann, mit dem Begriff von µ-rekursiven Funktionen ubereinstimmt. Spater hat Tu-ring, unabhangig von Chruch, seine These formuliert: die mechanisch berechenbareFunktionen sind genau die, die eine TM berechnen kann.

Wie werden berechnen TM Funktionen berechnet? Wir beginnen mit zwei Beispie-len.

Beispiel 1. Die Funktion f(x) = 2x fur x in binaren Darstellung schreibt eine 0am Ende des Wortes:

(q0,0) → (q0,R)(q0,1) → (q0,R)(q0,#)→ (qF ,0)

Beispiel 2. Die Nachfolgegeschwindigkeit succ(x) = x+1 kann in der binaren Dar-stellung auch einfach als TM dargestellt werden. Noch einfacher ist sie im AlphabetΣ = {∣}. Hier ist Σ∗ die unare Darstellung von naturliche Zahlen: statt 0,1,2, . . .schreiben wir ε, ∣, ∣∣ Die TM fur succ ist deswegen wie folgt:

(q0,#)→ (qF , ∣)(q0, ∣) → (q0,R)

Bemerkung 1. Daraus, dass die Nachfolgefunktion durch eine TM berechenbarwerden kann folgt, dass die Addition auch berechnet werden kann, denn Additionist eine rekursive Anwendung von succ.

Analog: Multiplikation kann durch eine TM berechnet werden, denn dies ist einerekursive Anwendung von Addition.

Um diese Uberlegung zu prasentieren, werden wir die primitiv rekursiven Funktio-nen einfuhren und beweisen, dass sie durch eine TM berechenbar sind. Erst mussenwir aber erklaren, wie Funktionen durch eine TM programmiert werden.

95

Page 100: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

96KAPITEL 4. CHURCH-TURING-THESE, REKURSIVE FUNKTIONEN UNDGRAMMATIKEN

Definition. Wir sagen, dass eine TM eine partielle Funktion f von Σ∗ nach Γ∗

berechnet wenn das Bandalphabet die menge Σ∪Γ enthalt und auf jede Eingabe waus Σ∗ Solche Funktionen heißen partiell-berechenbar.

(a) M halt, wenn f(w) definiert ist, und auf dem Band steht f(w)

und

(b) M halt nicht, wenn f(w) nicht definiert ist

Beispiel 3. Die partielle Funktion pred ∶ N→ N definiert durch pred(n) = n−1 furn ≠ 0 wird im Alphabet Σ = {∣} wie folgt berechnet:

(q0,#)→ (q0,R)(q0, ∣) → (qF ,#)

In der Tat, fur Eingabe 0 halt die TM nicht, denn sie geht stets nach rechts. FurEingabe n = ∣∣ . . . ∣, n ≠ 0, loscht sie ein ∣ und halt.

Definition. Eine (uberall definierte) Funktion heißt berechenbar oder rekursiv wennsie durch eine TM, die auf jede Eingabe halt berechnet werden kann.

Bemerkung 2. 1. Wie im Fall von Sprachenakzeptanz konnen wir auch furFunktionen den Begriff der TM modifizieren und zum Beispiel eine Mehrband-TM benutzen. Es ist dann ublich, Band 1 als Eingabeband und Band 2 alsAusgabeband (mit Inhalt f(w), nachdem die TM halt) zu verwenden.

2. Der Finalzustand spielt bei Berechnungen keine Rolle (und konnte, fur dieseAnwendung der TM, aus der Definition entfernt werden).

3. Fur Funktionen zweier (oder mehrerer) Variablen werden die verschiedenenVariablen voneinander durch eine leere Zelle getrennt. Also zum Beispiel ei-ne Funktion f(w1,w2) zweier Variabler aus Σ∗ mit Werten in Γ∗ wird voneiner TM berechnet, falls die TM auf jede Eingabe w1#w2 mit Bandinhaltf(w1,w2) halt.

sectBspAltDreiFuenfDrei

bspAltDreiFuenfDrei Beispiel 4. Addition. Wir wollen die Funktionf(n,m) = n +m (unar dargestellt)

durch eine TM berechnen: es genugt, das erste Symbol”∣“ zu streichen und die

Lucke, die die zwei Variablen voneinander trennt, durch”∣“ zu ersetzen:

(q0, ∣) → (q1,#)(q0,#)→ (qF ,R)(q1,#)→ (q2,R)(q2, ∣) → (q2,R)(q2,#)→ (qF , ∣)

Genauer, die TMM = ({q0, q1, q2, qF },{∣}, δ, q0, qF )

mit der oben definierten Ubergangsfunktion δ berechnet die Addition in unarerDarstellung.

sectBspAltDreiFuenfVier

bspAltDreiFuenfVier Beispiel 5. Multiplikation. Die Funktionf(n,m) = n ∗m (unar dargestellt)

kann von der folgenden 2-Band-TM berechnet werden:

Band 1 ist das Eingabeband, aus Band 2 schreibt die Maschine n-mal hinterein-ander die Zahl m, das heißt, m Symbole

”∣“. Dann halt sie und hat auf Band 2

(Ausgabeband) die Zahl n ∗m.

Page 101: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

4.1. BERECHENBARE FUNKTIONEN 97

Bemerkung 3. Wer der Churchschen These glaubt, erwartet, dass jede durcheinen (terminierenden) Algorithmus gegebene, voll-definierte Funktion durch eineTM berechenbar sein muss: man implementiert einfach den Algorithmus auf einerTM.

sectBspAltDreiFuenfFuenf

bspAltDreiFuenfFuenf Beispiel 6. Division. Die Funktion

f(n,m) = { n ∶m (ganzzahlig) falls m ≠ 0undefiniert falls m = 0

kann von der folgenden 2-Band-TM berechnet werden: Band 1 ist das Eingabeband,auf Band 2 schreibt die TM erst n und dann versucht sie, m Striche auf Band 2

”wegzuwischen“. Falls dies nicht moglich ist, halt sie. Falls es jedoch moglich ist,

versucht die Maschine erneut, m Striche auf Band 2 zu loschen und so weiter.sectBspAltDreiFuenfSechs

bspAltDreiFuenfSechs Beispiel 7. Eine unberechenbare Funktion β ∶N→N.Diese Funktion, die als

”busy beaver“ (fleißiger Biber) bekannt ist, ist wie folgt

definiert:β(0) = 0

und fur jedes n > 0 istβ(n) = k,

falls k die großte Zahl ist, die eine TM mit n Zustanden auf die leere Eingabeschreiben kann. D.h., die TM halt auf der leeren Eingabe mit ∣k auf dem Band. Wirkonnen β(n) einfach bestimmen, wenn wir alle TM mit n Zustanden durchgehen(und die, die auf die leere Eingabe nicht halten, ausschließen).

(a) β(1):Die TM mit der einzigen Ubergangsregel (q0,#)→ (q0, ∣) schreibt ∣ auf die leereEingabe. Daraus folgt

β(1) ≥ 1.Aber jede Maschine mit nur einem Zustand, die mehr als einen Strich auf dieleere Eingabe schreibt, halt nie. Also gilt β(1) = 1.

(b) β(2): Die folgende TM(q0,#)→ (q0, ∣)(q0, ∣) → (q1,R)(q1,#)→ (q1, ∣)

schreibt ∣∣ auf das leere Band. Umgekehrt, fur jede

TM mit zwei Zustanden darf δ nur auf drei Elementen der vierelementigenMenge Q ×Σ definiert sein, damit die Maschine halt. Daraus folgt sofort

β(2) = 2.

(c) Im allgemeinen gilt(∗) β(n + 2) > β(n) fur jedes n.

In der Tat, falls β(n) = k, d.h., falls eine Turingmaschine M mit n Zustanden ∣kschreibt, konstruieren wir eine Turingmaschine, M ′, die n+2 Zustande hat und ∣k+1

schreibt – woraus β(n + 2) ≥ k + 1 > β(n) folgt. Wir fugen zwei neue Zustande q′

und q′′ zu den Zustanden von M hinzu. Halt M im Zustand q auf einem Feld ∣, soerganzen wir M um drei neue Ubergangsregeln:

(q, ∣) → (q′,L)(q′, ∣) → (q′,L)(q′,#)→ (q′′, ∣).

Halt dagegen M im Zustand q auf einem Feld #, so kann sich dieses Feld wegender Maximalitat von β(n) nur direkt neben dem Ergebnis ∣k von M befinden. Wirkonnen M nun um die Ubergangsregel (q,#)→ (q′′, ∣) erganzen. In jedem Fall haltdie Maschine M ′ im Zustand q′′, nachdem sie ∣k+1 geschrieben hat.

Page 102: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

98KAPITEL 4. CHURCH-TURING-THESE, REKURSIVE FUNKTIONEN UNDGRAMMATIKEN

sectSatzZuFGibtEsR

satzZuFGibtEsR Satz 1. Fur jede berechenbare Funktion f(n) gibt es eine Konstante r mit derEigenschaft, dass

β(n + r) ≥ f(n) fur alle n.

Beweis. f(n) wird von einer Turingmaschine M berechnet. Sei r die Zahl allerZustande von M . Wir konstruieren fur jede Zahl n eine Turingmaschine Mn, dien + r Zustande hat und f(n) Striche auf die leere Eingabe schreibt – damit istβ(n + r) ≥ f(n) bewiesen. Zu den Zustanden von M werden n neue Zustande q0

(initial), q1, . . . , qn−1 hinzugefugt, sodass Mn auf die leere Eingabe n-mal einen ∣schreibt und sich dabei nach links bewegt:

(qi,#) → (qi, ∣) fur i = 0, . . . , n − 1(qi, ∣) → (qi+1,L) fur i = 0, . . . , n − 2(qn−1, ∣)→ (q0, ∣)

Der letzte Ubergang bedeutet, dass von jetzt an die Maschine M (mit der Eingabe∣n) simuliert wird – sie schreibt also ∣f(n) und halt.

Folgerung 4. Die busy-beaver-Funktion β(n) ist nicht berechenbar.

Falls namlich β(n) berechenbar ware, musste auch β(2n) berechenbar sein (wirhatten eine TM, die erst die Zahl aller ∣′e der Eingabe verdoppelt, siehe Beispiel ??und dann die TM fur β(n) simuliert). Dann wurde es eine Konstante r geben mit

β(n + r) ≥ β(2n) fur alle n.Speziell ergibt n = r + 2

β(2r + 2) ≥ β(2r + 4),ein Widerspruch zu (c) oben.

4.2 Primitive Rekursion

Wir betrachten hier Funktionen mehrerer Variablen aus N die durch Rekursion undVerknupfung aus sehr einfachen ”Basis”-Funktionen konstruiert werden. Die Fa-kultatsfunktion definiert man z.B. rekursiv mit Multiplikation, die Multiplikationwiederum rekursiv mit Addition und die Addition rekursiv mit der Nachfolger-funktion succ. Hier endet aber diese Kette: succ ist eine der Basisfunktionen. Wirarbeiten hier mit k-stelligen Funktionen naturlicher Zahlen, d.h. mit Funktionen

f ∶Nk → N, wobei Nk =N × ⋅ ⋅ ⋅ ×N (k-mal), fur k = 1,2,3, . . . .f hat also k Variablen im Bereich N. Die konstante Funktion Ki mit Wert i giltals 0-stellig, da sie von keiner Variablen abhangt. Nicht-konstante Funktionen sindk-stelllig fur k ≥ 1.

Besonders einfache k-stellige Funktionen sind die Projektionen πk1 , . . . , πkk : die Pro-

jektion πki ordnet jedem k-Tupel sein i-tes Element zu.

Beispiel 1. πki (n1, n2, . . . , nk) = ni.Fur k = 2 gibt es z.B. zwei Projektionen

π21(n,m) = n und π2

2(n,m) =m.Fur k = 1 ist π1

1(n) = n die Identitatsfunktion.sectDfBasisfunktion

dfBasisfunktion Definition. Die folgenden Funktionen heißen Basisfunktionen :

1. die Nachfolgerfunktion succ (mit succ(n) = n + 1)

2. die Nullfunktion K0 (mit dem einzigen Wert 0) und

3. die Projektionen πki fur alle 1 ≤ i ≤ k, k = 1,2,3, . . . .

Page 103: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

4.2. PRIMITIVE REKURSION 99

Aus den Basisfunktionen konnen weitere Funktionen mit Hilfe der Verknupfungdefiniert werden:sectBspAltVierFuenfEins

bspAltVierFuenfEins Beispiel 2. Konstante Funktionen. Die konstante Funktion K1 entspricht der Ver-knupfung von K0 mit succ:

K1 = succ(K0).Analog

K2 = succ(K1) = succ(succ(K0))usw.

sectBspAltVierFuenfZwei

bspAltVierFuenfZwei Beispiel 3. Die Funktion f(n) = n+ 2 fur alle n ∈N ist die Verknupfung von succ

mit sich selbst:f(n) = succ(succ(n)).

sectBspAltVierFuenfDrei

bspAltVierFuenfDrei Beispiel 4. Die Funktion g(n,m) =m + 2 (fur alle n,m ∈N) ist eine Verknupfungder zweiten Projektion π2

2(n,m) (die n wegfallen lasst) und der Funktion f ausBeispiel 3:

g(n,m) = f(π22(n,m)) = succ(succ(π2

2(n,m)).

Bemerkung 1. Im Allgemeinen definieren wir die Verknupfung mehrstelliger Funk-tionen wie ublich: falls

f ∶Nk → N (k ≥ 1)eine k-stellige Funktion ist und

g1, . . . , gk ∶Nm → N (m ≥ 0)k m-stellige Funktionen sind, ist die Verknupfung von f mit g1, . . . , gk die m-stelligeFunktion

h ∶Nm → N,die durch

h(n1, . . . , nm) = f(g1(n1, . . . , nm), g2(n1, . . . , nm), . . . , gk(n1, . . . , nm))fur alle (n1, . . . , nm) auf Nm definiert wird.

Beispiel 5. Aus der Nachfolgefunktion succ lasst sich die Addition add ∶ N×N→ Nwie folgt rekursiv definieren:

add(n,0) = nadd(n,succm))succ(add(n,m))

Dies ist im Beispiel von primitiver Rekursion:

Definition. Gegeben sei eine (k − 1)-stellige Funktion g und eine (k + 1)-stelligeFunktion h, definieren wir ihre primitive Rekursion als die k-stellige Funktion f wiefolgt:

f(n1, . . . , nk−1,0) = g(n1, . . . , nk−1) undf(n1, . . . , nk−1,m + 1) = h(n1, . . . , nk−1,m, f(n1, . . . , nk−1,m)).

sectBspAltVierFuenfVier

bspAltVierFuenfVier Beispiel 6. Addition. add(n,m) = n +m wird durch primitive Rekursion mitg(n) = n = π1

1(n)und

h(n,m, i) = succ i = succ(π33(n,m, i))

definiert. In der Tat giltadd(n,0) = g(n)add(n,m + 1) = h(n,m,add(n,m)).

sectBspAltVierFuenfFuenf

bspAltVierFuenfFuenf Beispiel 7. Die Multiplikation ist durch primitive Rekursion aus Addition defi-niert:

n ∗ 0 = 0

Page 104: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

100KAPITEL 4. CHURCH-TURING-THESE, REKURSIVE FUNKTIONEN UNDGRAMMATIKEN

n ∗ (m + 1) = (n ∗m) +m.Genauer: fur mul(n,m) = n ∗m definieren wir

g(n) =K0

undh(n,m, i) = add(m, i) = add(π3

2(n,m, i), π33(n,m, i)).

Dann giltmul(n,0) = g(n)mul(n,m + 1) = h(n,m,mul(n,m)).

sectDfPrimitivRekursiv

dfPrimitivRekursiv Definition. Eine Funktion heißt primitiv-rekursiv , falls sie durch endlich vieleAnwendungen von Verknupfung und primitiver Rekursion auf die Basisfunktionendefiniert werden kann.

Mit anderen Worten ist die kleinste Klasse von Funktionen, die alle Basisfunktio-nen enthalt und unter Verknupfung und primitiver Rekursion abgeschlossen ist, dieKlasse aller primitiv-rekursiver Funktionen.

Beispiele: Kn, f(n) = n+2, g(n,m) =m+2, add(n,m) und mul(n,m) sind primitiv-rekursiv.sectBspAltVierFuenfSechs

bspAltVierFuenfSechs Beispiel 8. Die Fakultatsfunktion m! ist primitiv-rekursiv, da sie mit der folgendenprimitiven Rekursion definiert werden kann:

0! = 1(m + 1)! = mul(m + 1,m!).

Hier ist also g =K1 und h(x, y) = mul(x+1, y) = mul(succ(π21(x, y), π2

2(x, y)). Da gund h beide primitiv-rekursiv sind, ist auch m! primitiv-rekursiv.

sectBspAltVierFuenfAcht

bspAltVierFuenfAcht Beispiel 9. Die modifizierte Subtraktion

n −m = { n −m falls n ≥m0 falls n <m

ist primitiv-rekursiv:n −0 = nn − (m + 1) = f(n −m) fur f aus Beispiel ??.

Hier gilt also g(n) = n und h(n,m, i) = f(π33(n,m, i)) = f(i).

Bemerkung 2. Die Klasse aller primitiv-rekursiven Funktionen ist so machtig,dass es nicht einfach ist, ein Beispiel einer Funktion außerhalb dieser Klasse zufinden (siehe Beispiel 10). Deswegen ist der folgende Satz eine neue Bestatigung derStarke von Turingmaschinen.

sectSatzPrimitivRekursivUndTuringberechenbar

satzPrimitivRekursivUndTuringberechenbar Satz 1. Jede primitiv-rekursive Funktion ist Turing-berechenbar.

Beweis. Es genugt, zu beweisen, dass gilt:

1. alle Basisfunktionen sind Turing-berechenbar,

2. die Verknupfung Turing-berechenbarer Funktionen ist Turing-berechenbar,und

3. die primitive Rekursion, die mit zwei Turing-berechenbaren Funktionen arbei-tet, ergibt eine Turing-berechenbare Funktion.

Dann sind alle primitiv-rekursiven Funktionen Turing-berechenbar.

(1) ist trivial und (2) auch: Die Verknupfung f(g(n)) wird z.B. von einer 2-Band-TM berechnet, wobei Band 1 die Funktion g(n) berechnet und das Ergebnis alsEingabe der Funktion f auf Band 2 kopiert.

Page 105: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

4.2. PRIMITIVE REKURSION 101

Wir wollen also (3) beweisen, d.h., dass es fur die Funktion f mitf(n1, . . . , nk,0) = g(n1, . . . , nk)

undf(n1, . . . , nk,m + 1) = h(n1, . . . , nk,m, f(n1, . . . , nk,m))

eine TM gibt, falls Mg und Mh zwei TM sind, die g und h berechnen.

Unsere TM hat funf Bander:

n1 $ n2 $ . . . $ nkBand 1 (Eingabeband)

mBand 2 (Schrittzahler)

FUNKTION gBand 3 (simuliert Mg)

FUNKTION hBand 4 (simuliert Mh)

ZWISCHENERGEBNIS jBand 5 (Ausgabeband)

Die Berechnung von f erfolgt in Schritten Nr. m = 0,1,2, . . . , die auf Band 2 gezahltwerden und die wie folgt ablaufen:

Schritt 0: Band 2 enthalt 0, auf Band 3 wird n1, . . . , nk−1 (von Band 1)kopiert und g(n1, . . . , nk−1) wird berechnet. Das Ergebnis wirdauf Band 5 geschrieben.

Schritt m + 1: Falls nk der Inhalt von Band 2 ist, halt die TM. (Band 5 enthaltdann das Ergebnis.) Falls nicht, wird auf Band 4 die Eingabe

n1 $ . . . $ nk $ m $ jgeschrieben. j = f(n1, . . . , nk−1,m) ist der Inhalt von Band 5, mder von Band 2. Jetzt wird h(n1, . . . , nk,m, j) berechnet und dasErgebnis auf Band 5 geschrieben. Der Inhalt von Band 2 wirdum eins erhoht.

Folgerung 5. Die busy beaver Funktion β ist nicht primitiv rekursiv.

Bemerkung 3. Nicht jede partiell berechenbare Funktion ist primitiv-rekursiv.In der Tat sind alle primitiv-rekursiven total (d.h. uberall definiert), und es gibtpartielle Turing-berechenbare Funktionen.

Aber auch alle totalen berechenbaren Funktionen sind leider nicht primitiv-rekursiv.Das konnen wir abstrakt wie folgt zeigen: alle primitiv-rekursiven Funktionen konnenwir systematisch aufzahlen, z.B. setzen wir f0 = K0, f1 = succ, f2 = π1

1 . Mit den ge-gebenen Funktionen f0, . . . , fi machen wir alle moglichen Verknupfungen und pri-mitiven Rekursionen. Dabei entstehen fi+1, . . . , fj , dann ist fj+1 die nachste nochnicht eingenommene Projektion, usw. Diese Aufzahlung kann bestimmt eine TMdurchfuhren. Dann ist die Funktion

P (n) = 1 + fn(n,n, . . . , n)Berechenbar. Aber P ist nicht primitiv-rekursiv: falls namlich P = fn, haben wir

P (n) = 1 + fn(n) ≠ fn(n) – ein Widerspruch.

Es ist Wilhelm Ackermann 1928 gelungen, ein viel konkreteres Beispiel einer Funk-tion anzugeben, die nicht primitiv-rekursiv ist, sich aber mit einem einfachen Algo-rithmus berechnen laßt. Die Funktion, die man heute Ackermann-Funktion nennt,ist eine von Rozsa Peter spater entdeckte Vereinfachung der ursprunglichen Idee:

sectBspAckermannFunktion

bspAckermannFunktion Beispiel 10. Die Ackermann-Funktion A ∶N2 → N ist wie folgt definiert:A(0,m) =m + 1A(n + 1,0) = A(n,1) undA(n + 1,m + 1) = A(n,A(n + 1,m)).

Es gilt also

Page 106: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

102KAPITEL 4. CHURCH-TURING-THESE, REKURSIVE FUNKTIONEN UNDGRAMMATIKEN

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

usw. Wir erhalten einen Algorithmus, um jeden Wert A(n,m) zu berechnen: allemoglichen Paare (n,m) werden so aufgezahlt, dass der Wert A(n, m) direkt aus denvorigen Werten berechnet wird.

Beispiel 11. A(4,m) = 22⋰2

−3 mit m+2 Exponenten. So dass zum Beispiel A(4,4)mehr als 10105000

dezimale Ziffern braucht (und es gibt weniger als 1080 Atome imsichtbaren Teil des Universums). Die Formel fur A(4,m) lasst sich einfach per Induk-

tion beweisen, wobei man erst die folgenden Formeln beweist:A(1,m) =m + 2A(2,m) = 2m + 3A(3,m) = 2m+3 − 3

All diese Beweise sind trivial.

Satz 2. (Ohne Beweis.) Die Ackermann-Funktion ist nicht primitiv-rekursiv, dennA(n,n) wachst schneller als jede primitiv-rekursive Funktion f(n) (d.h., es gibt eineKonstante n0 mit f(n) < A(n,n) fur alle n ≥ n0).

Satz 3. Die Ackermann-Funktion ist berechenbar.

Beweis. Gegeben seien n,m. Wir wollen A(n,n) durch eine TM berechnen. DieTM berechnet systematisch alle Werte von A und schreibt sie in der Form

$$n0$m0$A(n0,m0)$$in einem Speicher:

$$0$0$1$$0$i$2$$1$0$0$2$$ . . .∥ ∥

A(0,0) A(0,1) A(1,0)∥

A(0,1)Bei jedem Schritt fragt sie, ob sie schon A(n,n) berechnet hat:

nBand 1 (Eingabeband) m

A(n,m)Band 2 (Ausgabe)

n0 = 0,1,2 . . .Band 3 (Zahler)

n0 = 0,1,2 . . .Band 4 (Zahler)

$$n0$m0$A(n0,m0)$$⋯Band 5 (Speicher)

Am Anfang ist B2 leer, auf B3 und B4 steht 0 und dann fangt die Maschine mitden folgenden Schritten an:

(a) Ist n0 = n und m0 =m? Wenn ja, schreibe A(n,m) aus B5 auf B2 und halte.

(b) Wenn nein, berechne den nachsten Wert der Ackermann-Funktion: entwedersetze n0 ∶= n0 + 1, berechne A(n0 + 1,m0) und schreibe es auf B7, oder setzem0 ∶=m0 + 1, berechne A(n0,m0 + 1) und schreibe es auf B7. GOTO (a).

4.3 µ-rekursive Funktionen

Die Operationen Verknupfung und primitive Rekursion sind nicht stark genug, umalle berechenbaren Funktionen zu generieren. Aber wenn der folgenden Operationµ hinzugefugt wird, genugen sie:

Page 107: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

4.3. µ-REKURSIVE FUNKTIONEN 103

Definition. Gegeben sei eine partielle Funktion f von k + 1 variablen, definierenwir ihre Minimierung µf als die folgende partielle Funktion von k Variablen:

µf(n1, . . . , nk)) =mwenn m die kleinste zahl ist, so dass f(n1, . . . , nk,m) = 0. (Und wenn keine solcheZahl existiert, ist µf in den k-Tupel nicht definiert).

Notation. Wir schreiben auch µmf um zu betonen, dass die Variable m minimiertwird.

Beispiel 1. Die Vorgangerfunktion pred(n) hat die Form µmf fur f(n,m) = n−m(undefiniert fur n <m).

Beispiel 2. Die Funktion

K0(n) =⎧⎪⎪⎨⎪⎪⎩

0 fur n = 0

undefiniert sonst

hat die FormK0(n) = µmπ1

1(n,m).In der Tat, π1

1(n,m) = 0 nur wenn n = 0 und das kleinste mogliche m ist m = 0.

Beispiel 3. Fur die Funktion der ganzzahligen Divison:

div(n,m)⎧⎪⎪⎨⎪⎪⎩

n ∶m falls dividierbar

undefiniert sonst

hatten wir die Tendenz zu schreibendiv(n,m) = µk(n −m ∗ k).

Denn das kleinste k mit n−m∗k = 0 ist k = nm

. Aber dies ergibt 0 ∶ 0 = 0. Deswegensetzen wir

f(n,m,k) = n − succ(pred(m)) ∗ kDann gilt

div(n,m) = µkf(n,m,k)

Definition. Eine Funktion heißt rekursiv (oder µ-rekursiv), wenn sie durch dieBasisfunktionen und endlich viele Anwendungen von

1. Verknupfung,

2. primitiver Rekursion und

3. Minimierung µ

definiert werden kann.

Beispiel 4. (a) Alle primitiv-rekursive Funktionen sind µ-rekursiv

(b) Die Funktionsub(n,m) = n −m fur n ≥m

ist µ-rekursiv: sie ensteht aus der Funktion K0 in Beispiel 2 durch die folgendeprimitive Rekursion:

sub(0,m) = K0(m)sub(n + 1,m) = succ(sub(n,m)).

D.h., die Bestandteile der primitiven Rekursion sindg(m) = K0

h(n,m, i) = succ(i) = succ(π31)

beide µ-rekursiv.

Page 108: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

104KAPITEL 4. CHURCH-TURING-THESE, REKURSIVE FUNKTIONEN UNDGRAMMATIKEN

(c) Deswegen ist pred µ-rekursiv, siehe Beispiel 1. Und auch Division ist µ-rekursiv,siehe Beispiel 3.

sectSatzRekursivUndTuringberechenbar

satzRekursivUndTuringberechenbar Satz 1. Jede µ-rekursive Funktion ist partiell berechenbar.

Beweis. Es genugt zu den Punkten 1. - 3. aus Satz 1 einen vierten Punkt hinzu-zufugen:

4. Falls f partiell berechenbar ist, so ist es auch µf .

Sei M eine TM, die f berechnet. Wir konstruieren eine 3-Band TM fur µf wie folgt:

n1 $ n2 $ . . . $ nkBand 1 (Eingabeband)

iBand 2 (Schrittzahler)

FUNKTION fBand 3 (simuliert M)

Am Anfang wird i = 0 auf Band 2 geschrieben, und dann wird auf Band 3 immerf(n1, . . . , nk, i) berechnet. Falls das Ergebnis 0 ist, halt die TM, und Band 2 enthaltdie Ausgabe. Falls das Ergebnis nicht 0 ist, wird Band 2 um 1 erhoht (i ∶= i + 1),und f(n1, . . . , nk, i) wird erneut berechnet, usw.

sectSatzTuringberechenbarUndRekursiv

satzTuringberechenbarUndRekursiv Satz 2. (Ohne Beweis) Jede partiell berechenbare Funktion ist µ-rekursiv.

Bemerkung 1. Fur die totalen berechenbaren Funktionen gibt es einen analogenSatz. Die einzige Differenz ist, dass der Minimierungsoperator µ nur eingeschranktbenutzt wird:

Definition. Eine totale Funktion f von k + 1 Variablen heißt minimierbar wennfur jeden k-Tupel n1, . . . , nk es ein m gibt mit f(n1, . . . , nk,m) = 0.

Bemerkung 2. µmf ist dann eine totale Funktion.

Satz 3. (Ohne Beweis.) Eine totale Funktion (mehrerer Variablen aus N) ist bere-chenbar, genau dann, wenn sie aus den Basisfunktionen durch endlich viele Anwen-dungen von Verknupfungen, primitive Rekursion und Minimierung von minimier-baren Funktionen definiert werden kann.

Beispiel 5. Die Ackermann-Funktion ist µ-rekursiv (mit µ nur auf minimierbareFunktionen angewendet).

4.4 Grammatiken und Turingmaschinen

In Kapitel 2 sprachen wir von kontextfreien Grammatiken, die es erlauben, eine Va-riable durch ein Wort zu ersetzen. Das ist ein Spezialfall einer Grammatik (auchunbeschrankte Grammatik oder Grammatik des Typs 0 genannt), die es allgemeinerlaubt, ein Wort durch ein anderes zu ersetzen. Es zeigt sich, dass diese Gramma-tiken genau die rekursiv aufzahlbaren Sprachen definieren. In diesem Sinn erhaltenwir also ein vollkommen neues Modell von Sprachen, die Turing-akzeptierbar sind.sectDefGrammatik

defGrammatik Definition. Eine Grammatik G ist ein Quadrupel G = (Σ, V, S,R), wobei Σ dasAlphabet aller Terminalsymbole, V das Alphabet aller Variablen (zu Σ disjunkt),S ∈ V das Startsymbol und R eine endliche Menge an Paaren (α,β) von Worternuber Σ ∪ V mit α ≠ ε ist.

Page 109: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

4.4. GRAMMATIKEN UND TURINGMASCHINEN 105

Bemerkung 1. Elemente (α,β) aus R werden mitα → β

bezeichnet und werden Produktionen oder Ersetzungsregeln genannt. Die An-wendung einer Regel α → β auf ein Wort w ist genau dann moglich, wenn w dieForm

w = w′αw′′ (w′,w′′ Worter uber Σ ∪ V )hat. Das Ergebnis der Anwendung ist das Wort

w′βw′′.

Notation. 1. Mit ⇒ bezeichnen wir die Anwendung einer einzigen Regel; alsoschreiben wir fur zwei Worter u,w in (Σ ∪ V )∗

u⇒ v,falls es eine Regel α → β in R und Worter u1, u2 in (Σ ∪ V )∗ gibt, so dass

u = u1αu2 und v = u1βu2.

2. Mit ⇒∗ bezeichnen wir die reflexive und transitive Hulle der Relation ⇒.sectDefDurchGErzeugteSprache

defDurchGErzeugteSprache Definition. Fur jede Grammatik G heißt die Menge aller Worter uber Σ, die vomStartsymbol ableitbar sind, die Sprache L(G) erzeugt durch G. Kurzer:

L(G) = {w ∈ Σ∗;S ⇒∗ w}.

Alle oben definierten Begriffe verallgemeinern die in Kapitel 2 eingefuhrten Begriffefur kontextfreie Sprachen. Aber die allgemeinen Grammatiken erzeugen Sprachen,die nicht kontextfrei sein mussen:sectBspAltVierDreiZwei

bspAltVierDreiZwei Beispiel 1. Eine Grammatik fur die (nicht kontextfreie) Sprache L = {anbncn;n ≥ 1}. Sei

G = ({a, b, c},{B,C,S}, S,R)die Grammatik mit den Regeln

(1) S → aBC ∣ aSBC(2) CB → BC(3) aB → ab(4) bB → bb(5) bC → bc(6) cC → cc

Das Wort anbncn, n ≥ 1, liegt in L(G), da es sich wie folgt ableiten lasst:S ⇒∗ an−1S(BC)n−1 [Regel S → aSBC, (n − 1)-mal angewendet]

⇒ an(BC)n [Regel S → aBC]⇒∗ anBnCn [Regel BC → CB, (n − 1)-mal angewendet]⇒ anbBn−1Cn [Regel aB → ab]⇒∗ anbnCn [Regel bB → bb, (n − 1)-mal angewendet]

⇒ anbncCn−1 [Regel bC → bc]⇒∗ anbncn [Regel cC → cc, (n − 1)-mal angewendet]

Umgekehrt beweisen wir, dass nur Worter der Form anbncn ableitbar sind. In derTat: falls w ein Wort ist, das von S ableitbar ist und keine Variable enthalt, beweisenwir das folgende:

1. Die Anzahl von a’s im Wort w ist dieselbe wie die von b’s und dieselbe wie dievon c’s . In der Tat, die Regeln (2) - (6) andern die Anzahl der Buchstaben a,b/B oder c/C nicht, und Regel (1) erhoht alle drei dieser Zahlen gleichzeitigum 1.

2. Alle a’s stehen links im Wort w, das heißt, w hat die Form w = anv (und vbesteht aus n b’s und n c’s ). Keine der Regeln (1) - (6) andert namlich dielinke Position von a.

Page 110: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

106KAPITEL 4. CHURCH-TURING-THESE, REKURSIVE FUNKTIONEN UNDGRAMMATIKEN

3. Das Wort w enthalt nicht die Kombination cb (das heißt, w hat nicht dieForm w = ucbv). Um das zu beweisen, betrachten wir die Regeln (3) - (6):diese andern weder Anzahl noch Position der Buchstaben a, b/B oder c/C imWort, sie wandeln nur B → b oder C → c um. Wir konnen daher annehmen,dass in der Ableitung S ⇒∗ w zuerst nur die Regeln (1) und (2) benutztwerden, und dann erst werden die Regeln (3) - (6) angewendet. Genauer: esgibt eine Ableitung:

S ⇒ w1 ⇒ w2 ⇒ ⋅ ⋅ ⋅⇒ wi ⇒ ⋅ ⋅ ⋅⇒ wk = w,wobei fur S ⇒ ⋅ ⋅ ⋅ ⇒ wi nur die Regeln (1) und (2) angewendet werden undfur wi ⇒ ⋅ ⋅ ⋅ ⇒ wk nur die Regeln (3) - (6). Dann unterscheiden sich dieWorter wi und wk nur dadurch, dass an der Stelle im Wort, an der b steht,wi den Buchstaben B hat und dasselbe gilt analog fur c/C. Das Wort wienthalt die Kombination CB nicht, denn keine der Regeln (3) - (6) kann B inb umwandeln, falls vor diesem B entweder C oder c steht. Es folgt, dass dasWort w = wk die Kombination cb nicht enthalt.

4. w = anbncn, denn in 2. haben wir ein Wort v mit n b’s, n c’s und ohne dieKombination cb – das einzige Wort ist v = bncn.

Beispiel 2. Die Sprache aller Worter uber {a, b, c} mit der gleichen Anzahl vona’s, b’s und c’s. Auch diese Sprache ist nicht kontextfrei (beweisen Sie es mithilfedes Pumping-Lemmas!). Hier ist eine Grammatik fur diese Sprache:

(a) Start. Hier darf das Startsymbol einfach verschwinden:

S → ABSC ∣ε

(b) Alle Variablen A,B,C sind untereinander kommutativAB → BABA→ ABAC → CACA→ ACBC → CBCB → BC

(c) Von Variablen zu EingabesymbolenA→ aB → bC → c.

Jedes Wort w mit Lange 3n und mit n a’s, b’s sowie c’s lasst sich Ableiten: Wirverwenden erst (a) n − 1-mal

S ⇒ ABSC ⇒ ABABSCC ⇒ . . .⇒ (AB)nSCn ⇒ (AB)nCnZunachst gestalten wir (AB)nCn zum Wort w um, außer dass die Buchstaben großsind. Dies lasst sich durch Anwendung der Produktionen aus (b) leicht machen. AmEnde benutzen wir (c) um w zu erhalten.

Um gekehrt, jedes Wort aus L(G) hat die gleiche Anzahl von a’s, b’s und c’s.in der tat, wir beweisen das folgende: gegeben S ⇒ w mit w uber{a, b, c,A,B,C,S} ist die Anzahl von a,A gleich der von b,B und gleich der vonc,C. Beweis per Induktion in der Lange k der Ableitung von w aus S: k = 0Dann w = s: die drei Zahlen sind gleich 0.

k + 1: Wir haben S ⇒ w1 ⇒ . . .⇒ wk ⇒ wk+1(= w).Nach Induktionsvoraussetzung hat wk dieselbe Anzahl (sagen wir v) von a,A und

Page 111: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

4.4. GRAMMATIKEN UND TURINGMASCHINEN 107

b,B und c,C. Das Wort wk+1 entsteht aus wk indem eine der Produktionen obenangewendet wird. Wenn S → ABSC angewendet wurde, hat wk genau i+1 der Sym-bole a,A sowie b,B und c,C. Alle anderen Produktionen haben die Eigenschaft, dassdie Anzahl von a,A auf der rechten und linken Seite gleich ist. Dasselbe gilt fur b,Bund c,C. Deswegen hat auch wk+1 genau i Symbolen a,A sowie b,B und c,C.

sectBspAltVierDreiDrei

bspAltVierDreiDrei Beispiel 3. Simulation einer TM.

Wir zeigen jetzt, wie die Arbeit einer TM vollstandig von einer Grammatik simuliertwerden kann. Erinnern wir uns an das Konzept von Konfigurationen (q, u, a, v) ausKapitel 3.1:

a

⇑q

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶u

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶v

. . . . . .

Die Konfigurationen werden jetzt statt (q, uav) durch das Wort [uqav] uber Σ ∪Q ∪ {[, ],#} bezeichnet. Also ist die Initialkonfiguration mit Eingabe s1 . . . sn dasWort [q0s1 . . . sn].Die Arbeit der TM wird durch die Relation ⊢ (

”Folgekonfiguration“) beschrieben.

Wir konstruieren jetzt eine Grammatik G, in der fur zwei Konfigurationen gilt:[uqav] ⊢ [u′q′a′v′] genau dann, wenn [u′q′a′v′] ⇒ [uqav].

(Also beschreibt die Ableitung in der Grammatik G die Berechnung ruckwarts.)Wir benutzen die Bandsymbole Σ der TM als terminale Symbole und die folgendenVariablen:

V = Q ∪ {S,#, [, ]};wir setzen V ∩Σ = ∅ wie ublich voraus. Also

G = (Σ, V, S,R),und die Produktionen R entsprechen den Moglichkeiten von ⊢ (siehe Tabelle 3.1 inAbschnitt 3.1):

1. Fur jede Ubergangsregel (q, s) → (q′, s′) der TM mit s′ in Σ ∪ {#} habenwir die Folgekonfigurationen [uqsv] ⊢ [uq′s′v], und wir benotigen also dieProduktion (in der Gegenrichtung)(1) q′s′ → qs.

2. Fur jede Ubergangsregel (q, s) → (q′,R) der TM haben wir die Folgekonfi-gurationen

[uqsv] ⊢ [usq′v] falls v ≠ εund

[uqs] ⊢ [usq′#] falls v = ε.Wir benotigen dafur die Produktionen(2) sq′ → qs(3) sq′#]→ qs]

3. Fur jede Ubergangsregel (q, s) → (q′, L) brauchen wir die Produktionen(4) q′s′s → s′qs ∀s′ ∈ Σ ∪ {#}(5) [q′#s→ [qs

Nehmen wir jetzt an, dass die TM ein Wort s1 . . . sn uber Σ akzeptiert, unddass sie ihr Eingabeband loscht, bevor sie halt. Dann haben wir eine Be-rechnung, die mit der Initialkonfiguration [q0s1 . . . sn] beginnt und mit derFinalkonfiguration [qF#] endet. Das heißt, aufgrund der Produktionen (1) -(5) gibt es eine Ableitung (in der Gegenrichtung!)

[qF#] ⇒ . . . ⇒ [q0s1 . . . sn].

Page 112: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

108KAPITEL 4. CHURCH-TURING-THESE, REKURSIVE FUNKTIONEN UNDGRAMMATIKEN

Wir fugen jetzt drei Produktionen hinzu, so dass wir dann vom StartsymbolS das Wort s1 . . . sn ableiten:(6) S → [qF#](7) [q0 → ε(8) ] → ε

Wir haben also die GrammatikGM = (Σ, V ∪ {#, [, ], S}, S,R)

mit den Produktionen (1) - (8). Wir beweisen jetzt, dass sie die Sprache L(M)erzeugt.

sectSatzTMDieBandLoescht

satzTMDieBandLoescht Satz 1. Falls M eine TM ist, die ihr Band immer loscht, bevor sie halt, dann giltfur die obige Grammatik GM , dass L(M) = L(GM).

Beweis. 1. Jedes Wort w = s1 . . . sn, das M akzeptiert, ist aus GM ableitbar,das heißt, L(M) ⊆ L(GM). In der Tat, fur eine gegebene Berechnung, diein der Konfiguration [q0s1 . . . sn] beginnt und in [qF#] endet, seien k0 =[q0s1 . . . sn] ⊢ k1 ⊢ . . . ⊢ kM = [qF#] die Konfigurationen der Berech-nung. Dann gilt

S ⇒ [qF#]⇒ kM−1 ⇒ kM−2 ⇒ ⋅ ⋅ ⋅⇒ k1 ⇒ [q0s1 . . . sn]⇒∗ s1 . . . sn,wobei am Anfang die Produktion (6) und am Ende die Produktionen (7) und(8) verwendet wurden. Also gehort s1 . . . sn zu L(GM).

2. Sei w = s1 . . . sn ein Wort, das von S ableitbar ist. Wir haben eine Ableitungder Form

S ⇒ [qF#] ⇒ w1 ⇒ w2 ⇒ . . . ⇒ wM = s1 . . . sn.Wir durfen annehmen, dass die Regeln (7) und (8) (die bestimmt angewendetwurden, da w1 die beiden Klammern enthalt, aber wM nicht) erst am Endeder Ableitung angewendet wurden, also wM−2 = [q0s1 . . . sn]. Fur die Ablei-tung w1 ⇒∗ wM−2 wurden nur die Regeln (1) - (6) angewendet. Es ist alsohinreichend, zu zeigen, dass, falls fur zwei Konfigurationen w und w′,w′ ⊢ waufgrund von (1) - (6) gilt, dann folgt daraus w ⊢ w′.

(a) Falls die Produktion (1) angewendet wurde, gilt w′ = [uq′s′v] und w =[uqsv], wobei qs → q′s′ eine Ubergangsregel ist. Dann ist w′ eine Fol-gekonfiguration von w.

(b) Falls die Produktion (2) angewendet wurde, gilt w′ = [usq′v] und w =[uqsv]. Wieder ist w′ eine Folgekonfiguration von w.

(c) Falls die Produktion (3) angewendet wurde, gilt w′ = [usq′#] und w =[uqs], und auch diesmal ist w′ eine Folgekonfiguration von w. Analogmit den Produktionen (4) und (5).

Also fur w1 = [qF#] und wM−2 = [q0s1 . . . sn] folgt aus w1 ⇒∗ wM−2, dasswM−2 ⊢∗ w1. Das bedeutet, dass die TM auf die Eingabe s1 . . . sn halt undakzeptiert. Also gehort s1 . . . sn zu L(M).

sectKorRekursivaufzaehlbarUndGrammatik

korRekursivaufzaehlbarUndGrammatik Korollar 1. Fur jede rekursiv-aufzahlbare Sprache L gibt es eine Grammatik, dieL erzeugt.

sectBspAltVierDreiVier

bspAltVierDreiVier Beweis. Es gibt eine TM, die L akzeptiert. Sei M eine Modifikation dieser TM,die sich nur dadurch unterscheidet, dass M ihr Band loscht, bevor sie halt. Danngilt

L = L(M) = L(GM).sectBspAltVierDreiFuenf

Page 113: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

4.4. GRAMMATIKEN UND TURINGMASCHINEN 109

bspAltVierDreiFuenf Beispiel 4. Die folgende TM akzeptiert die Sprache aller ungeraden Zahlen (uberΣ = {∣}):

M = ({q0, q1, q2},{∣}, δ, q0, qF )mit Ubergangen

(q0, ∣) → (q1,#)(q1,#)→ (qF ,R)(qF , ∣) → (q2,#)(q2,#)→ (q0,R)

Dieser TM entspricht die folgende GrammatikGM = ({∣},{q0, q1, q2,#, [, ], S}, S,R)

mit den ProduktionenS → [qF#]q1# → q0∣#qF → q1##qF#]→ q1#]q2# → qF ∣#q0 → q2##q2#] → q2#][q0 → ε] → ε

sectSatzGrammatikUndRekursivaufzaehlbar

satzGrammatikUndRekursivaufzaehlbar Satz 2. Jede von einer Grammatik erzeugte Sprache ist rekursiv-aufzahlbar.

Beweis. Wir wollen zeigen, dass fur jede Grammatik G die Sprache L(G) von einerTM akzeptiert werden kann. Wir benutzen eine nichtdeterministische 2-Band-TM,die alle Produktionen von G in einem zusatzlichen Gedachtnis hat. Band 1 ist einread-only Eingabeband. Auf Band 2 schreibt die TM zu Beginn das Startsymbol S.In jedem Berechnungsschritt zerlegt die TM nichtdeterministisch das Wort w aufBand 2 in drei Worter:

w = upv u, p, v ∈ (Σ ∪ V )∗ mit p ≠ ε.Zum Beispiel ist am Anfang die einzige mogliche Zerlegung u = ε, p = S und v = ε.Jetzt wahlt die TM nichtdeterministisch eine Produktion vonG von der Form p → q(falls keine solche Produktion existiert, halt die TM in einem nichtfinalen Zustand).Dann schreibt die TM das Wort w′ = uqv auf Band 2 und vergleicht Band 1 mitBand 2. Falls die Inhalte gleich sind, halt die TM und akzeptiert. Falls sie nichtgleich sind, wird der neue Berechnungsschritt (Zerlegung des Wortes w′ in dreiWorter usw.) gestartet.

Es ist klar, dass die Eingabe auf Band 1, falls sie von S ableitbar ist, nach endlichvielen Berechnungsschritten (die der Ableitung der Eingabe aus S entsprechen)akzeptiert wird. Falls umgekehrt die Eingabe nicht zu L(G) gehort, ist jede moglicheBerechnung entweder unendlich oder halt und akzeptiert nicht.

Page 114: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

110KAPITEL 4. CHURCH-TURING-THESE, REKURSIVE FUNKTIONEN UNDGRAMMATIKEN

Page 115: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

Kapitel 5

Unentscheidbare Probleme

5.1 Universelle TuringmaschinesectUnivTM

Wir konstruieren jetzt eine universelle (oder”programmierbare“) TM, die bei Ein-

gaben der Form

(c,w) c – Algorithmus, w – Datei

die Datei w entsprechend des Algorithmus c berechnet. Da wir Algorithmen alsTuringmaschinen interpretieren, konnen wir genauer sagen: eine universelle Turing-maschine Mu erhalt als Eingabe ein Wort

c(M)w,

wobei c(M) eine passende Codierung der (beliebigen) Turingmaschine M und wein (beliebiges) Eingabewort fur M ist. Dann berechnet Mu die Eingabe und liefertgenau dasselbe Ergebnis, das die Maschine M auf Eingabe w liefert. Das konnenwir entweder in der Akzeptor-Variante interpretieren, also Mu halt genau dannauf c(M)w, wenn M auf w halt, und dann akzeptiert Mu genau dann, wenn Makzeptiert, oder in der Rechner-Variante, also Mu fuhrt fur c(M)w zu der gleichenAusgabe wie M fur w. Es zeigt sich, dass die Maschine Mu, die wir jetzt beschreiben,beide Rollen erfullt.

Wir beschranken uns auf TM mit dem binaren Bandalphabet Σ = {0,1}. Alsohat die universelle Turingmaschine Mu sowie alle simulierten Maschinen M diesesEingabealphabet.

Codierung c(M) von Turingmaschinen M : Fur jede TM

M = (Q,{0,1}, δ, q0, q1)

deren Zustande

Q = {q0, q1, . . . , qn−1}

so durchnummeriert sind, dass q0 der Initialzustand und q1 der Finalzustand ist,definieren wir ein binares Codewort

c(M)

wie folgt. Wir benutzen 0i um die Zahl i zu codieren und 1 als Trennungssymbol.Das Wort c(M) hat die folgende Form: Am Anfang steht 0n, das die Anzahl naller Zustande bezeichnet. Dann werden die einzelnen t Ubergangsregeln aus R

111

Page 116: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

112 KAPITEL 5. UNENTSCHEIDBARE PROBLEME

durch binare Worter w1, . . . ,wt codiert, wie spater erklart wird, und durch eine 1voneinander getrennt. Am Ende schreiben wir 111. Der Code hat also die Form

c(M) = 0n1w11w21 . . .1wt111.

Um die Ubergangsregeln zu codieren, schreiben wir fur Zustande 10i+1 statt qi undcodieren die Symbole L, R, #, 0, 1 wie folgt

Symbol L R # 0 1Code 10 100 1000 104 105

Die Ubergangsregel(qi,0)→ (qj , L)

erhalt also den Codew = 10i+110410j+110,

die Ubergangsregel(qi,#)→ (qj ,0)

den Codew = 10i+110310j+1104

usw.

bspTMcode1 Beispiel 1. Wir codieren die Maschine M1 mit Zustanden q0, q1 und Ubergangs-regeln

(q0,1)→ (q1,R)(q1,#)→ (q1,1)

wie folgt:c(M1) = 111001w11w2111

wobei w1 der Code fur (q0,1)→ (q1,R) ist:

w1 = 10105100100

und w2 der Code fur (q1,#)→ (q1,1) ist:

w2 = 100103100105.

Insgesamt ergibt sich

c(M1) = 001101051001001100103100105111.

Wir bemerken, dass einzelne Ubergangsregeln voneinander durch 11 getrennt wer-den. Jede Turingmaschine wird durch ihren Code vollstandig beschrieben.

bspTMcode2 Beispiel 2. Falls eine Turingmaschine den Code

c(M2) = 0001101051010311010310101100104103100111

hat, muss es die Maschine

M2 = ({q0, q1, q2},{0,1}, δ, q0, q1)

mit den Ubergangsregeln

(q0,1)→ (q0,#)(q0,#)→ (q0, L)(q1,0)→ (q2,R)

sein.

Page 117: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

5.1. UNIVERSELLE TURINGMASCHINE 113

Bemerkung 1. Erinnern wir uns an die in Kapitel 3 eingefuhrte Sprache

Lcode = { c(M) ∣M ist eine TM, die c(M) nicht akzeptiert} .

Zum Beispiel das Wort c(M1) in Beispiel 1 ist ein Codewort einer TM. Akzeptiertdiese TM das Wort c(M1) ? Der erste Buchstabe von c(M1) ist 0 und da keinUbergang (q0,9)→? definiert ist, halt die TM sofort. Da q0 nicht final ist, akzeptiertdas Wort c(M1) nicht. Das heißt,

c(M1) ∈ Lcode.

Wie in Abschnitt 3.4 bewiesen, ist die Sprache Lcode nicht rekursiv-aufzahlbar. Dasbedeutet, dass kein Algorithmus entscheiden kann, ob eine beliebige TM ihr eigenesWort akzeptiert oder nicht.

Universelle Turingmaschine Mu Wir konstruieren jetzt eine universelle Turing-maschine Mu. Also reagiert sie auf die Eingabe c(M)w, wobei M eine TM mitEingabe aus {0,1} und w ein Wort uber {0,1} ist, wie folgt:

1. Mu halt genau dann, wenn M auf das Wort w halt,

2. Mu akzeptiert genau dann, wenn M das Wort w akzeptiert

3. falls M gehalten hat, hat Mu auf Band 1 dasselbe Ausgabewort wie M .

Die Maschine Mu wird als eine 3-Band TM beschrieben, aber wir wissen, dass dasunwichtig ist, weil wir eine 1-Band TM konstruieren konnen, die Mu simuliert.

# 0 1 0 . . . 1 1 1 1 0 1 . . . 1 # # . . .

´ µ³ ¶c(M)

´ µ³ ¶w

BAND 1

Enthalt c(M)BAND 2

0 0 . . . 0

Zustand qi

´ µ³ ¶i + 1

BAND 3

Band 1 enthalt am Anfang die Eingabe c(M)w. Das Ende des Wortes c(M) wirddurch 111 gekennzeichnet und die Bander 2 und 3 sind, wie ublich, leer. Zur Vor-bereitung auf die Simulation fuhrt Mu die folgenden Schritte aus:

1. c(M) wird von Band 1 auf Band 2 kopiert und auf Band 1 geloscht,

2. der Kopf von Band 1 wird auf das erste Symbol von w gestellt

3. Auf Band 3 wird 10 geschrieben (Zustand q0), und der Kopf wird auf die 1gestellt.

# 1 0 1 . . . 1 # # . . .

´ µ³ ¶c(M)⇑

BAND 1

Page 118: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

114 KAPITEL 5. UNENTSCHEIDBARE PROBLEME

1 1 1 . . . 1 1 1

´ µ³ ¶c(M)⇑

BAND 2

# 1 0 #

BAND 3

Dann wird M in rekursiven Schritten wie folgt simuliert (so dass das Band von Midentisch mit dem Band 1 von Mu ist und der Zustand von M gleich qi ist, wobei0i+1 auf Band 3 von Mu steht):

Simulation von M : Der Kopf von Band 1 liest s = #, 0 oder 1, also ein Symbol,das den Code 10p hat, wobei p = 3 (#), p = 4 (0) oder p = 5 (1) gilt.

Jetzt beginnt der Kopf auf Band 2 eine systematische Suche nach der Kombination

10i+110p,

wobei i + 1 die Zahl der 0’en auf Band 3 ist. Falls die Kombination 10i+110p nichtgefunden wurde, hat die Maschine M keine Ubergangsregel (qi, s)→?, deshalb haltM . Also halt auch Mu (wenn sie die rechte Gruppe 111 auf Band 2 erreicht hat,ohne die gesuchte Kombination zu finden). Mu akzeptiert genau dann, wenn Band3 den Inhalt 100 hat, d.h., genau dann, wenn M im Finalzustand q1 gehalten hat.

Falls die Kombination 10i+110p gefunden wurde, liest der Kopf auf Band 2 weiterbis zur nachsten Gruppe 11. Wir haben jetzt das Wort

10i+110p10j+110r11 . . .

auf Band 2 und das bedeutet, dass eine Ubergangsregel von M die folgende Formbesitzt:

(qi, s)→ (qj , s′) s′ hat den Code 10r (r = 1, . . . ,5)Die Maschine Mu andert den Bandinhalt von Band 3 zu 10j+1 und bewegt den Kopfauf Band 1 nach links oder rechts, falls r = 1 oder 2 ist, oder Mu uberschreibt s mit

#(falls r = 3), 0 (r = 4) oder 1 (r = 5).

Jetzt ist Mu fur den nachsten Simulationsschritt vorbereitet.

Definition. Die SpracheLu = L(Mu)

aller binaren Worter c(M)w wobei die TM, M , das Wort w akzeptiert, heißt dieuniversale Sprache.

Folgerung 6. Lu ist rekursiv aufzahlbar.

Bemerkung 2. 1. Die obige Codierung kann auch auf nichtdeterministische Tu-ringmaschinen mit dem Bandalphabet {0,1} angewendet werden.

2. Es ist einfach zu entscheiden, ob ein binares Wort v der Code einer (determi-nistischen oder nichtdeterministischen) TM ist. Die Codierungen sind namlichalle von der Form

TMcode1TMcode1 (1) v = 0n1w11w21 . . .1wt111,

wobei w1, . . . ,wt verschiedene Worter der Form

TMcode2TMcode2 (2) 10i+110p10j+110r mit i, j = 0, . . . , n − 1, p = 3,4,5 und r = 1,2,3,4,5

Page 119: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

5.2. DAS HALTEPROBLEM 115

sind. Umgekehrt ist jedes Wort v, das (1) und (2) erfullt, der Code einer TM.

Mit anderen Worten ist die Sprache aller Codierungen von allen nichtdeter-ministischen TM rekursiv.

3. Auch die Sprache aller Codierungen aller deterministischen TM ist rekursiv:hier muss der Algorithmus nur noch fur alle Paare k, k′ = 1, . . . , t von Indizesmit

wk = 10i+110p10j+110r

undwk′ = 10i + 110p10j

′+110r′

uberprufen, ob j = j′ und r = r′.

5.2 Das HalteproblemsectHalt

Gibt es einen Algorithmus, der fur jedes Paar

(Algorithmus c, Datei w)

entscheidet, ob c auf die Datei w halt? Aus Abschnitt 5.1 wissen wir, dass es einenAlgorithmus gibt, der auf die Eingabe (c,w) das Ergebnis von c auf die Datei wberechnet - das macht die universale Turingmaschine! Dennoch ist die Antwort aufdie obige Frage, die als Halteproblem bekannt ist, negativ. Auch dann, wenn wir unsnur auf die Algorithmen beschranken, die von TM mit dem Bandalphabet {0,1}reprasentiert werden, ist die Antwort negativ. Fur diese Maschinen M haben wirdie Codierung c(M) aus Abschnitt 5.1, und wir konnen das Halteproblem praziserformulieren: ist die Sprache

Lhalt = { v ∣ v = c(M)w fur ein binares Wort w und eine Turingmaschine M ,

die auf Eingabe w halt}

rekursiv?

Wir beweisen, dass Lhalt nicht rekursiv (also das Halteproblem nicht entscheidbar)ist, sie aber rekursiv-aufzahlbar ist. Daraus folgt, dass das Komplement Lhalt nichtrekursiv-aufzahlbar ist. Das bedeutet, dass das Problem, ob ein Algorithmus c aufdie Datei w nicht halt, nicht einmal mehr semi-entscheidbar ist.

Bemerken wir, dass in jedem Wort v = c(M)w der Code c(M) eindeutig bestimmtist (aufgrund der Trenngruppen 111 am Anfang und Ende von c(M)) und also auchw eindeutig bestimmt ist. Es gibt einen Algorithmus, der uberpruft, ob u diese Formhat – siehe Bemerkung in Abschnitt 5.1.

Bemerkung 1. Viele (auch ungeloste!) mathematische Probleme kann man um-formulieren zu Fragen, ob eine leicht konstruierbare TM auf eine Eingabe halt.

Beispiel 1. Beispiel einer TM mit sehr interessantem Halteproblem. Es ist ziemlichtrivial, eine 5-Band-TM zu konstruieren, die auf Band 2 systematisch alle Zahlenn = 3,4,5, . . . schreibt und fur jede Zahl n auf die Bander 3 - 5 systematisch alleZahlen a, b, c ≥ 2 schreibt und dann auf Band 1 die Zahl

an + bn − cn

berechnet. Falls diese Zahl 0 ist, halt die TM. Falls nicht, berechnet die TM dennachsten Quadrupel (n, a, b, c). Die Entscheidung, ob diese Turingmaschine M aufdie leere Eingabe halt, das heißt, ob

c(M) ∈ Lhalt

Page 120: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

116 KAPITEL 5. UNENTSCHEIDBARE PROBLEME

gilt, ist bestimmt hochst kompliziert: dies ist aquivalent zum Beweis des beruhmtenSatzes von Fermat!

Satz 1. Die Sprache Lhalt ist rekursiv-aufzahlbar.

Beweis. Die folgende Turingmaschine akzeptiert Lhalt:

TURINGMASCHINE M0

vEINGABE //

Hat v die Formv = c(M)w fureine TM M?

JA //

NEIN��

Halt Mu aufEingabe v?

JA //

NEIN

��

v akzeptiert

v nicht akzeptiert v nicht akzeptiert

Also uberpruft M0, ob die Eingabe die Form c(M)w hat (siehe Bemerkung in 5.1),und falls das der Fall ist, simuliert sie die universale Turingmaschine Mu. Die Ein-gabe v wird genau dann von M0 akzeptiert, wenn v = c(M)w und Mu (akzeptierendoder nicht akzeptierend) auf die Eingabe v halt. Aquivalent dazu ist: genau dann,wenn M auf die Eingabe w halt. Kurzer: L(M0) = Lhalt.

satzHalt Satz 2 (Unentscheidbarkeit des Halteproblems). Die Sprache Lhalt ist nicht rekur-siv.

Beweis. Die Annahme, dass Lhalt rekursiv ist, fuhrt zu einem Widerspruch: esfolgt, dass die Sprache

Lcode = {w;w = c(M) fur eine Turingmaschine M mit w ∉ L(M)}

rekursiv-aufzahlbar ist. Das ist aber falsch, siehe Beispiel 2 in Kapitel 3.4.

Sei Mhalt eine TM, die Lhalt akzeptiert und auf jede Eingabe halt. Dann lasst sichin der Tat eine TM konstruieren, die die Sprache Lcode akzeptiert:

TURINGMASCHINE Mcode

wEINGABE //

Hat w die Formw = c(M) fureine TM M?

JA //

NEIN��

AkzeptiertMhalt Eingabe

ww?

JA //

NEIN��

AkzeptiertMu Eingabe

ww?

JA //

NEIN��

w nichtakzeptiert

w nicht akzeptiert w akzeptiert w akzeptiert

Das heißt, dass die Turingmaschine Mcode eine Eingabe w wie folgt berechnet:

1. Mcode uberpruft, ob w = c(M) fur eine Turingmaschine M gilt (siehe Bemer-kung in 5.1).

2. Falls ja, wiederholt Mcode die Eingabe und schreibt also

ww = c(M)w

auf das Band.

3. Jetzt simuliert Mcode die Maschine Mhalt bis sie halt.

(a) Falls Mhalt die Eingabe ww nicht akzeptiert, halt Mcode und akzeptiertw. In diesem Fall halt namlich die Maschine M nicht auf die Eingabe w(denn c(M)w ∉ Lhalt); also wird w von M nicht akzeptiert – es folgt

w ∈ Lcode.

Page 121: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

5.3. EIN RECHNER ALS TURING-MASCHINE 117

(b) Falls Mhalt akzeptiert, simuliert Mcode die universale TM auf dieselbeEingabe ww. Da c(M)w ∈ Lhalt gilt, halt M auf die Eingabe w, also haltdie universale TM auf die Eingabe c(M)w. Mcode akzeptiert genau dann,wenn Mu nicht akzeptiert.

Die Turingmaschine Mcode halt auf jede Eingabe: der erste Schritt halt (denn dieSprache aller Codes ist rekursiv, siehe Bemerkung 2.2 5.1), der zweite halt nachunserer Voraussetzung von Mhalt, und der letzte halt, denn Mu erhalt nur solcheEingaben ww, die von Mhalt akzeptiert werden, das heißt Eingaben c(M)w mitw = c(M), so dass M auf w halt (oder aquivalent: Mu halt auf die Eingabe c(M)w =ww).

Welche Eingaben w akzeptiert Mcode? Genau die der Form w = c(M), wobei ent-weder

• M auf w nicht halt, d.h., Mhalt akzeptiert die Eingabe c(M)w nicht, oder

• M auf w halt und nicht akzeptiert, d.h., Mu akzeptiert die Eingabe c(M)wnicht.

Also gilt: w ∈ L(Mcode) genau dann, wenn w = c(M) und w ∉ L(M); oder kurzer:L(Mcode) = Lcode, ein Widerspruch.

Folgerung 7. Das Problem, ob eine TM nicht halt, ist nicht semi-entscheidbar.D.h., die Sprache Lhalt ist nicht rekursiv-aufzahlbar.

Beweis. Das folgt aus Satz 2 im Abschnitt 5.1: falls Lhalt und Lhalt rekursiv-aufzahlbar waren, ware Lhalt rekursiv.

5.3 Ein Rechner als Turing-Maschine

Die universelle TM zeigt, dass TM programmierbar sind: wir konnen die Eingabec(M)w der Maschine Mu als ein Paar von Algorithmen und Datei w, die als c(M)dargestellt werden, verstehen. Ist aber klar, dass reelle Computer durchaus simu-liert werden konnen? Ja, das wollen wir jetzt (informell, weil ”Computer” ist nichtdefiniert...) zeigen.

(a) Wir nehmen an, dass der Speicher des Computers aus einer Reihe w0,w1,w2, . . .(potentiell unendlich) von Wortern oder Bytes besteht, wobei wi die Adresse ihat.

(b) In einigen Wortern ist das Programm gespeichert. Jedes Wort reprasentiert eineeinfache Anweisung entsprechend der Maschinensprache (oder der Assembler-sprache). Wir erlauben indirekte Adressierung: Inhalt eines Wortes kann dieAdresse sein, wo man die notwendige Datei findet.

(c) Die Register, d.h., die Worter mit besonders schnellem Zugriff, konnen als se-parate Bander der TM genommen werden. Hier nehmen wir an, dass unserRechner nur ein Register hat, den Akkumulator (in dem z.B. die Arithmetikdurchgefuhrt wird).

Nehmen wir die einfache Programmiersprache, die nur die folgende Anweisunghat:

Page 122: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

118 KAPITEL 5. UNENTSCHEIDBARE PROBLEME

LEADi Kopiert Wi in den AkkumulatorADDi Addiert Wi + Akkumulator und speichert dies in dem AkkumulatorJUMPi Sprung auf Adresse iREADi Lese i Bits der EingabeWRITE Kopiert Akkumulator in die Ausgabe

Die TM hat 7 Bander:

$$0$W0$1$W1$10$W2$Band 1: Speicher

Eingabe des Rechners (read only)Band 2:

101 (Einweisung in W5 durchgefuhrt)Band 3: Programmregister

111 (Einweisung hat Adresse 7)Band 4: Adressregister

AkkumulatorBand 5:

Name der AnweisungBand 6:

AusgabeBand 7:

Anfang der Simulation Band 1 enthalt w$$u wobei w Datei (Eingabe) und uInhalt des Speichers ist. Auf Band 2 kopieren wir die Eingabedatei aus Band 1 undloschen sie dort, sodass Band 1 den Speicher des Rechners enthalt.

Simulation einer Anweisung Auf Band 3 lese j, suche $j$wj$ auf Band 1 undaus wj schreibe

(a) den Namen der Anweisung (LOAD, ADD, . . .) auf Band 6 und die Adresse iauf Band 4.

(b) erhohe Band 3 um 1

(c) die Anweisung durchfuhren

Z.B. falls LOADi in wj steht, suche die TM $i$wi$ auf Band 1 und schreibt wi aufBand 5. Im Fall von WRITEi fuhrt die TM die Addition von Band 5 und wi durchund schreibt das Ergebnis auf Band 5, usw.

Page 123: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

Kapitel 6

Unentscheidbare Probleme

Wir zeigen jetzt weitere Probleme, die nicht entscheidbar sind. Wir benutzen standigdie Codierung c(M) von (deterministischen und nichtdeterministischen) Turingma-schinen M aus Abschnitt 3.5. Auch alle Modifikationen von Turingmaschinen mitBandalphabet {0,1} aus Abschnitt 3.2 sind damit codiert. Falls M z.B. eine nicht-deterministische k-Band TM ist, bezeichnen wir mit c(M) den Code einer 1-Band-TM, die M simuliert. Auch fur jeden Kellerautomaten erhalten wir eine Codierung,in dem Sinne, dass wir ihn mit einer nichtdeterministischen 2-Band TM simulieren(Beispiel 3 in Kapitel 3.3) und den Code der TM verwenden.

Wir werden eine TM, die auf jede Eingabe halt und die Sprache L akzeptiert, kurzAlgorithmus fur L nennen.

6.1 Das AkzeptanzproblemsubsectAkzeptanz

Erinnern wir uns an den CYK-Algorithmus (Kapitel 2.9), der fur jede kontext-freie Grammatik G mit Terminalsymbolen aus {0,1} und jedes Wort w uber {0,1}entscheidet, ob w in L(G) liegt. Daraus folgt, dass das Akzeptanzproblem fur Kel-lerautomaten entscheidbar ist; mit anderen Worten haben wir einen Algorithmus,der fur jeden Kellerautomaten M und jedes Wort w entscheidet, ob M das Wort wakzeptiert. Oder kurzer: die Sprache

L(K)acc = {u;u = c(M)w fur einen Kellerautomaten M und ein Wort w aus L(M)}

ist rekursiv. In der Tat kann ein Algorithmus, der L(K)acc entscheidet, wie folgt kon-

struiert werden:

1. Wir uberprufen, ob die Eingabe u die Form u = c(M)w, wobei M ein Keller-automat ist, hat – vergleiche die Bemerkung in 5.1.

2. Fur den gegebenen Kellerautomaten M konstruieren wir eine kontextfreieGrammatik G(M), die die Sprache L(M) erzeugt.

3. Der CYK-Algorithmus wird auf G(M) und w angewendet.

Falls also M0 eine TM ist, die diesen Algorithmus reprasentiert, gilt L(K)acc = L(M0).

Im Kontrast hierzu zeigen wir jetzt, dass das Akzeptanzproblem fur Turingmaschi-nen, also die Frage, ob eine gegebene Turingmaschine ein gegebenes Eingabewortakzeptiert, unentscheidbar ist. Kurzer: die Sprache aller c(M)w wobei M das Wortw akzeptiert ist nicht rekursiv:

119

Page 124: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

120 KAPITEL 6. UNENTSCHEIDBARE PROBLEME

Definition. Lacc ist die Sprache aller binaren Worter c(M)w fur eine Turingma-schine M und ein Wort w aus L(M).

Satz 1. Die Sprache Lacc ist nicht rekursiv.

Beweis. Wir merken erst an, dass es zu jeder Turingmaschine M eine Turingma-schine M gibt, die sich von M nur darin unterscheidet, dass finale und nichtfinaleZustande ausgetauscht werden. (Genauer: wenn wir in M die finalen und nichtfina-len Zustande austauschen, erhalten wir eine TM mit mehreren finalen Zustanden,und M ist eine TM, die M simuliert, siehe Abschnitt 3.2.1) Der Ubergang von Mzu M lasst sich offensichtlich durch einen (kleinen) Algorithmus implementieren.Das bedeutet, dass es eine Turingmaschine M gibt, die auf die Eingabe c(M) dieAusgabe c(M) berechnet. Es gilt

w ∈ L(M) genau dann, wenn M auf die Eingabe w halt und nicht akzeptiert.

Wir beweisen jetzt, dass die Annahme, dass Lacc rekursiv ist, zu einem Widerspruchfuhrt: wenn Lacc rekursiv ware, wurde folgen, dass Lhalt rekursiv ist. In der Tat:falls Lacc von einer Turingmaschine Macc akzeptiert wird, die auf jede Eingabe halt,konnen wir die folgende Turingmaschine Mhalt konstruieren, die Lhalt akzeptiert undauf jede Eingabe halt:

TURINGMASCHINE Mhalt

u

EINGABE

��

u nicht akzeptiert

Hat u die Formu = c(M)w fureine TM M?

JA //

NEIN��

AkzeptiertMacc Eingabe

c(M)w?

JA��

NEIN //c(M) wirdvon M

berechnet

//Akzeptiert

Macc Eingabe

c(M)w?

JA��

NEIN

OO

u nicht akzeptiert u akzeptiert u akzeptiert

Diese TM akzeptiert genau die Eingaben u = c(M)w, fur die gilt, dass

• entweder M akzeptiert w (d.h., Macc akzeptiert c(M)w), oder

• M akzeptiert w (d.h., Macc akzeptiert c(M)w).

Das heißt, genau die Eingaben c(M)w, fur die M auf die Eingabe w halt. Kurzer:L(Mhalt) = Lhalt. Daruber hinaus halt Mhalt auf jede Eingabe – ein Widerspruchzu Satz 2 aus Kapitel 5.2.

6.2 Akzeptanz des leeren WortessubsectAkzeptanzEps

Eine noch einfachere Frage ist, ob eine TM die leere Eingabe akzeptiert. Auch dieseFrage ist aber unentscheidbar:

Definition. Lε ist die SPrache aller binaren Worter c(M)w wobei M eine TM istdie ε akzeptiert

Satz 1. Die Sprache Lε ist nicht rekursiv.

Page 125: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

6.3. IST EINE TM EIN ALGORITHMUS? 121

Wir merken erst an, dass es fur jede Turingmaschine M und jedes Wort w eineTuringmaschine Mw gibt, die das leere Wort genauso berechnet wie M das Wort w.Mw schreibt erst das Wort w = s1 . . . sn von links nach rechts auf ihr Band (mit Hilfevon n neuen Zustanden q1, . . . , qn, wobei qn der Initialzustand von Mw ist) und danngeht sie in den Initialzustand q0 der Maschine M uber und beginnt die Berechnungwie M . Das bedeutet, dass zu den Ubergangsregeln von M die folgenden Regelnhinzugefugt werden:

(qn,#)→ (qn, sn)(qn, sn)→ (qn−1,L)

(qn−1,#)→ (qn−1, sn−1)(qn−1, sn−1)→ (qn−2,L)

⋮(q1,#)→ (q1, s1)(q1, s1)→ (q0, s1)

(Jetzt steht der Kopf im Zustand q0 am Anfang des Wortes w = s1 . . . sn.)

Offensichtlich kann der Ubergang von (M,w) zu Mw durch einen Algorithmus im-plementiert werden, d.h., es gibt eine Turingmaschine M , die auf die Eingabe c(M)wdie Ausgabe c(Mw) berechnet.

Die Annahme, dass Lε rekursiv ist, fuhrt zu einem Widerspruch: daraus wurdefolgen, dass Lacc rekursiv ist. In der Tat haben wir, falls Mε ein Algorithmus fur Lεist, den folgenden Algorithmus fur Lacc:

TURINGMASCHINE Macc

uEINGABE //

Hat u die Formu = c(M)w fureine TM M?

JA //

NEIN��

c(Mw) wirdvon M

berechnet.

//AkzeptiertMε Eingabec(Mw)?

JA��

NEIN // u nichtakzeptiert

u nicht akzeptiert u akzeptiert

Es ist klar, dass Mε die Eingabe u = c(M)w genau dann akzeptiert, wenn Mw

das leere Wort akzeptiert und das geschieht genau dann, wenn M das Wort wakzeptiert. Das heißt, genau dann, wenn die Eingabe u = c(M)w in Lacc liegt.Kurzer: L(Macc) = Lacc. Außerdem halt Macc auf jede Eingabe – ein Widerspruchzu 6.1

6.3 Ist eine TM ein Algorithmus?

Auch diese Frage, d.h., das Problem, ob eine gegebene TM auf jede Eingabe halt,ist unentscheidbar.

Definition. Lalg ist die Sprache aller binaren Worter c(M)w wobei M eine TMist, die auf jede Eingabe halt

Satz 1. Die Sprache Lalg ist nicht rekursiv.

Wir merken erst an, dass es fur jede Turingmaschine M eine Turingmaschine M ′

gibt, die jede Eingabe so berechnet wie M die Eingabe ε: M ′ loscht erst das Band

Page 126: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

122 KAPITEL 6. UNENTSCHEIDBARE PROBLEME

und dann simuliert sie M . Offensichtlich kann der Ubergang von M zu M ′ durcheinen Algorithmus durchgefuhrt werden.

Die Annahme, dass Lalg rekursiv ist, fuhrt zu einem Widerspruch: daraus wurdefolgen, dass Lε rekursiv ist. In der Tat haben wir den folgenden Algorithmus furLε, falls Malg ein Algorithmus fur die Sprache Lalg ist:

TURINGMASCHINE Mε

u

EINGABE

��

u akzeptiert

Hat u die Formu = c(M) fureine TM M?

JA //

NEIN��

c(M ′) wirdvon M

berechnet.

//Akzeptiert

Malg Eingabec(M ′)?

JA //

NEIN��

Akzeptiert Mu

die Eingabec(M ′)?

JA

OO

NEIN��

u nicht akzeptiert u nicht akzeptiert u nicht akzeptiert

Die Maschine Mε halt auf jede Eingabe u: nur im letzten Schritt mussen wir auf-passen, ob Mu auf die Eingabe c(M ′) halt (aquivalent: ob M ′ auf die Eingabe εhalt) – das folgt daraus, dass Malg die Eingabe c(M ′) akzeptiert. Und eine Eingabeu wird genau dann von Mε akzeptiert, wenn u = c(M) fur eine Turingmaschine, furdie gilt: M ′ halt auf jede Eingabe und M ′ akzeptiert ε. Das ist aquivalent dazu,dass M auf ε halt und akzeptiert. Also

u ∈ L(Mε) genau dann, wenn u = c(M) ∈ Lε.

Das steht im Widerspruch zu 6.2

6.4 Das Problem von “hello world” Programmen

Es ist leicht, ein JAVA-Programm zu schreiben, welches auf jede Eingabe “helloworld” ausgibt und halt. Ist es aber so leicht, diese Eigenschaft zu uberprufen?

Wir wollen ein Programm Phallo schreiben, welches fur gegebene Eingabedatei wund JAVA Programmcode P entscheidet, ob P mit Eingabe w “hello world” schreibtund halt. Ist dies moglich?

Nein, so ein Programm kann man nicht schreiben. Oder, aquivalent dazu, die fol-gende Sprache ist nicht rekursiv:Lhallo = {c(M)w; die TM M auf Eingabe w halt und hat ASCII-Code fur

“hello world” auf dem Band }.

Satz 1. Lhallo ist unentscheidbar.

Beweis. Angenommen, dass Lhallo entscheidbar ist, leiten wir einen Widerspruchher. Wir haben eine TM, Mhallo, die auf jede Eingabe halt und akzeptiert g.d.w. dieEingabe c(M)w in Lhallo ist. Wir modifizieren sie zu einer TM Mhallo, die auf jedeEingabe w = c(M) funktioniert wie Mhallo auf Eingabe ww. Aber wenn Mhallo haltund akzeptiert, loscht Mhallo das Band. Vorausgesetzt Mhallo halt und akzeptiertenicht, schreibt Mhallo “hello world” auf das Band.

TURINGMASCHINE Mhallo

Page 127: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

6.5. SATZ VON RICE 123

EINGABE // w // ww // Mhallo

akzeptiert //

akzeptiert nicht

��

Band loschen

“hello world”am Band

Es gibt zwei Moglichkeiten fur das Wort w = c(Mhallo), beide sind widerspruchlich:

(a) Das Wort ww liegt in Lhallo. Dann akzeptiert Mhallo das Wort ww. Deswegenist das Band von Mhallo auf Eingabe w leer. Das aber bedeutet, dass Mhallo

akzeptiert c(M)w = ww nicht.

(b) Das Wort ww liegt nicht in Lhallo. Dann akzeptiert Mhallo nicht diese Eingabe,deswegen schreibt Mhallo auf Eingabe w “hello world”. Daras folgt, dass Mhallo

akzeptiert c(Mhallo)w = ww.

6.5 Satz von Rice

Ist es entscheidbar, ob fur eine Turingmaschine M die akzeptierte Sprache L(M)

• regular,

• kontextfrei, oder

• nichtleer

ist?

Alle drei Antworten sind negativ. In der Tat gilt ein uberraschend allgemeiner Satzin diesem Gebiet. Sei S eine beliebige Eigenschaft formaler Sprachen (z.B. regular,kontextfrei, nicht leer, usw.) Wir fragen, ob es entscheidbar ist, dass eine TM eineSprache mit der Eigenschaft S akzeptiert. Kurzer, ob die Sprache

LS = {c(M); M ist eine TM und L(M) hat die Eigenschaft S}

rekursiv ist. Das ist selbstverstandlich der Fall, falls S trivial ist, d.h.,

• entweder hat jede Sprache L(M) die Eigenschaft S, oder

• keine Sprache L(M) hat die Eigenschaft S.

Die drei oben erwahnten Eigenschaften sind bestimmt nicht trivial. Der folgendeSatz ergibt also die negativen Antworten:

Satz 1 (Satz von Rice). Fur jede nichttriviale Eigenschaft S von Sprachen ist esunentscheidbar, ob fur eine Turingmaschine M die Sprache L(M) die EigenschaftS hat. Kurzer: die Sprache LS ist nicht rekursiv.

Beweis. 1. Nehmen wir erst an, dass die leere Sprache ∅ die Eigenschaft S nichthat. Da S nicht trivial ist, gibt es eine Turingmaschine M0, so dass gilt

L(M0) hat die Eigenschaft S.

Fur jede Turingmaschine M und jedes Wort w konstruieren wir die folgendeTuringmaschine Mw:

Page 128: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

124 KAPITEL 6. UNENTSCHEIDBARE PROBLEME

TURINGMASCHINE Mw

uEINGABE // Akzeptiert M0

die Eingabe u?JA //

NEIN��

Akzeptiert Mdie Eingabe w?

JA //

NEIN��

u akzeptiert

u nicht akzeptiert u nicht akzeptiert

Es gilt

L(Mw) =⎧⎪⎪⎨⎪⎪⎩

L(M0) falls M die Eingabe w akzeptiert

∅ falls M die Eingabe w nicht akzeptiert

Der Ubergang von (M,w) zu Mw kann offensichtlich durch einen Algorith-mus implementiert werden. Es gibt also eine Turingmaschine M , die auf dieEingabe c(M)w die Ausgabe c(Mw) berechnet.

Die Annahme, dass LS rekursiv ist, fuhrt zu einem Widerspruch: es wurdefolgen, dass Lacc (6.1) rekursiv ist. In der Tat erhalten wir, falls MS ein Al-gorithmus fur die Sprache LS ist, den folgenden Algorithmus fur Lacc:

TURINGMASCHINE Macc

u

EINGABE

��

u nicht akzeptiert

Hat u die Formu = c(M)w fureine TM M?

JA //

NEIN��

c(Mw) wirdvon M

berechnet.

//AkzeptiertMS Eingabec(Mw)?

JA��

NEIN

OO

u nicht akzeptiert u nicht akzeptiert

In der Tat akzeptiert Macc genau die Worter c(M)w, fur die MS die Eingabec(Mw) akzeptiert, d.h., fur die die Sprache L(Mw) die Eigenschaft S hat. Esgilt:

L(Mw) hat die Eigenschaft S ⇐⇒ M akzeptiert w,

denn fur L(Mw) haben wir nur zwei Moglichkeiten: L(Mw) = L(M0) undL(M0) hat die Eigenschaft S, oder L(Mw) = ∅, und ∅ hat die Eigenschaft Snicht. Also: Macc akzeptiert genau die Worter c(M)w, die in Lacc liegen. DaMacc auf jede Eingabe halt, bekommen wir einen Widerspruch zu 6.1.

2. Nehmen wir an, dass die leere Sprache ∅ die Eigenschaft S hat. Sei S diekomplementare Eigenschaft (das heißt, die Negation von S), die genau dieSprachen haben, die die Eigenschaft S nicht haben. Speziell hat ∅ also nichtdie Eigenschaft S, und S ist sicher nichttrivial. Aus (1) folgt, dass LS nicht

rekursiv ist. Daraus folgt, dass die Sprache LS (aller Worter, die nicht inLS liegen) nicht rekursiv ist, denn LS ist der Durchschnitt von LS und derSprache aller Codes {c(M); M eine TM}. Die letztere Sprache ist rekursiv,siehe Bemerkung in 5.1 Falls also auch LS rekursiv ware, musste LS rekursivsein. Aus Satz ??? folgt, dass LS nicht rekursiv ist.

Page 129: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

6.6. MINIMIERUNG VON TURINGMASCHINEN 125

6.6 Minimierung von Turingmaschinen

Wir zeigen, dass es im Gegensatz zu endlichen Automaten keinen Minimierungsal-gorithmus fur Turingmaschinen gibt. Fur jede TM (die, wie oben, das Bandalphabet{0,1} hat) bezeichnen wir mit fM die partielle Funktion, die M wie folgt berech-net: falls M die Eingabe n (binar) hat, und falls M halt, ist fM(n) die Zahl, dieauf dem Band steht, wenn alle Blanksymbole und eventuell am Anfang stehendeNullen ignoriert werden. Ein Minimierungsalgorithmus fur Turingmaschinen ist einAlgorithmus A, der jeder Turingmaschine M eine Turingmaschine A(M) mit derminimalen Anzahl von Zustanden zuordnet, die dieselbe Funktion berechnet,

fM(n) = fA(M)(n) fur alle n.

Beispiel 1. Fur jede Turingmaschine M , die die Identitatsfunktion berechnet, d.h.,fM(n) = n fur alle n ∈N erfullt, hat die Turingmaschine A(M) nur einen Zustand.Denn die Identitatsfunktion kann von einer TM mit einem einzigen Zustand undkeiner Ubergangsregel realisiert werden.

Satz 1. Es gibt keinen Minimierungsalgorithmus fur Turingmaschinen.

Beweis. Wir merken erst an, dass es fur jede Turingmaschine M und jedes Wortw moglich ist, die folgende Turingmaschine M(w) zu konstruieren

TURINGMASCHINE M(w)

nEINGABE //

(binar)

Halt M auf dieEingabe w in

hochstens n Schritten?

JA��

NEIN // M(w) lasst n ausgeben

M(w) schreibt Ausgabe 0

Also simuliert M(w) die Turingmaschine M auf die Eingabe w fur k ≤ n Schritte,bis M halt, und dann schreibt M(w) die Ausgabe 0; falls M in n Schritten nicht

halt, schreibt M(w) die Ausgabe n. Der Ubergang von M und w zu M(w) kann

offensichtlich von einer Turingmaschine M durchgefuhrt werden (M ist eine einfacheModifikation der universalen TM). Also ist M eine TM, die auf die Eingabe c(M)wdie Ausgabe c(M(w)) liefert. Es gilt:

fM(w)(n) = n, falls M auf Eingabe w nicht halt,

d.h., die Machine M(w) berechnet die Identitatsfunktion. Also gilt fur jeden Mini-mierungsalgorithmus A,

A(M(w)) hat 1 Zustand, falls M auf w nicht halt.

Umgekehrt gilt: falls M auf Eingabe w halt, ist fM(w) nicht die Identitatsfunktion.Es gilt also:

M halt nicht auf Eingabe w ⇐⇒ A(M(w)) berechnet die Identitatsfunktion.

Die Annahme, dass es einen Minimierungsalgorithmus A gibt, fuhrt zu einem Wi-derspruch: es folgt, dass die Sprache Lhalt rekursiv-aufzahlbar ist (siehe Korollar in5.2). In der Tat akzeptiert die folgende Turingmaschine M∗ die Sprache Lhalt:

Page 130: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

126 KAPITEL 6. UNENTSCHEIDBARE PROBLEME

TURINGMASCHINE M∗

uEINGABE //

Hat u die Formu = c(M)w fureine TM M?

JA //

NEIN��

c(M(w)) wirdvon M

berechnet.

//M(w) wirdvon A

minimiert.

//

u nicht akzeptiert

//Hat A(M(w))nur einenZustand?

JA //

NEIN��

Berechnet A(M(w))die

Identitatsfunktion?

JA //

NEIN��

u akzeptiert

u nicht akzeptiert u nicht akzeptiert

(Die letzte Entscheidung, ob eine TM mit nur einem Zustand die Identitatsfunktionberechnet, lasst sich bestimmt mit einem kleinen Algorithmus durchfuhren.) DieMaschine M∗ halt auf jede Eingabe und akzeptiert alle Worter u = c(M)w, wobeiM(w) die Identitatsfunktion berechnet. Da fM(w) genau dann die Identitatsfunktionist, wenn M auf die Eingabe w nicht halt, gilt

M∗ akzeptiert c(M)w ⇐⇒ M halt nicht auf w.

Kurzer: L(M∗) = Lhalt, ein Widerspruch.

Page 131: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

Kapitel 7

Komplexitat vonAlgorithmen

Bisher haben wir uns die Frage gestellt, ob ein Problem entscheidbar (d.h. mitHilfe eines Algorithmus losbar) ist. Jetzt wollen wir auch die Effizienz von Algo-rithmen diskutieren. Es gibt wichtige Aufgaben, wie z.B. jeden Graphen mit derkleinstmoglichen Zahl an Farben zu farben (ohne dass eine Kante gleichfarbige Kno-ten verbindet), fur die es zwar Algorithmen gibt, aber kein effizienter Algorithmusbekannt ist.

Wir fuhren zuerst die Klasse P aller Probleme ein, die effizient losbar sind; z.B. dasProblem, jeden Graphen, fur den es moglich ist, mit zwei Farben zu farben.

”Effi-

zient“ bedeutet: in polynomialer Zeit durchfuhrbar. Genauer: ein Problem gehortder Klasse P an, falls es mit einem Algorithmus losbar ist, fur den es ein Polynomp(m) gibt, so dass fur jede Eingabe der Große m die Losung in p(m) Zeiteinheitengefunden werden kann. Es zeigt sich, dass die Klasse P nicht von dem Modell derBerechnung abhangt: es kann eine Turingmaschine, eine RAM oder eine moderneWorkstation sein. (Naturlich wird fur diese drei Modelle das ausgewahlte Polynomp(n) ganz verschieden sein, d.h., der

”Grad der Effizienz“ hangt sehr von der kon-

kreten Implementierung ab. Aber die prinzipielle Moglichkeit, die Zeit durch einPolynom zu beschranken, ist implementierungsunabhangig.)

Danach wird die Klasse NP aller Probleme eingefuhrt, fur die wenigstens die Uber-prufung, ob eine gegebene Datei das Problem lost, effizient ist. Z.B. das Problem,jeden Graphen, fur den es moglich ist, mit drei Farben zu farben: es ist kein effizi-enter Algorithmus bekannt, aber die Uberprufung, ob eine vorgeschlagene Farbungwirklich drei Farben benutzt und keine Kante zwischen gleichfarbigen Knoten er-gibt, ist effizient. Leider ist es bis heute nicht bekannt, ob P = NP. Aber es sindviele Probleme bekannt, die

”NP-vollstandig“ sind - fur diese gilt: ware eines dieser

Probleme effizient losbar, waren es alle anderen auch, denn dann folgt P = NP. Daserwahnte Problem der Dreifarbung von Graphen ist, wie wir beweisen werden, NP-vollstandig. Es scheint sehr unwahrscheinlich, dass dieses Problem effizient losbarist, aber falls ja, wurde daraus folgen, dass viele andere wichtige Probleme (z.B.Traveling Salesman Problem) effizient losbar waren.

Dieses Kapitel hat, wie die vorigen, theoretischen Charakter; z.B. benutzt die Klas-se P beliebige Polynome zur Zeiteinschrankung und das ist nicht

”realistisch“, falls

das Polynom einen zu großen Exponenten hat. Dennoch hat Komplexitatstheoriewichtige praktische Aspekte. Stellen Sie sich vor, dass Ihr Chef Sie damit beauftragthat, ein Programm zu schreiben, das uberpruft, ob eine vorgeschlagene Produktspe-

127

Page 132: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

128 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

zifikation realisierbar ist. Trotz einigen Wochen intensiven Versuchens ist es Ihnennicht gelungen, das Programm zu schreiben. Was jetzt? Wenn Sie die Produktspe-zifikation analysieren und feststellen, dass sie sehr allgemein formuliert ist, liegt esvielleicht an der Allgemeinheit und nicht an Ihrer Unfahigkeit. Es ware z.B. toll,wenn Sie zeigen konnen, dass das von Ihnen verlangte Programm eigentlich auchdas Halteproblem losen konnte – dann konnen Sie Ihrem Chef beweisen, dass erunlosbare Aufgaben erteilt. Das ist aber leider nicht sehr wahrscheinlich, denn dasHalteproblem ist doch sehr allgemein. Also versuchen Sie zu zeigen, dass Ihr Pro-gramm eines von den hunderten NP-vollstandiger Problemen losen wurde – daszeigt nicht, dass die Aufgabe prinzipiell nicht effektiv implementierbar ware, aberdass es schon einer Schar ausgezeichneter Programmierer nicht gelungen ist, eineneffizienten Algorithmus zu entwickeln.

7.1 Beispiele effizienter Algorithmensect-eff-alg

In diesem Abschnitt illustrieren wir eine genaue Analyse der Effizienz von Algo-rithmen an einigen wichtigen Beispielen von Graphen-Algorithmen. Ein gerichteterGraph G = (V,E), wobei V die Menge aller (n) Knoten und E die Menge al-ler Kanten (d.h. geordneten Paaren von Knoten) ist, wird gewohnlich durch seinen × n-Adjazenzmatrix

(aij)

reprasentiert, wobei

aij =⎧⎪⎪⎨⎪⎪⎩

1 falls (i, j) eine Kante in E ist

0 sonst

Oder durch Adjazenzlisten, d.h., durch n lineare Listen, wobei die i-te Liste alleKnoten j mit (i, j) ∈ E enthalt und die heads (Listenkopfe) in einem Array gespei-chert werden. Beispiel: fur den gerichteten Graphen

1 // 2

��

��

3

5

OO

4oo

__

haben wir die Adjazenzmatrix der Gesamtgroße m = n2

⎛⎜⎜⎜⎜⎜⎝

0 1 0 0 00 1 1 1 00 0 0 0 00 0 1 0 11 0 0 0 0

⎞⎟⎟⎟⎟⎟⎠

und die Adjazenzlisten der Gesamtgroße m = n + k

Page 133: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.1. BEISPIELE EFFIZIENTER ALGORITHMEN 129

1 2

2 2 4 3

3

4 5 3

5 1

//

// // //

// //

//

Beispiel 1. REACHABILITY. Gegeben einen Graphen mit Knoten 1, . . . , n wollenwir einen gerichteten Pfad von 1 nach n konstruieren. Die Entscheidung, die wirtreffen wollen, ist: gibt es einen?

Ein effizienter Algorithmus bildet eine Menge S von Knoten und markiert die Kno-ten die in S sind oder waren. Am Anfang S ∶= {1} und nur 1 ist markiert. Imrekursiven Schritt wahle i ∈ S, entferne i aus S, und nehme alle Nachbarknoten j,die nicht markiert sind: j wird zu S hinzugefugt und markiert. Wenn S = ∅ antworteJA, g.d.w. n markiert wurde.

Dieser Algorithmusist korrekt, denn jeder markierte Knoten i hat einen Pfad von 1zu 1, wahrend die unmarkierten keinen Pfad besitzen? Die Wahl von i in S bestimmtdie Implementierung. Z.B. wenn i immer als der Knoten gewahlt wird, der in S amlangsten ist (Breitensuche) konstruieren wir den kurzesten Pfad.

Wie viel Zeit braucht der Algorithmus? Wenn der Graph als Adjazenzlisten darge-stellt wird, brauchen wir bei n Knoten und k Kanten nur

O(k) Schritte

(vorausgesetzt mengentheoretische Operationen, z.B. S ∶= S∪{j}, nur konstante Zeitbrauchen). Denn jede Kante wir hochstens einmal durchsucht. Wenn der Graph alsAdjazenzmatrix dargestellt wird (n×n binare Matrix der Nachbarschaftsrelationen)brauchen wir

O(n2) Schritte.

Jedenfalls, unabhangig von Implementierung, brauchen wir polynomiale Zeit, d.h.,Zeit

O(p(n)) , p(n) ein Polynom in n ∈ N

fur Bearbeitung von Graphen der Große n (wobei wir die Große einfach als die Zahlder Knoten definieren konnen – im Falle von O(k) oben ist jedenfalls k ≤ n2).

Beispiel 2. MAXFLOW. Es wird wieder ein Graph und zwei Knoten 1, n gegeben.Wir nehmen an, dass es keine Kante x→ 1 oder n→ x gibt. Ein Fluss ist eine Listevon Pfaden von 1 zu n, die paarweise keine gemeinsamen Kanten haben:

●2 //

��

// ●5

�� ��●1 //

��

????

��

●3

??

●6 // ●8

●4 //// ●7

OO ?? ??

●2 //

�� ��

●5

�� ��●1 //

��

????

//

��

●3

??

●6 //// ●8

●4 //// ●7

OO ??OO

Page 134: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

130 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Im oberen Beispiel haben wir einen Fluss von 2 Pfaden (links) und einen von 3Pfaden (rechts) gezeigt. Die Frage ist: wie konstruieren wir den maximalen Fluss?Ein beruhmter Algorithmus dafur benutzt den Begriff eines erweiternden Gradesfur einen gegebenen Fluss f . Dies ist eine Liste

1 = v0, v1, . . . , vk = n

von Knoten so dass fur jedes i

entweder (vi, vi+1) eine Kante des Graphen die frei ist (auf keinem Pfad von f),

oder (vi+1, vi) eine Kante des Graphen, die unfrei ist,

ist.

Z.B. fur den Fluss oben links ist der Pfad

1,3,5,2,7,6,8

erweiternd. Es ist leicht einzusehen, dass der gegebene Fluss f wie folgt verbessertwerden kann: fur jede Kante (vi, vi+1) die frei ist, fuge sie zum Fluss hinzu undentferne alle Kanten des Flusses, die im umgekehrter Richtung auf dem Pfad liegen,aus dem Fluss. Und so gilt

Satz 1. (ohne Beweis) Ein Fluss ist maximal g.d.w. er keinen Pfad besitzt.

Daraus erfolgt ein effizienter Algorithmus fur MAXFLOW: starte mit dem leerenFluss (0 Pfaden). Gegeben einen Fluss f , mache eine systematische Suche nacheinem erweiterten Pfad: dies ist REACHABILITY angewendet auf den Graphen,in dem alle unfreien Kanten umgekehrt werden. Wenn keiner gefunden, halte.

Beispiel 3. BIPARTITE MATCHING. In diesem Problem suchen wir, gegebeneine Liste von Knaben K, Madchen M , und potentielle Paare R ⊆ K ×M die sichbilden lassen, ein matching, d.h., eine Liste von Paaren in R in der jeder Knabe undjedes Madchen genau einmal vorkommt. Wir fragen uns: gibt es ein matching?

Hier kommt ein wichtiger Begriff der Algorithmen-theorie: Reproduktion. Wir ha-ben einen effizienten Algorithmus fur BIPARTITE MATCHING indem wir dies aufMAXFLOW reduzieren: Sei G ein Graph mit Knoten K ∪M ∪ {1, n} und Kanten1 → x fur alle x ∈ K, y → n fur alle y ∈M und x → y fur alle (x, y) ∈ R. Dann be-kommen wir eine Eingabe fur MAXFLOW. Falls die Große des maximalen Flussesgleich der Anzahl der Knaben sowie der Anzahl der Madchen ist, ist die AntwortJA. Sonst NEIN.

Bemerkung 1. Bis jetzt haben wir uns nur mit Zeiteffizienz befasst: wie vieleSchritte braucht der Algorithmus (im schlimmsten Fall)? Eine andere Sicht ist diedes Speichers: wie viel Platz braucht der Algorithmus? Klar ist, dass polynomialeZeit polynomialen Speicherbedarf mit sich bringt: in einer Zeiteinheit schreiben wirnur konstante Anzahl von Symbolen, aber nicht umgekehrt!

Beispiel 4. TSP, travelling salesman problem. Gegeben n Stadte und die Zeit dij ,die die Reise von i nach j verlangt, sollen wir die kurzeste Route berechnen. DIeskann definiert werden als die zyklische Permutation p1, . . . , pn von 1, . . . , n fur diedie Zahl

dp1p2 + dp2p3 + . . . + dpn−1pn + dpnp1minimal ist. Ein brute force Algorithmus nimmt alle solche Permutationen undaddiert die Distanzen fur jede. Leider ist dies keine Polynomialzeit: wir brauchen

Page 135: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.1. BEISPIELE EFFIZIENTER ALGORITHMEN 131

(n − 1)! Permutationen zum Durchsuchen. Schon mit 40 Stadten ergibt dies mehrals 1045 Permutationen – so etwas kann kein Rechner jeder Zeit schaffen.

Bis heute existiert kein effizienter Algorithmus, der TSP genau lost (d.h., die kurzes-te Route immer findet). Und wir werden theoretische Ergebnisse sehen, die zeigen,dass auch in der Zukunft kein effizienter Algorithmus gefunden wird.

Merken wir aber, dass der brute force Algorithmus im linearen RaumO(n) durchfuhr-bar ist: wir brauchen uns nur die gegebenen Permutationen und den bisher mini-malen Wert zu merken.

Definition. O(t(n)) bezeichnet die Klasse aller Funktionen f(n), fur die es Kon-stanten n0 und C gibt, so dass

f(n) ≤ Ct(n) fur alle n ≥ n0.

Beispiel 5. 1. O(n) ist die Klasse aller linear aufsteigenden Funktionen. O(1)enthalt alle konstanten Funktionen.

2. Jedes quadratische Polynom gehort zur Klasse

O(n2).

In der Tat, fur

f(n) = a + bn + cn2 = ( an2

+ b

n+ c)n2

gilt: falls n ≥ max{a, b}, ist f(n)leq(2 + c)n2. Es genugt also, n0 = max{a, b}und C = 2 + c zu setzen.

3. Allgemeiner enthalt die KlasseO(nk)

alle Polynome des Grades k.

4. Die exponentielle Funktion 2n gehort nicht zu der Klasse O(nk), denn

limn→∞

2n

nk=∞.

bsp-2-faerb Beispiel 6 (2-FARBUNG). Wir wollen einen (ungerichteten) Graphen G mit zweiFarben, z.B. rot und blau, so farben, dass keine zwei benachbarten Knoten gleich-farbig sind. Es ist klar, dass das fur Graphen, die ein Dreieck enthalten, unmoglichist. Allgemeiner: fur einen Graphen mit einem Zyklus ungerader Lange existiertkeine solche Farbung.

In dem Fall, dass G keine Zyklen ungerader Lange hat, laßt sich ein einfacher Al-gorithmus wie folgt angeben: wir wahlen einen Knoten v und farben ihn rot. AlleNachbarn von v werden blau gefarbt – da G kein Dreieck enthalt, verursacht dieseFarbung keine Probleme. Dann werden alle Nachbarn der zuletzt gefarbten Knotenrot gefarbt - da G kein Dreieck und keinen Zyklus aus funf Kanten enthalt, verur-sacht auch dies keine Probleme. So wird fortgefahren, bis die ganze Komponentevon v (d.h., alle Knoten, die mit v durch einen ungerichteten Weg verbunden sind)gefarbt ist. Dann wahlen wir wieder einen beliebigen, noch nicht gefarbten, Knoten,der rot gefarbt wird, usw.

Zeitkomplexitat: Falls Graphen als Adjazenzlisten implementiert werden und diemengentheoretischen Operationen konstante Zeit erforden, hat dieser Algorithmuseine lineare Zeitkomplexitat O(n+k) (wobei n die Zahl aller Knoten und k die Zahlaller Kanten ist).

Page 136: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

132 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

In der Tat benotigt die Initialisierung die Zeit O(1). Die Farbung einer KomponenteK (die Zeilen 8.–23.), deren Zahl von Kanten k(K) ist, dauert O(k(K)), da jedeKante nur einmal durchsucht wird. Falls der Graph G genau r Komponenten hat,gilt k = k(K1)+⋅ ⋅ ⋅+k(Kr) und die r Durchgange der Schleife 6.–24. dauern O(n+k)Schritte.

Die Uberprufung, ob ROT oder BLAU eine Kante enthalten, benotigt auch dielineare Zeit O(n + k). Insgesamt wird der Algorithmus also in O(n + k) Schrittendurchgefuhrt.

Beispiel 7 (3-FARBUNG). Die analoge Aufgabe, einen gegebenen Graphen mitdrei Farben zu farben, ist viel schwieriger. Kein effizienter Algorithmus ist bekannt– und spater werden wir Grunde dafur kennenlernen, weshalb es unwahrscheinlichist, dass ein effizienter Algorithmus existiert.

Ineffizient konnen wir einfach alle moglichen Farbungen ausprobieren. Das ist be-stimmt ein Algorithmus – aber er brauchtO(3n) Schritte, da es 3n Farbungsmoglich-keiten gibt. Und das ist sehr aufwendig.

7.2 Komplexitatsklasse Psect-classP

Alle Probleme, die ein Rechner mit polynomialer Zeitkomplexitat losen kann, for-men die Klasse P. Genauer: ein Entscheidungsproblem gehort zu P, falls es einenAlgorithmus gibt, der fur jede Eingabe der Lange n in hochstens p(n) Zeiteinheitenentscheidet, ob die Antwort JA oder NEIN ist, wobei p(n) ein (gegebenes) Poly-nom ist. Es entsteht die Frage: welche Implementierung haben wir hier im Sinn? DieAntwort ist: die Klasse P ist von der Implementierung unabhangig. VerschiedeneImplementierungen konnen naturlich verschiedene Zeitkomplexitaten haben; d.h.,das Polynom p(n) wird fur jede Implementierung individuell gewahlt werden. Aberdie Existenz eines Polynomes ist unabhangig von der Implementierung. Das zeigenwir, indem wir Turingmaschinen als Implementierungsmodell nehmen und dannbeweisen, dass dieselbe Klasse P auch z.B. mit einem realen Rechner als Modellentsteht. Der Beweis fur andere Berechnungsmodelle folgt analog.

Definition. Wir sagen, dass eine deterministische TM eine Zeitkomplexitat t(n)hat, wobei t(n) eine Funktion aus der Menge N ist, falls die TM fur jede Eingabeder Lange n in hochstens t(n) Schritten halt.

kompl-bsp Beispiel 1. Die Sprache L ⊆ {0,1}∗ aller Worter, die keine zwei benachbartenEinsen enthalten, kann von der folgenden TM akzeptiert werden: M bleibt solangeim Initialzustand q0, wie sie Nullen liest, also (q0,0)→ (q0,R). Falls M eine 1 liest,geht sie in den Zustand q1 uber: (q0,1) → (q1,R). Falls nach der 1 gleich eine 0folgt, gehen wir zuruck zum Zustand q0, falls aber noch eine 1 gelesen wird, haltdie Maschine im (nichtfinalen) Zustand q1. Und falls das Blanksymbol gelesen wird,halt die Maschine im finalen Zustand qF . Hier ist eine vollstandige Beschreibungvon M :

M = ({q0, q1, qF },{0,1}, δ, q0, qF )

Page 137: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.2. KOMPLEXITATSKLASSE P 133

wobei δ durch die folgenden Ubergangsregeln bestimmt wird:

(q0,0)→ (q0,R)(q0,1)→ (q1,R)(q0,#)→ (qF ,#)(q1,0)→ (q0,R)(q1,#)→ (qF ,#)

Jede Eingabe der Lange n liest die TM von links nach rechts und halt spatestensbei dem Symbol # hinter dem Eingabewort, also nach hochstens n + 1 Schritten.Sie hat also die Zeitkomplexitat

t(n) = n + 1.

Bemerkung 1. 1. Im Kapitel 3 haben wir verschiedene Varianten von TM ein-gefuhrt (zum Beispiel mit zusatzlichem Gedachtnis, mit mehreren Bandern,usw.). Die Definition der Klasse P (s.u.) ist unabhangig davon, welche derVarianten als TM gemeint ist; das beweisen wir exakt im Abschnitt 7.4.

2. Zeitkomplexitat ist nicht eindeutig definiert (denn sie ist nur eine Abschatzungfur die Anzahl der Berechnungsschritte). Genau genommen ist jede Funktiont′(n) mit t′(n) ≥ n+1 fur alle n auch eine Zeitkomplexitat der TM aus Beispiel1.

Definition. Wir bezeichnen mitP

die Klasse aller formalen Sprachen, die von einer TM mit polynomialer Zeitkomple-xitat akzeptiert werden konnen. Genauer: eine Sprache L gehort zur Klasse P, fallses eine Turingmaschine M und ein Polynom p(n) gibt, so dass

L = L(M)

und M halt auf Eingaben der Lange n in hochstens p(n) Schritten.

Bemerkung 2. Erinnern wir uns daran, dass

Entscheidungsproblem ≡ formale Sprache.

Genau genommen mussen wir ein Entscheidungsproblem erst codieren (z.B. binar,mit Symbolen 0 und 1). Dann bezeichnet L ⊆ {0,1}∗ die Sprache aller Codierungender Eingaben, auf die die Entscheidung JA ist. Weiter nehmen wir immer an, dassdie Codierung von Problemen

”vernunftig“ ist.

Wenn namlich jemand freiwillig eine extrem lange Codierung der Eingabe benutzt,kann er auch ein kompliziertes Problem in linearer Zeit p(n) = n, wobei n die

”unvernunftige“ Codelange ist, losen. Die folgenden Regeln sind als

”vernunftig“

anzusehen:

1. Zahlen werden binar oder dezimal reprasentiert. (Nicht unar!)

2. Graphen werden durch Adjazenzmatrizen oder Adjazenzlisten dargestellt (sie-he Abschnitt 7.1).

3. Mengentheoretische Operationen (Insert, Delete, Vereinigung, Durchschnitt)werden so implementiert, dass ihre Ausfuhrung eine konstante Zahl von Zeit-einheiten dauert.

Page 138: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

134 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Beispiel 2 (2-COLORABILITY). Das Problem, ob ein Graph mit zwei Farbengefarbt werden kann, gehort zur Klasse P. In Abschnitt 7.1 haben wir dafur einenAlgorithmus mit linearer Zeitkomplexitat beschrieben. Es ist nicht kompliziert, denAlgorithmus mit einer TM zu implementieren und zu beweisen, dass diese TMpolynomiale Zeitkomplexitat hat.

Beispiel 3 (REACHABILITY). ist wie im Beispiel 1 von Abschnitt 6.1 gezeigt,ein Problem in P.

bsp-2-3-SAT Beispiel 4 (SAT, Erfullbarkeit boolescher Formeln). Analog zu der Situation der2-Farbung und 3-Farbung haben wir hier ein anderes wichtiges Beispiel der Pro-bleme, deren leichtere Variante zu P gehort und deren schwierige (wahrscheinlich)nicht. Es handelt sich um Boolesche Formeln uber den Variablen x1, . . . , xn. Dieeinfachsten Formeln sind die Variablen xi selbst und ihre Negationen ¬xi - dieseFormeln heißen Literale . Die komplizierteren Formeln werden mit Hilfe der ubli-chen logischen Operationen, z.B. Konjunktion ∧, Disjunktion ∨ und Implikation →erzeugt.

Jede Disjunktion von Literalen heißt Klausel .

Beispiele:x ∨ y ∨ ¬z und ¬x.

Jede Boolesche Formel phi hat eine konjunktive Normalform (KNF), d.h., φ =φ1 ∧ φ2 ∧ ⋅ ⋅ ⋅ ∧ φn ist eine Konjunktion der Klauseln φ1, . . . , φn. Z.B. hat die Formel

φ = (x→ y ∧ z) ∧ (¬x→ ¬z)

die folgende KNF: wir benutzen die Aquivalenz von

a→ b und ¬a ∨ b

und erhaltenφ = (¬x ∨ (y ∧ z)) ∧ (x ∨ ¬z)

Da ¬x ∨ (y ∧ z) aquivalent zu (¬x ∨ y) ∧ (¬x ∨ z) ist (de Morgansches Gesetz), gilt

φ = (¬x ∨ y) ∧ (¬x ∨ z) ∧ (x ∨ ¬z).

Das ist also eine Boolesche Formel, deren Klauseln je zwei Literale enthalten.

Eine Formel φ heißt erfullbar , falls die Variablen so mit true oder false belegtwerden konnen, dass φ den Wert true annimmt. Beispiel: die obige Formel isterfullbar, denn fur

x = true, y = true, z = true

gilt φ = true. Das Problem SAT fragt, ob eine Formel in KNF erfullbar ist.

Es ist kein effizienter Algorithmus bekannt, der fur jede Boolesche Formel unter-scheidet, ob sie erfullbar ist. Das Problem m-SAT ist: Gegeben, eine BoolescheFormel φ in konjunktiver Normalform, wobei jede Klausel m Literale enthalt, istφ erfullbar? Wir definieren die Große der Eingabe φ als n + k, wobei n die Anzahlaller Variablen und k die Anzahl aller Klauseln von φ ist.

2-SAT gehort zur Klasse P. Wir konnten hier einen effizienten Algorithmus angeben,aber einfacher ist es zu zeigen (in Abschnitt ??), dass es eine effiziente Reduktiondieses Problems auf ein anderes Problem der Klasse P gibt – daraus folgt dannindirekt, dass 2-SAT zur Klasse P gehort.

3-SAT ist dagegen schwierig: in Abschnitt 7.4 zeigen wir, dass dieses Problem NP-vollstandig ist, also genauso schwierig wie 3-FARBUNG.

Page 139: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.3. POLYNOMIALE REDUKTION 135

Es gibt aber ein entscheidbares Problem von dem bekannt ist, dass es nicht in Pliegt:

Satz 1. (ohne Beweis) Die Zeitkomplexitat von Pressburger Arithmetik ist doppeltexponential: fur jeden Algorithmus mit Zeitkomplexitat t(n) gibt es eine KonstanteK mit

t(n) ≥ 22Kn

7.3 Polynomiale Reduktionsec_poly_red

Es gibt Probleme, als Sprachen L0 ⊆ Σ∗, auf die sich viele andere Probleme schnellreduzieren lassen. Eine Reduktion vom Problem L ⊆ Γ∗ auf L0 ist eine Funktion f ,die alle Worter uber Γ in Worter uber Σ ubersetzt:

f ∶ Γ∗ → Σ∗

und fur jedes Wort w uber Γ erfullt:

w liegt in L g.d.w. f(w) in L0 liegt.

Dabei ist wichtig, dass die Reduktion in polynomialer Zeit stattfindet:

Definition. Eine Reduktion in polynomialer Zeit einer Sprache L ⊆ Γ∗ auf eineSprache L0 ⊆ Σ∗, in Symbolen

L ≤P L0

ist eine Funktion f ∶ Γ∗ → Σ∗ so dass

(a) ein Wort e ∈ Γ∗ in L liegt g.d.w. f(w) in L0 liegt.

(b) f ist in polynomialer Zeit berechenbar, d.h., es gibt keine TM, M , und einPolynom p(n) so dass auf jede Eingabe s1 . . . sn in Γ∗ berechnet M die Ausgabef(s1 . . . sn) in hochstens p(n) Schritten.

Bemerkung 1. Die Relation ≤p ist

(a) reflexiv: L ≤p L gilt mil hier f(n) = n

(b) transitiv: aus L1 ≤p L2 und L2 ≤p L3 folgt L1 ≤p L3.

In der Tat, wir haben, fur Li ⊆ Σ∗i (i = 1,2,3) Funktionen

f ∶ Σ∗1 → Σ∗

2 and g ∶ Σ∗2 → Σ∗

3

die in polynomialer Zeit berechenbar sind und

w ∈ L1 g.d.w. f(w) ∈ L2

undw ∈ L2 g.d.w. f(w) ∈ L3

erfullen. Die Verknupfungh(w) = g(f(w))

erfulltw ∈ L1 g.d.w. v = f(w) ∈ L2 g.d.w. h(w) = g(v) ∈ L3.

Page 140: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

136 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Also bleibt nur zu zeigen, dass h(x) in polynomialer Zeit berechnet wird. In der Tat:die Funktion f(n) wird durch eine TM M in polynomialer Zeit p(n) berechnet. Undg(n) wird druch eine TM M in polynomialer Zeit q(n) berechnet. Dann wird dieFunktion h(n) = g(f(n)) durch die folgende TM berechnet:

w // Mf(w) // M // g(f(w))

Fur Worter w der Lange n macht M hochstens p(n) Schritte und schreibt alsohochstens p(n) Symbole. Das Wort f(w) hat daher die Lange ≤ n + p(n). Danndauert die Berechnung von M hochstens q(n + p(n)) Schritte. Insgesamt brauchtdie obige TM hochstens

p(n) + q(n + p(n))

Schritte, und das ist ein Polynom.

Beispiel 1. Das Problem k-CLIQUE fragt, ob in einem Graphen G eine Cliquevon k Elementen (wobei jedes Paar von verschiedenen Knoten durch eine Kanteverbunden ist) existiert. Die konnen wir auf das Problem k-INDEPENDENT SETreduzieren: hier fragen wir, ob in einem Graphen G eine Menge der Große k existiert,in der kein Paar von Knoten durch eine Kante verbunden wird.

Die Reduktion f berechnet zu jedem Graphen

G = (V,E)

den ”komplementaren” Graphen

f(G) = (V, E)

wobei (x, y) eine Kante von E ist g.d.w. x ≠ y und (x, y) keine Kante von E ist. Esist klar, dass

(a) eine Menge von Knoten ist eine Clique von G g.d.w. sie unabhangig in f(G) ist

(b) die Berechnung von f(G) dauert nur eine lineare Zeit.

Deswegen

k-CLIQUE ≤p k-INDEPENDENT-SET

Bemerkung 2. Die Relation ≤p ist zwar reflexiv und transitiv, aber sie ist keinelineare Ordnung, weil sie nicht antisymmetrisch ist. Z.B. haben wir auch

k-INDEPENDENT-SET ≤p k-CLIQUE

wieder aufgrund der Berechnung des komplementaren Graphen.

bsp-starke-komp Beispiel 2 (STRONG COMPONENTS). Zwei Knoten eines gerichteten GraphenG konnen genau dann in beiden Richtungen durch einen gerichteten Weg verbundenwerden, wenn sie in einem Kreis des Graphen liegen. Wir sagen dann, dass die beidenKnoten in derselben starken Komponente liegen.

Genauer: eine starke Komponente von G ist eine maximale Menge von Knoten,die durch gerichtete Wege (in beiden Richtungen) miteinander verbunden werdenkonnen. Beispiel: der folgende Graph

Page 141: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.3. POLYNOMIALE REDUKTION 137

●b

●a ● c

●d ● e

●f

<<

""oo

�� uu ��

��"" ||

//oo

hat drei starke Komponenten: {a, b, c},{d, e} und {f}.

Aufgrund des Algorithmus aus Beispiel ?? in 7.1 konnen wir einen trivialen Al-gorithmus finden, der fur einen Graphen mit n Knoten und k Kanten in der ZeitO(n2(n + k)) die starken Komponenten aufzahlt: wir wahlen einen Knoten v undfragen fur jeden Knoten w, ob ein Weg von v zu w sowie ein Weg von w nach vfuhrt. Das braucht O(2(n + k)) = O(n + k) Schritte fur jeden Knoten w, also ins-gesamt O(n(n + k)) Schritte. Damit wird die starke Komponente von v in der ZeitO(n(n+k)) bestimmt. Außerdem gibt es hochstens n starke Komponenten, also istdie gesamte Komplexitat O(n2(n + k)).Der beruhmte Algorithmus von Tarjan berechnet die starken Komponenten in li-nearer Zeit O(n + k) berechnet. Diesen werden wir hier aber nicht vorfuhren.

bem-starke-komp-formen-graph Bemerkung 3. Starke Komponenten jedes Graphen G formen einen neuen gerich-teten Graphen G. Genauer, die Knoten von G sind die starken Komponenten v derKnoten v von G. Und fur zwei starke Komponenten v,w von G gilt:

(v,w) ist eine Kante von G genau dann, wenn v ≠ w und ein gerichteter Weg von vnach w fuhrt in G.

Zum Beispiel ergibt sich aus dem obigen Graphen G der folgende Graph

● {a, b, c}

● {d, e}

● {f}

��

����

Es ist klar, dass der neue Graph G azyklisch ist (denn jeder Kreis von G kann zueinem Kreis aus G erganzt werden, der dann mehrere starke Komponenten verbin-den wurde, das ist jedoch nicht moglich). Aufgrund von Beispiel ?? in 7.1 konnenalso die starken Komponenten jedes gerichteten Graphen so sortiert werden, dass

ord(v) ≤ ord(w) fur jede Kante (v,w) von G.

Beispiel 3 (2-SAT). Das Problem 2-SAT, siehe Beispiel 4 in 6.2 REF-TODO fragt:gegeben eine boolsche Formel in KNF, ϕ = ϕ1 ∧ . . . ∧ ϕn wobei ϕi Klauseln von 2Literalen sind, ist ϕ erfullt?

Wir zeigen, dass 2-SAT der Klasse P angehort, denn es hat eine polynomiale Re-produktion von STRONG COMPONENTS.

Fur jede Formel φ in konjunktiver Normalform mit 2 Literalen je Klausel konstru-ieren wir einen gerichteten Graphen Gφ wie folgt:

Knoten: fur jede Variable x von φ hat Gφ zwei Knoten, markiert mit x und ¬x.

Kanten: fur jede Klausel α ∨ β von φ gibt es zwei Kanten in G:

●¬α ●β

und ●¬β

●α// //

Page 142: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

138 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Beispiel: fur die Formel

φ = (x ∨ y) ∧ (¬x ∨ z) ∧ (¬z ∨ ¬y)

haben wir den Graphen

●x

●y

��

●z

��●¬x

??

●¬y

__

● ¬zaa

Diese Konstruktion ist eine Reduktion in polynomialer Zeit, denn es gilt

1. φ ist erfullbar genau dann, wenn x und ¬x in verschiedenen starken Kompo-nenten von G liegen (fur jede Variable x), und

2. die Funktion f , die jeder Formel φ den Graphen Gφ zuordnet, hat eine lineareZeitkomplexitat.

Es ist klar, dass (2) gilt: falls φ eine Formel der Große n (= Anzahl aller Variablen+ Anzahl aller Klauseln) ist, benotigt die Konstruktion von Gφ die Zeit O(n). Wirbeweisen (1).

a) Sei φ erfullbar. Wir haben also eine Belegung der Variablen, so dass jede Klauselvon φ den Wert true hat (d.h., fur jede Klausel α∨β gilt α = true oder β = true).Es folgt, dass von einem true Knoten in Gφ keine Kante zu einem false Knotenfuhrt. (Fur die Kante ¬α → β gilt, falls ¬α = true, dass β = true sein muss,denn α ∨ β ist eine Klausel von φ; analoges gilt fur ¬β → α.) Falls die Variablex den Wert true hat, fuhrt in Gφ also kein Weg zu ¬x; falls x = false ist, fuhrtkein Weg von ¬x zu x. In beiden Fallen liegen x und ¬x in verschiedenen starkenKomponenten.

b) Seien x und ¬x immer in verschiedenen starken Komponenten. Wir erinnern andie obige Bemerkung 3: die starken Komponenten v der Knoten v des GraphenGφ konnen so sortiert werden, dass fur jede Kante v → w von G ord(v) ≤ ord(w)gilt. Wir belegen die Variablen wie folgt:

x = true genau dann, wenn ord(¬x) < ord(x)

(d.h., x hat genau dann den Wert true, wenn die starke Komponente von ¬xvor der starken Komponente von x liegt). Wir mussen beweisen, dass fur jedeKlausel α ∨ β entweder α = true oder β = true gilt (denn dann gilt φ = true).

Nehmen wir an, dass α = false, d.h.,

ord(α) ≤ ord(¬α),

dann beweisen wir β = true. Da Gφ die Kante ¬α → β enthalt, gilt ord(¬α) ≤ord(β) und da er auch die Kante ¬β → α enthalt, gilt ord(¬β) ≤ ord(α). Also

ord(¬β) ≤ ord(α) ≤ ord(¬α) ≤ ord(β).

Damit ist bewiesen, dassord(¬β) < ord(β)

(denn die Komponenten ¬β und β sind wohl verschieden), also β = true.

Page 143: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.4. ROBUSTHEIT DER KLASSE P 139

Konkrete Beispiele: Die Formel oben ist erfullbar, denn die starken Komponentendes Graphen Gφ sind

{x, z,¬y} und {¬x, y,¬z}.

Die Formel(y ∨ x) ∧ (¬y ∨ z) ∧ (¬z ∨ x) ∧ (¬x ∨ ¬t) ∧ (t ∨ ¬x)

ist nicht erfullbar, denn der entsprechende Graph

●x��

**

●y // ●zvv ●t

tt●¬x 66

??

●¬y

__

● ¬zoo ● ¬tWW

hat eine einzige starke Komponente.

7.4 Robustheit der Klasse Psect-p-robust

Die Definition der Klasse P war auf dem Modell von TM aufgebaut. Sie ist aber vondiesem Modell unabhangig, wie wir jetzt demonstrieren werden. Zuerst zeigen wir,dass, falls verschiedene Modifikationen von TM benutzt worden waren, die KlasseP dieselbe geblieben ware. Die Zeitkomplexitat ist fur k-Band-TM genau wie obenfur TM definiert.

7.4.1 TM mit zusatzlichem Gedachtnis

Erinnern wir daran, dass eine TM mit zusatzlichem Gedachtnis die Moglichkeiteines Zugriffs auf ein Gedachtnis hat, in dem Symbole eines endlichen AlphabetsA gespeichert werden, siehe 3.2.2. Dies ist allerdings eine

”normale“ TM mit der

Zustandsmenge Q ×A. Fur die Definition der Klasse P ist es also unerheblich, obwir TM oder TM mit zusatzlichem Gedachtnis als Berechnungsmodell anwenden.

7.4.2 TM mit mehrspurigem Band

Auch dieses Modell andert die Klasse P nicht, denn wie in 3.2.3 gezeigt wurde, isteine TM mit k-spurigem Band eine

”normale“ TM mit dem Bandalphabet

Σ = (Σ1 ∪ {#}) × ⋅ ⋅ ⋅ × (Σk ∪ {#}) − {(#, . . . ,#)}.

7.4.3 Mehr-Band TM

In 3.2.4 haben wir das Modell einer k-Band-TM eingefuhrt: die TM hat k Bandermit k unabhangigen Lese- und Schreibkopfen, aber mit einer Steuereinheit, dieaufgrund des gegebenen Zustandes und der k gelesenen Symbole die Aktivitat derk Kopfe steuert. Wir haben in 3.2.4 bewiesen, dass jede k-Band-TM durch eine TMsimuliert werden kann. Jetzt beweisen wir, dass dies in polynomialer Zeit moglichist:

Page 144: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

140 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

satz-k-band-sim-quad Satz 1. Jede k-Band-TM mit einer Zeitkomplexitat t(n) ≥ n kann durch eine 1-Band-TM mit einer Zeitkomplexitat O(t(n)2) simuliert werden.

Beweis. Wir fuhren den Beweis fur k = 2 durch, der allgemeine Fall laßt sich ganzanalog durchfuhren. Wir gehen von der Simulation, die in Kapitel 3 (siehe 3.2.2)beschrieben wurde, aus. Jeder Berechnungsschritt der Simulation hat drei Unterab-schnitte. Abschnitt 1 (der Anfang) dauert einen Schritt, Abschnitt 2 (Kopfbewegungnach rechts oder links) benotigt hochstens O(t(n)) Schritte, denn der Kopf wirdunter das nachste Symbol ⇑ bewegt und in der Zeit t(n) kann die k-Band-TM aufjedem Band hochstens O(t(n)) neue Felder beschreiben. Im Abschnitt 3 wird dieBerechnung von Kopf i simuliert (in konstanter Zeit fur i = 1,2) und der Kopfwird zwischen die beiden Symbole ⇑ (in O(t(n)) Schritten bewegt. Jeder Simu-lationsdurchgang dauert also hochstens O(t(n)) Schritte. Da wir hochstens t(n)Durchgange benotigen, hat die 1-Band-TM die Zeitkomplexitat O(t(n)2).

Korollar 1. Jede Sprache, die von einer k-Band-TM mit polynomialer Zeitkom-plexitat akzeptiert wird, gehort zur Klasse P.

Beweis. Falls t(n) ein Polynom ist, ist auch t(n)2 ein Polynom.

Bemerkung 1. Mit anderen Worten wurde die Klasse P die gleiche bleiben, fallswir bei der Definition von P anstelle der TM die k-Band-TM benutzt hatten. Das-selbe gilt auch fur reale Rechner: die Probleme, die sie in polynomialer Zeit losenkonnen, sind genau die der Klasse P.

7.5 Komplexitatsklasse NPsect-classNP

Probleme, die grundsatzlich schwieriger zu losen sind als die der Klasse P, die sichaber trotzdem in polynomialer Zeit von einer nichtdeterministischen TM losen las-sen, formen die Komplexitatsklasse NP. Intuitiv kann man NP wie folgt erklaren:falls ein Entscheidungsproblem die Eigenschaft hat, dass man in polynomialer Zeituberprufen kann, ob eine

”angebotene“ Losung wirklich die Aufgabe lost, gehort

das Problem zu NP. Bevor wir NP formal definieren, zeigen wir diese intuitiveErklarung an einem Beispiel.

bsp-zerlegbarkeit Beispiel 1 (ZERLEGBARKEIT). Wir sollen entscheiden, ob fur eine Zahl n (Ein-gabe) eine Zerlegung in ein Produkt n = pq zweier kleinerer Zahlen existiert. Obwohldas ein Problem ist, dass in der Mathematik seit tausenden von Jahren behandeltwurde, gibt es keinen effizienten Algorithmus dafur. Wir wissen also nicht, ob ZER-LEGBARKEIT zu P gehort. Aber dieses Problem gehort offensichtlich zu NP:falls uns jemand Zahlen p und q nennt, konnen wir effizient uberprufen, ob sie eineLosung bilden, d.h., ob das Produkt pq der Eingabe gleicht.

Das letzte kann mit einer nichtdeterministischen TM wie folgt gelost werden: Band 1ist das Eingabeband. Auf Band 2 wird nichtdeterministisch eine Zahl p geschriebenund auf Band 3 nichtdeterministisch eine Zahl q. Die NTM multipliziert p mit q undvergleicht pq mit Band 1: falls pq auf Band 1 steht, halt die NTM und akzeptiert,falls nicht, halt sie und akzeptiert nicht. Fur jede Zahl n, die zerlegbar ist, gibt eseine Berechnung, die n in linearer Zeit akzeptiert.

Definition. Wir sagen, dass eine nichtdeterministische Turingmaschine M dieZeitkomplexitat p(n) hat, falls es fur jede Eingabe der Lange n, die M akzep-tiert, eine akzeptierende Berechnung gibt, die hochstens p(n) Berechnungsschrittebenotigt.

MitNP bezeichnen wir die Klasse aller Sprachen (oder Entscheidungsprobleme), dievon einer NTM mit polynomialer Zeitkomplexitat akzeptiert (oder gelost) werden

Page 145: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.5. KOMPLEXITATSKLASSE NP 141

konnen. Genauer: eine Sprache L gehort zu NP, falls es eine NTM und ein Polynomp(n) gibt, so dass die NTM die Zeitkomplexitat p(n) hat und L akzeptiert.

bsp-np Beispiel 2. 1. Jedes Problem der Klasse P gehort zu NP.

2. ZERLEGBARKEIT ist ein Problem der Klasse NP; es ist nicht bekannt, obes zur Klasse P gehort.

3. ERFULLBARKEIT (siehe Beispiel 4 in 7.2) ist ein Problem der Klasse NP:bsp-np-SATfur jede Boolesche Formel f(x1, . . . , xn) und jede

”potentielle Losung“, d.h.

jede (beliebig berechnete) Belegung aller Variablen x1, . . . , xn, konnen wireffizient entscheiden, ob der Wert von f true oder false ist. Es ist einfach,eine NTM mit polynomialer Zeitkomplexitat zu konstruieren, die das ProblemERFULLBARKEIT lost: Band 1 ist ein Eingabeband, auf dem ein Code derFormel f(x1, . . . , xn) gespeichert wird. Auf Band 2 erzeugt die NTM nichtde-terministisch n Werte 0 oder 1. Dann berechnet sie den Wert von f mit diesenn Variablenwerten (mit 1 = true und 0 = false).

4. TRAVELING SALESMAN PROBLEM (TSP) ist ein Problem der Klassebsp-np-TSPNP mit großer praktischer Relevanz. Die Eingabe ist eine Liste S1, . . . , Snvon Stadten und eine Matrix von Zahlen

d(i, j) ≥ 0 fur i, j = 1, . . . , n

die die Distanz von Si zu Sj reprasentieren (oder die Kosten der Reise vonSi nach Sj). Die Aufgabe ist, zu entscheiden, ob alle Stadte besucht werdenkonnen, ohne dass die gesamten Kosten eine gegebene Zahl k uberschreiten.Das heißt: die Eingabe besteht aus Zahlen k und dij fur i, j = 1, . . . , n. DieLosung ist eine Rundfahrt, d.h. eine Permutation (i1, i2, . . . , in) der Zahlen1, . . . , n, so dass

eq-tsp-defeq-tsp-def (∗) d(i1, i2) + d(i2, i3) + ⋅ ⋅ ⋅ + d(in−1, in) + d(in, i1) ≤ k.

Auch fur dieses Problem gibt es keinen effizienten Algorithmus. Aber dasProblem gehort sicher zu NP: falls eine Permutation gegeben wird, benotigtdie Uberprufung der Ungleichung (∗) nur lineare Zeit.

Satz 1. Jede NTM mit der Zeitkomplexitat p(n) kann von einer TM mit der Zeit-komplexitat

O(Kp(n)) wobei K eine Konstante ist

simuliert werden.

Beweis. Im Beweis des Satzes 1 in 3.3 haben wir eine Simulation einer nichtdetermi-nistischen Turingmaschine M durch eine deterministische 3-Band TuringmaschineM gezeigt. Wir beweisen, dass M die Zeitkomplexitat O(r2p(n)) fur eine Konstanter hat, falls M die Zeitkomplexitat p(n) hat. Danach simulieren wir M mit einer(1-Band) TM, deren Komplexitat O(n2 + (r2p(n))2) ist, siehe Satz 1 in 7.4. Da(r2p(n))2 = r4p(n), setzen wir K = r4: die Funktion n2 + r4p(n) gehort zu O(Kp(n)).Sei, wie im Beweis des Satzes 1 in 3.3, eine Numerierung der Ubergange (q, s) →(qi, si) fur i = 1, . . . , r gegeben. Fur jede Eingabe der Lange n brauchen wir nur dieersten p(n) Berechnungsschritte der Maschine M zu simulieren. Die Maschine Merzeugt systematisch alle Listen aus Zahlen

i1i2 . . . ik mit k ≤ p(n) (und 1 ≤ is ≤ r fur s = 1, . . . , k)

auf Band 2 – die Anzahl dieser Listen ist

r + r2 + r3 + ⋅ ⋅ ⋅ + rp(n) ∈ O(rp(n)).

Page 146: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

142 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Fur jede Liste wird M (in k ≤ p(n) Schritten) simuliert, also dauert die ganze Simu-lation einer Eingabe hochstens O(p(n)rp(n)) Schritte. Es gilt p(n)rp(n) ∈ O(r2p(n)).Korollar 1. Jedes Problem der Klasse NP kann von einem Algorithmus mit ex-ponentieller Zeitkomplexitat

Kp(n) K – Konstante, p(n) – Polynom

gelost werden.

Bemerkung 1. Die Idee, dass eine Sprache L genau dann zu NP gehort, wennangebotene Losungen in polynomialer Zeit uberpruft werden konnen, laßt sich sichdurch den Begriff Zertifikat formalisieren. Z.B. ist fur 3-FARBUNG ein Zertifikateines ungeordneten Graphen eine Farbung (korrekt oder nicht) seiner Knoten mitdrei Farben. Wir formen die Sprache Lcheck aller Worter wz, wobei w ein Codeeines Graphen ist und z ein Code seines Zertifikates, das korrekt ist. Diese Sprachegehort der Klasse P an, denn fur jeden Graphen und jede Farbung ist die Korrekt-heit effizient uberprufbar. Wichtig ist hier, dass die angebotenen Losungen nicht

”komplizierter“ zu codieren sind als die Eingaben selbst. Genauer: fur die Worterwz (w – Eingabe, z - Zertifikat) nehmen wir an, dass die Lange ∣z∣ des Wortes zdurch p(∣w∣), wobei p(n) ein Polynom ist, begrenzt werden kann:

Definition. Fur eine Sprache L ⊆ Σ∗ heißt eine Sprache Lcheck eine Zertifikaten-sprache , falls

1. Lcheck in P liegt und

2. es gibt ein Polynom p(n), so dass fur jedes Wort w uber Σ der Lange n gilt:

w ∈ L ⇐⇒ wz ∈ Lcheck fur irgendein Wort z der Lange ≤ p(n).Satz 2. Eine Sprache gehort genau dann zur Klasse NP, wenn sie eine Zertifika-tensprache hat.

Beweis. 1. Gegeben eine Zertifikatensprache Lcheck ⊆ Γ∗ fur L ⊆ Σ∗, wir bewei-sen, dass L ∈ NP.

Sei M eine Turingmaschine mit polynomialer Zeitkomplexitat q(n), die Lcheck

akzeptiert. Dann haben wir die folgende nichtdeterministische TuringmaschineM∗, die L akzeptiert:

Band 1Eingabeband

w1 w2 wn

Band 2Erzeugung von z

z1 z2 zk fur k ≤ p(n)

Band 3Simulation von M

w1 w2 wn z1 z2 zk

. . .

. . .

. . . . . .

Auf Band 1 steht die Eigabe w der Lange n. Auf Band 2 wird nichtdeterminis-tisch ein Wort z der Lange k ≤ p(n) geschrieben. Hier ist p(n) das Polynom,dass die Lange der Zertifikate abgleicht. Dann werden w und danach z aufBand 3 kopiert, und die Maschine M wird simuliert; falls M halt und akzep-tiert, halt auch M∗ und akzeptiert. Es folgt also, dass M∗ genau die Worterw akzeptiert, fur die es ein Wort z der Lange ≤ p(n) mit wz ∈ Lcheck gibt –also akzeptiert M∗ die Sprache L. Die Erzeugung von z dauert 2k ∈ O(p(n))Schritte und die Simulation von M dauert q(n+k) ∈ O(q(p(n))) Schritte, alsohat M∗ eine polynomiale Zeitkomplexitat.

Page 147: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.6. NP-VOLLSTANDIGKEIT 143

2. Fur jede Sprache L ⊆ Σ∗ der Klasse NP konstruieren wir eine Zertifikaten-sprache. Wir haben eine nichtdeterministische Turingmaschine M mit poly-nomialer Zeitkomplexitat p(n), die L akzeptiert. Fur den Grad r des Nicht-determinismus haben wir im Beweis von Satz 1 gesehen, wie zu jedem akzep-tierten Wort w = w1 . . .wn der Lange n ein Wort i1 . . . ik uber {1, . . . , r} derLange k ≤ p(n) zugeordnet wird, das eine akzeptierende Berechnung von wbeschreibt. Sei Lcheck die Sprache uber Σ ∪ {1, . . . , r} aller Worter

w1 . . .wn$i1 . . . ik

wobei w1 . . .wn ein WOrt in L ist und i1 . . . ik eine akzeptierende Berechnungvon w der NTM M , k ≤ p(n). Dann gilt: wenn w ∈ L gibt es z = i1 . . . ik mitwz ∈ Lcheck. Umgekehrt, wenn wz ∈ Lcheck, gilt w ∈ L.++Wir konstruiereneine 2-Band TM, M , die Lcheck akzeptiert:

B1 w1 . . .wn$i1 . . . ik

B2 M deterministisch simuliert

Auf B1 steht eine Eingabe. Wenn sie die Form w$i1, . . . ik mit i1, . . . , ik in{1, . . . , n}∗ nicht hat, akzeptiert M nicht. Wenn die Eingabe w$i1 . . . ik ist,simuliert M auf B2 die NTM mit Eingabe w deterministisch fur k Schnitteund akzeptiert g.d.w. M das Wort w akzeptiert. Fur Eingaben der Langem = n + 1 + k = O(p(n)) braucht M nur n Schritte, um w auf B2 zu kopieren,und k ≤ p(n) Schritte fur die Simulation. Deswegen liegt Lcheck in P.

7.6 NP-Vollstandigkeit

Wir haben oben erwahnt, dass kein effizienter Algorithmus fur Probleme wie ZER-LEGBARKEIT oder TSP bekannt ist. Mit anderen Worten ist es nicht bekannt, obdiese Probleme in der Klasse P liegen. Eigentlich ist auch die folgende allgemeineFrage bisher unbeantwortet:

Offenes Problem: Gilt P = NP?

Trotz intensiver Bemuhungen vieler Wissenschaftler und trotz vieler Nebenergeb-nisse zu diesem Thema ist die Antwort noch nicht bekannt. Es gibt aber Probleme,die in der Klasse NP eine besondere Stellung haben: wenn man fur eines dieserProbleme feststellen wurde, dass es zu P gehore, so wurde jedes Problem der Klas-se NP zu P gehoren – also ware die Antwort auf die obige Frage positiv. SolcheProbleme (zu denen z.B. TSP gehort) heißen NP-vollstandig. Erinnern wir uns anden Begriff der Reduktion in polynomialer Zeit (??):

Definition. Eine Sprache L heißt NP-hart, falls es fur jede Sprache L′ der KlasseNP eine Reduktion auf L in polynomialer Zeit gibt, oder kurzer:

L′ ∈ NP Ô⇒ L′ ≤p L.

Eine Sprache, die NP-hart ist und zu NP gehort, heißt NP-vollstandig .

Satz 1. Falls eine NP-harte Sprache in P liegt, gilt P = NP.

Beweis. Sei L eine NP-harte Sprache in P. Fur jede Sprache L′ in NP gibt eseine Reduktion auf L in polynomialer Zeit. Aus L ∈ P folgt also L′ ∈ P (Satz 1 in??). Damit ist P = NP bewiesen.

Page 148: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

144 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Satz 2 (von Cook und Levin.). ERFULLBARKEIT ist NP-vollstandig.

Beweis. 1. ERFULLBARKEIT ist ein Problem der Klasse NP: siehe Beispiel 2Nr. 3 in Abschnitt 7.5.

2. Fur jede Sprache L in NP zeigen wir, dass L auf ERFULLBARKEIT in polyno-mialer Zeit reduzierbar ist. Wir haben eine Turingmaschine M mit polynomialerZeitkomplexitat nk, die L akzeptiert. Wir konnen fur M , ohne Beschrankung derAllgemeinheit, das folgende annehmen:

(a) Die Zustande von M sind wie folgt durchnumeriert:

q0 (initial), q1 (final), q2, . . . , qm.

Der finale Zustand q1 ist ein Haltezustand.

(b) Die Bandsymbole von M sind s1, . . . , sl und wir setzen s0def= #.

(c) Die Zellen des Bandes sind mit ganzen Zahlen durchnumeriert. Die Eingabesteht in den Zellen 1, . . . , n.

si1 si2 . . . sin

−2 −1 0 1 2 n n+1 n+2 n+3Zelle Nr.:

⇑q0

Initialkonfiguration

. . . . . . . . .# # # # # #

(d) Jede Berechnung dauert genau p(n) Zeiteinheiten. Fur kurzere Berechnungenbleibt unsere TM im letzten Zustand bis Zeit t = p(n).

Bemerkung 1. In der Zeit p(n) kann die TM hochstens p(n) Felder beschriften,also genugt es, die Bandzellen Nr. −p(n),−p(n)+1, . . . ,0,1, . . . , p(n) zu betrachten.

Die Reduktion der Sprache L auf ERFULLBARKEIT bedeutet, dass fur jedes Wortw uber Σ eine Boolesche Formel φw in KNF konstruiert wird, so dass

φw ist erfullbar ⇐⇒ w ∈ L

und dass die Konstruktion in polynomialer Zeit durchgefuhrt wird. Die Aussagew ∈ L bedeutet, dass es eine Berechnung des Wortes w durch M gibt, die im Zu-stand q1 halt. Eine solche Berechnung konnen wir durch eine Formel φw eindeutigbeschreiben, wenn wir die folgenden Booleschen Variablen einfuhren:

NAME BEDEUTUNG: ist true belegt genau dann, wenn UMFANGqti Zur Zeit t hat M den Zustand qi. t = 0, . . . , p(n)

i = 0, . . . ,mktr Zur Zeit t steht der Kopf im Feld r t = 0, . . . , p(n)

r = −p(n), . . . , p(n)stj,r Zur Zeit t steht im Feld r das Symbol sj t = 0, . . . , p(n)

j = 0, . . . , kr = −p(n), . . . , p(n)

Wir sind bereit jedem Eingabewort

w = si1si2 . . . sin

Page 149: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.6. NP-VOLLSTANDIGKEIT 145

eine boolsche Formel f(w) zuzuordnen so dass m von der TM akzeptiert wird,g.d.w. f(w) erfullbar ist.

Diese Formel ist eine Konjunktion

f(w) = ϕstart ∧ ϕaccept ∧all ∧ϕmove

von 4 Formeln sein:Formel ϕstart beschreibt den Zustand am Anfang:

si1 si2 . . . sin

. . . −1 0 1 2 . . . n n+1 . . .

⇑q0

. . .

Sie besagt, dass zur zeit t = 0 ist

q00 Zustand q0

k01 Kopfposition r = 1s0i11, . . . , s

0inn

die Eingabe in Zellen 1, . . . , nsowie

s00,r fur alle r ≠ i1, . . . , in.

Deswegen ist ϕstart die folgende Konjunktion

ϕstart = q00 ∧ k1

0 ∧n

⋀l=1

s0il,l

∧p(n)⋀

r=−p(n),r≠1,...,n

s00,r

Diese Formel hat Lange O(p(n)).

Formel ϕaccept beschreibt die Tatsache, dass die Berechnung in Zeit p(n) akzeptiert,

d.h. den akzeptierenden Zustand q1 erreicht: ϕaccept = wp(n)1 .

Formel ϕall beschreibt, dass das Band sich so benimmt, wie wir erwarten: zu jederzeit t gibt es in jeder Zelle r ein Symbol s0, . . . , sn: dies ist die Konjunktion allerstj,r. Und nie finden wir zwei verschiedene Symbole in einer Zelle: /st j, r ∨ stj′,r furalle t, r, j und j′ ≠ j. Analog mit Kopfposition und Zustanden: zu jeder Zeit t genaueine vorhanden. Dies ergibt eine große Konjunktion ϕ von kleinen Formeln. Da wirbeliebige Indizes t und r (beide in O(p(n))) nehmen mussen, sowie alle j und j′,die aber nur von 0 bis k, d.h., unabhangig von n, laufen, ist $tape eine Formel derLange O(p(n2)).Formel ϕmove Diese Formel beschreibt, dass sich der Kopf zu jeder Zeit t nach einer

der Ubergangsregeln bewegt. Da in jedem Takt t nur 3 Zellen beinflusst werdenkonnen und nur Zeiten t und t + 1 eine Rolle Spielen, lasst sich ϕmove als eineFormel der Lange O(p(n2)) schreiben. Wir verzichten auf die Details, die kann derLeser z.B. im Buch M.Sipser ”Introductions to the theory of computation” (CowrseTechnology, Boston USA, 2006) finden

Satz 3. Fur jedes Wort w der Lange n wird die Formel

f(w) = ϕstart ∧ ϕacept ∧ ϕall ∧ ϕmove

in Zeit O(p(n)2) geschrieben und sie ist genau dann erfullbar wenn w in L(M)liegt.

Page 150: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

146 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Wenn w von der TM akzeptiert wird, wahlen wir eine akzeptierende Berechnung derLange i ≤ p(n). Daraus ergibt sich fur uns eine Belegung aller Variablen: gti =truewenn in der gegebenen Berechnung der Zustand in Zeit t gleicht qi, analog fur ktrund stj,r. Es ist klar, dass da die Berechnung

Beweis. Da die Formel Lange O(p(n2)) hat und wir sie direkt, Schritt fur Schritt,aus der Eingabe (fur ϕstart) und der Ubergangstabelle von M (fur ϕmove ablesenkonnen, brauchen wir nur Zeit O(p(n)2).Wenn w von der TM akzeptiert wird, wahlen wir eine akzeptierende Berechnungder Lange i ≤ p(n). Dies ergibt eine Belegung aller Variablen: gti = true wenn in dergegebenen Berechnung der Zustand in Zeit t dem von qi gleicht, analog fur kte undstj,r. Es ist klar, dass da die Berechnung akzeptierend ist, sind alle Konjunktionenvon ϕw wahr, deswegen ist ϕw wahr.

Wenn w erfullbar ist, wird w akzeptiert. in der Tat, fur die gegebene Belegung derVariablen, da ϕall = true, beschreiben die true Variablen immer eine real exis-tierende Berechnung. Dann bedeutet ϕstart = true, dass die Berechnung mit demEingabewort w anfangt. Und aus ϕaccept = true ergibt sich, dass diese Berechnungw akzeptiert.

Bemerkung 2. Im Kontrast, fur die disjunktive Normalform (DNF) ist die Erfull-barkeit in linearer Zeit entscheidbar: die Formel

ϕ = ϕ1 ∨ ϕ2 ∨ . . . ∨ ϕn

ist erfullbar g.d.w. ϕi erfullbar ist fur ein i = 1, . . . ,{∣}. Wenn §ϕi Konjunktion vonLiteralen ist, ist ϕi erfullbar g.d.w. sie nicht x sowie ¬x enthalt. Dann belegen wirdie Variablen wie folgt:

α(x) =⎧⎪⎪⎨⎪⎪⎩

true wenn x in ϕ liegt

false sonst.

Warum arbeiten wir dann mit KNF und nicht mit DNF? Weil DNF exponentiellgroßer sein kann:

Beispiel 1. Die Formel

ϕn = (x1 ∨ y1) ∧ (x2 ∨ y2) ∧ . . . ∧ (xn ∨ yn)

die eine KNF der Lange O(n) ist, hat eine DNF langer als 2n: es ist die Disjunktionaller 2n Formeln

◻1 ∧ ◻2 ∧ . . . ∧ ◻nwobei ◻ fur x oder y steht (beliebig kombiniert). Z.B.

ϕ2 = (x1 ∨ y1) ∧ (x2 ∨ y2) ≡ (x1 ∧ x2) ∨ (x1 ∧ y2) ∨ (x2 ∧ y1) ∨ (x2 ∧ y2)

undϕ3 = (x1 ∨ y1) ∧ (x2 ∨ y2) ∧ (x3 ∨ y3)

≡ (x1 ∧ x2 ∧ x3) ∨ (x1 ∧ x2 ∧ y3) ∨ (x1 ∧ y2 ∧ x3) ∨ (x1 ∧ y2 ∧ y3)∨ (y1 ∧ x2 ∧ x3) ∨ (y1 ∧ x2 ∧ y3) ∨ (y1 ∧ y2 ∧ x3) ∨ (y1 ∧ y2 ∧ y3)

7.7 Weitere NP-vollstandige Probleme

Satz 1. Sei L eine NP-vollstandige Sprache. Dann ist jede Sprache in NP, aufdie L in polynomialer Zeit reduziert werden kann, auch NP-vollstandig.

Page 151: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.7. WEITERE NP-VOLLSTANDIGE PROBLEME 147

Beweis. Sei L0 ⊆ Γ∗ eine Sprache der Klasse NP, und sei f ∶ Σ∗ → Γ∗ eineReduktion von L ⊆ Σ∗ auf L0 in polynomialer Zeit. Wir beweisen, dass L0 NP-vollstandig ist.

Fur jede Sprache L′ ⊆ (Σ′)∗ der Klasse NP gibt es eine Reduktion g ∶ (Σ′)∗ → Σ∗

von L′ nach L in polynomialer Zeit. Es genugt zu zeigen, dass die zusammengesetzteAbbildung f(g(x)) von (Σ′)∗ nach Γ∗ eine Reduktion in polynomialer Zeit von L′

nach L0 ist. Damit ist die NP-Vollstandigkeit von L0 bewiesen.

Fur jedes Wort x uber Σ gilt

x ∈ L′ ⇐⇒ g(x) ∈ L ⇐⇒ f(g(x)) ∈ L0,

also mussen wir nur zeigen, dass f(g(x)) eine Funktion der Klasse FP ist. Sei Meine TM, die f berechnet und die polynomiale Zeitkomplexitat p(n) hat, und seiM eine TM, die g berechnet und die polynomiale Zeitkomplexitat q(n) hat. Dannhaben wir eine 2-Band Maschine M∗, die auf Band 1 die Maschine M simuliert(in q(n) Schritten) und das Ergebnis auf Band 2 kopiert, wo sie die Maschine Msimuliert (in p(q(n)) Schritten). Das Ergebnis von M∗ auf Band 2 ist das Wortf(g(x)), das in O(p(q(n))) Schritten berechnet wurde.

Beispiel 1 (3-SAT). Wir wissen, dass 2-SAT zu P gehort, siehe Beispiel 3 imAbschnitt 7.3. Trotzdem ist 3-SAT, d.h., das Problem der Erfullbarkeit fur Formeln,die in KNF hochstens drei Literale je Klausel enthalten, NP-vollstandig:

1. 3-SAT gehort zu NP – klar.

2. Fur SAT existiert eine Reduktion in polynomialer Zeit auf 3-SAT:

In der Tat kann jede Klausel aus vier Literalen

a1 ∨ a2 ∨ a3 ∨ a4

mit zwei Klauseln aus je drei Literalen

(a1 ∨ a2 ∨ b) ∧ (¬b ∨ a3 ∨ a4)

ersetzt werden. Es ist klar, dass a1 ∨ a2 ∨ a3 ∨ a4 genau dann erfullt ist, wenn dieletzte Formel mit b = true oder b = false erfullt. Analog wird

a1 ∨ a2 ∨ a3 ∨ a4 ∨ a5

mit drei Klauseln ersetzt:

(a1 ∨ a2 ∨ b) ∧ (¬b ∨ a3 ∨ c) ∧ (¬c ∨ a4 ∨ a5)

usw. Diese Ubersetzung dauert lineare Zeit O(n), denn fur jede Klausel der Langen benotigen wir n − 2 Klauseln der Lange 3.

Beispiel 2 (INDEPENDENT SET). Eine Menge von Knoten eines Graphen istabhangig wenn sie keine kanten enthalt. Das Problem INDEPENDENT SET hat

Eingabe: Graph G und zahl k

Ausgabe: JA g.d.w. G eine unabhangige Menge von k Knoten besitzt.

Dieses Problem ist NP-vollstandig. In der Tat:(1) Es liegt in NP, da wir als Zerfifikat eine Menge D von Knoten nehmen konnen..In polynomialer Zeit uberprufen wir, ob D anhangig ist.

Page 152: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

148 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

(2) 3-SAT eine Reduktion von INDEPENDENT SET besitzt. Die ordnet jede For-mel

ϕ = ϕ ∧ . . . ∧ ϕnden ungerichteten Graphen f(ϕ) zu, der fur jede Klausel ϕi = α ∨ β ∨ γ ein Dreieckbesitzt.

α β

γ

Diese Dreiecke sind so verbunden, dass zwischen zwei Knoten verschiedene Dreieckegenau dann eine kante fuhrt, wenn sie mit Literalen x und ¬x markiert werden. Z.B.fur

ϕ = (x ∨ ¬y ∨ ¬z) ∧ (¬x ∨ y ∨ z)haben wir

x ¬y

¬x u

¬z

z

Die Konstruktion von f(ϕ) dauert Zeit O(k) fur Formeln ϕ der Lange k. Und esgilt

ϕ erfullbar, g.d.w. f(ϕ) unabhangige Menge von n Knoten besitzt.

In der Tat, ist ϕ erfullbar, wahlen wir einen true-Knoten in jedem Dreieck. Diesergibt n Knoten und keine Kanten.

Umgekehrt, hat f(ϕ) eine unabhangige Menge D von n Knoten, dann (da in jedemder n Dreiecke hochstens ein Knoten in D liegt) hat jedes Dreieck genau einenKnoten in D. Wir belegen die Variablen so, dass die Knoten in D true sind – daD unabhangig ist, gibt es eine solche Belegung. In jeder Klausel von ϕ gibt es einetrue-Literal, deswegen ist ϕ true.

Beispiel 3 (NODE COVER). Eine Menge D von Knoten heißt Knoten-Uberde-ckung wenn jede Kante einen Knoten in D besitzt. Das problem NODE COVERhat

Eingabe: Graph G und Zahl k

Ausgabe: JA wenn eine Knotenuberdeckung von k Knoten existiert.

Auch dieses problem ist NP-vollstandig: wir haben eine triviale Reduktion

INDEPENDENT SET ≤p NODE COVER

Es genugt zu beobachten, dass eine menge D ⊆ C von Knoten unabhangig ist g.d.w.ihr Komplement V −D eine Knotenuberdeckung ist.

Beispiel 4 (3-FARBUNG.). Dies ist das Problem, ob ein gegebener Graph mitdrei Farben gefarbt werden kann. Wahrend 2-FARBUNG zu P gehort (Beispiel6 in 7.1), zeigen wir jetzt, dass 3-FARBUNG NP-vollstandig ist. Also gilt auchhier: falls jemand einen effizienten Algorithmus fur 3-FARBUNG findet, beweist erP = NP!

1. 3-FARBUNG ist in NP. Falls eine 3-Farbung der Knoten vorgeschlagen wird,konnen wir in linearer Zeit entscheiden, ob sie korrekt ist.

Page 153: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.7. WEITERE NP-VOLLSTANDIGE PROBLEME 149

2. 3-SAT laßt sich in polynomialer Zeit auf 3-FARBUNG reduzieren.

Um den zweiten Teil zu beweisen, benutzen wir den folgenden Hilfsgraphen

●a

●b

●c

●d

Hilfsgraph

Wenn seine Knoten mit drei Farben, z.B. weiß, schwarz, blau gefarbt werden gilt:

eq-d-schwarzeq-d-schwarz (1) Falls a, b und c schwarz sind, muß d auch schwarz sein.

(Das ist leicht zu uberprufen, denn falls b und c schwarz sind, ist keiner der beidenKnoten direkt unter b und c schwarz und die Spitze des rechten Dreiecks muß alsoschwarz sein. Dasselbe gilt dann fur das linke Dreieck.)

eq-d-weisseq-d-weiss (2) Falls a oder b oder c weiß ist, darf d weiß sein.

Genauer: farben wir a, b, c so mit den drei Farben, so dass mindestens einmal weißbenutzt wird, dann laßt sich der ganze Hilfsgraph so farben, dass d weiß wird. (Dasist auch leicht zu uberprufen).

Wir konstruieren jetzt fur jede Boolesche Formel φ mit Klauseln aus drei Literaleneinen Graphen Gφ, so dass

φ ist erfullbar ⇐⇒ Gφ ist 3-farbbar.

Der Graph Gφ hat drei verschiedene Typen von Knoten. Typ 1 sind drei Knoten,die mit den drei Farben markiert werden und ein Dreieck formen:

●S ●

●W

B

Typ 2: fur jede Variable x der Formel φ wird ein extra Dreieck an den Knoten Bangehangt. Die beiden freien Knoten dieses Dreiecks werden mit x und ¬x markiert.Z.B. erhalten wir, falls φ nur die Variablen x, y, z hat, den folgenden Graphen:

Page 154: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

150 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

●S ●

●W

B

● ●● ●

● ●

x ¬xy ¬y

z ¬z

Typ 3: fur jede Klausel α∨β ∨γ der Formel φ nehmen wir den obigen Hilfsgraphen:

●α

●β

●γ

●W

und die vier Knoten, die mit α,β, γ,W markiert sind, werden mit den gerade mar-kierten Knoten des Typs 2 identifiziert. Beispiel: fur

φ = y ∨ ¬x ∨ ¬z (1 Klausel)

erhalten wir den Graphen

●S ●

●W

B

● ●

● ●

● ●

● ●●

●●

x ¬x

y ¬y

z ¬z

Wir beweisen zuerst:

φ erfullbar Ô⇒ Gφ ist 3-farbbar.

Fur die gegebene Belegung der Variablen mit φ = true farben wir wie folgt:

Page 155: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.7. WEITERE NP-VOLLSTANDIGE PROBLEME 151

1. S, B und W wie angedeutet (schwarz, blau, weiß),

2. Knoten des Typs 2 sind weiß, falls ihr Wert true ist, und schwarz, falls derWert false ist,

3. in jedem der Hilfsgraphen ist mindestens einer der Knoten a, b, c weiß gefarbt,deshalb konnen wir eine Farbung finden, die auch d weiß farbt finden, siehe(2) oben.

Umgekehrt beweisen wir:

Gφ 3-farbbar Ô⇒ φ erfullbar.

Wir konnen, ohne Beschrankung der Allgemeinheit, annehmen, dass die gegebeneFarbung die Knoten des Typs 1 wie angedeutet farbt. Wir setzen dann

x = true ⇐⇒ der x-Knoten des Typs 2 ist weiß.

Wir beweisen, dass φ = true, d.h., dass in jeder Klausel α ∨ β ∨ γ von φ einesder Literale α,β, γ true ist. Da kein Knoten des Typs 2 blau gefarbt werden kann(wegen der Kante zu B), sind sie schwarz oder weiß. Aufgrund der Eigenschaft (1)des Hilfsgraphen konnen nicht α,β, γ gleichzeitig schwarz sein – also ist α,β oder γtrue.

Es ist klar, dass fur eine Formel φ der Große

n = Anzahl aller Variablen + Anzahl aller Klauseln

die Konstruktion des Graphen Gφ in linearer Zeit O(n) durchfuhrbar ist.

Beispiel 5. k-FARBUNG ist NP-vollstandig fur jedes k ≥ 3. Wir konnen z.B. 3-FARBUNG auf 4-FARBUNG in polynomialer Zeit wie folgt reduzieren: ein GraphG ist genau dann 3-farbbar, wenn der folgende Graph

● Neuer Knoten

● ● ● ● ● ● G

4-farbbar ist.

Bemerkung 1. Ein Graph ist planar , falls er so in der Ebene gezeichnet werdenkann, dass die Kanten sich nicht uberkreuzen. Das k-Farbungsproblem fur planareGraphen ist

1. trivial fur k ≥ 4, denn jeder planare Graph ist 4-farbbar, aber trotzdem

2. NP-vollstandig fur k = 3 (vergl. Bemerkung 4 in Abschnitt 6.5).

Wir erinnern daran, dass ein Hamiltonscher Kreis in einem ungerichteten Graphenein Kreis ist, der jeden Knoten genau einmal besucht. Das Problem HAMILTON-SCHER KREIS hat als Eingabe einen Graphen G und wir sollen entscheiden, ob Geinen Hamiltonschen Kreis hat.

Beispiel 6 (HAMILTON CIRCUIT). Eingabe: Ein Graph

Ausgabe: JA wenn ein Hamiltonscher Kreis (der jeden Knoten genau einmal durch-geht) existiert.

Page 156: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

152 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Bemerkung 2. Dies ist ein Spezialfall von TSP (Travelling Salesman Problem):die Stadte sind die n Knoten des Graphen, ihre ABstande sind definiert durch

dij =⎧⎪⎪⎨⎪⎪⎩

1 wenn ı→ j eine Kante ist

n + 1 sonst.

Wenn eine Route mit Gesamtdistanz n existiert, ist sie ein Hamiltonscher kreis.Umgekehrt, wenn ein Hamiltonscher Kreis existiert, ist er eine Route von Gesamt-distanz n. Wir zeigen jetzt, dass HAMILTON CIRCUIT NP-vollstandig ist, indemwir eine Reduktion

3-SAT ≤p HAMILTON CIRCUIT

konstruieren.

Gegeben eine boolsche Formel ϕ in 3-KNF, konstruieren wir einen Graphen f(ϕ),der einen Hamiltonschen Kreis besitzt g.d.w. ϕ erfullbar ist. Die Formel ϕ hat nKlauseln

ϕ = ϕ1 ∧ ϕ ∧ . . . ∧ ϕn

Fur jede Variable x in ϕ formen wir einen Hilfsgraphen H(x) von 2n + 2 Knotenwie folgt:

a

$${{(x,1) oo //

((

(¬x,1)

vv(x,2) oo //

**

(¬x,2)

tt⋮

**tt(x,n)

""

(¬x,n)

{{b

All diese Graphen, fur alle Variablen x, y, . . . , t von ϕ, setzen wir in einen Kreis:

Page 157: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.7. WEITERE NP-VOLLSTANDIGE PROBLEME 153

Graph K: // ●a

H(x)

●b

��●a

H(y)

●b

��⋮

��●a

H(t)

●boo

Wie sehen Hamiltonsche Kreise in diese Graphen aus? Es gibt viele! Wir startenim obersten Knoten a und jedes mal wenn wir in einem Knoten von H(u), u eineVariable, außer b sehen haben wir eine Wahl, die durch die Antwort auf die Frage

kommt jetzt u vor ¬u?

bestimmt wird. Deswegen ergibt jede Belegung der variablen von ϕ einen Hamil-tonschen Kreis: wir beantworten die obere Frage mit

u kommt vor ¬u g.d.w. u ∶= true.

Page 158: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

154 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Beispiel: wenn ϕ nur 3 Klauseln hat mit Variablen x, y haben wir

K ∶

a

##||(x,1) oo //

((

(¬x,1)

vv(x,2) oo //

""

(¬x,2)

{{b

��a

##||(y,1) oo //

((

(¬y,1)

vv(y,2) oo //

""

(¬y,2)

{{b

oo

Es ist klar, dass genau 4 Hamiltonsche Kreise in dem obere Knoten a starten. Jetztnehmen wir eine Klausel

ϕj = α ∨ β ∨ γ

und formen den Hilfsgraphen von 6 Knoten:

Fj =

α //

��

β

}}

��

γ

aa

��

¬α // ¬β

}}¬γ

aa

Der besitzt 3 Hamiltonsche Kreise: wenn wir in α starten genau einen, analog mitβ, γ. Wir verknupfen Fj zum Hilfsgraphen wie folgt:

(a) wenn α = u in Fj eine Variable ist, wahlen wir i = 1, . . . , n und geben Kanten

(u, i)→ α

und

¬α → (¬u, i)

Page 159: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.7. WEITERE NP-VOLLSTANDIGE PROBLEME 155

hinzu:●a

● ●

● (u,i)

uu

● (¬u,i)

u //``

��

��

��

●⋮

●⋮

��

● K(u) ●

¬u //

99

��

~~

__

●bAnalog wenn α = ¬u eine negierte Variable ist, geben wir Kanten

(¬u, i)→ α und ¬α → (u, i)

(b) analog verbinden wir β und γ von Fj

(c) die Wahl i ist so, dass wir jeden Knoten von K mit hochstens eionem Knotenvon F1, . . . , Fn verbinden.

Satz 2. Die Formel ϕ ist erfullbar g.d.w. der Graph f(ϕ) einen HamiltonschenKreis besitzt.

Proof. (1) Nehmen wir an, dass ϕ erfullbar ist. Die erfullende Belegung bestimmteinen Hamiltonschen Kreis von K. Von dem Machen wir einen Abstecken zufj , fur eine Klausel ϕj = α ∨ β ∨ γ, wie folgt: wir wahlen ein true-Literal vonϕj , z.B. α = x. Dann haben wir im Kreis x vor ¬x und der Abstecken geht von(x, i) in K zu x in Fj (oben). Wir haben den Hamiltonschen Kreis von Fj der in¬x (unten) endet. Wir kehren dann zu (¬x, i) oder (¬x, iH) in K zuruck. Diesfunktioniert, da im Kreis X vor ¬x kommt (denn x = true). Analog wenn z.B.α = ¬x true ist: der Abstecken startet in (¬x, i) und endet in (x, i), das ist soin Ordnung, weil ¬x vor x im Kreis kommt. Dies erweitert den HamiltonschenKreis von K auf einen ganzen Graphen f(ϕ).

(2) Nehmen wir an, dass f(ϕ) einen Hamiltonschen kKreis besitzt. Die Belegung

u = true g.d.w. in H(u) u vor ¬u kommt

macht dann ϕ true. Denn fur jede Klausel ϕj = α ∨ β ∨ γ gibt es im gegebenenKreis eine Kante zum oberen 3-Zyklus von Fj . Wenn es die Kante z.B. zu α ist,ist α true. In der Tat:

Wenn α = u eine Variable ist, haben wir (nur) eine Verbindung wie im Bild2. Der Einzige Hamiltonsche Kreis von Fj , der in α anfangt, endet in ¬uunten und geht zu (¬u, i) in K zuruck. Da im Kreis deswegen u vor ¬ukommt, ist u = true;

Page 160: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

156 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Wenn α = ¬u, ist das Argument analog: im Kreis kommt ¬u vor u, deswe-gen u = false, denn α = true.

Folgerung 8. TSP ist NP-vollstandig.

In der tat, wir wissen schon, dass TSP in NP liegt, und oben haben wir eineReduktion

HAMILTON CYCLE ≤p TSP

gesehen.

7.8 Raumkomplexitat

Bisher haben wir einen Algorithmus als effizient betrachtet, falls er wenig Zeitbraucht. Ein anderer wichtiger Gesichtspunkt ist der Speicherbedarf eines Algo-rithmus. Wie die Zeitkomplexitat ist auch die Raumkomplexitat prinzipiell von derImplementation unabhangig, falls wir nur die Frage stellen, ob polynomial großerSpeicher genugt. Deswegen konnen wir wieder Turingmaschinen als Berechnungs-modell verwenden. Wir sagen, dass eine TM die Raumkomplexitat s(n) hat, wo-bei s(n) eine Funktion uber der Menge N aller naturlichen Zahlen ist, falls furjede Eingabe w der Lange n die TM halt und der Kopf hochstens s(n) Bandfelderdurchgegangen ist.

Definition. Wir bezeichnen mit

PSPACE

die Klasse aller formalen Sprachen, die von einer TM mit polynomialer Raum-komplexitat akzeptiert werden konnen. Genauer: eine Sprache L gehort zur KlassePSPACE , falls es eine Turingmaschine M und ein Polynom p(n) gibt, so dassL = L(M) und M hat die Raumkomplexitat p(n).

Beispiel 1. SAT kann durch eine TM mit linearer Raumkomplexitat gelost werden.Wenn eine Formel ϕ mit n Variablen gegeben wird, brauchen wir Raum n um allBelegungen zu generieren: erst Schreiben wir 00 . . .0 und dann wird eine binare Ad-dition x ∶= x+1 benutzt bis 11 . . .1 erreicht wird. Gegeben eine Belegung, brauchenwir nur Raum n um den Wert von ϕ mit der gegebenen Belegung zu berechnen.Wenn true ankommt, halte und akzeptiere, wenn false ankommt, dann nimm dienachste Belegung. Wenn alle Belegungen von 00 . . .0 bis 11 . . .1 immer false ergebenhaben, halte und akzeptiere nicht.

bem-pspace Bemerkung 1. 1. Die vorher eingefuhrten Klassen P und NP werden oft

PT IME und NPT IME

bezeichnet, um sie von PSPACE zu unterscheiden.

bem-time-in-space 2. Es gilt

PT IME ⊆ PSPACE

denn in einem Schritt kann eine TM nur ein Bandfeld besuchen. Es folgt, dassProbleme wie 2-FARBUNG, 2-ERFULLBARKEIT usw. in PSPACE liegen.

Page 161: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.9. RAUMKOMPLEXITAT VON MEHR-BAND-TM 157

3. Das Problem der PRESSBURGER ARITHMETIK gehort nicht zur Klasse PSPACE .Erinnern wir deren, dass dieses Problem doppelt exponentielle Zeitkomplexitathat. Und es gilt

Lemma 1. Jede NTM mit Raumkomplexitat p(n9 hat, fur eine Konstante C, dieZeitkomplexitat 2Cp(n). Es gibt eine Konstante C, so dass die Berechnung einesWortes der Lange n hochstens

2Cp(n)

Konfigurationen durchlauft. In der Tat haben die Konfigurationen die Form

(q, s1 . . . si . . . sp(n)),

wobei q ein Zustand ist, s1 . . . sp(n) ist der Inhalt des Bandes und i ist die Kopfpo-sition. Falls die Maschine

r Zustande

und

m Symbole in Σ ∪ {#}

hat, ist die Zahl der Konfigurationen gleich r (fur Zustande q) mal p(n) (fur Kopf-positionen i) mal der Zahl mp(n) aller Worter s1 . . . sp(n) uber Σ ∪ {#}. Es gilt

rp(n)mp(n) < rmp(n)mp(n) = rm2p(n) < 2Cp(n)

fur eine geeignete Konstante C.

7.9 Raumkomplexitat von mehr-Band-TM

Bei mehreren Banden, wobei Band 1 das Band mit der Eingabe ist, nehmen wirimmer an, dass Band 1 read-only ist. Dann wir der Raum, der die Eingabe auf Band1 nimmt, nicht zugerechnet:

Definition. Eine k-Band-TM mit read-only Band 1 hat Raumkomplexitat s(n)wenn fur jede Eingabe der Lange n jede Berechnung hochstens s(n) Zellen, aufallen Bandern 2-k zusammen, braucht.

Bemerkung 1. Dies ist eine vernunftige Darstellung der reellen Situation, wo dieEingabe uns auf einem Medium uberreicht wird und wir mussen entscheiden, wieviel zusatzlichen Speicher wir brauchen.

Die Definition macht auch Sinn bei Funktionen s(n) die kleiner als die lineare sind:

Beispiel 1 (REACHABILITY). hat RaumkomplexitatO(log2 n). D.h., gegeben einGraph G mit Knoten 1, . . . , n konnen wir in diesem sublinearen Raum entscheiden,ob ein (gerichteter) Pfad von 1 nach n fuhrt. Dafur betrachten wir beliebige Knotenx und y und fragen: gibt es einen Pfad der Lange ≤ 2i von x nach y? Diese boolscheAussage wird durch

REACH(x, y, i)

bezeichnet. Z.B.

REACH(x, y, i) = true g.d.w. x = y oder x→ y ein Pfeil ist.

Diese Aussage konnen wir ohne zusatzlichen Raum aus der Eingabe, d.h., der Kan-ten von G, feststellen.

Page 162: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

158 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

Wenn REACH(x, y, i) fur alle x und y festgestellt wurde, stellen wir REACH(x, y, i+1) wie folgt fest:

REACH(x, y, i+1) = true g.d.w. es z mit REACH(x, z, i)∧REACH(z, y, i)= true gibt.

In der tat, gegeben ein Pfad der Lange ≤ 2i+1 von x nach y, sei z der mittlere Knotendieses Pfades. Wir berechnen dies auf einer 2-Band-TM, wo Band 2 einen Knotenz = 1, . . . , n nach dem anderen nimmt und RACH(x, z, i) im Raum 0 berechnet.

Implementierung: auf Band 2 schreiben wir x, y (Raum O(log(n)) und nehmen alleKnoten z = 1, . . . , n. Wir berechnen REACH(x, z, i) und wenn false, nehmen wir dennachsten Knoten z; wenn true, wird REACH(x,z,i) durch REACH(z, y, i) ersetztund wenn true, ist REACH(x, y, i+1) = true. Wenn bis z = n nie zwei true Werteberechnet werden, ist REACH(x, y, i + 1) = false.

In jedem Augenblick dieser Berechnung speichert man hochstens ⌈logn⌉ Tripeln(x, y, i) die Lange ≤ 3⌈logn⌉ haben, deswegen reicht Raum ⌈logn⌉2 = O(log2 n).

Bemerkung 2. Bisher haben wir nur mit deterministischen TM gearbeitet. Es zeigtsich, dass die nichtdeterministischen nichts neues bringen: die Klasse NPSPACEbraucht man nicht! Dies besagt der folgende Satz:

Satz 1 (Savitch-Satz). Jede nichtdeterministische Turingmaschine mit polynomia-ler Raumkomplexitat kann durch eine (deterministische) Turingmaschine mit poly-nomialer Raumkomplexitat simuliert werden.

Beweis. Sei M eine NTM mit Raumkomplexitat p(n) > n, dann konstruieren wireine (deterministische) Turingmaschine M∗, mit der Raumkomplexitat O(p2(n)),die dieselbe Sprache akzeptiert. Wir konnen annehmen, dass M das Band loscht,bevor sie im finalen Zustand halt. Dann ist (qF ,#) die einzige akzeptierende Kon-figuration. Aus dem Lemma oben folgt, dass fur jedes von M akzeptierte Worts1 . . . sn eine akzeptierende Berechnung von hochstens 2Cp(n) Schritten existiert. Inder Tat, nehmen wir die kurzeste akzeptierende Berechnung von s1 . . . sn, dann wirdkeine der 2Cp(n) Konfigurationen wiederholt. Es gilt:

M akzeptiert s1 . . . sn genau dann, wenn (q0, s1 . . . sn) ⊢∗ (qF ,#).

Sei G der Graph dessen Knoten alle die 2Cp(n) Konfigurationen sind und die kantenK → K ′ bedeuten, dass K ′ eine der Folgekonfigurationen von K ist. Wir habenoben gesehen, dass die Entscheidung, ob ein Pfad von der Initialkonfiguration Ki =(q0, s1 . . . sn) in die akzeptierende Konfiguration Ka = wF ,#) fuhrt sich im Raum

O(log2 2Cp(n)) = O(C2p2(n)) = O(p2(n))

berechnen lasst. Dann konnen wir unsere NTM mit der TM, die diese Entscheidungberechnet, simulieren: ein Wort wird von der NTM genau dann akzeptiert, wenndie TM Antwort true berechnet.

Bemerkung 3. Die Klasse PSPACE enthalt also alle Probleme, fur die es (Zeit-)effizient entscheidbar ist, ob eine angebotene Losung wirklich das Problem lost. Z.B. TSP, 3-FARBBARKEIT usw. Es ist nicht bekannt, ob NPT IME = PSPACEgilt.

Wir zeigen jetzt ein interessantes Beispiel eines Prolems, fur das nicht klar ist, ob eszu NPT IME gehort, da es keinen vernunftigen Begriff von

”angebotener Losung“

gibt, das aber zu PSPACE gehort.

Page 163: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

7.9. RAUMKOMPLEXITAT VON MEHR-BAND-TM 159

Beispiel 2 (QUANTIFIZIERTE BOOLESCHE FORMELN).

Eingabe: Eine quantifizierte Boolesche Formel φ ohne freie Variablen.

Ausgabe: JA genau dann, wenn φ den Wert true hat.

Bisher sprachen wir nur uber Boolesche Formeln ohne Quantoren (∀x), (∃x). Diequantifizierten Booleschen Formeln, QBF, in Variablen xi (i = 1, . . . , n) konnen wiefolgt definiert werden:

1. Jede Variable xi ist eine QBF

2. Die Konstanten 1 (true) und 0 (false) sind QBF

3. Wenn E1,E2 zwei QBF sind, sind auch E1 ∧E2 und ¬E1 QBF

4. Wenn E eine QBF ist, ist auch∀.)E

(fur jede Variable x) QBF’n.

Notation. E[1/x] ist die Formel E in der die Varibale x immer durch true ersetztwird. Analog E[0/x].

Definition. Der Wert einer geschlossenen boolschen Formel E,

WERT(E) = true oder false

definiert man rekursiv:

Formel Wert1 true0 falseE ∧ F true g.d.w. WERT(E) = WERT(F ) = true¬E true g.d.w. WERT(E) = false(∀x)E true g.d.w. die Werte von E[1/x] und E[0/x] beide true sind.∃x)E analog, aber wenigstens einmal true.

Bemerkung 4. Die Pranex-Normalform, in der alle Quantoren stehen, lasst sich inZeit O(n2) schreiben. Erst werden die Variablen umbenannt so, dass alle Quandorenverschiedene Variablen quantifizieren. Bei einer Formel der Lange n (mit ≤ n Va-riablen) dauert dies Zeit O(n). Dann werden alle Quantoren nach vorne geschoben.Dies dauert O(n) Zeit pro Quantor und wir haben hochstens n Quantoren.

Algorithmus fur QBF

Gegeben eine Pranex-Normal-Form ϕ der Langen mit Variablen x1 . . . xk, berechnenwir ihren Wert und benutzen Raum O(n2).Dies passiert dadurch, dass wir einen Quantor nach dem anderen abbauen. Wenn ϕkeinen Quantor besitzt, besitzt sie auch keine Variable. Dann bewerten wir ϕ ohneZusatzraum. Beispiel: die Formel

0 ∧ 1 ∧ ¬(0 ∧ ¬1)wird bewerten auf dem Raum wo sie steht: wir ersetzen ¬1 durch 0, dann 0∧0 durch0 usw.

Besitzt ϕ Quantoren und der erste ist ∀xi, d.h. u = ∀xiψ, dann schreiben wirneben ϕ die Nummer der Variablen x und die Formel ψ[1/xi]. Dann bewerten diese

Page 164: THEORETISCHE INFORMATIK - tu-braunschweig.de · Kapitel 1 Endliche Automaten kapEA In diesem Kapitel wird das einfachste Maschinenmodell eingefuhrt, das wir in diesem Skript untersuchen

160 KAPITEL 7. KOMPLEXITAT VON ALGORITHMEN

(rekursiv: diese Formel hat einen Quantor weniger als ϕ. Wenn diese Bewertungfalse ergibt, hat ϕ Wert false. Wenn sie true ergibt, uberschreiben wir ψ[1/x]durch ψ[0/x], ohne neuen Raum zu benutzen. Jetzt bewerten wir ψ[0/x] und derWert ist gleich dem Wert von ϕ.

Analog wenn ϕ = ∃x ⋅ ψ: wir bewerten ψ[1/x], wenn true, hat ϕ den Wert true.Wenn false uberschreiben wir ψ[1/x] durch ψ[0/x] und bewerten, der Wert ist gleichdem Wert von ϕ.

Die Formel ϕ der Lange n hat hochstens n Quantoren und in der ganzen rekursivenProzedur stehen hochstens n Formeln (plus Eingaben uber Variablen) hintereinan-der. Beispiel:

ϕ = ∀x2 ⋅ ∃x1 ⋅ ∀x3 ⋅ ¬(x1 ∧ ¬x3) ∧ x2

ergibt Berechnungen des Typs

ϕ x2 ∃x1 ⋅ ∀x3 ⋅ ¬(x1 ∧ ¬x3) ∧ 1 x1 ∀x3 ⋅ ¬(0 ∧ ¬x3) ∧ 1 x3 ¬(0 ∧ ¬0) ∧ 1

Das Bedeutet, dass wir hochstens n Paare (Variable, Formel) hintereinander schrei-ben und da die Formel kurzlich als ϕ sind, brauchen wir nur Raum O(n2).

Satz 2 (ohne Beweis). QBF hat keine Zertifikatensprache. Genauer: Wenn es eineZertifikatensprache fur QBF gibt, gilt NP = NPSPACE.


Recommended