157
Skript zur Vorlesung Formale Sprachen und Berechenbarkeit“ Prof. Dr. Georg Schnitger Sommersemester 2011

Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

  • Upload
    buidieu

  • View
    239

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Skript zur Vorlesung

”Formale Sprachen und Berechenbarkeit“

Prof. Dr. Georg Schnitger

Sommersemester 2011

Page 2: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Hinweise auf Fehler und Anregungen zum Skript bitte an

[email protected]

Mit einem Stern gekennzeichnete Abschnitte werden in der Vorlesung nur kurz angesprochen.

Page 3: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Inhaltsverzeichnis

1 Einfuhrung 3

1.1 Ziele der Vorlesung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Begriffe und Notationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Das Wortproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.4 Weitere Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 Endliche Automaten 13

2.1 Minimierung endlicher Automaten . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1.1 Der Aquivalenzklassenautomat . . . . . . . . . . . . . . . . . . . . . . 22

2.1.2 Die Nerode-Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.2 Das Pumping-Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.3 Nichtdeterministische endliche Automaten . . . . . . . . . . . . . . . . . . . . 37

2.3.1 Die Potenzmengenkonstruktion . . . . . . . . . . . . . . . . . . . . . . 39

2.3.2 Abschlusseigenschaften und Entscheidungsprobleme . . . . . . . . . . 42

2.4 Regulare Ausdrucke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.5 Grammatiken und regulare Grammatiken . . . . . . . . . . . . . . . . . . . . 47

2.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3 Kontextfreie Sprachen 51

3.1 Ableitungsbaume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.2 Die Chomsky-Normalform und das Wortproblem . . . . . . . . . . . . . . . . 56

3.3 Das Pumping Lemma und Ogden’s Lemma . . . . . . . . . . . . . . . . . . . 65

3.3.1 Abschlusseigenschaften kontextfreier Sprachen . . . . . . . . . . . . . 69

3.4 Kellerautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.4.1 Deterministisch kontextfreie Sprachen . . . . . . . . . . . . . . . . . . 76

3.4.2 Abschlusseigenschaften deterministisch kontextfreier Sprachen . . . . . 78

3.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

1

Page 4: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2 INHALTSVERZEICHNIS

4 XML und regulare Baumgrammatiken 81

4.1 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.2 DTDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

4.3 Regulare Baumsprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4.3.1 Baumsprachen mit eindeutigen Typen . . . . . . . . . . . . . . . . . . 89

4.3.2 Regulare Baumgrammatiken und Baumautomaten . . . . . . . . . . . 91

4.4 XPath und XQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

5 Berechenbarkeit 99

5.1 Turingmaschinen und die Churchsche These . . . . . . . . . . . . . . . . . . . 99

5.1.1 Die Berechnungskraft von Turingmaschinen∗ . . . . . . . . . . . . . . 100

5.1.2 Die Klasse P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

5.1.3 Berechenbarkeit und Entscheidbarkeit . . . . . . . . . . . . . . . . . . 111

5.1.4 Nichtdeterministische, probabilistische und Quantenberechnungen . . 111

5.2 Unentscheidbare Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

5.3 Der Satz von Rice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5.4 Entscheidbare und rekursiv aufzahlbare Sprachen . . . . . . . . . . . . . . . . 125

5.4.1 Godels Unvollstandigkeitssatz . . . . . . . . . . . . . . . . . . . . . . . 128

5.5 µ-rekursive Funktionen∗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

5.5.1 Primitiv rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . 130

5.5.2 Beispiele primitiv rekursiver Funktionen und Pradikate . . . . . . . . 133

5.5.3 Der beschrankte µ-Operator . . . . . . . . . . . . . . . . . . . . . . . . 139

5.5.4 Die Ackermann-Funktion . . . . . . . . . . . . . . . . . . . . . . . . . 142

5.5.5 Der unbeschrankte µ-Operator . . . . . . . . . . . . . . . . . . . . . . 148

5.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

6 Komplexitatsklassen und die Chomsky Hierarchie 151

Page 5: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Kapitel 1

Einfuhrung

1.1 Ziele der Vorlesung

Die Vorlesung”Formale Sprachen und Berechenbarkeit“ beschließt den Grundstudiumszyklus

der Informatik.

- In der Technischen Informatik wird aufgezeigt, wie man aus konkreten physikalischenBauelementen Gatter einer bestimmten Familie bauen kann und wie man aus Gat-tern kompliziertere Schaltungen realisiert. Es wird beschrieben, wie man speicherndeElemente baut und wie man mit deren Hilfe aus Schaltungen sequentielle Schaltwerkekonstruiert.

- In den Veranstaltungen”Grundlagen der Programmierung 1 und 2“ werden zunachst

elementare Anweisungen und Datentypen wichtiger Programmiersprachen eingefuhrt,dann wird gezeigt, wie sich daraus abstrakte Datentypen und Programmblocke großererFunktionalitat bilden lassen. Es wird gezeigt, wie verschiedene, fur sich allein funki-onsfahige, Programme durch wechselseitigen Aufruf und Interaktion komplexere Auf-gaben (Betriebssysteme, Datenbanken...) losen konnen. Es wird auch gezeigt, dass eineelementare Anweisung in einer hoheren Programmiersprache sich aus mehreren, rudi-mentaren maschinennahen Anweisungen zusammensetzt.

- In der Veranstaltung”Diskrete Modellierung“ werden fundamentale diskrete Modellie-

rungsmethoden zur Verfugung gestellt. Behandelt werden etwa Logiken wie die Aus-sagen- und Pradikatenlogik, Baume und Graphen, endliche Automaten, Petri-Netze,Markovketten und kontextfreie Grammatiken.

- Die Veranstaltungen”Datenstrukturen“ und

”Algorithmentheorie“ sind vor Allem der

Beschreibung von Datenstrukturen, Standardalgorithmen und Entwurfsmethoden sowieder Effizienzmessung von Algorithmen gewidmet. Desweiteren wird mit dem Konzeptder NP-Vollstandigkeit die Moglichkeit gegeben, algorithmische Probleme als zu schwie-rig nachzuweisen. Die Vorlesungsinhalte bilden das Rustzeug fur den Entwurf effizienterAlgorithmen.

Im ersten Teil dieser Vorlesung wird unser Hauptaugenmerk dem Compilerproblem gelten,namlich der Frage, ob ein vorgelegtes Programm einer hoheren Programmiersprache syn-taktisch korrekt ist, und wir werden Typ Checking fur XML-Dokumente durchfuhren. Dazu

3

Page 6: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4 KAPITEL 1. EINFUHRUNG

werden wir bereits aus der”diskreten Modellierung“ bekannte Konzepte wie endliche Auto-

maten und kontextfreie Grammatiken wieder aufgreifen und vertiefen sowie neue Konzeptewie unbeschrankte (konventionelle) Grammatiken und Baumgrammatiken untersuchen.

Im zweiten Teil fragen wir uns, welche algorithmischen Probleme mit Rechnern der heutigenwie auch zukunftigen Rechnergenerationen erfolgreich gelost werden konnen. Wahrend wir inder Algorithmentheorie mit dem Konzept der NP-Vollstandigkeit die Grenzen der effizientenBerechenbarkeit untersucht haben, werden wir diesmal die Grenzen der Berechenbarkeit ineinem absoluten Sinne analysieren:

Gibt es unentscheidbare algorithmische Probleme, also Probleme, die mit Rech-nern selbst zukunftiger Rechnergenerationen auch dann nicht losbar sind, wennRechenzeit und Speicherplatz in unbeschranktem Ausmaß zur Verfugung stehen?

Zunachst einige Formalia und ein paar einleitende Gedanken zum Wortproblem, das sich alsroter Faden durch die gesamte Vorlesung ziehen wird.

1.2 Begriffe und Notationen

Wir fuhren die fur die Vorlesung wichtigsten Begriffe und Notationen ein:

Definition 1.1

(a) N = 0, 1, 2, . . . bezeichnet die Menge der naturlichen Zahlen, Z = 0, 1,−1, 2,−2, . . .ist die Menge der ganzen Zahlen.

(b) Q = r/s | r ∈ Z, s ∈ N, s 6= 0 bezeichnet die Menge der rationalen Zahlen.

(c) R ist die Menge der reellen Zahlen und

(d) C ist die Menge der komplexen Zahlen.

Als nachstes fuhren wir den Begriff einer formalen Sprache ein:

Definition 1.2 (Alphabete, Worte und Sprachen)

(a) Ein Alphabet Σ ist eine endliche, nicht-leere Menge. Die Elemente von Σ werden Buch-staben genannt.

(b) Σn = (a1, . . . , an) | ai ∈ Σ ist die Menge aller Worte der Lange n uber Σ. Wir werdenim folgenden a1 · · · an statt (a1, . . . , an) schreiben.

(c) Wir definieren Σ0 = ε als die Menge, die nur das leeren Wort ε besitzt.

(d) Σ∗ =∞⋃

n=0Σn ist die Menge aller Worte uber dem Alphabet Σ.

(e) Σ+ =∞⋃

n=1Σn ist die Menge aller nicht-leeren Worte uber Σ.

(f) Fur w ∈ Σ∗ bezeichnet |w| die Lange von w, also die Anzahl der Buchstaben von w.

(g) Eine (formale) Sprache L (uber Σ) ist eine Teilmenge von Σ∗.

Page 7: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

1.2. BEGRIFFE UND NOTATIONEN 5

Als nachstes besprechen wir die wichtigsten Begriffe im Umgang mit formalen Sprachen.

Definition 1.3 Sei Σ ein Alphabet, u und v seien Worte uber Σ.

(a) Es sei u = u1 · · · un und v = v1 · · · vm. Dann bezeichnet

u · v = u1 · · · un · v1 · · · vm

die Konkatenation von u und v. (Beachte, dass u · ε = ε · u = u). Wir schreiben auchuv statt u · v.

(b) u heißt genau dann ein Teilwort von v wenn es Worte u1 und u2 uber Σ gibt mit

v = u1 uu2.

(c) u heißt genau dann Prafix von v wenn es ein Wort u1 uber Σ mitv = uu1 gibt.

u heißt genau dann ein Suffix, wenn es ein Wort u1 uber Σ mit v = u1 u gibt.

(d) Fur Sprachen L1, L2 uber Σ bezeichnet

L1 L2 = uv |u ∈ L1, v ∈ L2

die Konkatenation von L1 und L2.

(e) Fur eine Sprache L uber Σ ist

Ln = u1 · · · un |u1, . . . , un sind Worte der Sprache L

L∗ =

∞⋃

n=0

Ln (mit L0 = ε)

L+ =∞⋃

n=1

Ln.

L∗ heißt die Kleene Hulle von L.

Beispiel 1.1 (a) A,B,C,D,E, F,G,H 1, 2, 3, 4, 5, 6, 7, 8 ist die Menge aller Feldereines Schachbretts.

(b) ♣,♦,♥,♠ 7, 8, 9, 10, Bube,Dame,Konig,Ass ist die Menge der Karten einesSkatblatts.

(c) 1 0, 1∗ ist die Menge der Binardarstellungen der naturlichen Zahlen großer Null.

(d)4⋃

i=1·,−i ist die Menge der Morsezeichen fur die 26 Buchstaben, a, o, u und ch.

(e) (2 0, 1, 2, 3 ∪ ε, 1 0, 1, . . . , 9) : 0, 1, . . . , 5 0, 1, . . . , 9 ist die Mengeder Uhrzeiten eines Tages.

(f) (1 0, 1, 2 ∪ 1, . . . , 9) : 0, 1, . . . , 5 0, 1, . . . , 9 am, pm ist die ameri-kanische Entsprechung.

Als nachstes spielen wir ein wenig mit der Konkatenation und mit dem Sternoperator, alsomit der Kleene Hulle.

Page 8: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

6 KAPITEL 1. EINFUHRUNG

Beispiel 1.2 Wir behaupten, dass das Wort abcd ein Element der Sprache

(a∗ b∗ d∗ c∗)∗ = L

ist. Dazu betrachten wir zuerst die Sprache

K = a∗ b∗ d∗ c∗.Dann ist

K = an bm dk cl |n,m, k, l ∈ Nund das Wort abcd gehort nicht zu K. Beachte aber, dass

L = K∗

undabcd ∈ K2

(denn abc ∈ K und d ∈ K). Somit ist also abcd ∈ L. Die Sprache L konnen wir aber nocheinfacher charakterisieren. Wir behaupten namlich, dass

L = a, b, c, d∗.Wir zeigen zuerst L ⊆ a, b, c, d∗. Dies ist offensichtlich, da L nur aus Worten uber demAlphabet a, b, c, d besteht, und da a, b, c, d∗ die Menge aller Worte uber a, b, c, d ist.Zuletzt ist die umgekehrte Inklusion

a, b, c, d∗ ⊆ L

nachzuweisen. Sei w ein beliebiges Wort uber dem Alphabet a, b, c, d. Wir mussen zeigen,dass w auch ein Element von L ist. Wenn w = w1 · · ·wn mit w1, . . . , wn ∈ a, b, c, d, dannist naturlich w1, . . . , wn ∈ K: jeder Buchstabe von w gehort zur Sprache K. Dann muß aber

w1 · · ·wn ∈ Kn

gelten und somit ist w = w1 · · ·wn ∈ L.

Zur Definition formaler Sprachen wird oft das Schema der rekursiven Definition gewahlt.

Beispiel 1.3 Die Sprache L sei die kleinste Sprache uber dem Alphabet Σ = 0, 1 mit denfolgenden Eigenschaften

(a) ε ∈ L

(b) wenn u ∈ L, dann 0u ∈ L und u1 ∈ L.

Wie sieht L aus? Wir geben eine einfache, nicht rekursive Beschreibung, namlich

L = 0∗ 1∗.

Beweis: Erst zeigen wir 0∗ 1∗ ⊆ L. Sei w ∈ 0∗ 1∗ und demgemaß w = 0n 1m. Wirwissen, dass ε ∈ L und deshalb ist

0 · ε, 0 · 0 · ε, . . . , 0n · ε ∈ L.

Mit 0nε = 0n ist aber auch

0n · 1, 0n · 1 · 1, · · · , 0n 1m ∈ L,

und deshalb ist w ∈ L.

Es bleibt zu zeigen, dass L ⊆ 0∗ 1∗. Dazu genugt es zu bemerken, dass die Sprache0∗ 1∗ die Eigenschaften (1) und (2) in der Definition von L erfullt. (Warum ist diesausreichend? L ist die kleinste Sprache mit den Eigenschaften (1) und (2)!).

Page 9: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

1.3. DAS WORTPROBLEM 7

Ein wesentliches Mittel zur Beschreibung von Sprachen sind regulare Ausdrucke. Wir definie-ren sie wie folgt.

Definition 1.4 Die Menge der regularen Ausdrucke uber einem endlichen Alphabet Σ wirdrekursiv durch die folgenden Regeln definiert.

(a) Die Ausdrucke ∅, ε und a fur a ∈ Σ sind regular. Die Ausdrucke stellen die leere Sprache,die Sprache des leeren Wortes und die Sprache des einbuchstabigen Wortes a dar.

(b) Sind A1 und A2 regulare Ausdrucke, dann auch (A1)+(A2), (A1)(A2) und (A1)∗, wobei

+ die Vereinigung, die Konkatenation und ∗ den Kleeneschen Abschluß darstellen.

(c) Alle regularen Ausdrucke lassen sich durch endliche Anwendung der Regeln (a) und (b)erzeugen.

Aufgabe 1Die Sprache L (uber dem Alphabet Σ = a, b) sei die kleinste Wortmenge mit den Eigenschaften

”der

Buchstabe a gehort zu L“ und”wenn das Wort x zu L gehort, so gehoren auch die Worte bx, ax und xb zu

L“.

Finde einen regularen Ausdruck fur die Sprache L und beweise, dass deine Beschreibung zu der obigenrekursiven Definition aquivalent ist.

Aufgabe 2In welchen Beziehungen stehen die drei Sprachen L1, L2 und L3 zueinander? Es soll paarweise entschiedenwerden, ob Gleichheit oder Teilmengenbeziehung besteht.

L1 =(

a∗ b∗ c+)∗

L2 =(

a, b∗ c+)∗

L3 =(

(a∗ c+) ∪ (b∗ c+))∗

Aufgabe 3Finde je einen regularen Ausdruck fur die beiden folgenden Sprachen uber Σ = a, b, c.

(a) L1 := w ∈ Σ∗|w enthalt das Teilwort abc

(b) L2 := w ∈ Σ∗|w enthalt das Teilwort abc nicht

1.3 Das Wortproblem

Das Wortproblem fur eine Sprache L ist denkbar einfach zu beschreiben:

Es ist zu entscheiden, ob ein gegebenes Wort w in L liegt.

Die Losung des Wortproblems fur L besteht in der Angabe eines moglichst effizienten Algo-rithmus. Dass das Wortproblem im Schwierigkeitsgrad stark schwankt, ist schnell uberlegt.Das Wortproblem fur die Sprache

L = Fruhling, Sommer,Herbst,Winter

ist leicht, da zu jedemWort w schnell festgestellt werden kann, ob es eines der vier enthaltenenist.

Nehmen wir als anderes Beispiel die Sprache L, die uber dem ASCII Zeichensatz als AlphabetΣ definiert sei und als Worte alle syntaktisch korrekten C-Programme enthalten soll, die aufjede Eingabe hin anhalten. Wie ist es mit diesem Kandidaten w:

Page 10: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

8 KAPITEL 1. EINFUHRUNG

main(int n)

int i;

i=n;

while(NOT(prim(i)&&prim(i+2)))

i++;

boolean prim(int n)

int i;

for(i=2;i<n;i++)

if(n % i == 0) return(false);

return(true);

Was tut dieses Programm? Es beginnt bei der Zahl n aufsteigend nach Primzahlzwillingen zusuchen und hort nur auf, wenn es fundig wird. Die Frage, ob dieses Programm w in unsereSprache L gehort, ist also gleichbedeutend mit der Frage, ob es unendlich viele Primzahlzwil-linge gibt. Das Programm halt namlich genau dann fur Eingabe n, wenn es zu n ein Paar vongroßeren Primzahlzwillingen gibt. Ob das so ist, ist ein offenes Forschungsproblem.

Wir haben mit dieser Uberlegung bereits gezeigt, dass es extrem schwer sein sollte, ein Pro-gramm - einen Supercompiler quasi - zu schreiben, das die Gefahr von Endlosschleifen erkennt.Ein solcher Compiler wurde en passant offene Forschungsprobleme der Mathematik automa-tisch losen. Am Ende der Vorlesung werden wir beweisen, dass ein solches Programm nichtexistiert

Wir wollen in der Vorlesung naturlich nicht fur jede betrachtete Sprache L die Schwierig-keit des Wortproblems individuell analysieren. Wir werden stattdessen auf ein hierarchischesSystem von Sprachklassen gefuhrt werden. In ersten Teil der Vorlesung wird uns das Wort-problem als so genanntes Compilerproblem begegnen. Die Frage ist dabei, ob eine vorgelegteZeichenkette ein syntaktisch korrektes Programm darstellt.

Im nachsten Kapitel fuhren wir beispielsweise die regularen Sprachen als die formalen Spra-chen ein, die durch einen regularen Ausdruck beschrieben werden. Wir werden zeigen, dassendliche Automaten das Wortproblem fur alle regularen Sprachen losen konnen. Allerdingssind regularen Sprachen enge Grenzen gesetzt. Nehmen wir etwa als Beispiel die Sprache Lder legalen Klammerausdrucke, die wir wie folgt rekursiv definieren.

(a) ε ∈ L

(b) u, v ∈ L→ u v ∈ L

(c) w ∈ L→ [ w ] ∈ L

(d) L ist die kleinste Sprache, die diese Bedingungen erfullt.

Zu dieser sehr simplen Sprache wird es auch nach langerem Bemuhen nicht gelingen, einenregularen Ausdruck anzugeben. Mit unseren rekursiven Definitionen, die sich selbst referen-zieren durfen, hatten wir kein Problem:

KLAMMER =

ε ∪ (KLAMMER KLAMMER) ∪ ([ KLAMMER ]).

Page 11: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

1.3. DAS WORTPROBLEM 9

Wir haben es hier mit einer kontextfreien Ableitungsvorschrift zu tun. Die entsprechendeSprachklasse der kontextfreien Sprachen werden wir im Kapitel 3 untersuchen.

Programmiersprachen werden in der Tat durch solche formalen Definitionen beschrieben. Mandenke an die erweiterte Backus Naur Form oder an Syntaxdiagramme. Eine IF Anweisung inC ist beispielsweise definiert als:

IF = if ( EXPRESSION ) STATEMENT ( ε ∪ (else STATEMENT )) .

Eine IF-Anweisung ist also ein if gefolgt von einem geklammerten Ausdruck. Eine Anweisungfolgt. Daran kann, muss aber nicht, sich ein Paar von Schlusselwort else und einer Anweisunganschließen.

Fur einen Ausdruck, bietet C eine Fulle von Formen

EXPRESSION = CONSTANT ∪ TERM∪ EXPRESSION BINOP EXPRESSION∪ TERM ASGNOP EXPRESSION∪ EXPRESSION ? EXPRESSION : EXPRESSION∪ &,++,−− TERM∪ TERM ++,−−∪ −, !,∼ EXPRESSION∪ ( TY PENAME ) EXPRESSION∪ ( EXPRESSION ).

Dies laßt sich bis zu den Zeichen des Zeichensatzes herunterbrechen. BINOP , also ein binaryOperator, ist wie folgt definiert,

BINOP = BINOP A ∪BINOP B

BINOP A = ∗, /,%,+,−,≫,≪, >,<,<=, >=,==, ! =,&, ˆ, |BINOP B = &&, ||, , .

Es lassen sich allerdings nicht alle Anforderungen, die eine Programmiersprache an einenQuellcode stellt, auf diese Weise beschreiben. Wir konnen zwar erzwingen, dass auf jedeoffnende Klammer eine schließende folgt, dass kein else ohne vorheriges if auftritt, aber wirkonnen beispielsweise nicht artikulieren, dass eine Variable deklariert sein muss, bevor mansie verwendet.

Wir werden sehen, dass bei kontextfreien Sprachen scharfere Geschutze aufgefahren werdenmussen, um das Wortproblem in den Griff zu bekommen. Der Algorithmus von Cocke Youn-ger und Kasami wird das Wortproblem fur kontextfreie Sprachen in Zeit Θ(n3) fur Eingabender Lange n losen. Damit sind wir zwar im polynomiellen Bereich, aber fur praktische An-wendungen ist das zu langsam. Die Einschrankung auf deterministisch kontextfreie Sprachenwird hier helfen, den optimalen Tradeoff zwischen der Ausdrucksstarke der Sprachen und derEffizienz der Compilierung zu finden.

Fur beide Klassen, regulare und kontextfreie Sprachen, werden wir Techniken herleiten, umformal nachzuweisen, dass eine gegebene Sprache nicht regular bzw. nicht kontextfrei ist.

In den folgenden Kapiteln verfolgen wir das Wortproblem weiter. Warum? Entscheidungspro-bleme jedweder Art stellen formale Sprachen dar.

Page 12: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

10 KAPITEL 1. EINFUHRUNG

Beispiel 1.4 Einen ungerichteten Graphen G = (V,E) konnen wir durch seine Adjazenzma-trix reprasentieren. Die Adjazenzmatrix wiederum lasst sich durch zeilenweises Hintereinan-dersetzen als ein binarer String auffassen. Wir konnen damit das Problem der HamiltonschenKreise formulieren:

L = w ∈ 0, 1∗| w beschreibt einen Graphen mit Hamiltonischen Kreis

Das Wortproblem wird so zur Frage”Hat ein durch seine Kodierung gegebener Graph einen

Hamiltonischen Kreis, also einen Kreis, der jeden Knoten genau einmal durchlauft?“

(a) Das Wort w1 = 0011001111001100 gehort zur Sprache L, da das Wort den Graphen

1 2

3 4

QQQQQQ

beschreibt, der einen Hamiltonischen Kreis besitzt.

(b) Das Wort w2 = 0011001011011010 gehort nicht zur Sprache L, da das Wort den Gra-phen

1 2

3 4

##

##

#

ccccc

beschreibt, der keinen Hamiltonischen Kreis besitzt.

(c) Das Wort w3 = 0010101101 gehort nicht zur Sprache L, da das Wort keinen Graphenbeschreibt: |w3| ist keine Quadratzahl.

(d) Das Wort w4 = 0001000000000000 gehort nicht zur Sprache L, da der String keinerAdjazenzmatrix entspricht.

Beispiel 1.5 Wir konnen uber dem Alphabet Σ = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ⋄ Folgen naturli-cher Zahlen, durch ⋄ getrennt, kodieren. So konnen wir die Sprache

L =

w ∈ Σ∗w beschreibt eine Zahlenfolge, so dass eineaufsteigende Teilfolge existiert, die mindestenshalb so lang ist wie die Gesamtfolge

definieren.

(a) Das Wort w1 = 9 ⋄ 15 ⋄ 21 ⋄ 4 ⋄ 11 gehort zur Sprache L, da die Zahlenfolge 9,15,21,4,11reprasentiert wird, und die Teilfolge 9,15,21 mindestens halb so lang ist wie die Gesamt-folge.

(b) Das Wort w2 = 17 ⋄ 10 ⋄ 21 ⋄ 5 ⋄ 19 gehort nicht zur Sprache L, da die reprasentierteZahlenfolge 17, 10, 21, 5, 19 keine aufsteigende Teilfolge mit Lange großer als 2 besitzt.

Page 13: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

1.3. DAS WORTPROBLEM 11

(c) Das Wort w3 = 005 ⋄ ⋄ ⋄ 33 gehort nicht zur Sprache, da es keine Zahlenfolge kodiert.

Beispiel 1.6 Wie wir es oben bereits getan haben, konnen wir auch den kompletten ASCIIZeichensatz als Σ wahlen. Dann konnen wir definieren:

L = w ∈ Σ∗|w ist eine C-Funktion, die zu gegebenem n den Wert n2 ausgibtDas Wort

w1 = int quad(int n)return(n ∗ n); gehort zu L, da die Funktion in der Tat n2 berechnet. Das Wort

w2 = quad(int n)printf(“hello“); gehort nicht zur Sprache, da die reprasentierte Funktion nicht n2 berechnet. Schließlich gehortdas Wort

w3 = Lieber Compiler, bitte berechne mir n zum Quadrat, Danke!

nicht zur Sprache L, da dies beim derzeitigen Stand der Compilertechnik kein C-Programmdarstellt.

Graphen, Zahlenfolgen, Programme, die Liste ließe sich leicht fortsetzen. Wir sehen, dassjedes Entscheidungsproblem als formale Sprache aufgefasst werden kann. Die Bedeutung desWortproblems geht also uber den Compilerbau deutlich hinaus. In Kapitel 5 werden wirausloten, welche Sprachen durch Algorithmen entschieden werden konnen und wenn ja, mitwelcher Laufzeit. Unsere drei Beispiele von oben zeigen das Mogliche auf.

- Das Zahlenfolgenproblem kann mit dynamischer Programmierung in polynomieller Zeitgelost werden. Das Zahlenfolgenproblem liegt damit in der Klasse P , der in polynomiellerZeit losbaren Entscheidungsprobleme.

- Das Problem des Hamiltonischen Kreises gehort zu den NP-Vollstandigen Problemen.Das Finden einer effizienten Losung, das heisst eines Algorithmus mit polynomiellerLaufzeit ware eine Sensation.

- Die Frage, ob ein gegebenes Programm eine bestimmte Aufgabe erfullt, ist nicht ent-scheidbar, selbst wenn keine Zeitbeschrankung gegeben ist. Diese absoluten Grenzenalgorithmischer Berechnungskraft werden wir im Kapitel 5 kennenlernen.

Das Wortproblem hat auch Implikationen uber Entscheidungsprobleme, wie die hier darge-stellten, hinaus. Das aus der Algorithmentheorie bekannte Rucksackproblem ist zum Beispielein Optimierungsproblem. Die Frage ist, wieviel Wert kann transportiert werden, wenn nObjekte mit den Einzelwerten w1, w2, . . . , wn und den Gewichten g1, . . . , gn zur Verfugungstehen, die ganz oder gar nicht mitgenommen werden konnen, und die Kapazitat C nichtuberschritten werden darf. In dieser Formulierung ist die Antwort offenbar nicht Ja oderNein, sondern eine Zahl.

Zur Formulierung als Entscheidungsproblem fuhren wir noch einen Sollwert S ein. Die Fragelautet nun, ob bei gegebenen Objekten und gegebener Kapazitat der Wert S erreicht oderubertroffen werden kann. Nun haben wir ein Entscheidungsproblem, dessen Instanzen wir ineine Zeichenkette kodieren konnen. Etwa:

w1 ⋄ g1 ⋄ w2 ⋄ g2 ⋄ . . . ⋄ wn ⋄ gn ⋄ ⋄C ⋄ SNehmen wir nun an, wir konnten dieses Wortproblem in Zeit f(n) losen, so konnen wir wiefolgt vorgehen, um das Ausgangsproblem zu losen.

Page 14: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

12 KAPITEL 1. EINFUHRUNG

1. Setze l auf 0 und r auf die Summe aller Werte.

2. Solange l < r

a) Setze m = ⌈(l + r)/2⌉.b) Lose die Entscheidungsversion mit S = m.

c) Falls Antwort positiv, setze l = m anderenfalls r = m− 1.

3. Gib l als Losung aus.

Eine simple Binarsuche lost also das Optimierungsproblem mit Hilfe des Entscheidungspro-blems. Wie lange dauert die Suche? Wenn W die Summe aller Werte ist, dann wird dieSchleife hochstens O(log2(W )) mal durchlaufen. Der Aufwand innerhalb einer Iteration ist imwesentlichen der Aufwand des Entscheidungsproblems und wir erhalten

O(f(n) · log2W )

als Gesamtlaufzeit. Man beachte, dass log2W aber nicht großer als die Lange der Binardar-stellungen der Werte und somit ist log2W nicht großer als die Eingabelange n.

Interessieren wir uns also nur dafur, ob ein Optimierungsproblem in polynomieller Zeit gelostwerden kann oder nicht, so wird uns die Entscheidungsversion bereits die richtige Antwortliefern. In den Ubungen werden wir sehen, dass auch das Problem des Auffindens der opti-malen Bepackung selbst – im Gegensatz zum Wert – in derselben komplexitatstheoretischenPreisklasse anzusiedeln ist.

Damit sollte eine intensive Besprechung des Wortproblems auch uber den Compilerbau hinaushinreichend motiviert sein.

Aufgabe 4Uberflussige Programmteile Wir fragen, ob zum Compilierungszeitpunkt algorithmisch festgestellt werdenkann, ob ein gegebenes C-Programm eine Anweisung enthalt, die fur keine Eingabe zur Ausfuhrung kommt.In der Regel wurde die Existenz einer solchen Anweisung auf einen Programmierfehler hindeuten.

Beurteile die Komplexitat dieses Problems und belege Deine Einschatzung moglichst schlussig.

1.4 Weitere Literatur

Die folgenden Textbucher sind besonders empfehlenswert.

- J.E. Hopcroft, J.D. Ullman, R. Motwani, Introduction to automata theory, languagesand computation, Addison-Wesley, 2001.

- U. Schoning, Theoretische Informatik - kurzgefasst, Spektrum 1997.

- M. Sipser, Introduction to the Theory of Computation, PWS Publishing, 1997.

- I. Wegener, Theoretische Informatik, B.G. Teubner 1993.

- I. Wegener, Kompendium Theoretische Informatik - eine Ideensammlung, B.G. Teubner,1996.

Page 15: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Kapitel 2

Endliche Automaten

Unser erstes Ziel ist die Definition endlicher Automaten, eines Maschinenmodells, das seineEingabe von links nach rechs liest und ohne Speicher auskommen muss. Die Beschreibungeines endlichen Automaten besteht aus den folgenden Komponenten:

• dem Eingabealphabet Σ,

• der endlichen Menge Q der Zustande,

• dem Anfangszustand q0 ∈ Q,

• der Menge F der akzeptierenden Zustande

• sowie dem Programm (bzw. der Zustandsuberfuhrungsfunktion) δ:Q× Σ → Q.

Wie rechnet ein endlicher Automat? Beginnend mit einem Startzustand q0 wird die EingabeBuchstabe fur Buchstabe eingelesen und bewirkt Zustandsanderungen. Die Eingabe wirdakzeptiert, wenn der zuletzt erhaltene Zustand akzeptierend ist.

Definition 2.1 Sei A = (Q,Σ, δ, q0, F ) ein endlicher Automat.

(a) A liest ein Wort w ∈ Σ∗ von links nach rechts und wechselt seine Zustande gemaß demProgramm δ. Formal:

Wir setzen δ auf Worte in Σ∗ fort und definieren

δ:Q × Σ∗ → Q

durch

δ(q, ε) = q,

δ(q, w1 · · ·wn+1) = δ(

δ(q, w1 · · ·wn), wn+1

)

Beachte, dass δ(q, w1 · · ·wn) den Zustand bezeichnet, den A nach Lesen der Eingabew1 · · ·wn erreicht, wenn im Zustand q begonnen wird.

(b) A akzeptiert w ∈ Σ∗ genau dann, wenn δ(q0, w) ∈ F .

(c) L(A) = w ∈ Σ∗ |A akzeptiert w ist die von A akzeptierte (oder erkannte) Sprache.

13

Page 16: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

14 KAPITEL 2. ENDLICHE AUTOMATEN

(d) Eine Sprache L ⊆ Σ∗ heißt regular, wenn es einen endlichen Automaten A mit L = L(A)gibt.

Aufgabe 5Zeige, dass eine Sprache L genau dann regular ist, wenn L durch eine Turingmaschine erkannt wird, die keineSchreiboperationen ausfuhrt.

Das Programm eines endlichen Automaten laßt sich am besten durch ein Zustandsdiagrammveranschaulichen, das aus Knoten und beschrifteten Kanten besteht. Die Knoten entsprechenden Zustanden; fur jeden Befehl der Form δ(q, a) = q′ wird eine mit a beschriftete Kanteeingesetzt, die vom Knoten q zum Knoten q′ verlauft.

Den Anfangszustand markieren wir durch einen Pfeil, akzeptierende Zustande werden doppeltumrandet.

Die Berechnung von A auf Eingabe w = w1 · · ·wn beschreibt somit einen Weg im Zustands-graphen, der

- im Knoten q0 beginnt und

- jeweils die mit w1, w2, . . . , wn beschrifteten Kanten wahlt.

Beispiel 2.1 Wir behaupten, dass die Sprache

PARITAT =

w ∈ 0, 1∗ |w hat gerade viele Einsen

regular ist. PARITAT wird von einem endlichen Automaten mit

• Zustandsmenge Q = gerade,ungerade,• Anfangszustand gerade,

• F = gerade und

• dem Programm δ akzeptiert, wobei

δ(gerade, 0) = gerade, δ(gerade, 1) = ungerade,δ(ungerade, 0) = ungerade, δ(ungerade, 1) = gerade.

Das Zustandsdiagramm hat die Form

0 0

ungeradegerade1

Beispiel 2.2 Uben wir uns in der Modellierung und betrachten das folgende Problem. DieKindersicherung eines Fernsehers funktioniert so, dass uber die Fernbedienung ein dreistelli-ger Code korrekt eingegeben werden muss, damit der Fernseher eingeschaltet werden kann.Dafur sind die Tasten von 0 bis 9 relevant. Es gibt eine BACK Taste, die es uns erlaubt, dieletzteingegebene Zahl zuruckzunehmen, außerdem gibt es die Taste CODE. Sie muss vor derEingabe des Codes gedruckt werden. Wird sie wahrend der Codeeingabe noch mal gedruckt,so wird die Eingabe neu begonnen.

Ein Automat bietet sich fur die Modellierung an, da die Eingabe, die Folge der Tastenbetati-gungen, ohnehin nur von links nach rechts (in der zeitlichen Abfolge) zur Verfugung steht.Wir geben zunachst die Komponenten des Automaten an.

Page 17: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

15

• Das Eingabealphabet sind die relevanten Tasten

Σ = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, BACK,CODE.

• Die Zustande mussen widerspiegeln, wie weit die Eingabe bereits fortgeschritten ist.Wie weit ist der Code richtig eingegeben worden? Folgen nach einem richtigen Anfangvielleicht falsche Zeichen, die mit BACK wieder zuruckgenommen werden konnten? Alldiese Fragen mussen in den Zustanden beantwortet sein.

• Der Anfangszustand q0 entspricht dem Zustand, in dem noch nichts eingegeben wurde.

• Die Menge der akzeptierenden Zustande hat nur ein Element: den Zustand, der nacherfolgreicher Codeeingabe angenommen wird.

• Die Ubergangsfunktion δ wird die Zustande sinnvoll verbinden.

Ist der Code zum Entsperren des Fernsehers etwa 999, so erhalten wir den folgenden Auto-maten.

9

x

9

BACKCODE

0,...,8

CODE

0,...,8

9

CODE

0,...,8

0,...,9

BACKCODE

BACK

CODE

0,...,9

CODE

0,...,9

CODE

0,...,9

BACK

9

BACK

BACK

BACKxx OFF

9x

99 ONready

Bei der Erstellung dieses Automaten haben wir gesunden Menschenverstand eingesetzt. Wirhaben erkannt, dass es nicht notig ist zu unterscheiden, welche falsche Zahl getippt wurde.Auch haben wir ausgenutzt, dass es egal ist, ob man die zweite Zahl richtig eintippt, nach-dem die erste falsch war. Sehr wohl spielt es aber eine Rolle, ob einer falschen zweiten Zahleine richtige erste vorausging. Ist dieser Automat aber kleinstmoglich oder konnte man dieAnforderungen kompakter, das heißt mit weniger Zustanden, formulieren?

Warum betrachten wir endliche Automaten? Endliche Automaten erlauben eine Beschreibungvon Handlungsablaufen:

Wie andert sich ein Systemzustand in Abhangigkeit von veranderten Umgebungsbedin-gungen?

Page 18: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

16 KAPITEL 2. ENDLICHE AUTOMATEN

Dementsprechend ist das Einsatzgebiet endlicher Automaten vielfaltig: Endliche Automatenfinden Verwendung

- in der Entwicklung digitaler Schaltungen,

- in der Softwaretechnik (zum Beispiel in der Modellierung des Applikationsverhaltens),

- im Algorithmenentwurf fur String Probleme

- oder in der Abstraktion tatsachlicher Automaten (wie Bank- und Getrankeautomaten)

Aufgabe 6Ein Mann (M) steht mit einem Wolf (W), einer Ziege (Z) und einem Kohlkopf (K) am linken Ufer eines Flusses,den er uberqueren will. Er hat ein Bot, das groß genug ist, ihn und ein weiteres Objekt zu transportieren, sodass er immer nur einen der drei mit sich hinubernehmen kann. Falls der Mann allerdings den Wolf und dieZiege unbewacht an einem der Ufer zurucklaßt, so wird der Wolf sicherlich die Ziege fressen. Genauso wird,wenn die Ziege und der Kohlkopf unbewacht zuruckbleiben, die Ziege den Kohlkopf fressen.

Eine Uberfuhrung ist ein Wort w uber Σ = M,W,Z,K, wobei wi ∈ W,Z,K, wenn der Mann mit Objektwi zum Zeitpunkt i das Boot benutzt und wi = M , wenn der Mann das Bot alleine benutzt. Eine Uberfuhrungw = w1 · · ·wn ist erfolgreich, falls nach der letzten Aktion wn der Mann und alle drei Objekte das rechte Ufererreicht haben.

Gebe einen moglichst kleinen Automaten an, der alle erfolgreichen Uberfuhrungen beschreibt.

Wir werden spater sehen, dass die folgenden algorithmischen Probleme effiziente Losungenbesitzen:

- Das Aquivalenzproblem: Gegeben seien endliche Automaten A und B. Sind A und Baquivalent, d.h. gilt L(A) = L(B)?

- Das Minimierungsproblem: Gegeben sei ein endlicher Automat A. Bestimme einen aqui-valenten endlichen Automaten B mit der kleinsten Anzahl von Zustanden.

Als Konsequenz des Minimierungsproblem kann man damit automatisch kleinste endlicheAutomaten fur regulare Sprachen entwerfen. Es stellt sich heraus, dass die Klasse der regularenAutomaten zu den großten Sprachenklassen gehort, fur die optimale Programme effizientbestimmt werden konnen.

In der Praxis werden haufig nichtdeterministische Automaten benutzt. Wir zeigen, dass uber-raschenderweise jeder nichtdeterminische Automat einen aquivalenten deterministischen Au-tomat besitzt. Im Abschnitt 1.2 haben wir bereits regulare Ausdrucke kennengelernt und esstellt sich heraus, dass eine Sprache genau dann regular ist, wenn die Sprache durch einenregularen Ausdruck dargestellt werden kann. Schlielich werden formale Sprachen haufig durchGrammatiken beschrieben: Deshalb werden wir regulare Grammatiken einfuhren und zeigen,dass eine Sprache genau dann regular ist, wenn sie eine regulare Grammatik besitzt.

Regulare Sprachen besitzen also eine Vielzahl aquivalenter Charakterisierungen. Neben diesenEigenschaften des Maschinenmodells, bzw der Sprachenklasse, haben endliche Automatentrotz ihrer Einfachheit auch Anwendungen im Algorithmenentwurf. Hier besprechen wir zuerstkurz die lexikalische Analyse und untersuchen das Pattern Matching Problem in Beispiel 2.10.

Beispiel 2.3 Lexikalische Analyse.

Die lexikalische Analyse ist meistens die erste Phase bei der Compilierung eines vorgegebenenProgramms. Das Programm wird dabei Anweisung nach Anweisung gelesen und in Token-klassen aufgebrochen. (Beispiele fur Tokenklassen sind Keywords, Konstanten, Variablen,

Page 19: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

17

arithmetische Operatoren, Vergleichsoperatoren, Klammern, Kommentare etc.) Zum Beispielwird in der lexikalischen Analyse eine Anweisung der Form

if distance >= rate * (end - start) then distance = maxdistance;

aufgebrochen in die Tokenklassen

- Keywords (fur if und then)

- Variablen (fur distance, rate, end, start, maxdistance)

- Operatoren (fur *, -, =)

- Vergleichsoperatoren (fur >=)

- Klammern (fur ( und ))

- Semikolon (fur ;)

Weitere Phasen des Compilers bauen dann auf der Ausgabe der lexikalischen Analyse, alsoder Zuweisung von Tokenklassen, auf. Die lexikalische Analyse wird meist durch endliche Au-tomaten implementiert, da die Erkennung von Tokenklassen durch

”links-nach-rechts“ Lesen

des Programms moglich ist.

Neben den Eigenschaften des Maschinenmodells, bzw. der Sprachenklasse und den allerdingsnur eingeschrankten algorithmischen Anwendungen sind endliche Automaten in der Modellie-rung wesentlich. Wir haben ein erstes Beispiel bereits in der Kindersicherung eines Fernseherskennengelernt. Hier ist ein zweites Beispiel.

Beispiel 2.4 Modellierung sequentieller Schaltungen.

Bei einer sequentiellen Schaltung, im Gegensatz zu einer kombinatorischen Schaltung, hangtder Wert am Ausgang der Schaltung nicht nur von den aktuellen Eingangswerten ab, sondernauch von der Vorgeschichte, die sich im Inhalt der speichernden Bauteile niedergeschlagenhat. Der systematische Aufbau einer solchen Schaltung ist dabei wie folgt:

Speicher

kombinatorisch

Takt

Wir modellieren die Schaltung durch einen Mealy Automaten. (Ein Mealy Automat ist einendlicher Automat, der fur jeden Zustandsubergang eine Ausgabe ausgibt.) Wir wahlen alsEingabealphabet die Menge 0, 1n, wenn n die Zahl der primaren Eingange ist. Wenn derSpeicher s Bits speichert, dann benutzen wir die Zustandsmenge

Q = qb1···bs | b1, . . . , bs ∈ 0, 1 .

Page 20: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

18 KAPITEL 2. ENDLICHE AUTOMATEN

Angenommen der Inhalt des Speichers ist b und eine Eingabe x ∈ 0, 1n liegt an. Wenndie Schaltung den neuen Speicher c sowie die Ausgabe y produziert, dann wahlen wir denZustandsubergang qb

x→ qc und weisen diesem Zustandsubergang die Ausgabe y zu.

Eine Zustandsminimierung des Mealy Automaten fuhrt zu einer Verkleinerung des Speichers,denn die Speichergroße ist logarithmisch in der Zustandszahl. Man beachte allerdings, dassdiese Modellierung fur grosses n nicht praktikabel ist und man wird diesen Ansatz, bzw.Erweiterungen wie OBDD’s (ordered binary decision diagrams) nur fur kleine Teilschaltungenanwenden konnen.

Wir werden das Minimierungsproblem im nachsten Kapitel angehen und losen. Weitere Fra-gen, die wir in nachfolgenden Abschnitten besprechen, sind:

- Wann ist eine Sprache nicht regular?

- Welche Sprachen werden von nichtdeterministischen endlichen Automaten akzeptiert?

- Welche — endliche Automaten betreffende — Fragen lassen sich effizient beantworten?

Letztendlich lernen wir alternative Charakterisierungen regularer Sprachen mit regularenGrammatiken und regularen Ausdrucken kennen.

Aufgabe 7Entwirf fur folgende Sprachen deterministische endliche Automaten mit moglichst wenigen Zustanden:

(a) Ln = w| w ∈ 0, 1∗ und w hat mindestens n Einsen .

(b) Ln = ww| w ∈ 0, 1n.

(c) L = w| w ∈ 0, 1∗ und die Anzahl der Einsen in w ist durch 7 teilbar.

Aufgabe 8Entwirf einen deterministischen endlichen Automaten fur folgende Sprachen:

L1 =

w|w ∈ 0, 1, 2, 3, 4∗ und 3 teilt∑|w|

i=1 wi5i−1.

L2 =

w|w ∈ 0, 1, 2, 3, 4∗ und 3 teilt∑|w|

i=1 wi5|w|−i.

Aufgabe 9Die Sprache (IF − STATEMENT ) wird wie folgt rekursiv definiert:

IF − STATEMENT = if EXPRESSION then STATEMENT

EXPRESSION definieren wir als:

EXPRESSION = A, . . . Z+ ≥ 0

und STATEMENT wird wie folgt definiert:

STATEMENT = IF − STATEMENT ∪ A, . . . , Z+ = 0

Zeige, dass die Sprache IF − STATEMENT regular ist.

Gibt es Schwierigkeiten im Nachweis der Regularitat, wenn wir die rekursive Definition wie folgt verandern

IF − STATEMENT = if EXPRESSION then STATEMENT ;

Aufgabe 10Beweise oder widerlege:

(a) Zu jeder regularen Sprache L gibt es einen endlichen Automat A mit genau einem akzeptierendemZustand und L = L(A).

(b) Falls L′ ⊆ L und L regular ist, dann ist auch L′ regular.

Page 21: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.1. MINIMIERUNG ENDLICHER AUTOMATEN 19

2.1 Minimierung endlicher Automaten

Das Ziel dieses Kapitels ist die Konstruktion eines effizienten Algorithmus zur Minimierungendlicher Automaten.

Beispiel 2.5 Wir behaupten, dass die Sprache

L = a, b∗ abregular ist. Wir entwerfen dazu einen endlichen Automaten, der sich die beiden letzten gele-senen Buchstaben in seinen Zustanden merkt. Unser Automat hat die Komponenten

• Σ = a, b• Q = ε, a, b, aa, ab, ba, bb• q0 = ε und F = ab.

Sein Programm beschreiben wir durch das Zustandsdiagramm

bb

b

ba

a

aa ab

3

a

a

aa bb

b

b ba

b

a b

a

Dieser Automat merkt sich tatsachlich die beiden letzten Buchstaben, denn es gilt

δ(ε, w) = z ⇔ (|w| ≤ 1 und w = z) oder

(|z| = 2 und w = w′z)

Diese Aussage kann man zum Beispiel durch Induktion uber die Lange der Eingabe w ve-rifizieren. Ist dieser Automat auch minimal, d.h. hat der Automat die kleinste Anzahl vonZustanden unter allen Automaten, die Σ∗ab akzeptieren?

Die Antwort ist nein! Ist zum Beispiel a der zuletzt gelesene Buchstabe, dann ist es uninter-essant, was der vorletzte Buchstabe war. Dies außert sich im Zustandsdiagramm daran, dassdie Zustande a und aa unter dem Buchstaben a wie auch unter dem Buchstaben b diesel-ben Nachfolgerzustande (namlich aa und ab) erreichen. Die Zustande a und aa konnen alsoverschmolzen werden. Das Gleiche trifft auch fur die Zustande b und bb zu: Auch sie konnenverschmolzen werden. Wir erreichen also das neue Zustandsdiagramm

a

3

a b

ab ba

aa

b

a

b

b

b b

a

Page 22: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

20 KAPITEL 2. ENDLICHE AUTOMATEN

Jetzt stellen sich die Zustande a und ba als aquivalent heraus, da beide Zustande nicht ak-zeptierend und die Nachfolgezustande identisch sind. Nach Verschmelzung ergibt sich dasZustandsdiagramm

a

3

a b

ab

aa

b b

b ba

und plotzlich stellen sich ε und b als aquivalent heraus. Nach ihrer Verschmelzung haben wirsomit den Automaten

b

3

a

aa

aba

b

b

Ist dieser Automat minimal?

Gegeben sei ein endlicher Automat A = (Q,Σ, δ, q0, F ). Alle Zustande, die vom Anfangszu-stand q0 aus nicht erreichbar sind, heißen uberflussig.

Als ersten Schritt des Minimierungsalgorithmus entfernen wir alle uberflussigen Zustande.Dies konnen wir zum Beispiel durch eine Tiefensuche erreichen, die im Startzustand beginnt.Alle nicht besuchten Zustande sind uberflussig. (Da der Automat |Q| Knoten mit jeweils |Σ|ausgehenden Kanten besitzt, findet eine Tiefensuche alle nicht-uberflussigen Zustande in ZeitO(|Q| · |Σ|).)Wir nehmen nun an, dass der zu minimierende Automat keine uberflussigen Zustande besitzt.Wir haben bereits im letzten Beispiel gesehen, dass ein Automat ohne uberflussige Zustandenicht minimal sein muß.

Im letzten Beispiel haben wir auch einen ersten Ansatz zum Zusammenfassen von Zustandenkennengelernt: Wir haben zwei Zustande p und q aquivalent genannt, wenn p und q beidezu F (oder beide zum Komplement von F ) gehoren und wenn δ(p, a) = δ(q, a) fur alleBuchstaben a ∈ Σ gilt. Aquivalente Zustande konnen wir offensichtlich zu einem einzigenZustand verschmelzen.

Wird dieses Verfahren stets zu einem minimalen Automaten fuhren?

Die Antwort ist leider nein.

Beispiel 2.6 Wir betrachten die Sprache

L = a, b+ bb a, b∗.

L kann von dem Automaten mit

Page 23: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.1. MINIMIERUNG ENDLICHER AUTOMATEN 21

• Zustandsmenge Q = ε, a1, a2, b1, b2, bb,

• Anfangszustand ε,

• F = bb

und Zustandsdiagramm

3

1a

a2

b1

b2

bba,b

a

b

a

a

a

a

b

b

b

b

akzeptiert werden. Beachte, dass keine zwei Zustande (gemaß unserer Definition) aquivalentsind. Aber dieser Automat ist nicht minimal: Die Zustande a1, a2 und b1, b2 konnen ver-schmolzen werden, und der folgende Automat ist aquivalent zu

n n n n- --

? ?

ε x b bb

a,b ba a,b

ba

Unsere Definition aquivalenter Zustande ist also zu restriktiv: Die Zustande a1 und a2 hattenals aquivalent bezeichnet werden sollen, denn von a1 wie auch von a2 erreichen wir genau danneinen akzeptierenden Zustand, wenn aufeinanderfolgende b’s erhalten werden. Von diesemStandpunkt aus gesehen unterscheiden sich a1 und a2 also nicht.

Definition 2.2 Die Verschmelzungsrelation.

A = (Q,Σ, δ, q0, F ) sei ein endlicher Automat. Wir sagen, dass die Zustande p, q ∈ Q aqui-valent sind (geschrieben p ≡A q) genau dann, wenn fur alle w ∈ Σ∗

δ(p,w) ∈ F ⇔ δ(q, w) ∈ F.

gilt. Mit anderen Worten, wir nennen Zustande p, q ∈ Q aquivalent, wenn p und q sich nichtunterscheiden, wenn es

”ums Akzeptieren geht“.

Kehren wir zuruck zum letzten Beispiel. Wir erhalten a1 ≡A a2 und b1 ≡A b2. Konnen wirweitere Paare aquivalenter Zustande entdecken? Diesmal ist die Antwort nein; denn

Behauptung: ε 6≡A x

Dies folgt, da δ(x, bb) ∈ F , aber δ(ε, bb) /∈ F .

Behauptung: ε 6≡A b

denn δ(ε, b) /∈ F , aber δ(b, b) ∈ F .

Behauptung: x 6≡A b

Page 24: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

22 KAPITEL 2. ENDLICHE AUTOMATEN

denn δ(x, b) /∈ F , aber δ(b, b) ∈ F .

Der Zustand bb ist trivialerweise nicht aquivalent zu einem der anderen Zustande, da er dereinzige akzeptierende ist. (Somit gilt z.B. x 6≡A bb, denn δ(x, ε) = x /∈ F aber δ(bb, ε) = bb ∈F .)

Lemma 2.3 Fur jeden endlichen Automaten A ist die Relation ≡A

- reflexiv, d.h. es ist q ≡A q fur alle Zustande q von A,

- symmetrisch, d.h. fur alle Zustande p und q von A gilt p ≡A q genau dann, wenn q ≡A pgilt und

- transitiv, d.h. fur alle Zustande p, q und r folgt aus p ≡A q und q ≡A r stets p ≡A r.

Also ist ≡A eine Aquivalenzrelation.

Beweis: Ubungsaufgabe.

2.1.1 Der Aquivalenzklassenautomat

Konnen wir aquivalente Zustande verschmelzen, und wenn ja, wie? Die folgende Definitiongibt das Rezept:

Definition 2.4 A = (Q,Σ, δ, q0, F ) sei ein endlicher Automat.

(a) Fur Zustand p ∈ Q bezeichnet

[p] =

q ∈ Q | p ≡A q

die Aquivalenzklasse von p.

(b) Wir definieren den Aquivalenzklassenautomaten A′ fur A. A′ besitzt

• die Zustandsmenge Q′ =

[p] | p ∈ Q

,

• den Anfangszustand [q0],

• und F ′ =

[p] | p ∈ F

als Menge der akzeptierenden Zustande.

Das Programm δ′ definieren wir durch

δ′([p], a) = [δ(p, a)].

Funktioniert diese Definition stets? Das heißt, ist der Automat A′ aquivalent zu A? Ist derAutomat uberhaupt wohldefiniert?

Satz 2.5 Der Aquivalenzklassenautomat A′ ist wohldefiniert und aquivalent zu A, d.h. es giltL(A) = L(A′)).

Page 25: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.1. MINIMIERUNG ENDLICHER AUTOMATEN 23

Beweis: Warum ist die Wohldefiniertheit von A′ nicht sofort klar? Wir haben

δ′([p], a) = [δ(p, a)]

gesetzt. Angenommen, p und q sind aquivalent. Dann haben wir ein ganz großes Problem,falls

[δ(p, a)] 6= [δ(q, a)]

gilt. In diesem Fall hangt unsere Definition namlich von der Wahl des Reprasentanten derAquivalenzklasse [p] ab! Aber wir brauchen uns keine Sorgen zu machen: Wenn p und qaquivalent sind, dann gilt fur alle w ∈ Σ∗,

δ(p,w) ∈ F ⇔ δ(q, w) ∈ F.

Insbesondere folgt fur alle w ∈ Σ∗,

δ(p, aw) ∈ F ⇔ δ(q, aw) ∈ F.

Es ist

δ(p, aw) = δ(δ(p, a), w) und

δ(q, aw) = δ(δ(q, a), w).

Damit folgt fur alle w ∈ Σ∗

δ(δ(p, a), w) ∈ F ⇔ δ(δ(q, a), w) ∈ F

und wir erhalten

δ(p, a) ≡A δ(q, a),

als Konsequenz.

Wir haben Wohldefiniertheit gezeigt, sind A und A′ aber auch aquivalent? Wir vergleichenBerechnungen von A und A′. Sei w ∈ Σ∗ eine Eingabe.

Behauptung:

δ′([q0], w) = [δ(q0, w)].

Wir fuhren einen induktiven Beweis uber die Lange von w. Aus der Definition folgt δ′([q0], a) =[δ(q0, a)] fur jeden Buchstaben a: Wir haben die Induktionsbasis nachgewiesen. Fur den In-duktionsschritt beachten wir zuerst, dass

δ′([q0], w1 · · ·wn) = δ′(

δ′([q0], w1 · · ·wn−1), wn

)

aus der Arbeitsweise des endlichen Automaten A folgt. Wir konnen induktiv annehmen, dassδ′([q0], w1 · · ·wn−1) = [δ(q0, w1 · · ·wn−1)] gilt. Wenn also p = δ(q0, w1 · · ·wn−1) ist, dann folgt

δ′([q0], w1 · · ·wn) = δ′(

δ′([q0], w1 · · ·wn−1), wn

)

= δ′([p], wn)

= [δ(p,wn)],

wobei wir im letzten Schritt wieder die Wohldefiniertheit angewandt haben. Und das war zuzeigen.

Page 26: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

24 KAPITEL 2. ENDLICHE AUTOMATEN

Wir zeigen zuerst die Inklusion L(A) ⊆ L(A′). Sei w ∈ L(A). Dann ist δ(q0, w) ∈ F und alsKonsequenz folgt δ′(q0, w) = [δ(q0, w)] ∈ F ′.

Nun zum Beweis der umgekehrten Inklusion L(A′) ⊆ L(A). Sei w ∈ L(A′). Dann ist δ′([q0], w) =[δ(q0, w)] und [δ(q0, w)] ∈ F ′. Wir mussen also zeigen, dass δ(q0, w) ∈ F gilt.

Nach Definition von F ′ gilt δ(q0, w) ≡A p fur einen Zustand p ∈ F . Gemaß der Definition derAquivalenzrelation ≡A folgt aber insbesondere

δ(δ(q0, w), ε) ∈ F ⇔ δ(p, ε) ∈ F.

Das letztere ist der Fall, da p ∈ F . Und somit ist δ(δ(q0, w), ε) ∈ F , und δ(q0, w) muß einakzeptierender Zustand sein. Also ist w ∈ L(A).

Wir haben das Minimierungsproblem gelost, wenn

- wir den Aquivalenzklassenautomaten effizient berechnen konnen und

- zeigen konnen, dass der Aquivalenzautomat minimal ist.

Wir beginnen mit dem Problem der effizienten Berechnung des Aquivalenzklassenautomats.

Anstatt Aquivalenz von Zustanden zu zeigen, versuchen wir, Nicht-Aquivalenz nachzuweisen.Insbesondere versuchen wir fur jedes Paar p, q von nicht-aquivalenten Zustanden einenZeugen w ∈ Σ∗ zu finden. Dieser Zeuge muß die Eigenschaft

(1) δ(p,w) ∈ F und δ(q, w) /∈ F oder

(2) δ(p,w) /∈ F und δ(q, w) ∈ F

besitzen. Die folgende Beobachtung erleichtert das Auffinden von Zeugen: Wenn die Zustandeδ(p, a) und δ(q, a) nicht aquivalent sind (mit dem Zeugen w), dann sind auch p und qnicht aquivalent (mit dem Zeugen aw). (Denn wenn zum Beispiel δ(δ(p, a), w) ∈ F undδ(δ(q, a), w) /∈ F , dann ist δ(p, aw) = δ(δ(p, a), w) ∈ F und δ(q, aw) = δ(δ(q, a), w) /∈ F .)

Wir konnen jetzt einen Algorithmus zur Bestimmung aquivalenter Zustande bereits skizzieren.Der Algorithmus beginnt mit der Markierung aller Paare

p, q

mit p ∈ F und q /∈ F (bzw. p /∈ F und q ∈ F ) als nicht-aquivalent. Alle solchen Paarebestehen offensichtlich aus nicht-aquivalenten Zustanden, da

δ(p, ε) ∈ F und δ(q, ε) /∈ F (bzw. δ(p, ε) /∈ F und δ(q, ε) ∈ F ) ist.

Jetzt wird versucht, alle Konsequenzen markierter Paare zu bestimmen. Das heißt,

wenn p = δ(p′, a) und q = δ(q′, a) markiert sind, dann durfen wir auch p′ und q′

markieren.

Wie konnen wir einen solchen Markierungsprozeß leicht durchfuhren? Wir bauen einen Gra-phen G. Die Knoten von G entsprechen Paaren verschiedener Zustande. Wir fugen eine Kante

p, q → p′, q′

Page 27: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.1. MINIMIERUNG ENDLICHER AUTOMATEN 25

genau dann ein, wenn es einen Buchstaben a ∈ Σ gibt mit

p = δ(p′, a) und q = δ(q′, a).

Jetzt laßt sich der Markierungsprozeß durchfuhren, indem wir eine Tiefensuche auf denanfanglich markierten Paaren ausfuhren! Die formale Beschreibung folgt:

Initialisierung: Bestimme die Adjazenzlisten-Darstellung von G. Markiere alle Paare p, qfur die entweder (p ∈ F und q /∈ F ) oder (p /∈ F und q ∈ F ) gilt.Berechnung: Fuhre eine Tiefensuche durch, die

von markierten (und bisher nicht besuchten) Knoten aus aufgerufen wird und

jeden besuchten Knoten markiert.

Ausgabe: Die Aquivalenzklasse von p wird als die Menge

q ∈ Q | p, q wurde nicht markiert

ausgegeben.

Satz 2.6 Der obige Algorithmus bestimmt alle Aquivalenzklassen in Zeit

O(

|Q|2 · |Σ|)

Beweis: Wir beginnen mit einem Korrektheitsbeweis. Zuerst beachten wir, dass fur aquiva-lente Zustande p und q das Paar p, q nicht markiert wird, denn unser Markierungsprozeßfuhrt von nicht-aquivalenten Zustanden auf nicht-aquivalente Zustande. Es ist also nur zuklaren, dass jedes Paar nicht-aquivalenter Zustande auch tatsachlich markiert wird.

Angenommen, es gibt nicht-aquivalente Zustande p und q, die nicht markiert werden. Wirwahlen unter allen nicht-aquivalenten, nicht markierten Zustanden ein Paar p′, q′ mit kur-zestem Zeugen w. Es gelte zum Beispiel δ(p′, w) ∈ F und δ(q′, w) /∈ F . Offensichtlich istw 6= ε, denn Paare mit Zeugen ε werden anfangs markiert.

Fur w = aw′ sind auch die Zustande δ(p′, a) und δ(q′, a) nicht-aquivalent, denn δ(δ(p′, a), w′) ∈F und δ(δ(q′, a), w′) /∈ F . Diese beiden Zustande besitzen aber einen kurzeren Zeugen w′ undsind deshalb markiert. Aber dann markiert unsere Markierungsstrategie auch p′ und q′, einWiderspruch zur Annahme.

Wir kommen zur Laufzeitbestimmung. Die Initialisierung gelingt in Zeit O(

|Q|2 · |Σ|)

, denn

der Graph G besitzt(|Q|

2

)

= Θ(

|Q|2)

Knoten und hochstens

(|Q|2

)

· |Σ|

Kanten. Die Berechnung erfolgt durch Tiefensuche. Da Tiefensuche in Zeit linear in der Sum-me von Knotenanzahl und Kantenanzahl verlauft, benotigt die Berechnung also hochstens

O(

|Q|2 + |Q|2 · |Σ|)

= O(

|Q|2 · |Σ|)

viele Schritte. Die Ausgabe kann schließlich in Zeit O(

|Q|2)

erbracht werden.

Wir sind der Losung des Minimierungsproblems also einen wesentlichen Schritt naher gekom-men. Wir kommen jetzt zum letzten, aber wichtigsten Problem: Ist der Aquivalenzklassenau-tomat minimal?

Page 28: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

26 KAPITEL 2. ENDLICHE AUTOMATEN

2.1.2 Die Nerode-Relation

Wie konnte ein minimaler Automat A fur eine Sprache L aussehen? Wir reprasentieren einenZustand p von A mit einem beliebigen Wort xp ∈ Σ∗, das p vom Anfangszustand aus erreicht,d.h. fur das δ(q0, xp) = p gilt. Aus der Diskussion des Aquivalenzklassenautomaten A′ von Ahaben wir gelernt, dass A nicht minimal ist, wenn A zwei oder mehr aquivalente Zustandebesitzt. Mit anderen Worten, fur je zwei verschiedene Zustande p und q darf

xpw ∈ L ⇔ xqw ∈ L

nicht fur alle Worte w ∈ Σ∗ gelten.

Definition 2.7 Sei L eine Sprache uber Σ. Die Nerode-Relation ≡L fur Worte in Σ∗ wirdwie folgt definiert: x ≡L y gilt genau dann, wenn fur alle Worte w ∈ Σ∗ gilt

xw ∈ L ⇔ yw ∈ L.

Den Index von L definieren wir als die Anzahl der Aquivalenzklassen von ≡L.

Hier ist der Clou: Wir bauen aus der Nerode-Relation einen minimalen endlichen Automaten,den Nerode-Automaten, indem wir die Aquivalenzklassen von ≡L als Zustandsmenge benut-zen.Damit ist der Index von L nichts anderes als die Anzahl der Zustande eines minimalenendlichen Automaten. Wir werden dann den Aquivalenzklassenautomaten mit dem Nerode-Automaten vergleichen und feststellen, dass beide identisch sind. Und damit ist auch dasletzte Problem aus dem Wege geraumt.

Zuerst zeigen wir, dass der Index von L eine untere Schranke fur die Zustandsanzahl einesAutomaten A mit L = L(A) ist.

Satz 2.8 Es gelte L = L(A) fur einen endlichen Automaten A.

(a) Wenn Worte x und y auf denselben Zustand von A fuhren, d.h. wenn δ(q0, x) = δ(q0, y)gilt, dann ist x ≡L y.

(b) Sei Q die Zustandsmenge von A. Dann gilt |Q| ≥ Index von L.

Beweis (a): Wir mussen zeigen, dass

xw ∈ L ⇔ yw ∈ L

fur alle w ∈ Σ∗ gilt. Da δ(q0, x) = δ(q0, y), folgt δ(q0, xw) = δ(q0, yw) fur jedes Wort w. Somitgilt

xw ∈ L ⇔ δ(q0, xw) ∈ F⇔ δ(q0, yw) ∈ F

⇔ yw ∈ L.

(b) Wir erhalten zwei Aquivalenzrelationen auf allen Worten uber Σ, namlich die Nerode-Relation ≡L und eine zweite Aquivalenzrelation RA, die zwei Worte x und y aquivalent nennt,wenn δ(q0, x) = δ(q0, y) gilt. Beachte, dass die Anzahl der Aquivalenzklassen von RA mit derAnzahl der Zustande von A ubereinstimmt.

Wenn x und y bezuglich RA aquivalent sind, wenn also x und y denselben Endzustand in Aerreichen, dann wissen wir nach Teil (a), dass x und y Nerode-aquivalent sind. Also sind alleNerode-Aquivalenzklassen Vereinigungen von Aquivalenzklassen von RA. Dann besitzt RAaber mindestens so viele Aquivalenzklassen wie die Nerode-Relation und |Q| ist mindestensso groß wie der Index von L.

Page 29: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.1. MINIMIERUNG ENDLICHER AUTOMATEN 27

Beispiel 2.7 Wir betrachten die Sprache

Lm = w ∈ 0, 1∗ |∑

i

wi ist durch m teilbar.

Wie sehen die Aquivalenzklassen der Nerode-Relation von Lm aus? Es ist

x ≡Lm y ⇔ fuer alle w ∈ 0, 1∗ : (xw ∈ Lm ⇔ yw ∈ Lm)

⇔∑

i

xi ≡∑

i

yi mod m.

Also hat ≡Lm genau m Aquivalenzklassen, die den m Restklassen modulo m entsprechen: DieReprasentanten dieser Restklassen sind ε, 1, 12, . . . , 1m−1. Wir bauen jetzt einen minimalenendlichen Automaten mit Zustandsmenge [ε], [1], [12], . . . , [1m−1], wobei [x] die Nerode-Aqui-valenzklasse des Worts x bezeichnet.

• [ε] ist der Startzustand: Bisher haben wir noch keine Eins gelesen.

• [ε] ist auch unser einziger akzeptierender Zustand, denn fur jeden anderen Zustand [1i]ist die Anzahl i der gelesenen Einsen nicht durch m teilbar.

• Mit Hilfe der Uberfuhrungsfunktion δ zahlen wir die Anzahl der Einsen modulo m:

δ([ε], 0) = [ε], δ([ε], 1) = [1]

δ([1i], 0) = [1i], δ([1i], 1) = [1i+1].

Man beachte, dass fur jedes a ∈ 0, 1 stets δ([x], a) = [xa] gilt.

Wegen Satz 2.8 (b) ist unser Automat optimal, denn wir kommen mit Index(Lm) vielenZustanden aus!

Wir bezeichnen im folgenden die Aquivalenzklasse von x gemaß ≡L mit [x].

Der Nerode-Automat NL fur L:

• Die Zustande von NL sind die Aquivalenzklassen von ≡L.

• Anfangszustand ist [ε],

• die Menge der akzeptierenden Zustande ist

F =

[x] |x ∈ L

• das Programm ist definiert durch

δ([x], a) = [xa].

Satz 2.9 L = L(NL), und NL ist minimal: Jeder Automat, der L akzeptiert, hat mindestensso viele Zustande wie NL.

Page 30: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

28 KAPITEL 2. ENDLICHE AUTOMATEN

Beweis: Unser Vorgehen ahnelt dem Vorgehen bei der Betrachtung des Aquivalenzklassen-automaten. Zuerst uberprufen wir, ob NL wohldefiniert ist.

Die Gefahr ist, dass [x] = [y] und [xa] 6= [ya] gilt. In diesem Fall hangt die Definition von δvon der Wahl eines Reprasentanten ab. Wir nehmen an, dass [x] = [y] gilt. Dann folgt furalle w ∈ Σ∗

xw ∈ L ⇔ yw ∈ L.

Sei a ∈ Σ ein beliebiger Buchstabe. Dann gilt fur alle w′ ∈ Σ∗

xaw′ ∈ L ⇔ yaw′ ∈ L,

und dies bedeutet, dass [xa] = [ya].

Im nachsten Schritt zeigen wir, dass

x ∈ L ⇔ [x] ∈ F

fur jedes Wort x ∈ Σ∗ gilt. Dies folgt aus

[x] ∈ F ⇔ Es gibt y ∈ L mit [x] = [y].

⇔ Es gibt y ∈ L, so dass x und y zum selben (akzeptierenden)

Zustand fuhren.

⇔ x ∈ L.

Wir kommen jetzt zum Nachweis von L = L(NL). Sei x = x1 · · · xn ∈ Σn. Dann gilt, mitStartzustand [ε],

δ([ε], x1 · · · xn) = δ(δ([ε], x1), x2 · · · xn)= δ([εx1], x2 · · · xn)= δ([x1], x2 · · · xn)= δ([x1x2], x3 · · · xn)= δ([x1 · · · xn−1], xn)

= [x1 · · · xn]= [x]

und wir erhalten

NL akzeptiert x ⇔ [x] ∈ F⇔ x ∈ L.

Die Minimalitat von NL ist eine direkte Konsequenz von Satz 2.8 (2).

Wir bringen als nachstes die Ernte ein:

Satz 2.10 Satz von Nerode.

(a) Sei L regular. Dann stimmt die Anzahl der Zustande des minimalen endlichen Automa-ten fur L mit dem Index von L uberein.

Page 31: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.1. MINIMIERUNG ENDLICHER AUTOMATEN 29

(b) L ist genau dann regular, wenn der Index von L endlich ist.

Beweis (a): Nach Satz 2.9 ist der Nerode-Automat NL minimal. Die Behauptung folgt, dadie Anzahl der Zustande von NL mit dem Index von L ubereinstimmt.

(b)”⇒“ Wenn L regular ist, dann gibt es einen endlichen Automaten A mit L = L(A). Nach

Satz 2.8 gilt

Index(L) ≤ |Q| <∞

”⇐“ Wenn der Index von L endlich ist, dann hat NL endlich viele Zustande. NL ist also einendlicher Automat. Da L = L(NL), muß L eine regulare Sprache sein.

Als eine erste Konsequenz des Satzes von Nerode konnen wir Aussagen uber nicht regulareSprachen machen, da L genau dann icht regular ist, wenn der Index von L unendlich ist.

Beispiel 2.8 Die Sprache L = an bn |n ∈ N ist nicht regular, da der Index von L unendlichist: Es ist an 6≡L a

m fur n 6= m, da an bn ∈ L, aber am bn /∈ L.

Die Minimalitat des Aquivalenzklassenautomaten ist eine zweite Konsequenz.

Satz 2.11 Der endliche Automat A sei vorgegeben, wobei A keine uberflussigen Zustandebesitzt. Dann ist der Aquivalenzklassenautomat A′ minimal.

Beweis: Sei A′ = (Q,Σ, δ, q0, F ) der Aquivalenzklassenautomat von A. Wir werden zeigen,dass

x ≡L y ⇔ δ(q0, x) = δ(q0, y) (2.1)

gilt. Mit anderen Worten, die Menge aller Eingaben, die einen fixierten Zustand q im Aqui-valenzklassenautomaten erreichen, stimmt mit einer Aquivalenzklasse der Nerode-Relationuberein. Damit stimmt aber auch die Zustandszahl des Aquivalenzklassenautomaten mit demIndex von L uberein und wir haben die Minimalitat von A′ verifiziert.

Wir verifizieren (2.1):

x ≡L y ⇔ ∀w ∈ Σ∗(

xw ∈ L ⇔ yw ∈ L)

⇔ ∀w ∈ Σ∗(

δ(q0, xw) ∈ F ⇔ δ(q0, yw) ∈ F)

⇔ ∀w ∈ Σ∗(

δ(δ(q0, x), w) ∈ F ⇔ δ(δ(q0, y), w) ∈ F)

⇔ δ(q0, x) ≡A′ δ(q0, y).

Da A′ der Aquivalenzklassenautomat ist, sind seine Aquivalenzklassen einelementig, und wirerhalten

x ≡L y ⇔ δ(q0, x) = δ(q0, y).

Page 32: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

30 KAPITEL 2. ENDLICHE AUTOMATEN

Bemerkung 2.1 Der Beweis hat sogar mehr gezeigt. Die Aquivalenz (2.1) besagt namlich,dass Aquivalenzklassenautomat und Nerode-Automat isomorph sind, d.h. dass beide Automa-ten bis auf Umbenennung der Zustande ubereinstimmen. Bis auf Umbenennung der Zustandegibt es also genau einen minimalen Automaten.

Wir konnen das Minimierungsproblem also wie folgt losen. Der endliche Automat A sei vor-gegeben.

1. Entferne alle uberflussigen Zustande.

2. Konstruiere den Aquivalenzklassenautomaten.

Beispiel 2.9 Der Automat A mit Zustandsdiagramm

0 1 2 3 4 5

1

01

0

01 11 0

0

akzeptiert die Sprache

L =

w ∈ 0, 1∗∣

|w|∑

i=1

wi 2|w|−i ≡ 0 (6)

,

also die Menge der Binardarstellungen von Zahlen, die kongruent 0 modulo 6 sind.

Als erstes uberprufen wir mittels Tiefensuche vom Anfangszustand 0 aus, dass A keine uber-flussigen Zustande besitzt. Sodann berechnen wir A′. Zuerst erkennen wir, dass Zustand 0

der einzige akzeptierende Zustand und damit nicht aquivalent zu einem anderen Zustand ist.Wir konnen also alle Paare 0 , 1 , 0 , 2 , 0 , 3 , 0 , 4 und 0 , 5 markieren. UnserMarkierungsalgorithmus stellt fest, dass 0 = δ( 3 , 0) und markiert die Paare 3 , 1 , 3 , 2 , 3 , 4 und 3 , 5 (denn zum Beispiel δ( 1 , 0) = 2 und 0 6≡A

2 ). Damit bildet auch Zustand3 seine eigene Aquivalenzklasse.

Zustand 3 wird von den Zustanden 4 und 1 unter dem Buchstaben 1 erreicht, undwir markieren die Paare 1 , 2 , 4 , 2 , 1 , 5 und 4 , 5 . Weitere Paare konnen nichtmarkiert werden, und somit erhalten wir, dass nur die Zustande 1 und 4 sowie 2 und 5

aquivalent sind. Der minimale Automat wird somit durch das Zustandsdiagramm

0

1

10 1 2 3

0

1

0

0

gegeben.

Page 33: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.1. MINIMIERUNG ENDLICHER AUTOMATEN 31

Beispiel 2.10 Das Pattern Matching Problem.

Das Pattern-Matching Problem ist zentral fur den Entwurf von Editoren. Fur ein gegebenesPattern P ∈ Σ∗ ist zu entscheiden, ob und wo P als Teilwort einer Datei T ∈ Σ∗ vorkommt.Wir fixieren P und betrachten die Sprache

LP = T ∈ Σ∗ | P ist ein Suffix von T .

Der Sprache LP entspricht der regulare Ausdruck Σ∗ P. Da wir spater zeigen, dass eineSprache mit regularem Ausdruck selbst regular ist, gibt es somit einen endlichen AutomatenAP , der LP akzeptiert. Also konnen wir das Pattern-Matching Problem losen, indem wir denAutomaten AP auf die Eingabe T ansetzen und genau die Prafixe von T feststellen, fur diesich Ap in einem akzeptierenden Zustand befindet.

Wie wird der Automat AP aussehen? Das Pattern P = P1 · · ·Pn habe n Buchstaben. Dannverwenden wir als Zustandsmenge die Menge

(0, ε), (1, P1), (2, P2), . . . , (n, Pn),

wobei (0, ε) der Anfangszustand und (n, Pn) der einzige akzeptierende Zustand ist. Zustands-ubergange sind so einzusetzen, dass

eine Eingabe T genau dann den Zustand (i, Pi) als letzten Zustand erreicht, wennP1 · · ·Pi der langste Prafix von P ist, der auch Suffix von T ist.

Wenn eine Eingabe zum Beispiel den Zustand (i, Pi) erreicht hat und wenn Q = Pi+1 dernachste Buchstabe der Eingabe ist, dann ist zum Zustand (i + 1, Pi+1) zu wechseln. Ist dernachste Buchstabe Q hingegen nicht Pi+1, dann mussen wir den langsten Prafix von P be-stimmen, der auch Suffix von P1 · · ·PiQ ist. Endet der langste Prafix in Position j, ist einZustandsubergang von (i, Pi) nach (j, Pj) mit Buchstaben Q einzusetzen.

Wenn AP bekannt ist, dann kann das Pattern-Matching Problem in Linearzeit O(|T |) gelostwerden! Schneller geht’s nimmer. Tatsachlich ist AP auch ein minimaler Automat:

Aufgabe 11Es sei Σ ein endliches Alphabet und P ein Wort aus Σ∗. Wir definieren die

”Suffix-Sprache“ LP = T ∈

a, b∗ | P ist ein Suffix von T. Beschreibe die Aquivalenzklassen der Nerode Relation von LP . Zeige, dassstets

Index(LP ) ≥ |P |+ 1

gilt.

(Also ist der Automat AP minimal, da AP genau |P |+1 Zustande besitzt. Insbesondere gilt also Index(LP ) =|P |+ 1.)

Jetzt konnen wir auch die |P | + 1 Nerode-Aquivalenzklassen bestimmen: Fur jedes i (0 ≤i ≤ |P |) besteht die Nerode-Klasse P1 · · ·Pi aus allen Texten T , fur die P1 · · ·Pi der langstePrafix von P ist, der auch Suffix von T ist.

Aufgabe 12Ein Mealy-Automat ist ein endlicher Automat A, der fur jeden Zustandsubergang eine Ausgabe ausgibt. D.h.A ist durch den Vektor A = (Q,Σ,Γ, δ, λ, q0) gegeben, wobei λ : Q × Σ → Γ jedem Zustandsubergangeinen Buchstaben des Ausgabealphabets Γ zuweist. Als einziger Unterschied zu endlichen Automaten werdenalso Buchstaben aus Γ pro Zustandsubergang ausgegeben; die Komponenten Q,Σ, δ und q0 behalten ihreursprungliche Bedeutung. Die Ausgabe von A als Antwort auf die Eingabe a1a2 · · · an ist deshalb

λ(q0, a1)λ(q1, a2) · · ·λ(qn−1, an),

wobei q0, q1, . . . , qn−1 die Folge von Zustanden mit δ(qi−1, ai) = qi fur 1 ≤ i ≤ n ist.

Page 34: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

32 KAPITEL 2. ENDLICHE AUTOMATEN

Frage: Wie ist der Aquivalenzklassenautomat fur A zu definieren?

Aufgabe 13Minimiere den folgenden endlichen Automaten. (Das Eingabealphabet ist a, b, die Zustandsmenge istq0, . . . , q5, der Anfangszustand ist q0 und F = q0, q3 ist die Menge der akzeptierenden Endzustande.)

δ a b

q0 q0 q1q1 q5 q4q2 q3 q1q3 q3 q4q4 q2 q4q5 q0 q4

mjq0 mq1 mq2⇒ -b 6

a

6

b

HHHHHHHHHY

a

b

6

a

mq5 mq4 mjq3 b? a b

HHHHHHHHHj

a

?a

-b

Page 35: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.1. MINIMIERUNG ENDLICHER AUTOMATEN 33

Aufgabe 14Minimiere den folgenden Automaten:

b

b

a

ab

c c

a

a

ab

a

b

c

b

bc

c

q2

q3 q6

c

q1 q4

q5

q0

c

a

Aufgabe 15Gib die Aquivalenzklassen der folgenden Sprachen uber dem Alphabet Σ = 0, 1 bzgl. der Nerode-Relationan:

L1 = w ∈ Σ∗ | w besitzt mindestens⌈

|w|2

Einsen ,

L2 = w ∈ Σ∗ | 4 teilt Bin(w). (Fur eine Eingabe w = w1, . . . , wn bezeichne Bin(w) die durch w dargestellte

Binarzahl, d.h. Bin(w) =n∑

i=1

wi2n−i, sowie Bin(ε) = 0.)

Aufgabe 16Seien L,L1 und L2 Sprachen uber dem Alphabet Σ. Beweise oder widerlege:

(a) Index(L Σ∗) ≤ Index(L),

(b) Index(L1 ∩ L2) ≤ Index(L1) · Index(L2),

(c) Index(L1 L2) ≤ Index(L1) · Index(L2).

Aufgabe 17Bestimme zu gegebenem n zwei Sprachen L1 und L2, so dass die folgenden drei Bedingungen gelten:

1. Index(L1) ≥ n,

2. Index(L2) ≥ n und

3. Index(L1 ∩ L2) = Index(L1) · Index(L2)

Fazit: Die Zustandszahl wachst also im schlimmsten Fall unter Durchschnittsbildung multiplikativ an.

Aufgabe 18Sei Σ = (, ) das Alphabet aus offnender und schließender Klammer. Die Sprache K der legalen Klammer-ausdrucke ist die kleinste Sprache mit den folgenden Eigenschaften.

1. ε ∈ K

2. w ∈ K → (w) ∈ K

3. u ∈ K ∧ v ∈ K → u v ∈ K

Page 36: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

34 KAPITEL 2. ENDLICHE AUTOMATEN

Zeige, dass die Sprache K aller legalen Klammerausdrucke unendlichen Index hat.

Fazit: Damit ist also K keine regulare Sprache.

Aufgabe 19

Wir betrachten die Sprache L = 0(k2) | k ≥ 1 ist eine naturliche Zahl .

Zeige, dass die Nerode-Relation von L unendlichen Index hat (und die Sprache L somit nicht regular ist).

Aufgabe 20Gegeben seien die beiden Sprachen: L1 = w ∈ a, b∗ | ba ist Teilwort von w und L2 = w ∈ a, b∗ | ab istTeilwort von w.

Konstruiere einen minimalen deterministischen endlichen Automaten, der die Sprache L = L1 L2 erkennt.

2.2 Das Pumping-Lemma

Wir mochten Techniken entwickeln, um die Grenzen der Berechnungskraft endlicher Automa-ten festzustellen; d.h. um feststellen zu konnen, wann eine Sprache nicht regular ist.

Im letzten Kapitel haben wir bereits den Satz von Nerode kennengelernt: Der Index einerSprache L ist genau dann unendlich, wenn L ist nicht regular. Es ist jedoch nicht immereinfach, die Anzahl der Aquivalenzklassen bzgl. der Nerode-Relation zu bestimmen.

In diesem Kapitel lernen wir eine notwendige Bedingung fur regulare Sprachen kennen:

Satz 2.12 (Pumping-Lemma) Sei L regular. Dann gibt es eine Pumpingkonstante n, sodass jedes Wort z ∈ L mit |z| ≥ n eine Zerlegung mit den Eigenschaften

(a) z = uvw, |uv| ≤ n und |v| ≥ 1,

(b) uviw ∈ L fur jedes i ≥ 0

besitzt. (Wenn Worte der Sprache lang genug sind, dann gibt es ein nicht-leeres Teilwort v,das

”aufgepumpt“ (i ≥ 1) oder

”abgepumpt“ (i = 0) werden kann.)

Beweis: Da L regular ist, gibt es einen endlichen Automaten A, der L akzeptiert. Sei q0Anfangszustand und Q Zustandsmenge von A. Wir wahlen

n = |Q|als Pumping-Konstante. Sei z ∈ L mit z = z1z2 · · · zs und |z| = s ≥ n beliebig gewahlt. DerAutomat A durchlauft die Zustandsfolge

q0z1⇒ q1

z2⇒ q2z3⇒ · · · zn⇒ qn

zn+1⇒ · · · zs⇒ qs,

wobei qs ein akzeptierender Zustand ist. Nachdem A den Prafix z1z2 · · · zn von z gelesen hat,hat A n+1 Zustande durchlaufen. Ein Zustand qi muß also zweimal aufgetreten sein. Es gibtalso i, j, j 6= i, mit qi = qj. Demgemaß wahlen wir die Zerlegung (falls i < j)

u = z1 · · · zi, v = zi+1 · · · zj , w = zj+1 · · · zsDann ist |uv| ≤ n und |v| ≥ 1. Weiterhin gilt

δ(q0, u) = qi = qj = δ(q0, uv)

und deshalb akzeptiert A ebenfalls die Worte

uw, uv2w, uv3w, . . . , uviw, . . .

Page 37: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.2. DAS PUMPING-LEMMA 35

Wie zeigt man, dass eine Sprache L nicht regular ist? Wir mussen das Pumping Lemmafalsifizieren. Wenn L regular ist, dann

- gibt es eine (uns unbekannte) Pumpingkonstante n,

- so dass fur jedes Wort z ∈ L mit |z| ≥ n

- eine Zerlegung z = uvw mit |uv| ≤ n und |v| ≥ 1 gibt, so dass

uviw ∈ L

fur alle i ≥ 0 gilt.

Wie zeigt man also, dass die Sprache L nicht regular ist?

- Fur jedes mogliche n

- mussen wir ein Wort z ∈ L mit |z| ≥ n konstruieren,

- so dass fur jede mogliche Zerlegung z = uvw mit |uv| ≤ n und |v| ≥ 1

uviw 6∈ L

fur mindestens ein i ≥ 0 gilt.

Wir mussen also fur jede mogliche Zerlegung z = uvw ein i finden, so dass uviw /∈ L. Ist diesgelungen, haben wir einen Widerspruch zur Regularitat von L erhalten.

Beispiel 2.11 Wir zeigen, dass die Sprache aller Palindrome uber 0, 1, also

L =

w ∈ 0, 1∗ |w = wreverse

nicht regular ist. Wir folgen dem obigen Rezept.

- n sei die unbekannte Pumping-Konstante.

- Wir wahlen z = (01)n (10)n (und sichern damit |z| ≥ n).

- Fur jede Zerlegung z = uvw mit |uv| ≤ n und |v| ≥ 1 mussen wir uviw 6∈ L furmindestens ein i nachweisen.

Offensichtlich ist uv ein Prafix von (01)n, denn wir wissen, dass |uv| ≤ n gilt. Wie kann vaussehen?

Fall 1: v = (01)k.

Dann ist uv2w = (01)n+k (10)n /∈ L.Fall 2: v = 1 (01)k 0.

Dann ist

uv2w = [(01)l 0][1 (01)k 0][1 (01)k 0]w

= (01)n+k+1 (10)n,

denn (01)k wird wiederholt, und ein neues Paar 01 erhalt man an der Grenze zwischen demersten und zweiten Auftreten von v.

Page 38: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

36 KAPITEL 2. ENDLICHE AUTOMATEN

Fall 3: v = 1 (01)k .

uv2w besitzt zwei aufeinanderfolgende Einsen an der Grenze zwischen dem ersten und zweitenAuftreten von v. Dies ist das einzige aufeinanderfolgende Auftreten und geschieht in der erstenHalfte von uv2w. Somit ist uv2w kein Palindrom.

Fall 4: v = (01)k 0.

Diesmal folgen zwei Nullen aufeinander, und wir behandeln diesen Fall analog zu Fall 3.

Beachte, dass wir auch den Satz von Nerode benutzen konnen: Die Worte (01)n sind samtlichinaquivalent.

Die Eigenschaft nur einen endlichen Index zu besitzen, bzw. die Pumping-Eigenschaft zeigen,dass die Klasse der regularen Sprachen sehr eingeschrankt ist. Aber:

Aufgabe 21Zeige, dass jede endliche Menge regular ist.

Aufgabe 22Wir beweisen mit Hilfe des Pumping Lemmas, dass die endliche Sprache L = a, b100 nicht regular ist.

Nehmen wir an L sei regular. Aus dem Pumping Lemma folgt, dass es fur das Wort a100 eineZerlegung a100 = xyz mit |xy| ≤Pumpingkonstante und |y| ≥ 1 gibt, so dass jedes Wort xykz(mit k ≥ 0 ) auch zu L gehort. Wir erhalten einen Widerspruch zur Annahme, dass die SpracheL endlich ist, denn es gibt unendlich viele Strings der Form xykz.

Finde den Fehler im Beweis.

Aufgabe 23Zeige mit Hilfe des Pumping Lemmas, dass die folgenden Sprachen nicht regular sind:

(a) L = w ∈ 0, 1∗ | w hat genau so viele Nullen wie Einsen .

(b) L = wwreverse | w ∈ 0, 1∗.

Aufgabe 24Beweise das verallgemeinerte Pumping Lemma. Die zu beweisende Aussage ist wie folgt:

Sei L eine regulare Sprache. Dann gibt es eine Konstante n, so dass fur jedes z ∈ L mit vorgegebenerPartition z = tyx mit |y| = n eine Zerlegung y = uvw mit |v| ≥ 1 gefunden werden kann, so dasstuviwx ∈ L fur alle i ≥ 0.

(Mit anderen Worten, das verallgemeinerte Pumping Lemma erlaubt ein”Fenster“ der Lange n uber die

Eingabe zu schieben, so dass innerhalb dieses Fensters”gepumpt“ werden kann.)

Aufgabe 25Wende dieses verallgemeinerte Pumping Lemma an, um zu zeigen, dass die Sprache L = 1k | k ≥ 0 ∪

0j1(k2) | j ≥ 1, k ≥ 0 nicht regular ist. ( L enthalt alle Worter, die mit mindestens einer Null beginnen,

gefolgt von einer quadratischen Anzahl von Einsen.)

Warum kann mit Hilfe des Pumping Lemmas der Vorlesung nicht gezeigt werden, dass L von keinem endlichenAutomaten akzeptiert wird?

(Das Pumping Lemma liefert somit keine hinreichende Bedingung fur die Regularitat von Sprachen.)

Aufgabe 26Zeige, dass die wie folgt definierte Sprache uber dem Eingabealphabet Σ = 0, 1 nicht regular ist:

L = w ∈ 0, 1∗ | w hat eine Zerlegung der Form w = x1 . . . xn y1 . . . yn z0, z1 . . . zn

fur ein n ∈ N und es giltn∑

i=0

zi2n−i =

n∑

i=1

xi2n−i +

n∑

i=1

yi2n−i

(Dies soll salopp formuliert heißen: Ein Wort w ∈ 0, 1∗ liegt in L, wenn es eine “korrekte Binaraddition”beschreibt.)

Page 39: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.3. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN 37

2.3 Nichtdeterministische endliche Automaten

Wir entwickeln jetzt nichtdeterministische endliche Automaten, um Sprachen kurz beschreibenzu konnen.

Definition 2.13 Ein nichtdeterministischer endlicher Automat hat die folgenden Kompo-nenten:

• Zustandsmenge Q,

• Eingabealphabet Σ,

• Anfangszustand q0 ∈ Q,

• F ⊆ Q als Menge der akzeptierenden Zustande

• sowie das Programm δ, das wir als Funktion

δ:Q × Σ → P(Q)

auf fassen, wobei P(Q) die Potenzmenge von Q bezeichnet.

Wenn ein deterministischer Automat im Zustand p den Buchstaben a liest, dann ist derNachfolgezustand eindeutig festgelegt. Ein nichtdeterminischer Automat hingegen hat mogli-cherweise viele Optionen: Jeder Zustand in der Zustandsmenge δ(p, a) kommt als Nachfol-gezustand in Frage! Ein nichtdeterministischer Automat hat also im Gegensatz zu einemdeterministischen Automat viele verschiedene Berecnungen auf einer Eingabe w. Wann soll-ten wir sagen, dass w akzeptiert wird? Wir legen fest, dass w genau dann akzeptiert wird,wenn mindestens eine Berechnung erfolgreich ist, also auf einen akzeptierenden Zustand fuhrt.

Definition 2.14 Sei N = (Q,Σ, δ, q0, F ) ein nichtdeterministischer endlicher Automat.

(a) Wir definieren die Fortsetzung

δ:Q× Σ∗ → P(Q)

von Buchstaben auf Worte rekursiv wie folgt:

- δ(q, ε) = q- δ(q, wa) =

p∈δ(q,w)

δ(p, a)

Hiermit drucken wir aus, dass ein Zustand r ∈ Q durch Eingabe wa vom Zustand q aus

”erreichbar“ ist, falls ein Zustand p durch Eingabe w vom Zustand q erreichbar ist undr ∈ δ(p, a) gilt.

(b) N akzeptiert w genau dann, wenn es einen akzeptierenden Zustand p ∈ F mit p ∈δ(q0, w) gibt.

(c) L(N) = w ∈ Σ∗ |N akzeptiert w ist die von N akzeptierte (oder erkannte) Sprache.

Beschreibungen regularer Sprachen durch (deterministische) endliche Automaten erfordernmanchmal

”unangenehm“ viele Zustande, obwohl die Sprachen einfach sind.

Page 40: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

38 KAPITEL 2. ENDLICHE AUTOMATEN

Beispiel 2.12 Wie betrachten die Sprache

Lk = 0, 1∗ · 1 · 0, 1k .Lk besteht also aus allen binaren Worten, so dass der k+1.letzte Buchstabe eine Eins ist. Wirkonstruieren einen sehr kleinen nichtdeterministischen Automaten, der die Position des (k+1)-letzten Bits rat und nachfolgend verifiziert. Dies fuhrt auf das folgende Zustandsdiagramm:

0 1 2 k+1...0,11

0,1

0,1 0,1

Dem entspricht das Programm δ( 0 , 0) = 0 , δ( 0 , 1) = 0 , 1 , . . ., δ( i , 0) = δ( i , 1) = i+1 fur 1 ≤ i ≤ k und δ( k+1, 0) = δ( k+1, 1) = ∅.Man beachte, dass es durchaus erlaubt ist, den Automaten nur partiell zu definieren: Imobigen Beispiel haben wir keine Ubergange vom Zustand k+1 aus definiert. Damit ist fur allew ∈ Σ∗

δ( k+1, w) = ∅.

Wir zeigen andererseits, dass der Index von Lk mindestens 2k betragt. Damit muß also jederendliche Automat fur Lk mindestens 2k Zustande und damit exponentiell mehr Zustande alsunser nichtdeterministische Automat besitzen.

Es genugt zu zeigen, dass zwei beliebige, verschiedene Worte u, v ∈ 0, 1k nicht Nerode-aquivalent sind. Seien u, v ∈ 0, 1k also beliebige verschiedene Worte. Dann gibt es einePosition i mit ui 6= vi. Ohne Beschrankung der Allgemeinheit gelte

ui = 0 und vi = 1.

Wir erhaltenv 0i = v1 · · · vi−1 1 vi+1 · · · vk 0i ∈ Lk,

aberu 0i = u1 · · · ui−1 0ui+1 · · · uk 0i /∈ Lk.

Die beiden Worte u und v sind also nicht Nerode-aquivalent.

Sind denn nichtdeterministische Automaten uberhaupt nutzlich, d.h konnen wir das Wort-problem

Uberprufe fur einen gegebenen nichtdeterministischen Automaten N und eine Eingabew, ob N die Eingabe w akzeptiert.

effizient losen? Der Automat N rechnet nichtdeterministisch, aber wir mussen das Wortpro-blem mit einem deterministischen Algorithmus losen!

Aufgabe 27Sei N = (Q,Σ, δ, q0, F ) ein nichtdeterministischer endlicher Automat und w ∈ Σ∗ eine Eingabe. Zeige, dassdas Wortproblem fur N und Eingabe w in Zeit O(|w| · |Q|2) losbar ist.

Das Wortproblem fur nichtdeterministische Automaten ist also effizient losbar und nichtde-terministische Automaten erlauben in einigen Fallen sehr viel kurzere Beschreibungen: Wo istder Haken? Sind die von nichtdeterministischen Automaten erkannten Sprachen auch stets re-gular? Da steckt der Haken nicht, wie wir im nachsten Abschnitt zeigen, der Haken steckt zumBeispiel in der Minimierung: Eine effiziente Minimierung nichtdeterministischer Automatenist in aller Wahrschinlichkeit nicht mehr moglich.

Page 41: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.3. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN 39

2.3.1 Die Potenzmengenkonstruktion

Wir zeigen, wie aquivalente deterministische Automaten gebaut werden konnen und beginnenmit einem Beispiel.

Beispiel 2.13 Der nichtdeterministische Automat N mit Zustandsdiagramm

0,10 1 2

0,1

1

sei vorgegeben. N akzeptiert die Sprache L1 = 0, 1∗ ·1·0, 1. Unser Ziel ist die Konstruk-tion eines aquivalenten deterministischen Automaten A. Unsere Idee ist es, alle Berechnun-gen von N gleichzeitig zu simulieren. Demgemaß wahlen wir Teilmengen der ZustandsmengeQ = 0 , 1 , 2 als Zustande.

Ziel der Konstruktion: Wenn A die Eingabe w gelesen hat und sich im Zustand s ⊆ Qbefindet, dann fordern wir

s!= p ∈ Q |Es gibt eine Berechnung von N fur w, die in p endet.

Die rechte Seite der Gleichung stimmt naturlich mit

δN (q0, w)

uberein. Wir geben jetzt die Konstruktion von A Schritt fur Schritt an.

Schritt 1: Wir wahlen 0 als Anfangszustand von A. Mit Bit 0 kann N nur die Zustands-menge 0 erreichen, mit Bit 1 hingegen die Zustandsmenge 0 , 1 . Wir setzen deshalb

δ( 0 , 0) = 0 und δ( 0 , 1) = 0 , 1 .

mit dem partiellen Zustandsdiagramm

0 0 1, 0

1

Schritt 2: Von 0 , 1 aus kann N mit Bit 0 (bzw. mit Bit 1) die Zustandsmenge 0 , 2 (bzw. 0 , 1 , 2 ) erreichen. Deshalb setzen wir das Diagramm wie folgt fort:

0 0 1

20 ,

0 1 2, , , 0

1 1

0

Page 42: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

40 KAPITEL 2. ENDLICHE AUTOMATEN

Schritt 3: Wir setzen die Zustandsubergange vom Zustand 0 , 2 . Mit Bit 0 wird nur derZustand 0 erreicht, mit Bit 1 wird nur der Zustand 0 , 1 erreicht. Beide Zustande, 0 wie auch 0 , 1 , sind schon definiert.

Schritt 4: Wir setzen die Zustandsubergange vom Zustand 0 , 1 , 2 . Mit Bit 0 (bzw.Bit 1) wird die Zustandsmenge 0 , 2 (bzw. 0 , 1 , 2 erreicht. Auch diese beiden Zustands-mengen haben wir bereits als Zustande definiert.

Damit erhalten wir insgesamt das Zustandsdiagramm

0 0 1 0 1 2, ,

20 ,

, 0

1 1

00 1 0

1

Tatsachlich wird die Sprache L1 akzeptiert, wenn wir eine Zustandsmenge als akzeptieren-den Zustand erklaren, wann immer die Zustandsmenge einen akzeptierenden Zustand von Nbesitzt.

Die Potenzmengenkonstruktion, die wir in diesem Beispiel angewandt haben, kann fur jedennichtdeterministischen Automaten benutzt werden.

Satz 2.15 Aquivalenz von deterministischen und nichtdeterministischen Automaten

Sei N ein nichtdeterministischer Automat mit Komponenten QN , Σ, δN , q0 und FN . Derdeterministische Automat A habe die Komponenten

• QA = t | t ⊆ QN,

• Anfangszustand q0,

• FA = t ∈ QA | t enthalt einen Zustand aus FN

• δA ist definiert durch

δA(t, a) =

p ∈ QN |Es gibt q ∈ t mit p ∈ δN (q, a)

.

Dann sind N und A aquivalent, das heißt es gilt L(N) = L(A).

Beweis: Wir werden zeigen, dass

δA(q0, w) = p ∈ QN |Es gibt eine Berechnung von N fur w, die p erreicht. (2.2)

Ist dies gezeigt, folgt

N akzeptiert w ⇔ Es gibt p ∈ FN mit p ∈ δN (q0, w)⇔ δA(q0, w) ∈ FA

⇔ A akzeptiert w,

und die Behauptung des Satzes ist gezeigt.

Wir beweisen (2.2) durch Induktion uber die Lange von w.

Page 43: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.3. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN 41

Basis: |w| = 0.

Es ist δA(q0, ε) = q0, aber auch alle Berechnungen von N fur ε erreichen nur q0.

Induktionsschritt: |w| = n+ 1

Es gelte w = w′a und s′ = δA(q0, w′). Wir erhalten

δA(q0, w) = δA(δA(q0, w′), a)

= δA(s′, a)

= p ∈ Q |Es gibt q ∈ s′ mit p ∈ δN (q, a) (2.3)

= p ∈ Q |Es gibt eine Berechnung von N fur w′, die einen

Zustand q ∈ Q erreicht mit p ∈ δN (q, a) (2.4)

= p ∈ Q |Es gibt eine Berechnung von N fur w, die p

erreicht, (2.5)

und dies war zu zeigen. Gleichung (2.3) folgt gemaß Definition von δA. Gleichung (2.4) wendetdie Induktionshypothese an, wahrend Gleichung (2.5) die Definition von δN widerspiegelt.

Bemerkung 2.2 A konnte uberflussige Zustande besitzen. Dies stellt kein Problem dar, wennwir wie im Beispiel vorgehen, also nur Zustandsmengen betrachten, die nur aus erreichbarenZustanden bestehen.

Aufgabe 28Betrachte folgende Sprachen uber dem Eingabealphabet Σ = 0, 1:EQn = xy | x, y ∈ 0, 1n, x = y und NOT -EQn = xy | x, y ∈ 0, 1n, x 6= y.

Wieviele Zustande besitzt ein minimaler deterministischer endlicher Automat, der die Sprache NOT -EQn

erkennt? Begrunde deine Antwort.

Aufgabe 29Beschreibe einen nichtdeterministischen endlichen Automaten mit moglichst wenig Zustanden, der die Spra-che NOT -EQn erkennt.

Zeige, dass ein nichtdeterministischer endlicher Automat, der die SpracheEQn erkenntmindestens 2n Zustandebenotigt.

Aufgabe 30Wir betrachten nun Zwei-Wege-Automaten, also endliche Automaten, die den Kopf auch nach links bewegenkonnen. Ein Zwei-Wege-Automat besteht aus den folgenden Komponenten: Dem Eingabealphabet Σ, derendlichen Menge Q der Zustande, dem Anfangszustand q0, der Menge der akzeptierenden Zustande F ⊆ Q.Die Ubergangsfunktion fur Zwei-Wege-Automaten ist δ : Q×Σ → Q×links, rechts, wobei links und rechts dieRichtung der Kopfbewegung beschreiben. Wenn ein Zwei-Wege-Automat in eine unendliche Schleife gerat oderdie Eingabe nach links verlaßt, wird die Eingabe nicht akzeptiert. Wenn der Zwei-Wege-Automat die Eingabenach rechts verlaßt, stoppt die Rechnung und die Eingabe wird genau dann akzeptiert, wenn sich der Automatin einem akzeptierenden Zustand befindet.

Beschreibe einen Zwei-Wege-Automaten mit moglichst wenigen Zustanden, der die Sprache EQn erkennt.

Aufgabe 31Betrachte den folgenden nichtdeterministischen endlichen Automaten N uber dem Eingabealphabet Σ = 0, 1mit der Zustandsmenge Q = q0, . . . , q4, dem Anfangszustand q0 und F = q4:

mq0 -1⇒ mq1 -1

?

0, 1

mq2 -0, 1 mq3 -1 mjq4Fuhre die Potenzmengenkonstruktion fur N aus und beschreibe den resultierenden deterministischen Au-tomaten (mit Ausnahme der uberflussigen Zustande!) durch sein Zustandsdiagramm.

Page 44: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

42 KAPITEL 2. ENDLICHE AUTOMATEN

Aufgabe 32Fur eine regulare Sprache L ⊆ Σ∗ definieren wir

Prafix(L) = w | es gibt ein v ∈ Σ∗, so dass w · v ∈ L .

Prafix(L) besteht also aus allen Prafixen von Wortern aus L. Ist Prafix(L) regular? Ist

Suffix(L) = w | es gibt ein v ∈ Σ∗, so dass v · w ∈ L

regular?

Aufgabe 33Zeige oder widerlege: Wenn die unendlich vielen Sprachen L1, L2, . . . , Ln, Ln+1, . . . alle regular sind, dannist auch die unendliche Vereinigung

⋃∞i=0 Li regular.

Aufgabe 34Beweise oder widerlege: Sei L regular. Dann stimmt die minimale Zustandszahl eines NFA A fur L ubereinmit der kleinsten Zahl von Variablen einer regularen Grammatik G fur L.

Aufgabe 35Das Minimierungsproblem fur NFA’s ist mit aller Wahrscheinlichkeit nicht effizient losbar: alle bekanntenMinimierungsalgorithmen benotigen eine Laufzeit, die exponentiell in der Anzahl der Zustande des zu mini-mierenden NFA ist.

Auch die Bestimmung der minimalen Zustandszahl ist ein komplexes Problem, das sich aber in einigen Fallenlosen lasst.

(a) Zeige, dass jeder NFA fur

Lm = an : n ∈ N und n ist durch m teilbar

mindestens m Zustande besitzt.

(b) Beweise oder widerlege: Wenn es NFA’s fur L1 bzw. L2 mit hochstens n1 bzw. n2 Zustanden gibt,dann gibt es einen NFA fur L1 ∩ L2 mit hochstens n1 + n2 Zustanden.

2.3.2 Abschlusseigenschaften und Entscheidungsprobleme

Manchmal erhalten wir eine noch kurzere Beschreibung, wenn wir ε-Ubergange zulassen:

Definition 2.16

Ein nichtdeterministischer Automat (Q,Σ, δ, q0, F ) mit ε-Ubergangen ist wie ein nichtdeter-ministischer Automat definiert. Als einziger Unterschied hat das Programm jetzt die Form

δ:Q ×(

Σ ∪ ε)

→ P(Q)

Der Automat darf also ε-Ubergange benutzen, ohne Buchstaben zu lesen.

Auch bei ε-Ubergangen werden nur regulare Sprachen akzeptiert. Dies folgt, da wir ε-Ubergangenach dem folgenden Schema entfernen konnen:

1

5 3

6 4

1

5

6

4

3a

2

3

b

a

b

a a

bb

Page 45: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.3. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN 43

ε-Ubergange helfen zum Beispiel im Nachweis der folgenden Abschlusseigenschaften.

Satz 2.17 Die Sprachen L, L1 und L2 seien regular. Es folgt

(a) L ist regular.

(b) L1 ∪ L2 und L1 ∩ L2 sind regular.

(c) L1 L2 ist regular.

(d) L∗ ist regular.

Beweis: Die deterministischen Automaten A, A1 bzw. A2 mogen die Sprachen L, L1 bzw.L2 akzeptieren.

(a) Q sei die Zustandsmenge von A. Ersetze die Menge F der akzeptierenden Zustande vonA durch Q \ F .

(b) Wir zeigen nur, dass L1 ∪L2 regular ist. (Die Regularitat von L1 ∩L2 folgt mit (a), da

L1 ∩ L2 = L1 ∪ L2.)

L1 ∪ L2 ist regular, da der Automat

A

A2

1

3

q0 3

genau die Vereinigung akzeptiert.

(c) Wir verbinden alle akzeptierenden Zustande von A1 durch ε-Ubergange mit dem Start-zustand von A2. Die akzeptierenden Zustande von A2 sind die akzeptierenden Zustandedes neuen Automaten: Der neue Automat akzeptiert L1 L2.

(d) Verbinde alle akzeptierenden Zustande von A durch ε-Ubergange mit einem neuen Start-zustand q∗0: Der Zustand q∗0 wird auch der einzige akzeptierende Zustand des neuen Au-tomaten. Schließlich fuge einen ε-Ubergang von q∗0 zum alten Startzustand q0 ein. Da q∗0akzeptierend ist, wird auch das leere Wort akzeptiert, und der neue Automat akzeptiertdie Sternhulle.

Aufgabe 36Warum ist die Konstruktion in Teil (d) falsch? Wie sollte der richtige Automat fur L∗ konstruiert werden?

Die Klasse der regularen Sprachen ist also unter den wichtigsten mengentheoretischen Ope-rationen abgesclossen wie auch unter der Konkatenation und der Sternoperation.

Wir zeigen jetzt, dass viele wichtige Eigenschaften deterministischer endlicher Automateneffizient nachprufbar sind. Entscheidungsprobleme fur nichtdeterministische Automaten sind,mit einigen wenigen Ausnahmen, deutlich schwieriger.

Satz 2.18 A,A1 und A2 bezeichne deterministische Automaten und N bezeichne einen nicht-deterministischen Automaten. Die folgenden Entscheidungsprobleme sind effizient losbar:

Page 46: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

44 KAPITEL 2. ENDLICHE AUTOMATEN

(a) Ist L(A) 6= ∅, bzw. ist L(N) 6= ∅?

(b) Ist L(A) = Σ∗?

(c) Ist L(A1) = L(A2), bzw. ist L(A1) ⊆ L(A2)?

(d) Ist L(A) endlich?

Beweis (a): Wir untersuchen die Frage nach Leerheit nur fur einen nichtdeterministischenAutomaten N , das Leerheitsproblem fur deterministische Automaten kann vollig analog gelostwerden. Sei q0 der Anfangszustand von N und sei F die Menge der akzeptierenden Zustande.Wir beobachten, dass L(N) genau dann nichtleer ist, wenn es einen Weg von q0 zu einemZustand in F gibt. Das Erreichbarkeitsproblem fur mindestens einen Zustand in F konnenwir jetzt mit Hilfe der Tiefensuche, angewandt auf das Zustandsdiagramm von N , effizientlosen.

(b),(c) und (d) sind als Ubungsaufgaben gestellt. Fur (c) und (d) wird der Minimierungsal-gorithmus benutzt.

Aufgabe 37A,A1 und A2 seien deterministische endliche Automaten. Entwerfe moglichst effiziente Algorithmen fur diefolgenden Probleme:

(a) L(A) = ∅?

(b) L(A) = Σ∗?

(c) L(A1) = L(A2)?

(d) L(A1) ⊆ L(A2)?

Bestimme die Laufzeit in Abhangigkeit von der Anzahl der Zustande.

Aufgabe 38Sei A ein deterministischer endlicher Automat. Entwerfe einen moglichst effizienten Algorithmus, der entschei-det ob A unendlich viele Worte akzeptiert. Bestimme die Laufzeit in Abhangigkeit von der Anzahl der Zustandevon A.

Bemerkung 2.3 Die Entscheidungsprobleme (b), (c) und (d) aus Satz 2.18 lassen sich inaller Wahrscheinlichkeit nicht effizient fur nichtdeterministische Automaten losen. Erstaun-licherweise gehort das anscheinend unschuldige Problem L(N)

?= Σ∗ noch nicht einmal zur

Klasse NP : Einer der Grunde hierfur ist, dass sich der Unterschied zwischen L(N) und Σ∗

erst fur Worte zeigen kann, deren Lange exponentiell in der Anzahl der Zustande ist! Auch dasMinimierungsproblem fur nichtdeterministische Automaten ist anscheinend außerst schwierig.

Viele vernunftige Entscheidungsprobleme lassen sich effizient fur deterministische Automatenlosen. Eine Ausnahme ist das Interpolationsproblem: Fur gegebene Teilmengen P,N ⊆ Σ∗ undeinen Schwellenwert N , gibt es einen deterministischen endlichen Automaten mit hochstensN Zustanden, der alle Worte in P akzeptiert und alle Worte in N verwirft?

2.4 Regulare Ausdrucke

Wir fuhren ein weiteres Beschreibungsschema regularer Sprachen ein, namlich regulare Aus-drucke. Wir haben regulare Ausdrucke bereits verwendet, zum Beispiel bei der Definition derSprache Lk = Σ∗ 1 Σk.

Page 47: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.4. REGULARE AUSDRUCKE 45

Definition 2.19 Das Alphabet Σ = a1, . . . , ak sei gegeben. Wir geben eine Definitionregularer Ausdrucke an:

(a) ∅, ε, a1, . . . , ak sind regulare Ausdrucke (fur die Sprachen ∅, ε unda1, . . . , ak.)

(b) Sei R ein regularer Ausdruck (fur die Sprache L), dann ist R∗ ein regularer Ausdruck(fur die Sprache L∗), und (R) ist ein regularer Ausdruck (fur die Sprache L).

(c) Seien R1 und R2 regulare Ausdrucke (fur die Sprachen L1 und L2). Dann sind auch

R1 +R2 und R1 ·R2

regulare Ausdrucke (fur die Sprachen L1 ∪ L2 und L1 L2).

Die Menge der regularen Ausdrucke ist die kleinste Menge mit den Eigenschaften (a), (b) und(c).

Beispiel 2.14 Regulare Ausdrucke fur die Sprachen

L1 =

w ∈ a, b∗ |w beginnt und endet mit a

L2 =

w ∈ a, b∗ | aba ist Teilwort von w

L3 =

w ∈ a, b∗ |w hat eine gerade Anzahl von a’s

sind zu konstruieren. Wir erhalten zum Beispiel

R1 = a · (a+ b)∗ · aR2 = (a+ b)∗ · a · b · a · (a+ b)∗

R3 = b∗ + (b∗ · a · b∗ · a · b∗)∗.

Wahrend die regularen Ausdrucke fur L1 und L2 einfach sind (und sich der Formalismus re-gularer Ausdrucke auszahlt), ist der regulare Ausdruck fur L3, verglichen mit dem Automaten

b 0 1a

bb

relativ kompliziert: Jeder Formalismus hat seine Starken und Schwachen.

Satz 2.20 Sei R ein regularer Ausdruck fur die Sprache L. Dann ist L regular.

Beweis: Offensichtlich sind∅, ε, a1, . . . , ak

regulare Sprachen. Mit Satz 2.17 sind aber auch L∗, L1 L2 und L1 ∪L2 regular, wenn L, L1

und L2 regular sind. Deshalb fuhren auch die regularen Ausdrucke

R∗, R1 · R2 und R1 +R2

auf regulare Sprachen (wenn wir induktiv annehmen, dass R, R1 und R2 auf regulare Sprachenfuhren).

Page 48: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

46 KAPITEL 2. ENDLICHE AUTOMATEN

In den beiden nachsten Satzen sehen wir, dass regulare Ausdrucke und regulare Sprachen iden-tische Konzepte sind:

Satz 2.21 Sei L regular uber Σ. Dann gibt es einen regularen Ausdruck fur L.

Beweis: Da L regular ist, gibt es einen (deterministischen) endlichen Automaten A, der Lakzeptiert. Ohne Beschrankung der Allgemeinheit sei

Q = 1, . . . , n

die Zustandsmenge von A und q0 = 1 sein Anfangszustand. Wir betrachten die Menge

Lkp,q =

w ∈ Σ∗ | δ(p,w) = q, und alle Zwischenzustande wahrend des

Lesens von w liegen in der Menge 1, . . . , k

Wir beachten, dass

L =⋃

p∈F

Ln1,p

und es genugt deshalb zu zeigen, dass jede Sprache Lnp,q als regularer Ausdruck darstellbar ist.

Wir zeigen mehr, namlich dass jede Sprache Lkp,q durch einen regularen Ausdruck darstellbarist. Unsere Konstruktion verlauft rekursiv (nach k).

k = 0: L0p,q ist die Menge aller w ∈ Σ∗ mit δ(p,w) = q, wobei kein Zwischenzustand erlaubt

ist. Also istL0p,q =

a ∈ Σ | δ(p, a) = q

, falls p 6= q, bzw.

L0p,q = ε ∪

a ∈ Σ | δ(p, a) = p

, falls p = q.

Die endliche Menge L0p,q ist offensichtlich durch einen regularen Ausdruck darstellbar.

k → k+ 1: Es ist

Lk+1p,q = Lkp,q ∪ Lkp,k+1

(

Lkk+1,k+1

)∗ Lkk+1,q,

denn entweder taucht Zustand k+1 beim Lesen von w (mit Startzustand p und Endzustand q)nicht auf, oder wir konnen die Folge der Zwischenzustande so zerlegen, dass in jeder Teilfolgek+1 kein Zwischenzustand, sondern nur Endzustand ist. Wenn aber die Sprachen Lkp,q, L

kp,k+1,

Lkk+1,k+1 und Lkk+1,q durch regulare Ausdrucke beschrieben werden konnen, dann kann auch

Lk+1p,q durch einen regularen Ausdruck beschrieben werden. (Beachte, dass wir einen Beweis

mit Hilfe der dynamischen Programmierung gefuhrt haben.)

Aufgabe 39Wir definieren die Lange eines regularen Ausdrucks als die Anzahl der Symbole des Ausdrucks, wobei dieKlammern nicht gezahlt werden.

Beweise oder widerlege die folgende Aussage: Fur alle regularen Sprachen L gilt: Gegeben sei ein regularerAusdruck R der Lange l (fur die Sprache L). Dann gibt es einen nichtdeterministischen endlichen Automatenmit O(l) Zustanden, der die Sprache L erkennt.

Aufgabe 40Gib einen moglichst kurzen regularen Ausdruck fur die folgenden Sprachen uber Σ = 0, 1 an:

(a) L = w ∈ 0, 1∗ | w beginnt mit 1 und enthalt das Teilwort 00 nicht ,

(b) Lk = w ∈ 0, 1∗ | die Anzahl der Einsen in w ist durch k teilbar .

Page 49: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.5. GRAMMATIKEN UND REGULARE GRAMMATIKEN 47

Aufgabe 41Wir fuhren in dieser Aufgabe die erweiterten regularen Ausdrucke ein: Jeder regulare Ausdruck ist auch einerweiterter regularer Ausdruck. In erweiterten regularen Ausdrucken lassen wir zusatzlich die Operation ∩ zu,d.h. wenn R1 und R2 erweiterte regulare Ausdrucke fur die Sprachen L1 und L2 sind, dann ist R1 ∩ R2 einerweiterter regularer Ausdruck fur die Sprache L1 ∩ L2.

Beweise oder widerlege die folgende Aussage: Fur alle regularen Sprachen L gilt: Gegeben sei ein erweiterterregularer Ausdruck R der Lange l (fur L). Dann gibt es einen nichtdeterministischen endlichen Automaten mitO(poly(l)) Zustanden (der L erkennt).

Aufgabe 42Gegeben sei der folgende deterministische endliche Automat A uber dem Eingabealphabet Σ = 0, 1 mit derZustandsmenge Q = q0, q1, q2, dem Anfangszustand q0 und F = q0:

mjq0

?

0

- 1⇒ mq1 -0 mq2

?

1

Bestimme gemaß der rekursiven Konstruktion aus dem Beweis von Satz 2.21 einen regularen Ausdruck, derdie Sprache L(A) darstellt.

Aufgabe 43Es seien r und s regulare Ausdrucke uber disjunkten Alphabeten, und es sei das leere Wort ε 6∈ r. Bestimmeeinen regularen Ausdruck x, der die Gleichung x = r x+ s erfullt. Dabei bezeichnet die Konkatenation und+ die Vereinigung.

2.5 Grammatiken und regulare Grammatiken

Was ist eine Grammatik?

Definition 2.22

(a) Eine Grammatik G hat die folgenden Komponenten:

• ein endliches Alphabet Σ,

• eine endliche Menge V von Variablen (oder Nichtterminalen) mit Σ ∩ V = ∅,• das Startsymbol S ∈ V und

• eine endliche Menge P von Produktionen, wobei eine Produktion von der Form(u, v) ist mit

u ∈ (Σ ∪ V )∗V (Σ ∪ V )∗ und v ∈ (Σ ∪ V )∗

(b) Sei (u, v) eine Produktion von G. Dann definieren wir fur Worte w1 und w2 ∈ (Σ∪V )∗

w1 → w2 ⇔ Es gibt x, y ∈ (Σ ∪ V )∗ mit w1 = xuy und

w2 = xvy.

(c) Seien r, s ∈ (Σ ∪ V )∗. Dann definieren wir

r∗→ s ⇔ Es gibt Worte w1 = r, w2, . . . , wk = s, so dass

w1 → w2 → . . .→ wk.

(d) L(G) =

w ∈ Σ∗ |S ∗→ w

ist die von der Grammatik erzeugte Sprache.

Page 50: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

48 KAPITEL 2. ENDLICHE AUTOMATEN

Warum betrachten wir Grammatiken? Programmiersprachen lassen sich am besten als eineformale Sprache, die Sprache aller syntaktisch korrekten Programme auffassen. Eine Gram-matik fur eine Programmiersprache druckt dann die Regeln der Programmiersprache aus.

Beispiel 2.15 Wir geben eine Grammatik G fur arithmetische Ausdrucke mit ganzzahligenKomponenten an. G besitzt das Eingabealphabet

Σ =

+,−, ∗, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, (, )

sowie

• das Startsymbol A und

• die Variablen I und Z.

Die Produktionen haben die Form

A → A+A |A−A |A ∗ A | (A) | I | + I | − I

I → ZI |ZZ → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

(Die vertikalen Linien trennen Produktionen, die dieselbe Variable ersetzen.) Die Regeln dieserGrammatik spiegeln die rekursive Definition arithmetischer Ausdrucke wider.

Die erzeugte Sprache L(G) ist nicht regular. (Warum?) Wenn wir aber das Startsymbol Adurch I ersetzen, erhalten wir eine regulare Sprache, namlich die Sprache der Dezimaldarstel-lungen naturlicher Zahlen.

Definition 2.23 Eine Grammatik G = (Σ, V, S, P ) heißt regular, wenn alle Produktionen inP die Form

u→ ε (fur u ∈ V ) oder

u→ av (fur u, v ∈ V , a ∈ Σ)

haben.

Satz 2.24 L sei eine Sprache. Dann gilt:

L regular ⇔ Es gibt eine regulare Grammatik G mit L = L(G).

Beweis:”⇒ “ Sei L regular und sei A ein endlicher Automat A, der L akzeptiert. Auf Eingabe

w fuhrt A die Zustandsubergange

q0w1→ q1

w2→ . . .wn→ qn

durch und akzeptiert, falls qn ∈ F . Dies legt nahe, eine Grammatik zu konstruieren, dieAbleitungsfolgen der Form

q0 → w1q1 → w1w2q2 → . . . → w1 · · ·wnqn

erlaubt mit anschließender Produktion qn → ε. Deshalb definieren wir eine Grammatik G mit

• Variablenmenge Q,

Page 51: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

2.6. ZUSAMMENFASSUNG 49

• Startymbol q0,

• sowie den Produktionen

p→ aq falls δ(p, a) = q

p→ ε falls p ∈ F.

”⇐“ Angenommen, L = L(G) fur eine regulare Grammatik G = (Σ, V, S, P ). Eine Ableitungvon G hat die Form

S → w1V1 → w1w2V2 → . . . → w1 · · ·wnVn → w1 · · ·wn.

Eine Simulation durch einen deterministischen Automaten scheint nicht sinnvoll, da im allge-meinen aus mehreren moglichen Produktionen gewahlt werden kann. Es bietet sich vielmehreine Simulation durch einen nichtdeterministischen Automaten N an. Wir setzen

• Q = V ,

• q0 = S

und definieren

• δ(X, a) = Y |X → aY ∈ P

• F = X ∈ V |X → ε ∈ P

Aufgabe 44Beweise oder widerlege: Sei L regular. Dann stimmt die minimale Zustandszahl eines NFA A fur L ubereinmit der kleinsten Zahl von Variablen einer regularen Grammatik G fur L.

2.6 Zusammenfassung

Wir haben endliche Automaten und die von ihnen akzeptierten Sprachen, die regularen Spra-chen, betrachtet. Zuerst haben wir eine Minimierungsprozedur besprochen, die zu einem ge-gebenen deterministischen endlichen Automaten einen aquivalenten, aber minimalen Auto-maten, den Aquivalenzklassenautomaten bestimmt. Der Beweis der Minimalitat gelang durchden Index der Sprache, der der Minimalanzahl von Zustanden entspricht. Unsere Argumenta-tion hat auch gezeigt, dass der minimale Automat, bis auf eine Umbenennung der Zustande,eindeutig bestimmt ist.

Wahrend der Betrachtung minimaler Automaten haben wir auch den Satz von Nerode erhal-ten, der regulare Sprachen als Sprachen mit endlichem Index charakterisiert. Der Nachweisder Nichtregularitat einer Sprache kann deshalb mit den Satz von Nerode oder mit demPumping-Lemma gefuhrt werden.

Wir haben verschiedene aquivalente Charakterisierungen regularer Sprachen kennengelernt,namlich durch

- deterministische endliche Automaten,

- nichtdeterministische endliche Automaten,

Page 52: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

50 KAPITEL 2. ENDLICHE AUTOMATEN

- regulare Ausdrucke oder

- regulare Grammatiken.

Weiterhin haben wir gesehen, dass regulare Sprachen unter den Operationen

- Vereinigung, Durchschnitt und Komplement

- sowie Konkatenation und Kleene-Abschluß (Sternoperation)

abgeschlossen sind. Wichtige algorithmische Probleme wie die Feststellung der Aquivalenzoder die Minimierung lassen sich fur deterministische endliche Automaten effizient beantwor-ten, sind aber fur nichtdeterministische endliche Automaten notorisch schwierig: Die großereBeschreibungskraft nichtdeterministischer endlicher Automaten muss algorithmisch teuer er-kauft werden.

Page 53: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Kapitel 3

Kontextfreie Sprachen

Als Grundlage fur die Syntaxdefinition von Programmiersprachen sind regulare Sprachen zuausdrucksschwach. Deshalb betrachten wir in diesem Kapitel die weitaus machtigere Klasseder kontextfreien Sprachen, die wir durch kontextfreie Grammatiken einfuhren. Wir zeigenwie das Wortproblem fur kontextfreie Sprachen mit Hilfe der Chomsky Normalform effizientgelost werden kann und stellen Techniken vor, die es erlauben, Sprachen als nicht kontextfreinachzuweisen. Am Ende des Kapitels werden wir mit Hilfe von Kellerautomaten auf dieKlasse der deterministisch kontextfreien Sprachen gefuhrt. Sie stellen den praxistauglichstenKompromiss zwischen Ausdruckskraft und Komplexitat des Wortproblems dar.

Definition 3.1 Eine Grammatik G mit Produktionen der Form

u→ v mit u ∈ V und v ∈ (V ∪ Σ)∗

heißt kontextfrei. Eine Sprache L heißt kontextfrei, wenn es eine kontextfreie Grammatik Gmit

L(G) = L

gibt.

Beispiel 3.1 Wir beschreiben einen allerdings sehr kleinen Ausschnitt von Pascal durch einekontextfreie Grammatik. Dazu benutzen das Alphabet

Σ = a, . . . , z, ;, :=

und die Variablen

V = S, statements, statement, assign-statement, while-statement,

variable, boolean, expression .

In den Produktionen unseres Pascal Fragments fuhren wir die Variablen”boolean, expression

und variable“ nicht weiter aus:

S → begin statements end

statements → statement | statement ; statements

statement → assign − statement |while− statement

assign− statement → variable := expression

while− statement → while boolean do statements

51

Page 54: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

52 KAPITEL 3. KONTEXTFREIE SPRACHEN

Lassen sich denn stets die syntaktisch korrekten Programme einer modernen Programmier-sprache als eine kontextfreie Sprache auffassen? Die erste Antwort ist Nein. In Pascal musszum Beispiel sichergestellt werden, dass Anzahl und Typen der formalen und aktuellen Para-meter ubereinstimmen.

Die”Kopiersprache“ ww | w ∈ Σ∗ modelliert die Uberprufung auf Typkonsistenz,

allerdings wird sich die Kopiersprache als nicht kontextfrei herausstellen.

Die zweite Antwort ist aber”im wesentlichen Ja, wenn man

”Details“ wie Typ-Deklarationen

und Typ-Uberprufungen ausklammert.

Typischerweise beschreibt man die Syntax durch eine kontextfreie Grammatik, die allesyntaktisch korrekten Programme erzeugt. Allerdings werden auch syntaktisch inkorrek-te Progamme (z.B. aufgrund von Typ-Inkonsistenzen) erzeugt. Die nicht eingehaltenene(nicht-kontextfreien) Syntax-Vorschriften konnen nach Erstellung des Ableitungsbaumsuberpruft werden.

Was ist ein Ableitungsbaum? Das klaren wir im nachsten Abschnitt.

3.1 Ableitungsbaume

Im Compilerproblem mochten wir nicht nur entscheiden, ob ein Wort w von einer kontextfreienGrammatik erzeugt werden kann, sondern wir mochten zusatzlich eine Ableitung von w, bzw.einen Ableitungsbaum von w konstruieren.

Definition 3.2 Sei G = (Σ, V, S, P ) eine kontextfreie Grammatik und sei B ein Baum mitden folgenden Eigenschaften:

• Die Wurzel von B ist mit S markiert,

• innere Knoten sind mit Variablen markiert, wahrend Blatter mit Buchstaben aus Σmarkiert sind,

• wenn der Knoten v mit der Variablen A markiert ist und wenn die Kinder von v dieMarkierungen (von links nach rechts) v1, . . . , vs tragen, dann ist A → v1 · · · vs eineProduktion von G.

B heißt ein Ableitungsbaum des Wortes w, wenn man w durch die links-nach-rechts Konka-tenation der Markierungen der Blatter von B erhalt.

Beispiel 3.2 Wir geben zuerst eine kontextfreie Grammatik fur die Sprache

L =

w ∈ 0, 1+ |w hat gleich viele Nullen wie Einsen

an. Unsere Grammatik G besitzt das Startsymbol S sowie die Variablen Null und Eins. Allevon Null (bzw. Eins) ableitbaren Worte werden genau eine Null (bzw. Eins) mehr als Einsen(bzw. Nullen) besitzen. Dies wird erreicht durch die Produktionen

S → 0Eins | 1NullEins → 1 | 0Eins Eins | 1SNull → 0 | 1Null Null | 0S

Page 55: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.1. ABLEITUNGSBAUME 53

(Zeige zuerst durch Induktion uber die Lange der Ableitungen, dass

w ∈ 0, 1+ |Eins ∗→ w

=

w ∈ 0, 1+ |w hat eine Eins mehr

und

w ∈ 0, 1+ |Null ∗→ w

=

w ∈ 0, 1+ |w hat eine Null mehr

gilt. Dann folgt die Behauptung L = L(G).)

Wir betrachten als Nachstes das Wort w = 000111. w besitzt die Ableitung

S → 0Eins → 00Eins Eins → 000Eins EinsEins →

0001Eins Eins → 00011Eins → 000111.

und deshalb den Ableitungsbaum

0 Eins

0 Eins Eins

0 Eins Eins 1

S

1 1

Beachte, dass jedem Ableitungsbaum verschiedene Ableitungen entsprechen, namlich zumBeispiel Linksableitungen (die jeweils die linkeste Variable ersetzen), sowie Rechtsableitungen(die jeweils die rechteste Variable ersetzen):

S → 0Eins → 00Eins Eins → 00Eins 1 →

000Eins Eins 1 → 000Eins 11 → 000111.

Ordnet ein Compiler unterschiedlichen Ableitungsbaumen unterschiedliche Bedeutung zu,dann kann ein Wort, abhangig von der Ableitung unterschiedliche Bedeutungen besitzen:Ein Programm, das in einer mehrdeutigen Programmiersprache geschrieben wurde, besitztsomit compiler-abhangige Semantiken! Wir sollten also schon auf eindeutigen Grammatikenbestehen!

Definition 3.3 Sei G eine kontextfreie Grammatik.

(a) G heißt genau dann mehrdeutig, wenn es ein Wort w ∈ L(G) mit zwei verschiedenenAbleitungsbaumen gibt.

Wenn G nicht mehrdeutig ist, dann heißt G eindeutig.

(b) Eine Sprache L heißt eindeutig, wenn es eine eindeutige Grammatik G gibt mit L =L(G). Ansonsten heißt L inharent mehrdeutig.

Page 56: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

54 KAPITEL 3. KONTEXTFREIE SPRACHEN

Beispiel 3.3 Es kann gezeigt werden, dass L =

aibjck | i = j oder j = k

inharent mehr-

deutig ist. Woran liegt das? Wenn w ∈ L, dann gilt w = aibick oder w = aibjcj . EineGrammatik

”sollte“ deshalb eine der zwei Optionen auswahlen mussen; wenn aber beide Op-

tionen zutreffen, also wenn w = aibici, dann hat w zwei verschiedene Ableitungsbaume unddie Grammatik ist mehrdeutig.

Beispiel 3.4 Die Grammatik G besitze die Komponenten

• Σ = x, y,+,−, ∗, (, )

• V = S

• die ProduktionenS → S + S |S ∗ S | (S) |x | y.

Damit ist L(G) die Sprache aller (teilweise geklammerten) arithmetischen Ausdrucke in denVariablen x und y. G ist nicht eindeutig, denn x+ x ∗ y besitzt die zwei Ableitungsbaume

S

S S

S S

x

+

*x

y

*

S

S S

S S y

xx

+

Ableitungsbaume werden bei der Compilierung zur Codegenerierung benutzt. Der erste Baumliefert dann den Code x+ (x ∗ y), wahrend der zweite Baum den Code (x+ x) ∗ y liefert. Esware also hilfreich, wenn die Sprache L eindeutig ware, und dies ist auch tatsachlich der Fall,wenn wir eine andere Grammatik G benutzen:

Die Grammatik G mit dem Startsymbol S und den Variablen T (generiert Terme) und F(generiert Faktoren) wird eindeutig sein. Die Produktionen von G haben die Form

S → S + T |TT → T ∗ F |FF → (S) |x | y.

Mit dieser Grammatik legen wir fest, dass die Multiplikation”starker bindet“ als die Addi-

tion. Wir zeigen durch Induktion uber die Lange eines arithmetischen Ausdrucks A, dass Geindeutig ist.

Basis: Es ist A ≡ x oder A ≡ y.

Zum Beispiel fur A ≡ x ist S → T → F → x die (sogar)1 eindeutige Ableitung.

Induktion: Wir uberprufen exemplarisch den Fall A ≡ A1 +A2.

+ kann nur durch die Produktion S → S + T eingefuhrt werden. Also wird eine Ableitungvon A mit der Produktion S → S + T beginnen. Die von S und T abgeleiteten Ausdruckesind aber kurzer, und somit sind ihre Ableitungsbaume eindeutig. Also besitzt A genau einenAbleitungsbaum.

1Beachte, dass eindeutige Grammatiken verschiedene Ableitungen fur dasselbe Wort w besitzen konnen,namlich zum Beispiel die Links- und die Rechtsableitung von w. Alle Ableitungen von w mussen aber zumeindeutig bestimmten Ableitungsbaum von w gehoren.

Page 57: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.1. ABLEITUNGSBAUME 55

Aufgabe 45Beschreibe kontextfreie Grammatiken fur die Sprachen L1 und L2:

L1 = aibjck | i, j, k ≥ 0 und i 6= j + k.

Es sei Σ = x, y, (, ), +, ∗. L2 ist die Menge aller arithmetischen Ausdrucke uber Σ (mit Variablenx und y, sowie mit den Operationen Addition und Multiplikation). Ein arithmetischer Ausdruck darf aberkeine uberflussigen Klammern enthalten. Wir folgen den konventionellen Prioritatsregeln, namlich dass dieMultiplikation eine hohere Prioritat hat als die Addition.

Zum Beispiel gehoren die Ausdrucke x ∗x ∗y, (x ∗y+x)∗y, x+y+x zu L3, wahrend die Ausdrucke (x ∗x)∗y,((x ∗ y) + x) ∗ y, (x+ y) + x uberflussige Klammern besitzen und deshalb nicht zu L3 gehoren.

Aufgabe 46Es sei L = w ∈ 0, 1∗|fur jedes Prafix u von w gilt: |u|0 ≥ |u|1. (|u|b zahlt die Anzahl der Vorkommen vonb in u.)

Konstruiere eine kontextfreie Grammatik G, die die Sprache L erzeugt. Beweise, dass L(G) = L ist.

Aufgabe 47Sei L = anbmcn+m : n,m ≥ 0.

(a) Zeige mit dem Pumping-Lemma, dass L nicht regular ist.

(b) Zeige, dass L kontextfrei ist.

Aufgabe 48Es sei L = aibjck | k 6= i + j. Konstruiere eine eindeutige kontextfreie Grammatik fur die Sprache L.Beweise die Eindeutigkeit.

Aufgabe 49Die Grammatik G hat die folgenden Komponenten: Das Alphabet Σ = if, then, else, a, b , die Variable S,das Startsymbol S und die Produktionen S → if b then S | if b then S else S | a.

Zeige, dass G mehrdeutig ist. Insbesondere, finde ein Wort w ∈ L(G), das zwei verschiedene Ableitungsbaumebesizt.

Kommentar: Buchstabe b steht (generisch) fur Bedingung, Buchstabe a steht (generisch) fur Anweisung.

Aufgabe 50Sei L eine regulare Sprache. Zeige, dass L eine eindeutige regulare Grammatik besitzt.

Aufgabe 51Zeige, dass die folgende Grammatik G mehrdeutig ist. G hat die folgenden Komponenten: das AlphabetΣ = a, die Variablen S und A, das Startsymbol S und die Produktionen S → AA, A → aSa | a.

Beschreibe eine aquivalente, aber eindeutige kontextfreie Grammatik G′. (Wir nennen G und G′ aquivalent,wenn L(G) = L(G′).)

Hinweis: Versuche zuerst, L(G) zu bestimmen.

Aufgabe 52Gegeben sei die folgende kontextfreie Grammatik G = (Σ, V, S, P ), mit Σ = a, b, c, d, V = S,B und denProduktionen S ⇒ aS | SB | d, B ⇒ Bb | c.

Zeige, dass G nicht eindeutig ist.

Zeige, dass die Sprache L(G) eindeutig ist.

Page 58: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

56 KAPITEL 3. KONTEXTFREIE SPRACHEN

3.2 Die Chomsky-Normalform und das Wortproblem

Wir versuchen jetzt, eine effiziente Losung des Compilerproblems zu erhalten. Um dies vor-zubereiten, werden wir zuerst zeigen, dass sich jede kontextfreie Grammatik (die nicht dasleere Wort erzeugt) in Chomsky-Normalform uberfuhren laßt.

Definition 3.4 Eine Grammatik ist in Chomsky-Normalform, wenn alle Produktionen dieForm

A→ BC oder A→ a

besitzen (fur A,B,C ∈ V und a ∈ Σ).

Satz 3.5 Sei L kontextfrei mit ε /∈ L. Dann gibt es eine Grammatik G in Chomsky-Normalformmit L = L(G).

Beweis: Es gelte L = L(G) fur eine kontextfreie Grammatik G = (Σ, V, S, P ).

Schritt 1: Wir erzwingen, dass die rechte Seite einer Produktion entweder nur aus Variablenbesteht oder nur aus einem Buchstaben.

Fur jeden Buchstaben a ∈ Σ fuge die neue Variable Xa hinzu und erlaube Xa → a als neueProduktion. Jetzt kann jede Produktion

A→ α1a1α2a2 · · ·αrarαr+1

(mit Buchstaben a1, . . . , ar und α1, . . . , αr+1 ∈ V ∗) durch die Produktion

A→ α1Xa1α2Xa2 · · ·αrXarαr+1

ersetzt werden. P1 sei die Menge der neuen Produktionen.

Schritt 2: Erzwinge, dass alle Produktionen eine rechte Seite der Lange hochstens zweibesitzen.

Ersetze jede Produktionp ≡ A→ C1 · · ·Cs (mit s ≥ 3)

durch die Produktionen

A → C1Xp1 ,

Xp1 → C2X

p2 ,

...

Xps−2 → Cs−1Cs

P2 sei die neue Produktionenmenge.

Schritt 3: Entferne alle ε-Produktionen A→ ε.

Die Produktion A → ε gehore zu P2. Es bietet sich an, die Produktion A → ε zu entfernenund gleichzeitig fur jede Produktion der Form

B → AC, B → CA oder B → A

die neuen ProduktionenB → C, B → C oder B → ε

Page 59: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.2. DIE CHOMSKY-NORMALFORM UND DAS WORTPROBLEM 57

hinzuzufugen. Aber damit haben wir uns eine neue ε-Produktion eingehandelt.

Schritt 3.1: Bestimme V ′ = A ∈ V |A ∗→ ε.Wie? Seien A1 → ε, . . . , Ak → ε samtliche ε-Produktionen in P2. Wir setzen anfanglich

W = A1, . . . , Ak, V ′ = ∅, P ′ = P2

(1) Entferne irgendeine Variable A aus der Menge W , und fuge A zu V ′ hinzu. Fur jedeProduktion der Form

B → AC, B → CA oder B → A (mit B 6= A)

fuge die neuen Produktionen B → C, B → ε zur Menge P ′ hinzu. Wenn B → ε zu P ′

hinzugefugt wird, dann fuge B zur Menge W hinzu. Um zu verhindern, dass A wiederin die Menge W hinzugefugt wird, entferne alle Produktionen

A→ α

von P ′.

(2) Wiederhole (1), solange W 6= ∅.

Schritt 3.2: Fur jede Regel

A→ BC oder A→ CB mit B ∈ V ′

fuge die Regel A→ C zu P2 hinzu und streiche alle ε-Produktionen. Nenne die neue Produk-tionenmenge P3.

Schritt 4: Die Produktionen in P3 sind von der Form

A→ a, A→ B, A→ BC,

und nur die Kettenregeln A→ B sind noch zu entfernen.

Schritt 4.1: Um die Kettenregeln besser veranschaulichen zu konnen, betrachten wir denGraphen H(P3):

- Die Knoten von H(P3) entsprechen den Variablen,

- fur jede Kettenregel A→ B erhalt H(P3) die entsprechende Kante.

Mit einer Tiefensuche auf dem Graphen H(P3) konnen wir alle Kreise des Graphen entdecken:Ein Kreis wird namlich durch Ruckwartskanten geschlossen. Wahle einen beliebigen KreisA1 → A2 → . . . → Ak → A1. Jetzt ersetze systematisch in jeder Produktion jede VariableA2, . . . , Ak durch A1; dabei entstehende Produktionen A1 → Ai werden entfernt.

Die Variablen A2, . . . , Ak sind jetzt uberflussig, da sie in keiner Produktion mehr auftauchen.Wir wiederholen dieses Verfahren, bis alle Kreise zerstort sind. Die neue Produktionenmengesei P4.

Schritt 4.2: Der Graph H(P4) ist jetzt kreisfrei. Wir numerieren die Knoten mit der Me-thode des topologischen Sortierens, so dass

Ai → Aj

bedingt, dass i < j. Seien A1, . . . , Am die Variablen.

Es gibt offensichtlich keine Kettenregel der Form Am → Ai. Wir betrachten nun samtlicheunmittelbaren Vorganger von Am. Existiert eine Produktion Ak → Am, so entfernen wir dieseProduktion und fugen fur jede Produktion Am → α die Produktion Ak → α hinzu.

α ist aber entweder ein Buchstabe oder von der Form BC. Wir wiederholen dieses Verfahren,bis alle Kettenregeln entfernt sind. Jetzt haben wir Chomsky-Normalform erreicht.

Page 60: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

58 KAPITEL 3. KONTEXTFREIE SPRACHEN

Bemerkung 3.1 Wir haben mehr erreicht als im Satz ausgesagt. Wir haben gezeigt, wie auseiner kontextfreien Grammatik G eine aquivalente Grammatik in Chomsky-Noormalform effi-zient konstruiert werden kann. Weiterhin ist die Große der Grammatik, also die Gesamtlangealler Produktionen, nur polynomiell angestiegen.

Wir spielen nun den kompletten Algorithmus schrittweise an einer Fallstudie durch. Unse-re Ausgangsgrammatik sei G = (Σ, V, S, P ) mit Σ = a, b, c und V = S,A,B,C. DieProduktionsmenge P ist:

1 S → aABCb2 S → ε3 S → C4 A → ABC5 A → B6 A → ε7 A → cC8 B → aSc9 B → aC10 B → S11 B → b12 C → cC13 C → SCCB14 C → ε

Im ersten Schritt haben wir die Regeln 1, 7, 8, 9 und 12 zu bearbeiten. Wir fuhren dieneuen Variablen Xa,Xb und Xc ein. Die betreffenden Produktionen lauten nun

1′ S → XaABCXb

7′ A → XcC8′ B → XaSXc

9′ B → XaC12′ C → XcC

und weisen rechts nur noch Strings aus V ∗ auf. Dazu kommen die neuen Produktionen

15 Xa → a16 Xb → b17 Xc → c

.

Im zweiten Schritt widmen wir uns den Produktionen, die auf Variablenstrings abbilden,die langer als 2 sind. Wir teilen die Produktionen 1’, 4, 8’, 13 auf. Danach lautet unsereProduktionsmenge P2:

Page 61: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.2. DIE CHOMSKY-NORMALFORM UND DAS WORTPROBLEM 59

1′a S → XaX11

1′b X11 → AX1

2

1′c X12 → BX1

3

1′d X13 → CXb

2 S → ε3 S → C4a A → AX4

1

4b X41 → BC

5 A → B6 A → ε7′ A → XcC8′a B → XaX

81

8′b X81 → SXc

9′ B → XaC10 B → S11 B → b12′ C → XcC13a C → SX13

1

13b X131 → CX13

2

13c X132 → CB

14 C → ε15 Xa → a16 Xb → b17 Xc → c

Jetzt haben wir uns den ε-Produktionen in Schritt drei zu widmen. Wir mussen die Mengealler Variablen bestimmen, die auf ε abgebildet werden konnen. (Schritt 3.1). Wir stellen denAblauf tabellarisch dar.

Ausgangssituation: W = S,A,C, V ′ = ∅, P ′ = P2

Phase 1, bewege S aus W nach V ′

hinzuzufugen X81→Xc

B→εC→X13

1

fuge B zu W hinzu.

entfernen S→XaX11

S→εS→C

W = A,C,B V ′ = S

Phase 2, bewege A aus W nach V ′

hinzuzufugen X11→X1

2

A→X41

W bleibt unverandert

entfernen A→AX41

A→BA→εA→XcCA→X4

1

W = C,B V ′ = S,A

Page 62: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

60 KAPITEL 3. KONTEXTFREIE SPRACHEN

Phase 3, bewege C aus W nach V ′

hinzuzufugen X13→Xb

X41→BB→Xa

C→Xc

X131 →X13

2

X132 →B

W bleibt unverandert

entfernen C→cCC→SX13

1

C→εC→X13

1

C→Xc

W = B V ′ = S,A,C

Phase 4, bewege B aus W nach V ′

hinzuzufugen X12→X1

3

X41→C

X132 →CX4

1→εX13

2 →ε

W :=W ∪ X41 ,X

132

entfernen B→XaX81

B→XaCB→SB→bB→εB→Xa

W = X41 ,X

132 V ′ = S,A,C,B

Phase 5, bewege X41 aus W nach V ′

hinzuzufugen nichts

W bleibt unverandert

entfernen X41→BC

X41→B

X41→C

X41→ε

W = X132 V ′ = S,A,C,B,X4

1

Phase 6, bewege X132 aus W nach V ′

hinzuzufugen X131 →C

X131 →ε

W := W ∪ X131

entfernen X132 →BC

X132 →B

X132 →C

X132 →ε

W = X131 V ′ = S,A,C,B,X4

1 ,X132

Phase 7, bewege X131 aus W nach V ′

hinzuzufugen nichts

W = ∅entfernen X13

1 →CX132

X131 →X13

2

X131 →C

X131 →ε

W = ∅ V ′ = S,A,C,B,X41 ,X

132 ,X13

1

Als Menge V ′ erhalten wir also S,A,B,C,X41 ,X

131 ,X13

2 . Das ist die Menge all jener Varia-blen, die auf ε abgebildet werden konnen.

Gemaß Schritt 3.2 konnen wir nun die Produktionenmenge P3 bestimmen. Wir stellen P2

und P3 in der folgenden Tabelle gegenuber.

Page 63: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.2. DIE CHOMSKY-NORMALFORM UND DAS WORTPROBLEM 61

P2 P3

1′a S→XaX11 S→XaX

11

1′b X11→AX1

2 X11→AX1

2

X11→X1

2

1′c X12→BX1

3 X12→BX1

3

X12→X1

3

1′d X13→CXb X1

3→CXb

X13→Xb

2 S→ε

3 S→C S→C

4a A→AX41 A→AX4

1

A→X41

4b X41→BC X4

1→BCX4

1→BX4

1→C

5 A→B A→B

6 A→ε

7′ A→XcC A→XcCA→Xc

8′a B→XaX81 B→XaX

81

8′b X81→SXc X8

1→SXc

X81→Xc

9′ B→XaC B→XaCB→Xa

10 B→S B→S

11 B→b B→b

12′ C→XcC C→cCC→Xc

13a C→SX131 C→SX13

1

C→SC→X13

1

13b X131 →CX13

2 X131 →CX13

2

X131 →C

X131 →X13

2

13c X132 →CB X13

2 →CBX13

2 →CX13

2 →B

14 C→ε

15 Xa→a Xa→a

16 Xb→b Xb→b

17 Xc→c Xc→c

Beachte, dass wir hier entstehende neue ε-Regeln, wie sie formal etwa in Zeile 4b entstehenwurden (X4

1 → ε) gleich unterdruckt haben. Auch die in Zeile 4a entstehende triviale RegelA→ A haben wir gar nicht erst aufgenommen.

Fur den abschließenden vierten Schritt benotigen wir nunmehr den Graphen, der die Ket-tenregeln der Grammatik darstellt. Man vergleiche:

Page 64: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

62 KAPITEL 3. KONTEXTFREIE SPRACHEN

X13

1 X13

2

C S B

X4

1 A

-

@@I@

@@@R

XXXXXXXXXXy

@@R

XXXXXXXXXXz

-

Xc

X81

X11

X12

X13

Xb

-

6

@@I

Xa

6

#

?

Mittels eines gangigen Graphenalgorithmus wie etwa der Tiefensuche ermittelt man die Krei-se. Nehmen wir an, wir wurden Kreis B,S,C,X13

1 ,X132 finden, dann konnen wir diese funf

Variablen nun zu einer zusammenfassen. Da das Startsymbol unter ihnen ist, wahlen wirdieses. Wir erhalten:

S

X4

1 A

@@R

Xc

X81

X11

X12

X13

Xb

-

6

@@I

Xa

:

# -

Page 65: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.2. DIE CHOMSKY-NORMALFORM UND DAS WORTPROBLEM 63

Der Kreis ist nun zykelfrei. Unsere Produktionenmenge P3 verkleinert sich zu P4:

P4

S→XaX11

X11→AX1

2

X11→X1

2

X12→SX1

3

X12→X1

3

X13→SXb

X13→Xb

A→AX41

A→X41

X41→SS

X41→SA→SA→XcSA→Xc

S→XaX81

X81→SXc

X81→Xc

S→XaSS→aS→bS→XcCS→cS→SSS→Xa

s→Xc

Xa→aXb→bXc→c

Eine topologische Sortierung kann z.B. so aussehen:

S

X4

1 A

@@R

Xc

X81

X11

X12

X13

Xb

-

6

@@I

Xa

:

# -

1

2

3

4

5

67

8

9

10

Wir beseitigen nun sukzessive die Kettenregeln in der durch die Sortierung vorgegebenenReihenfolge. Unsere Grammatik wachst noch einmal. Aber das Ziel ist damit auch erreicht.

Page 66: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

64 KAPITEL 3. KONTEXTFREIE SPRACHEN

statt neu

S→Xc S→c ex. bereits

X81→Xc X8

1→c

A→Xc A→c

S→Xa S→a ex. bereits

X41→S X4

1→XaX11

X41→XaX

81

X41→XaS

X41→a

X41→b

X41→XcC

X41→c

X41→SS ex. bereits

A→S A→XaX11

A→XaX81

A→XaSA→aA→bA→XcCA→c ex. bereitsA→SS

A→X41 A→SS ex. bereits

A→XaX11 ex. bereits

A→XaX81 ex. bereits

A→XaS ex. bereitsA→a ex. bereitsA→b ex. bereitsA→XcC ex. bereitsA→c ex. bereits

X13→Xb X1

3→b

X12→X1

3 X12→SXb

X12→b

X11→X1

2 X11→SX1

3

X11→SXb

X11→b

Diese Grammatik ist nun in Chomsky-Normalform.

Wir konnen jetzt das Compilerproblem (bzw. das Wortproblem) effizient losen.

Satz 3.6 Satz von Cocke, Younger und Kasami

Sei G eine Grammatik in Chomsky-Normalform. Dann kann in Zeit

O(

|Produktionen von G| · |w|3)

entschieden werden, ob w ∈ L(G).

Beweis: Wir benutzen die Methode der dynamischen Programmierung. Die Grammatik G =(Σ, V, S, P ) liege in in Chomsky-Normalform vor und w = w1 · · ·wn ∈ Σn sei die Eingabe.

Page 67: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.3. DAS PUMPING LEMMA UND OGDEN’S LEMMA 65

Fur jedes i, j (1 ≤ i ≤ j ≤ n) mochten wir die Menge

Vi,j =

A ∈ V |A ∗→ wi · · ·wj

bestimmen. (Beachte, dass w ∈ L(G) genau dann gilt, wenn S ∈ V1,n.)

(1) Die Mengen Vi,i konnen sofort bestimmt werden, da

Vi,i =

A ∈ V |A ∗→ wi

=

A ∈ V |A→ wi

,

denn G ist in Chomsky-Normalform.

(2) Angenommen, alle Mengen Vi,j mit j−i < s sind bestimmt. Seien jetzt i und j vorgegebenmit j − i = s. Es gilt

A ∈ Vi,j ⇔ A∗→ wi · · ·wj

⇔ Es gibt eine Produktion A→ BC mit

B∗→ wi · · ·wk, und C ∗→ wk+1 · · ·wj

⇔ Es gibt eine Produktion A→ BC mit

B ∈ Vi,k und C ∈ Vk+1,j.

Wir konnen jetzt Vi,j in Zeit hochstens

n · Anzahl der Produktionen

bestimmen. Die behauptete Laufzeit folgt, da(

n2

)

Mengen zu bestimmen sind.

3.3 Das Pumping Lemma und Ogden’s Lemma

Kontextfreie Grammatiken scheinen recht machtig zu sein und die Frage nach den Grenzenihrer Beschreibungskraft drangt sich auf: Wie sehen moglichst einfache, nicht-kontextfreieSprachen aus? Fur die Beantwortung dieser Frage leiten wir zuerst ein Pumping-Lemma furkontextfreie Sprachen her:

Satz 3.7 Sei L eine kontextfreie Sprache. Dann gibt es eine Pumpingkonstante n, so dassjedes z ∈ L mit |z| ≥ n eine Zerlegung z = uvwxy besitzt mit den Eigenschaften

(a) |vwx| ≤ n und |vx| ≥ 1 und

(b) uviwxiy ∈ L fur alle i ≥ 0.

Wir betrachten zuerst zwei Beispiele:

Beispiel 3.5 Wir wollen zeigen, dass

L =

ambmcm |m ≥ 0

nicht kontextfrei ist. Den Beweis fuhren wir durch eine Anwendung des Pumping-Lemmas.

Page 68: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

66 KAPITEL 3. KONTEXTFREIE SPRACHEN

Sei n die (unbekannte) Pumpingkonstante. Wir wahlen dann das Wort z = anbncn ∈ L. WennL kontextfrei ist, dann gibt es eine Zerlegung

z = uvwxy

(mit |vwx| ≤ n und |vx| ≥ 1, so dass uviwxiy ∈ L fur jedes i ≥ 0. Da |vwx| ≤ n, enthaltvwx nur a’s und b’s oder nur b’s und c’s. Wir nehmen das Erstere an. (Beachte, dass es auchmoglich ist, dass vwx nur a’s, nur b’s oder nur c’s enthalt. Diese Falle werden aber durch dieErstgenannten mit abgedeckt.)

Dann ist aber uv2wx2y /∈ L, denn das aufgepumpte Wort enthalt mindestens ein a odermindestens ein b mehr als es c’s enthalt. Also ist L nicht kontextfrei.

Beispiel 3.6 Wir mochten zeigen, dass die Sprache

L =

draxbycz | r = 0 oder x = y = z

nicht kontextfrei ist. Wir versuchen, das Pumping-Lemma anzuwenden. Fur die Pumpingkon-stante n sei z ∈ L ein Wort mit |z| ≥ n.

Fall 1: d kommt nicht in z vor.

Dann wird d auch nach dem Auf- oder Abpumpen nicht im Wort vorkommen, und das auf-oder abgepumpte Wort gehort deshalb zur Sprache L.

Fall 2: d kommt in z vor.

Dann werden wir allerdings nicht mit der Zerlegung

u = v = w = ε, x = d und y = dr−1axbxcx

”fertig“: Auf- oder Abpumpen wird nur die Anzahl von d’s variieren.

Eine Argumentation mit dem Pumping-Lemma mißlingt also. Wir benotigen stattdessen eineVersion des Pumping-Lemmas, die es uns erlaubt, mindestens ein a, b oder c aufpumpen zukonnen. Dies wird erreicht durch

Satz 3.8 Ogden’s Lemma

Sei L eine kontextfreie Sprache. Dann gibt es eine Pumpingkonstante n, so dass jedes z ∈ Lmit

mindestens n markierten Buchstaben

eine Zerlegung z = uvwxy besitzt, wobei

(a) hochstens n Buchstaben in vwx markiert sind,

(b) mindestens ein Buchstabe in vx markiert ist und

(c) uviwxiy ∈ L fur alle i ≥ 0 gilt.

Bemerkung 3.2 (a) Beachte, dass das Pumping-Lemma aus Odgen’s Lemma folgt, wennwir alle Buchstaben von z markieren.

(b) Wir konnen jetzt zeigen, dass

draxbycz | r = 0 oder x = y = z

Page 69: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.3. DAS PUMPING LEMMA UND OGDEN’S LEMMA 67

nicht kontextfrei ist. Fur die Pumpingkonstante n wahle

z = danbncn

und markiere anbncn. Dann besitzt vwx kein a oder kein c (denn vwx besitzt nur n mar-kierte Buchstaben). Nach dem Aufpumpen wird uv2wx2y also zuwenige a’s oder zuwenige c’sbesitzen.

Beweis von Satz 3.8: Wenn L kontextfrei ist, dann ist auch L \ ε kontextfrei, und esgenugt, Odgen’s Lemma fur L \ ε zu beweisen. Deshalb konnen wir annehmen, dass

L \ ε = L(G)

fur eine Grammatik G = (Σ, V, S, P ) in Chomsky-Normalform ist. Wir wahlen

n = 2|V |+1

als Pumpingkonstante. Sei nun z ∈ L ein beliebiges Wort in L mit mindestens n markiertenBuchstaben. Wir betrachten einen Ableitungsbaum B fur z:

A

A

y

S

u v w x

Wir sagen, dass ein Knoten v von B ein Verzweigungsknoten ist, wenn v markierte Blattersowohl im linken wie auch im rechten Teilbaum besitzt. Wir erhalten die folgenden Eigen-schaften von B:

(a) B ist binar, da G in Chomsky-Normalform vorliegt.

(b) B hat 2|V |+1 markierte Blatter, also Blatter, die einen markierten Buchstaben speichern.

(c) Es gibt einen Weg W von der Wurzel zu einem Blatt, so dass W mindestens |V | + 1Verzweigungsknoten besitzt.

Die Eigenschaften (a) und (b) sind offensichtlich. Wir weisen Eigenschaft (c) nach. Konstruiereeinen Weg W so, dass W jedes Mal mit dem Kind mit den meisten markierten Blatternfortgesetzt wird. W beginnt an der Wurzel mit mindestens n markierten Blattern. Da dieAnzahl der markierten Blatter sich nur bei einem Verzweigungsknoten verringert, und dannauch nur um hochstens den Faktor 2, mußW mindestens log2 n = |V |+1 Verzweigungsknotenbesitzen.

Unter den Verzweigungsknoten vonW betrachten wir die letzten |V |+1 Verzweigungsknoten,unter denen dann auch eine Variable A zweimal vorkommt. Das erste Vorkommen von Abenutzen wir zur Definition von v (Konkatenation der Blatter im linken Teilbaum) und wx(Konkatenation der Blatter im rechten Teilbaum).

Page 70: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

68 KAPITEL 3. KONTEXTFREIE SPRACHEN

Beachte, dass v (und damit auch vx) mindestens einen markierten Buchstaben besitzt. Weiter-hin besitzt vwx hochstens 2|V |+1 = n markierte Buchstaben: Wenn vwx mehr als n markierteBuchstaben besitzt, dann besitzt W (auf seinem Endstuck) auch mehr als |V | + 1 Verzwei-gungsknoten. Damit gilt

S∗→ uAy

sowie

A∗→ vAx und A

∗→ w.

Deshalb sind auch die Ableitungen

S∗→ uAy

∗→ uwy = uv0wx0y

wie auch

S∗→ uAy

∗→ uvAxy∗→ uv2Ax2y

∗→ . . .∗→ uviAxiy

∗→ uviwxiy

moglich, und deshalb ist uviwxiy ∈ L fur alle i ≥ 0.

Aufgabe 53Eine Grammatik heißt linear, wenn jede Produktion in P die Form u ⇒ xvy, fur u, v ∈ V und x, y ∈ Σ∗ oderu ⇒ ε hat.

Entwirf einen Algorithmus, der das Wortproblem fur eine fest vorgegebene lineare Grammatik G = (Σ, V, S, P )lost. Der Algorithmus sollte in Zeit O(|w|2) entscheiden, ob w ∈ L(G) ist.

Hinweis: Man kann die dynamische Programmierung benutzen.

Aufgabe 54Gegeben sei eine kontextfreie Grammatik G = (Σ, V, S, P ) in Chomsky-Normalform. Außerdem sei eine Ko-stenfunktion uber den Produktionen P der Grammatik gegeben, die jeder Produktion p ∈ P einen Kostenfaktorc(p) ∈ N zuordnet.

Die Kosten einer Ableitung S∗⇒ w sind die Summe der Kosten der benutzen Produktionen.

Beschreibe einen moglichst effizienten Algorithmus, der fur ein Wort w ∈ Σ∗ den Wert einer Ableitung mitminimalen Kosten bestimmt (bzw. den Wert unendlich ausgibt, falls w /∈ L(G)). Bestimme die Laufzeitdeines Algorithmus.

Aufgabe 55Welche der folgenden Sprachen uber dem Alphabet Σ = a, b, c sind kontextfrei?Entwirf eine kontextfreie Grammatik, falls eine Sprache kontextfrei ist; benutze das Pumping-Lemma furkontextfreie Sprachen oder Ogden’s Lemma, um zu zeigen, dass eine Sprache nicht kontextfrei ist.

L1 = aibjajbi | i, j ≥ 0,

L2 = aibjaibj | i, j ≥ 0,

L3 = aibicj | i 6= j,

L4 = aibjck | i ≤ k oder j ≤ k,

L5 = aibjck|i = j = k gilt nicht,

L6 = aibjci·j |i, j ≥ 0,

L7 = aibicjdj |i, j ≥ 0.

Aufgabe 56Wir betrachten in dieser Aufgabe eine vereinfachte Klasse von

”Programmiersprachen“. Programme der Spra-

che mussen durch die folgende kontextfreie Grammatik G erzeugbar sein.Es sei G = Σ, V, S, P, mit Σ = REAL, INT, x, y, 0, 1,+,−, ; , ., e,

Page 71: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.3. DAS PUMPING LEMMA UND OGDEN’S LEMMA 69

V = S,D,A,< decl >,< type >,< var-list >,< id >,< integer >,< sign >,< digit >,< real > und den Produktionen:

S ⇒ DAD ⇒ ε | D < decl >A ⇒ ε | A < id >=< integer >; | A < id >=< real >;< decl > ⇒ < type >< var-list >;< type > ⇒ REAL | INT< var-list > ⇒ < id >|< var-list >,< id >< id > ⇒ x | y |< id > x |< id > y< integer > ⇒ < sign >< digit >< sign > ⇒ ε | + | −< digit > ⇒ < digit > 0 |< digit > 1 | 0 | 1< real > ⇒ < sign >< digit > . < digit > e < sign >< digit >

Zusatzlich soll fur unsere Programmiersprache folgendes gelten: Jede im Anweisungsteil A benutzte Variablemuß zuvor im Deklarationsteil D deklariert sein, und der Typ der im Anweisungsteil benutzten Variablen mußmit dem im Deklarationsteil festgelegten Typen ubereinstimmen.

Zeige, dass diese Programmiersprache nicht kontextfrei ist.

Anmerkung: Wie wir an dieser Aufgabe sehen, ist folgende Arbeitsweise von Compilern notwendig: Zunachstwird der Deklarationsteil abgearbeitet, indem die Variablen in eine Symboltabelle gehasht werden. Danachkonnen auf dem verbliebenen Programm (ohne Deklarationsteil) die effizienten Losungen des Compilerproblemsfur kontextfreie Sprachen angewendet werden.

Aufgabe 57Eine Grammatik heißt linear, wenn jede Produktion in P die Form u ⇒ xvy, fur u, v ∈ V und x, y ∈ Σ∗ oderu ⇒ ε hat. Wir nennen eine Sprache L linear, wenn es eine lineare Grammatik G mit L = L(G) gibt.

(a) Beweise das folgende Pumping-Lemma fur lineare Sprachen: Wenn L eine lineare Sprache ist, danngibt es eine Konstante n, so dass sich jedes z ∈ L mit |z| ≥ n als z = uvwxy schreiben lasst, wobei|uvxy| ≤ n, |vx| ≥ 1 und uviwxiy ∈ L fur alle i ≥ 0 gilt.

(b) Zeige, dass aibicjdj |i, j ≥ 0 keine lineare Sprache ist.

Aufgabe 58Sei G eine Grammatik in Chomsky-Normalform.

(a) Sei L(G) endlich. Gib eine obere Schranke fur die Lange eines langsten Wortes in L(G) an.

(b) Sei L(G) unendlich. Gib eine obere Schranke fur die Lange eines kurzesten Wortes in L(G) an.

3.3.1 Abschlusseigenschaften kontextfreier Sprachen

Als Konsequenz von Beispiel 3.5 erhalten wir, dass kontextfreie Sprachen nicht unter Durch-schnittsbildung und auch nicht unter Komplementbildung abgeschlossen sind:

Satz 3.9 (a) Wenn L1 und L2 kontextfrei sind, dann sind auch L1 ∪ L2, L1 L2 und L∗1

kontextfrei.

(b) Es gibt kontextfreie Sprachen L1 und L2, so dass der Durchschnitt L1 ∩ L2 nicht kon-textfrei ist.

(c) Es gibt eine kontextfreie Sprache L, so dass die Komplementsprache L nicht kontextfreiist.

Beweis: (a) Es gelte L1 = L(G1) und L2 = L(G2), wobei G1 = (Σ, V1, S1, P1), G2 =(Σ, V2, S2, P2) und V1 ∩ V2 = ∅. Setze

Page 72: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

70 KAPITEL 3. KONTEXTFREIE SPRACHEN

- V = V1 ∪ V2 ∪ S mit S /∈ V1 ∪ V2- P = P1 ∪ P2 ∪ S → S1, S → S2

fur ein neues Symbol S. Dann ist offensichtlich L1∪L2 = L(G), wobei G = (Σ, V, S, P ). Wennwir

P = P1 ∪ P2 ∪

S → S1S2

setzen, erhalten wir L(G) = L1 L2.

Schließlich erzeugt die Grammatik G1∗ = (Σ, V1, S1, P1

∗) mit P1∗ = P1∪S1 → S1S1, S1 → ε

den Kleene-Abschluß L1∗.

(b) Wir setzen

L1 =

anbncm |n,m ≥ 0

und

L2 =

ambncn |n,m ≥ 0

.

Beide Sprachen sind kontextfrei, denn zum Beispiel besitzt L1 die Grammatik

S → Sc |TT → aTb | ε.

Aber L1 ∩ L2 ist nicht kontextfrei, denn es ist

L1 ∩ L2 =

anbncn |n ≥ 0

.

(c) Angenommen, mit L ist auch stets die Komplementsprache L kontextfrei. Wegen

L1 ∩ L2 = L1 ∪ L2

waren die kontextfreien Sprachen dann aber unter der Durchschnittsbildung abgeschlossen.

Nur wenige Entscheidungsprobleme lassen sich effizient fur kontextfreie Sprachen losen. DasLeerheitsproblem

”Ist L(G) leer“ ist eine ruhmliche Ausnahme:

Aufgabe 59Gegeben sei eine kontextfreie Grammatik G = (Σ, V, S, P ) in Chomsky-Normalform. Beschreibe einenmoglichst effizienten Algorithmus, der entscheidet, ob die von G erzeugte Sprache L(G) leer ist. Bestimmedie Laufzeit deines Algorithmus.

3.4 Kellerautomaten

Wir mochten wie im Fall regularer Sprachen ein Maschinenmodell entwerfen, das genau dieKlasse kontextfreier Sprachen akzeptiert. Neben einer aquivalenten Charakterisierung kon-textfreier Sprachen bieten Kellerautomaten die Moglichkeit, deterministisch kontextfreie Spra-chen einzufuhren (namlich diejenigen Sprachen, die von einem deterministischen Kellerauto-maten akzeptiert werden). Die Klasse der deterministisch kontextfreien Sprachen ist immernoch ausdruckskraftig. Aber, und dies ist der große Vorteil, sehr schnelle Algorithmen losendas Compilerproblem.

Page 73: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.4. KELLERAUTOMATEN 71

Definition 3.10 Eine kontextfreie Grammatik G = (Σ, V, S, P ) ist in Greibach-Normalform,wenn alle Produktionen von der Form

A→ aα (fur A ∈ V , a ∈ Σ und α ∈ V ∗)

sind.

Satz 3.11 Die Grammatik G = (Σ, V, S, P ) sei in Chomsky-Normalform. Dann gibt es eineGrammatik G∗ = (Σ, V ∗, S∗, P ∗) in Greibach-Normalform, so dass

- L(G) = L(G∗)

- |P ∗| = O(

|P |3)

.

Beweis: Siehe I. Wegener, Theoretische Informatik, S. 172–181.

Wir entwerfen jetzt das Maschinenmodell eines Kellerautomaten, das Linksableitungen fureine Grammatik in Greibach-Normalform simulieren kann. Beachte, dass eine Linksableitungeines Wortes w ∈ Σ∗ die Form

S → w1A1α1 → w1w2A2α2 → w1w2w3A3α3∗→ w1 · · ·wn

hat. Es liegt deshalb nahe, das Maschinenmodell mit einem sequentiell lesbaren Eingabebandund einem Stack auszustatten: Anfanglich befindet sich nur das Startsymbol S auf dem Stack.Dann wird S gelesen und durch den String A1α1 ersetzt, wahrend der Lesekopf nachpruft, obder Buchstabe w1 gelesen wurde. Ist dies der Fall, wird im nachsten Schritt

- das zuoberst gelesene Symbol A1 gelesen und durch den String A2α2 ersetzt, und

- der Lesekopf uberpruft, ob w2 auf dem Eingabeband gelesen wurde.

Diese Schritte werden wiederholt, bis

- alle Buchstaben gelesen wurden und

- der Stack geleert wurde.

Wir werden allerdings auch den Akzeptanzmodus”Akzeptiere durch Zustand“ betrachten.

Definition 3.12 Kellerautomaten

(a) Ein nichtdeterministischer Kellerautomat (PDA) A besitzt die folgenden Komponenten:

• die endliche Zustandsmenge Q,

• das Eingabealphabet Σ,

• das Stackalphabet Γ,

• den Anfangszustand q0 und

• den anfanglichen Stackinhalt Z0 ∈ Γ sowie

Page 74: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

72 KAPITEL 3. KONTEXTFREIE SPRACHEN

• die Zustandsuberfuhrungsfunktion

δ:Q ×(

Σ ∪ ε)

× Γ → P (Q× Γ∗) .

Fur den Akzeptanzmodus durch Zustande ist zusatzlich noch eine Teilmenge F ⊆ Qvon akzeptierenden Zustanden auszuzeichnen.

(b) Eine Konfiguration von A (fur Eingabe w ∈ Σ∗) ist ein Tripel

(q, w′, α) mit q ∈ Q, w′ ∈ Σ∗ und α ∈ Γ∗.

q ist der gegenwartige Zustand, w′ ist der Suffix der noch nicht gelesenen Buchstaben)von w, und α ist ein Stackinhalt. Wie arbeitet A? Wenn

(q, w′1 · · ·w′

m, α1 · · ·αs)

die gegenwartige Konfiguration ist und wenn

(q′, Z1 · · ·Zs) ∈ δ(q, w′1, α1),

dann ist(q′, w′

2 · · ·w′m, Z1 · · ·Zsα2 · · ·αs)

eine mogliche Nachfolgekonfiguration. Wenn

(q′, Z1 · · ·Zs) ∈ δ(q, ε, α1),

dann ist(q′, w′

1 · · ·w′m, Z1 · · ·Zsα2 · · ·αs)

eine mogliche Nachfolgekonfiguration. Alle moglichen Nachfolgekonfigurationen werdenauf diese Art und Weise erhalten.

(c) Akzeptanz durch leeren Stack:

A akzeptiert die Eingabe w = w1 · · ·wn genau dann, wenn es eine Konfigurationenfolge

(q0, w1 · · ·wn, Z0), . . . , (q, ε, ε)

gibt. Bis auf den letzten Schritt darf der Keller zu keinem anderen Zeitpunkt leer sein.

(d) Akzeptanz durch akzeptierende Zustande:

A akzeptiert die Eingabe w = w1 · · ·wn genau dann, wenn es eine Konfigurationenfolge

(q0, w1 · · ·wn, Z0), . . . , (q, ε, α)

gibt mit α ∈ Γ∗ und q ∈ F . Bis auf den letzten Schritt darf auch diesmal der Kellernicht leer werden.

Beispiel 3.7 L = wwreverse |w ∈ a, b∗.Wir entwerfen einen Kellerautomaten fur L. Die Idee ist, dass sich der Kellerautomat in einerersten Phase die gelesenen Zeichen auf dem Stack merkt und irgendwann nichtdeterministischin eine zweiten Phase ubergeht, in der die verbleibenden Zeichen der Eingabe mit dem Inhaltdes Stacks verglichen werden. Der Kellerautomat rat also die Mitte des Wortes.

Wir wahlen Q = push, pop, fail, Γ = a, b, Z0, q0 = push und die Befehle

Page 75: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.4. KELLERAUTOMATEN 73

δ(push, a, x) = (push, ax), (pop, ax)δ(push, b, x) = (push, bx), (pop, bx)

δ(pop, a, x) =

(pop, ε) a = x(fail, x) a 6= x

δ(pop, b, x) =

(pop, ε) b = x(fail, x) b 6= x

δ(fail, a, x) = (fail, x)δ(fail, b, x) = (fail, x)

Satz 3.13 Sei G eine Grammatik in Greibach-Normalform. Dann gibt es einen Kellerauto-maten A mit L(G) = L(A), und A akzeptiert L mit leerem Stack.

Beweis: Sei G = (Σ, V, S, P ). Wir definieren einen Kellerautomaten mit den folgenden Kom-ponenten:

• Q = q0: Q besteht also nur aus einem einziger Zustand,

• Γ = V ,

• Z0 = S.

Das Programm wird so definiert, dass gilt:

S∗→ w1 · · ·wnX1 · · ·Xm ⇔ Der Automat A besitzt nach dem Lesen

von w1 · · ·wn den Kellerinhalt X1 · · ·Xm,

wobei X1 zuoberst liegt.

Wir setzen deshalb

δ(q0, a, y) = (q0, α) | y → aα ∈ P.

In Worten: Wenn der Kellerautomat A das Symbol a ∈ Σ liest und y → aα eine Produktionist, dann darf

- die auf dem Stack zuoberst liegende Variable y durch α ersetzt werden und

- das nachste Symbol gelesen werden.

Dadurch werden keine ε-Bewegungen benotigt.

Sind Kellerautomaten machtiger als kontextfreie Grammatiken?

Satz 3.14 Die Sprache L werde von einem Kellerautomaten A (mit leerem Stack) akzeptiert.Dann gibt es eine kontextfreie Grammatik G mit

L(G) = L(A).

Page 76: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

74 KAPITEL 3. KONTEXTFREIE SPRACHEN

Beweis: (Tripelkonstruktion) Sei A = (Q,Σ,Γ, q0, Z0, δ) ein Kellerautomat. Angenom-men, A hat die Konfiguration

(p, u,X1 · · ·Xm)

erreicht und hat bisher w = w1 · · ·wk gelesen.

Versuch 1: Dann liegt es nahe, die Grammatik G so zu entwerfen, dass die Ableitung

S∗→ w1 · · ·wk p X1 · · ·Xm

moglich ist. Leider ist aber die Grammatik als kontextfrei zu entwerfen; der Ersetzungsschrittwird also nur vom Zustand p (und nicht auch vom Kellersymbol X1) abhangen durfen.

Fazit: Wir mussen Zustand und Kellersymbol in einer Variablen zusammenfassen.

Versuch 2:

S∗→ w1 · · ·wk[p1,X1][p2,X2] · · · [pm,Xm]

Was ist p1, der gegenwartige Zustand? Was ist p2? Der geratene Zustand, wenn das SymbolX2, also das Symbol unterhalb von X1, an die Spitze des Stacks gelangt. Aber wie verifizierenwir, dass p2 der richtige Zustand ist?

Wir arbeiten mit Tripeln, um uns an den geratenen Zustand zu erinnern!

Versuch 3: Wir entwerfen die Grammatik so, dass

S∗→ w1 · · ·wk[p1,X1, p2][p2,X2, p3] · · · [pm,Xm, pm+1]

ableitbar ist.

Die Absicht ist, dass pi der aktuelle Zustand ist, wenn Xi an die Spitze des Stacks gelangt unddass pi+1 der aktuelle Zustand wird, falls das darunterliegende Symbol an die Spitze gelangt.Diese Absicht realisieren wir durch die fogenden Produktionen:

(a) S → [q0, Z0, p] gehort zur Produktionenmenge fur jedes p ∈ Q: Wir raten den Endzu-stand p einer Berechnung.

(b) Fur jeden Befehl (p′, ε) ∈ δ(p, a,X) fugen wir die Produktion

[p,X, p′] → a

hinzu.

(c) Fur jeden Befehl

(p1, α1 · · ·αr) ∈ δ(p, a,X) mit a ∈ Σ ∪ ε

gehoren die Produktionen

[p,X, qr+1] → a[p1, α1, p2][p2, α2, p3] · · · [pr, αr, pr+1]

zur Produktionenmenge, wobei alle Kombinationen (p2, . . . , pr+1) durchlaufen werden.

In einer Linksableitung ist im nachsten Schritt die Variable [p1, α1, p2] zu ersetzen.Wird α1 durch ein nicht-leeres Wort ersetzt, dann wird der (fur die Offenlegung von α2)geratene Zustand p2 weiterhin festgehalten. Wird hingegen α1 mit dem Befehl (q, ε) ∈δ(p1, b, α1) durch das leere Wort ersetzt, dann wird der geratene Zustand p2 auf dieProbe gestellt: Es muss q = p2 gelten. An dieser Stelle setzt also die Verifikation ein!

Page 77: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.4. KELLERAUTOMATEN 75

Damit haben wir also nachgewiesen, dass die Klasse der kontextfreien Sprachen genau derMenge der Sprachen, die von einem Kellerautomaten mit leerem Stack erkannt werden konnen,entspricht. Im nachsten Satz machen wir die Aussage, dass die beiden Akzeptanzmodi

”leerer

Stack“ bzw.”akzeptierender Zustand“ gleich machtig sind.

Satz 3.15 (a) Sei A1 ein Kellerautomat, der mit Zustanden akzeptiert. Dann gibt es einenaquivalenten Kellerautomaten A2, der mit leerem Stack akzeptiert.

(b) Sei A1 ein Kellerautomat, der mit leerem Stack akzeptiert. Dann gibt es einen aquiva-lenten Kellerautomaten A2, der mit Zustanden akzeptiert.

Beweis: (a) Hier ist die Idee: Wenn A1 irgendwann einen akzeptierenden Zustand erreicht,dann sollte A2 die Option haben, den Stack zu leeren. Wenn aber A1 am Ende seiner Berech-nung

”zufalliger Weise“ einen leeren Stack geschaffen hat, dann sollte A2 nicht notwendiger-

weise akzeptieren.

Konstruktion von A2:

- Am Anfang ersetze das Kellersymbol Z0 durch Z ′0Z0 (kein

”zufalliges“ Akzeptieren

durch leeren Stack).

- A2 ubernimmt das Programm δ1 von A1. Wenn ein Zustand in F erreicht wird, danndarf A2 nichtdeterministisch seinen Stack leeren.

(b) Wir mochten, dass A2 bei leerem Stack (!) noch in einen akzeptierenden Zustand wechselnkann.

Konstruktion von A2:

- Zu Anfang ersetze Z0 uber eine ε-Bewegung durch Z ′0Z0.

- Wenn das Kellersymbol Z ′0 erreicht wird, dann springe in einen akzeptierenden Zustand.

Damit haben wir also ein Maschinenmodell gefunden, welches genau den kontextfreien Spra-chen entspricht. Warum haben wir diese Betrachtungen uberhaupt angestellt? Wir hatten mitdem CYK −Algorithmus doch bereits ein Werkzeug, das das Wortproblem einer jeden kon-textfreien Sprache in Polynomialzeit lost. Aber die kubische Laufzeit des CYK−Algorithmusbekommt zwar aus theoretischer Sicht das Etikett

”effizient“ angeheftet, ist aber fur prak-

tische Anwendungen nicht verwendungsfahig. Man uberlege sich wie groß der Source-Codeeines Programmes werden kann und wie furchterregend dann die Laufzeit wird. Es ist auchfestzuhalten, dass der CYK−Algorithmus immer in kubischer Zeit lauft. Insbesondere wirddas Wortproblem fur regulare Sprachen ebenso nur in kubischer Zeit gelost.

Wir werden im nachsten Abschnitt deterministische Kellerautomaten, also Kellerautomatenohne Wahlmoglichkeiten, untersuchen. Wir werden sehen, dass wir durch die Auflage desDeterminismus zu einer Einschrankung der Sprachklasse kommen. Wir werden aber auchfeststellen, dass die Ausdruckskraft immer noch respektabel ist und dass haufig eine sehrschnelle Compilation moglich ist.

Page 78: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

76 KAPITEL 3. KONTEXTFREIE SPRACHEN

3.4.1 Deterministisch kontextfreie Sprachen

Wir fuhren nun den deterministischen Kellerautomaten ein.

Definition 3.16

(a) A heißt ein deterministischer Kellerautomat (DPDA), wenn

- fur jedes Tripel (q, a, z) (mit q ∈ Q, a ∈ Σ und z ∈ Γ)

|δ(q, a, z)| + |δ(q, ε, z)| ≤ 1

gilt und

- A mit Zustanden akzeptiert.

(b) Eine Sprache L heißt deterministisch kontextfrei, wenn L von einem deterministischenKellerautomaten erkannt wird.

Ein deterministischer Kellerautomat erlaubt also hochstens eine Nachfolgekonfiguration, darfaber ε-Schritte durchfuhren. Beachte, dass die deterministisch kontextfreien Sprachen eineUntermenge der kontextfreien Sprachen sind.

Beispiel 3.8 Wir entwerfen einen deterministischen Kellerautomaten fur die Sprache allerlegalen Klammerausdrucke, also fur die von den Produktionen

S → [S] |SS | ε

erzeugte Sprache.

Es ist naturlich Σ =

[, ]

. Wir wahlen Γ =

[, Z0

, Q =

ok, false

und q0 = ok. Das

Programm δ hat die Form

δ(

ok, [, [)

=(

ok, [[)

/* Der Kellerautomat zahlt die offnenden Klammern */

δ(

ok, ], [)

=(

ok, ε)

/* Der Automat hat ein Paar zusammengehoriger Klammern gefunden */

δ(

ok, [, Z0

)

=(

ok, [Z0

)

δ(

ok, ], Z0

)

=(

false, Z0

)

Es wurde keine entsprechende offene Klammer gefunden und deshalb ist false der neueZustand. Im Zustand falsewird keine Aktion ausgefuhrt, bis auf das Weiterlesen der Eingabe.

Wenn der Klammerausdruck legal ist, wird fur jede offnende Klammer auch eine schließendeKlammer gefunden: Unser Automat halt nur mit leerem Stack.

Wenn unser Automat mit leerem Stack halt, wurde fur jede offnende Klammer auch eineschließende gefunden, und der Klammerausdruck ist legal. Unser Automat sollte also mitleerem Stack akzeptieren.

Page 79: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.4. KELLERAUTOMATEN 77

Wir haben nun die Frage zu beantworten, inwiefern die Auflage des Determinismus zu einerEinschrankung der Sprachklasse fuhrt.

Bemerkung 3.3 Im letzten Abschnitt haben wir einen Kellerautomaten konstruiert, der

L = wwreverse|w ∈ Σ∗

erkennt. Wir haben Nichtdeterminismus eingesetzt, um die Mitte des Wortes zu raten. Mankann aber zeigen, dass ein deterministischer Kellerautomat hier uberfordert ist.

Fragen:

1) Warum erlauben wir ε-Bewegungen in der Definition der deterministischen Kellerauto-maten?

2) Warum haben wir Akzeptanz durch Zustand gefordert?

Antwort zu 1): Die Sprache L = anbmcrdn |n > 0,m > r, r > 0 kann von einem deter-ministischen Kellerautomaten mit ε-Bewegung erkannt werden. Ohne ε-Bewegungen erreichtman aber die gespeicherten a’s nicht.

An dieser Stelle kommen wir noch einmal auf die beiden uns bekannten Akzeptanzmodiakzeptierender Zustand und leerer Stack zuruck. Im letzten Abschnitt haben wir gesehen, dassdie beiden Modi die gleiche Sprachklasse akzeptieren. Fur deterministische Kellerautomatenkommen wir hier zu einem negativen Resultat und damit zu einer Antwort zu 2).

Definition 3.17 Wir definieren

LStackD = L ⊆ Σ∗|∃DPDA A, A akzeptiert L mit leerem Stack

LFD = L ⊆ Σ∗|∃DPDA A, A akzeptiert L mit akzeptierendem Zustand.

Satz 3.18LStackD ⊂ LFD

Beweis: Im Beweis von Satz 3.15 haben wir aus einem Automaten A1, der mit leerem Stackakzeptierte, einen Automaten A2 gebaut, der per Zustand akzeptierte und L(A2) = L(A1)erfullte. Man uberzeuge sich, dass diese Konstruktion keinen Nichtdeterminismus hinzugefugthat. Damit haben wir

LStackD ⊆ LFD

nachgewiesen. Wir betrachten nun die Sprache L = 0, 01. Zunachst uberzeuge man sich,dass L durch einen deterministischen Kellerautomaten akzeptiert werden kann, der mit Zu-standen akzeptiert.

Dass diese Sprache nicht von einem deterministischen Kelleratomaten mit leerem Stack ak-zeptiert werden kann, macht man sich mit einer einfachen Fallunterscheidung klar.

- Schreibt der Automat im Anfangszustand beim Eingabezeichen 0 ein Zeichen auf denStack, so wird das Eingabewort 0 nicht akzeptiert: Fehler.

- Schreibt der Automat im Anfangszustand beim Eingabezeichen 0 nichts auf den Stack,so bricht die Berechnung nach dem Lesen des ersten Zeichens bereits erfolgreich ab.Auch 00 /∈ L wird akzeptiert: Fehler.

Page 80: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

78 KAPITEL 3. KONTEXTFREIE SPRACHEN

Damit haben wir die Echtheit der Inklusion gezeigt. Akzeptieren per Zustand ist fur deter-ministische Kellerautomaten der machtigere Akzeptanzmodus.

Bemerkung 3.4 Fur deterministisch kontextfreie Sprachen liefert der akzeptierende deter-ministische Kellerautomat eine schnelle Losung des Compilerproblems, wenn keine ε-Schrittedurchgefuhrt werden. In diesem Fall erhalten wir eine Losung in linearer Zeit. Man machesich aber klar, dass das Fortlassen von ε-Schritten eine wesentliche Einschrankung ist.

Warum ist die Betrachtung von deterministischen kontextfreien Sprachen nun so wichtig?

Satz 3.19 (a) Jede deterministisch kontextfreie Sprache ist eindeutig.

(b) wwreverse|w ∈ Σ∗ ist eindeutig aber nicht deterministisch kontextfrei.

(c) Das Wortproblem fur deterministisch kontextfreie Sprachen kann in Linearzeit gelostwerden.

Beweis: Siehe zum Beispiel das Textbuch von Ingo Wegener.

Zunachst ist die Eindeutigkeit aus Sicht des Compilerbaus ein immenser Vorteil, da einemWort mit einer eindeutiger Ableitung leicht eine Semantik zugeordnet werden kann. Deswei-teren garantiert Teil (c) eine effiziente Losung des Wortproblems.

3.4.2 Abschlusseigenschaften deterministisch kontextfreier Sprachen

Unter welchen Operationen sind deterministisch kontextfreie Sprachen abgeschlossen? Im Ge-gensatz zu kontextfreien Sprachen sind deterministisch kontextfreie Sprachen unter Kom-plementbildung abgeschlossen, aber nicht unter Vereinigung. Als unmittelbare Konsequenzerhalten wir deshalb, dass deterministisch kontextfreie Sprachen eine echte Teilklasse derkontextfreien Sprachen bilden.

Satz 3.20 (a) Wenn L deterministisch kontextfrei ist, dann auch L.

(b) Es gibt deterministisch kontextfreie Sprachen L1 und L2, so dass der Schnitt L1 ∩ L2

nicht einmal kontextfrei ist.

(c) Die deterministisch kontextfreien Sprachen sind unter Vereinigung nicht abgeschlossen.

(d) Die deterministisch kontextfreien Sprachen bilden eine echte Untermenge der kontext-freien Sprachen.

Beweis: (a) Sei A ein deterministischer Kellerautomat mit A = (Q,Σ, q0, Z0, δ, F ). Wir

”bauen“ einen deterministischen Kellerautomaten A′, der das Komplement von L akzeptiert.

Beachte, dass A eine Eingabe auch wahrend eventueller ε-Bewegungen akzeptieren kann.Deshalb verwirft A′ genau dann, wenn A irgendwann, und zwar nach dem Lesen des letztenBuchstabens und vor dem Versuch den nachsten Buchstaben zu lesen, akzeptiert.

(b) Wir wissen, dass

anbncn |n ≥ 0 = L

Page 81: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

3.5. ZUSAMMENFASSUNG 79

nicht kontextfrei ist. Aber

L = anbncm |n,m ≥ 0 ∩ ambncn |n,m ≥ 0,

und beide Sprachen sind deterministisch kontextfrei.

(c) Nun zur Vereinigung. Wir betrachten die folgenden Sprachen K1 und K2.

K1 = axbycz |x 6= yK2 = axbycz | y 6= z

K1 und K2 sind deterministisch kontextfrei, da wir jeweils leicht einen deterministischenKellerautomaten angeben konnen. Wie sieht die Vereinigung der Sprachen K = K1∪K2 aus?

K = K1 ∪K2

= axbycz |x 6= y oder y 6= z

Nehmen wir an, K sei deterministisch kontextfrei. Dann ware wegen Teil (a) auch K deter-ministisch kontextfrei. Wie sieht diese Sprache aus:

K = axbycz |x = y = z

Diese Sprache ist aber nicht kontextfrei, womit K nicht deterministisch kontextfrei gewesensein kann.

(d) Die oben betrachtete Sprache

K = axbycz |x 6= y oder y 6= z

ist nicht deterministisch kontextfrei. Da sie aber kontextfrei ist, belegt sie die Echtheit derInklusion.

3.5 Zusammenfassung

Wir haben gesehen, dass kontextfreien Sprachen eine wesentlich großere Sprachklasse ab-decken als die regularen Sprachen. Allerdings haben das Pumping-Lemma bzw. das machti-gere Lemma von Ogden auch die Grenzen der Ausdrucksstarke kontextfreier Sprachen gezeigt.Das Konzept des Ableitungsbaums hat sich in diesen Untersuchungen als besonders hilfreicherwiesen.

Wir haben die Chomsky-Normalform kontextfreier Sprachen eingefuhrt und gezeigt, dass wirmit Hilfe der dynamischen Programmierung der (CYK-Algorithmus) das Wortproblem in Zeit

O(|Produktionen| · |w|3)

losen konnen. Fur praktische Anwendungen ist das Konzept der kontextfreien Sprachen den-noch etwas zu weit gefaßt. Kubische Laufzeit ist ab einer gewissen Sourcecodelange nichtmehr akzeptabel.

Als Konsequenz haben wir die kontextfreien Sprachen noch weiter eingeschrankt und kamenzu den deterministisch kontextfreien Sprachen, die wir mit Hilfe deterministischer Kellera-tomaten eingefuhrt haben. Nebenbei haben wir beobachtet, dass nichtdeterministische Kel-lerautomaten genau die kontextfreien Sprachen akzeptieren. Die wichtigen Eigenschaften derKlasse deterministisch kontextfreier Sprachen sind einerseits ihre Eindeutigkeit und anderer-seits die Losung des jeweiligen Wortproblems in Linearzeit.

Page 82: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

80 KAPITEL 3. KONTEXTFREIE SPRACHEN

Page 83: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Kapitel 4

XML und regulare

Baumgrammatiken

Im Compilerproblem haben wir uns die Aufgabe gestellt, die syntaktische Korrektheit einesProgramms P zu uberprufen. Dazu haben wir uns P als einen String, namlich als Konkate-nation aller Anweisungen von P vorgestellt. Im Typechecking Problem fur XML-Dokumentesehen wir uns mit einer neuen Situation konfrontiert:

Ein XML-Dokument D ist hierarisch strukturiert. Eine Interpretation von D als eineFolge von Buchstaben unterdruckt die Zusatzinformation der hierarischen Strukturie-rung und ist deshalb nicht angemessen. Vielmehr stellt es sich heraus, dass wir D alseinen Baum auffassen sollten, dessen Knoten mit Worten beschriftet sind.

Wir werden deshalb Grammatiken betrachten, die beschriftete Baume erzeugen und unter-suchen Baumsprachen, also Sprachen, die nicht mehr aus Strings, sondern aus beschriftetenBaumen bestehen. Wir schließen die Betrachtung von XML mit den Sprachen XPath undXQuery, die fur die Auswertung von XML-Dokumenten vor Allem in Hinblick auf Datenbank-anwendungen eingesetzt werden.

4.1 XML

Wir geben eine kurze Beschreibung von XML (extensible Markup Language oder in Deutsch:erweiterbare Auszeichnungssprache1). XML ist ein vom World Wide Web Konsortium W3Cverabschiedeter Standard fur einen plattform-unabhangigen Austausch von Daten zwischenRechnern. Die Regeln von XML unterstutzen eine hierarische Strukturierung, also eine Baum-strukturierung der Daten.

Wir geben zuerst einen kurzen Uberblick uber die Syntax von XML-Dokumenten. Ein XML-Dokument entspricht einem Baum aus Elementen. Elemente mit Inhalt besitzen eine Start-und Endkennung, die jeweils mit dem Namen des Elements beschriftet ist:

<element-name>

element-beschreibung

</element-name>

1HTML und LaTex sind Beispiele”konventioneller“ Auszeichungssprachen.

81

Page 84: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

82 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

Elemente ohne Inhalt werden durch <element-name element-beschreibung /> spezifiziert.Elemente mit Inhalt besitzen Kinder-Elemente und Attribute, Elemente ohne Inhalt besitzennur Attribute. Jedes XML-Dokument besitzt eine Baumstruktur. Dazu fordert die Syntaxvon XML, dass ein XML-Dokument

- genau ein Wurzelelement besitzt und

- dass die Kennung eines Elements vor der Endkennung des Elternelements oder derStartkennung eines Geschwisterelements zu schließen ist.

Beispiel 4.1 Ein XML-Rezept.

<rezept name="Mein erster Pfannkuchen" benoetigte-zeit="1" einheit="Stunde">

<zutaten>

<zutat name="Mehl" wieviel="250" einheit="Gramm"/>

<zutat name="Eier" wieviel="2" einheit="Stueck"/>

<zutat name="Zucker" wieviel="1" einheit="Essloeffel"/>

<zutat name="Milch" wieviel="500" einheit="Milliliter"/>

<zutat name="Rapsoel" wieviel="5" einheit="Gramm"/>

</zutaten>

<zubereitung>

Alle Zutaten in eine Schuessel geben und

<em>kraeftig</em> umruehren. Dann Rapsoel

in der Pfanne erhitzen, den Teig in die Pfanne

geben und <em>rechtzeitig</em> herausnehmen.

</zubereitung>

<kommentar>

Lecker

</kommentar>

</rezept>

Die erste Annotation <rezept>...</rezept> definiert das Wurzelelement mit Startkennung(engl: start tag) <rezept> und Endkennung (engl: end tag) </rezept>. Der von <rezept>

und </rezept> eingeschlossene Teil definiert den Inhalt des Elements, also in unserem Fall

- die in der Reihenfolge zutaten, zubereitung, kommentar geordneten”regularen“ Kin-

der sowie

- die Attribute name, benoetigte-zeit und einheit, die als ungeordnete,”irregulare“

Kinder des Elements auftreten.

Ein Attribut kommt stets im Inhalt eines Elements vor, besitzt keine Kinder und nimmtWerte an.

Das Element rezept definiert also einen XML-Baum mit Wurzel rezept und den drei geord-neten Kindern zutaten, zubereitung,kommentar. Der Inhalt von zutaten besteht aus denfunf zutat Elementen, die ihrerseits drei Attributkinder, namlich name, wieviel und einheit

besitzen. Das Element zubereitung besitzt funf Kinder, ein Textknoten gefolgt von dem Ele-ment em, einem Textknoten, einem weiteren Vorkommen von em und einem abschließendemTextknoten. Schließlich hat kommentar einen Textknoten als Kind.

Page 85: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4.1. XML 83

Die Start-Ende Kennungen eines XML-Dokuments legen also den zu einem XML-Dokumentgehorenden Baum eindeutig fest und dieser Baum ist sehr schnell bestimmbar.

Definition 4.1 Ein XML-Baum (W,E, λ, ν) ist ein geordneter Baum mit Knotenmenge Wund Kantenmenge E. Innere Knoten entsprechen Elementen, Blatter entsprechen Attributen.

Die Funktion λ weist einem Textknoten die Markierung”Text“, jedem anderen Knoten seine

Kennung, bzw seinen Attributnamen zu. Die Funktion ν weist Textknoten den zugehorigenText und Attributen Werte zu.

Wir unterscheiden also zwischen der Beschriftung λ, die Textknoten identifiziert, bzw. denNamen (fur ein Element oder ein Attribut) zuweist und der Beschriftung ν, die Werte zu-weist. Im Folgenden werden wir uns nur auf die Graphstruktur eines XML-Baums und dieNamensgebung λ konzentrieren, die Wertezuweisung werden wir also unterschlagen.

Jedes XML-Dokument D wird also durch einen XML-Baum B reprasentiert. Wie erhaltenwir D, wenn nur B gegeben ist? Wir drucken die Knoten von B in einem Praorderdurchlaufvon B aus und weisen Werte mit Hilfe der Funktion ν zu!

Anwendungsspezifische XML-Sprachen wie

• RSS (Veroffentlichung von Anderungen auf Webseiten),

• XHTML (Neuformulierung von HTML 4 in XML 1.0),

• SVG –scalable vector graphics– (Beschreibungssprache fur zweidimensionale Vektorgra-fiken),

• MathML (Darstellung mathematischer Formeln),

• GraphML (Beschreibung und Darstellung von Graphen)

schranken die XML-Syntax ein. Jede dieser Sprachen unterscheidet zwischen zwei Klassenvon XML-Dokumenten, namlich den sinnvollen, fur die das XML-Dokument syntaktisch ko-rekt ist und den Rest. XML Schema Sprachen geben die Moglichkeit, eine Syntax fur XML-Dokumente zu beschreiben. XML-Parser (oder XML-Prozessoren) uberprufen dann die syn-taktische Korrektheit eines vorgegebenen XML-Dokuments. Wir konzentrieren uns im Fol-genden auf grammatik-basierte Schema Sprachen (wie DTD, XML Schema, RELAX NG undXSLT), also auf die am weitesten verbreitete Klasse von Schema Sprachen.

Page 86: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

84 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

4.2 DTDs

Eine Syntaxbeschreibung durch DTDs hat die Form

<!DOCTYPE Name-der-Syntax

[ eine Liste von Elementdefinitionen ]>

Der Typ eines Elements wird dann durch die Beschreibung

<!ELEMENT Name-des-Elements ( Definition-des-Elements )>

festgelegt. Eine DTD (Document Type Definition) legt fest, welche Wahlmoglichkeiten furdie Kinder eines jeden Elements bestehen. Diese

”Kinderregeln“ weisen dazu dem Element v

einen regularen Ausdruck in den”Kinder-Elementen“ von v zu.

Beispiel 4.2 Eine DTD fur XML-Rezepte konnte zum Beispiel das folgende Aussehen haben:

<!ELEMENT rezept (zutaten, zubereitung, kommentar?)>

<!ELEMENT zutaten (zutat*)>

<!ELEMENT zutat >

<!ELEMENT zubereitung ((#PCDATA | em )*)>

<!ELEMENT em (#PCDATA)>

<!ELEMENT kommentar (#PCDATA)>

<!ATTLIST rezept name CDATA #REQUIRED

benoetigte-zeit CDATA #REQUIRED

einheit CDATA #REQUIRED>

<!ATTLIST zutat name CDATA #REQUIRED

wieviel CDATA #REQUIRED

einheit CDATA #REQUIRED>

In den regularen Ausdrucken steht ein Komma fur die Konkatenation, der vertikale Strich furdie Vereinigung, der Stern fur den Kleene-Operator und das Fragezeichen fur die optionaleWahl. Zusatzlich wird + fur ein mindestens einmaliges Auftreten verwandt.

Das Schlusselwort #PCDATA steht fur parsed character data und gibt an, dass der jeweili-ge Textknoten Stringwerte annimmt. Die Deklarationen von Attributen geschieht durch die

Page 87: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4.2. DTDS 85

<!ATTLIST ... > Kennung; die Markierung #REQUIRED gibt an, dass das Attribut auftretenmuss.

Die DTD beschreibt also die Klasse zulassiger Baume mit Wurzel rezpt. Zum Beispiel legenwir fest, dass rezept das linke Kind zutaten und darauffolgend das Kind zubereitung

besitzt; moglicherweise hat rezept auch noch kommentar als rechtestes Kind. zutaten hatunbeschrankt viele Kinder vom Typ zutat, wobei in zutat die Attribute name, wieviel,

einheit auftreten.

Ein Element darf durchaus mehrfach im Baum vorkommen. Bei mehrmaligem Auftretenim Baum gilt aber stets die eine in der DTD beschriebene Deklaration, verschiedene, vomKontext-abhangige Deklarationen sind also verboten.

Das Wortproblem fur nichtdeterministische Automaten kann in Zeit O(|w| · |Q|2) fur einEingabewort w gelost werden. Da ein regularer Ausdruck der Lange L in einen nichtdetermi-nistischen Automaten mit hochstens L Zustanden umgebaut werden kann, ist also auch dasWortproblem fur regulare Ausdrucke effizient losbar. Um aber eine noch schnellere Berech-nung zu erlauben, werden in DTDs nur deterministische regulare Ausdrucke zugelassen.

Definition 4.2 Sei R ein regularer Ausdruck uber dem Alphabet Σ. Wir ersetzen R durchden regularen Ausdruck R′, indem fur alle i und alle Buchstaben a ∈ Σ das ite Vorkommenvon a durch den neuen Buchstaben ai ersetzt wird.

R ist deterministisch, wenn es keinen Buchstaben b ∈ Σ und keine Worte w, v, v′ gibt, so dassdie beiden Worte wbiv und wbjv

′ mit i 6= j den Ausdruck R′ erfullen.

Der regulare Ausdruck R = ab+ ac ist also nicht deterministisch, denn sowohl a1b wie aucha2c erfullen den Ausdruck R′ = a1b1 + a2c1. Beachte aber, dass der aquivalente AusdruckR = a(b+ c) sehr wohl deterministisch ist, denn jeder Buchstabe taucht genau einmal auf.

Das Wortproblem fur einen deterministischen Ausdruck R lasst sich in einem links-nach-rechtsDurchlauf des Worts Eingabeworts u losen, da fur jeden Buchstaben b nur ein Vorkommenvon b in R “passt”. Wenn wir das Wortproblem fur das Eingabewort aaa und den Ausdruck(a+b)∗a losen mochten, dann wissen wir nicht, welches Vorkommen von a in (a+b)∗a fur daserste a in aaa passt. Der mit (a+ b)∗a aquivalente (und deterministische) Ausdruck b∗a(b∗a)∗

stellt kein Problem dar. (Warum?)

Aufgabe 60Zeige, dass (a+ b)∗a und b∗a(b∗a)∗ aquivalent sind und dass b∗a(b∗a)∗ ein deterministischer Ausdruck ist.

Aufgabe 61Zeige, dass das Wortproblem fur deterministische regulare Ausrucke in einem links-nach-rechts Durchlauf desEingabeworts gelost werden kann.

Wenn wir die Eigenheiten der DTD-Syntax ausblenden und auch die Deklaration der Attributevernachlassigen, werden wir auf den folgenden Kern der Deklaration gefuhrt.

Rezept -> rezept(Zutaten, Zubereitung, Kommentar?)

Zutaten -> zutaten(Zutat*)

Zutat -> zutat()

Zubereitung -> zubereitung((#PCDATA | Em)*)

Em -> em(#PCDATA)

Kommentar -> kommentar(#PCDATA)

#PCDATA -> #pcdata

Page 88: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

86 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

Wir konnen diese Deklarationen auch als Produktionen einer erweiterten kontextfreien Gram-matik auffassen: Die Variablen der Grammatik entsprechen den Elementen, die Produktio-nen den regularen Ausdrucken. Beachte, dass wir Elementnamen gross schreiben, wenn wirdas jeweilige Element als Variable auffassen. Die Kleinschreibung deutet die Sichtweise als

”Buchstabe“ an: Start- und Endkennung mit dem jeweiligen Namen sind einzufugen. UnsereProduktionen sind also stets von der Form

X → a(R), (4.1)

wobei X eine Variable, a ein Buchstabe und R ein regularer Ausdruck ist, der nur aus Varia-blen besteht.

Genauso wie in diesem Beispiel konnen wir auch beliebige DTD-Deklarationen als eine erwei-terte2 kontextfreie Grammatik G auffassen und erhalten als Konsequenz:

Wenn wir Attribute und Text-Elemente vernachlassigen, dann entsprechen XML-Baumegenau den Ableitungsbaumen von G.

Das Wortproblem (oder das Typchecking Problem) fur einen vorgegebenen DTD-Typ istdeshalb wesentlich einfacher als fur allgemeine kontextfreie Grammatiken, denn wir mussenja nur uberprufen, ob ein vorgegebener Ableitungsbaum legal ist.

Ein Parser fur DTDs

Das XML-Dokument D liege mit einer DTD-Deklaration vor. Typechecking wird durcheinzigen links-nach-rechts Durchlauf von D durchgefuhrt:

(1) Wenn eine Startkennung mit Namen a angetroffen wird, dann bestimme die eineProduktion X → aR, die a erzeugen kann.

(2) Wenn die entsprechende Endkennung gelesen wird, dann uberprufe, ob die denKindern zugeordnete Buchstabenfolge den regularen Ausdruck R erfullt. Ist diesnicht der Fall, dann brich mit einer Fehlermeldung ab.

/* Hier zahlt sich die DTD-Beschrankung auf deterministische Ausdrucke aus, dadas Wortproblem fur R ebenfalls in einem links-nach-rechts Durchlauf losbar ist.*/

Typechecking geschieht also blitzschnell und benotigt noch nicht einmal eine explizite Bestim-mung des XML-Baums. Man sagt auch, dass der Parser im

”Event Modell“ arbeitet, wobei

jede Start- und Endkennung ein Event, also ein Ereignis darstellt. Wir konnen uns naturlichdie Arbeitsweise des Parsers auch auf dem zugehorigen XML-Baum vorstellen, wenn wir unserinnern, dass ein XML-Dokument aus seinem Baum durch einen Praorderdurchlauf entsteht:Der Parser arbeitet den Baum also nach der Praorderreihenfolge ab.

4.3 Regulare Baumsprachen

Wie groß ist die Beschreibungskraft von DTDs, beziehungsweise welche anderen vernunftigenBeschreibungsmechanismen stehen uns noch zur Verfugung? Um diese Fragen zu beantworten,stellen wir jetzt regulare Baumgrammatiken vor, die beschriftete Baume und insbesondereXML-Baume erzeugen.

2Naturlich konnten wir auch konventionelle kontextfreie Grammatiken verwenden, mussten dann aber dieregularen Ausdrucke durch mehrere konventionelle Produktionen ersetzen, ein kleiner Schonheitsfehler.

Page 89: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4.3. REGULARE BAUMSPRACHEN 87

Definition 4.3 Eine regulare Baumgrammatik (V,Σ, S, P ) besteht aus

• der endlichen Menge V der Variablen,

• dem Alphabet Σ,

• dem Startsymbol S ∈ V

• und einer endlichen Menge P von Produktionen.

Jede Produktion in P ist von der Form

X → aR,

wobei X ∈ V eine Variable, a ∈ Σ ein Buchstabe und R ein regularer Ausdruck ist, der nuraus Variablen besteht. Wir sagen auch, dass R die Kinderstruktur von X beschreibt.

Beachte, dass wir annehmen konnen, dass es zu jeder Variablen X ∈ V und zu jedem Buch-staben a ∈ Σ hochstens eine Produktion X → aR gibt: Wir konnen ja zwei ProduktionenX → aR1 und X → aR2 zu der einen Produktion X → a(R1 +R2) vereinigen.

Eine erste Beobachtung zeigt, dass wir eine DTD Deklaration als eine regulare Baumgramma-tik auffassen konnen, wenn wir statt der Produktionen X → a(R) in (4.1) die ProduktionenX → aR verwenden. Regulare Baumgrammatiken stimmen also mit kontextfreien Grammati-ken in Greibach Normalform uberein, der Unterschied ist naturlich, dass diesmal Baume undnicht Strings erzeugt werden:

Der Buchstabe a ist der Name des zugehorigen Knotens und R beschreibt die Kinder-struktur des Knotens.

Definition 4.4 (a) Sei G = (V,Σ, S, P ) eine regulare Baumgrammatik und sei (W,E, λ)ein beschrifteter Baum: Es ist also (W,E) ein geordneter Baum und λ : W → Σ ist seineBeschriftung. Wir sagen, dass G den Baum (W,E, λ) genau dann erzeugt, wenn es eineFunktion λ′ :W → V mit den folgenden Eigenschaften gibt:

- Fur die Wurzel w des Baums gilt λ′(w) = S.

- Fur jeden Knoten u ∈ W mit den (geordnet aufgelisteten) Kindern u1, . . . , uk gibt eseine Produktion X → aR, so dass

– λ′(u) = X,

– λ(u) = a und

– λ′(u1)λ′(u2) · · · λ′(uk) erfullt den Ausdruck R.

Die von G erzeugte Baumsprache L(G) besteht aus allen von G erzeugten Baumen.

(b) Eine Sprache L ist genau dann eine regulare Baumsprache, wenn L = L(G) fur eineregulare Baumgrammatik gilt.

Wir verwenden im Folgenden Großschreibung fur Variablen und Kleinschreibung fur Termi-nale. Um die Lesbarkeit zu erleichtern, benutzen wir runde Klammern, um regulare Ausdruckevon

”ihrem“ Terminal abzugrenzen.

Page 90: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

88 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

Beispiel 4.3 Wir konstruieren eine regulare Baumgrammatik, die alle arithmetischen Aus-drucksbaume erzeugt. Wir verwenden nur eine Variable Ausdruck, die naturlich auch gleich-zeitig das Startsymbol ist. Das Alphabet ist Σ = +,−, ∗, /, variable, und wir verwendendie Produktionen

Ausdruck -> + ( Ausdruck , Ausdruck+)

Ausdruck -> - ( Ausdruck , Ausdruck )

Ausdruck -> * ( Ausdruck , Ausdruck+)

Ausdruck -> / ( Ausdruck , Ausdruck )

Ausdruck -> variable()

(Fur eine Variable X bezeichnet X+ beliebige Wiederholungen von X, wobei X mindestenseinmal vorkommen muss.)

Beispiel 4.4 Wir sagen, dass ein Binarbaum B ein Und/Oder Baum ist,

- wenn die Blatter mit entweder 0 oder 1,

- die inneren Knoten mit entweder and oder or beschriftet sind

- und wenn B als Und/Oder Schaltung aufgefasst, den Wert 1 berechnet.

Wir zeigen, dass die Sprache aller Und/Oder Baume eine regulare Baumsprache ist. Wirverwenden die Variablenmenge V = Null, Eins, das Alphabet Σ = 0, 1, and, or, dasStartsymbol S = Eins und die Produktionen

Null -> or ( Null , Null )

Null -> and ( (Eins , Null ) | ( Null , Eins) | (Null , Null) )

Null -> 0()

Eins -> or ( (Eins , Null ) | ( Null , Eins) | (Eins , Eins) )

Eins -> and ( Eins , Eins )

Eins -> 1()

Wie sehen DTD-Deklarationen aus, wenn wir sie als regulare Baumgrammatiken auffassen?

Definition 4.5 Sei G = (V,Σ, S, P ) eine regulare Baumgrammatik.

(a) Wir sagen, dass zwei Variablen X,Y ∈ V im Buchstaben a ∈ Σ kollidieren, falls es zweiProduktionen X → aR1, Y → aR2 mit R1 6= R2 in P gibt.

(b) G heißt lokal, wenn keine zwei Variablen in einem Buchstaben kollidieren.

(c) Eine regulare Baumsprache L heißt lokal, wenn L von einer lokalen Baumgrammatikerzeugt wird.

Wenn wir die DTD-Beschrankung auf deterministische regulare Ausdrucke aufheben, dannstimmen DTD-Deklarationen in ihrer Ausdruckskraft mit lokalen Baumgrammatiken uberein,denn in einer DTD-Deklaration gibt es fur jeden Elementnamen a genau eine Produktion, dieden Buchstaben a erzeugen kann, also von der Form X → aR.

Beispiel 4.5 Die folgende Baumsprache, die nur aus dem Baum B besteht, ist nicht durchDTD-Deklarationen erzeugbar:

Page 91: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4.3. REGULARE BAUMSPRACHEN 89

B hat die Wurzel autohaendler. Der linke Teilbaum hat die Wurzel gebrauchtwagenmit dem einzigem Kind fabrikat und den beiden Enkelkindern modell und baujahr.Der rechte Teilbaum hat die Wurzel neuwagen mit dem einzigen Kind fabrikat undden beiden Enkelkindern modell und rabatt.

Aufgabe 62Zeige, dass es keine lokale Baumgrammatik gibt, die nur den Baum B erzeugt.

Damit ist die”Ausdruckskraft“ regularer Baumgrammatiken sehr viel großer als die Aus-

druckskraft von DTD-Deklarationen. Diese geringe Ausdruckskraft ist argerlich, weil zumBeispiel Kontext-abhangige Deklarationen von Elementen wie in Beispiel 4.5 ausgeschlossensind.

4.3.1 Baumsprachen mit eindeutigen Typen

Wir kommen jetzt zu XML Schema, einer Schema Sprache, die gegenwartig am weitestenverbreitet ist. (XML Schema ist durchaus umstritten, was zum Teil auf ihre extrem aufwandigeBeschreibung zuruckzufuhren ist.) Die Ausdruckskraft von XML Schema im Vergleich zuDTDs nimmt zu. Von der Perspektive der regularen Baumsprachen aus gesehen, lassen sichXML Schema Deklarationen als Baumgrammatiken mit eindeutigen Typen (single type treegrammar) auffassen.

Definition 4.6 G = (V,Σ, S, P ) sei eine regulare Baumgrammatik.

(a) Wir sagen, dass G eindeutige Typen hat genau dann, wenn fur jede Produktion X → aRin P keine zwei in R auftretenden Variablen in einem Buchstaben aus Σ kollidieren.

(b) Eine regulare Baumsprache L hat eindeutige Typen, wenn L von einer Baumgrammatikmit eindeutigen Typen erzeugt wird.

Wir zeigen jetzt, dass der Baum aus Beispiel 4.5 durch eine Baumgrammatik mit eindeutigenTypen erzeugt werden kann: XML Schema ist also machtiger als DTDs.

Wir verwenden die Produktionen

Autohaendler -> autohaendler (Gebrauchtwagen, Neuwagen)

Gebrauchtwagen -> gebrauchtwagen(Gebraucht)

Neuwagen -> neuwagen(Neu)

Gebraucht -> fabrikat(Modell, Baujahr)

Neu -> fabrikat(Modell, Rabatt)

Page 92: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

90 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

Modell -> modell()

Alter -> baujahr()

Rabatt -> rabatt()

Wo liegen die Schwachen von Baumgrammatiken mit eindeutigen Typen?

Beispiel 4.6 Wir betrachten die folgende Sprache L2, die aus Baumen der Tiefe zwei besteht:Alle Baume besitzen die Wurzel neuwagen, die zwei Kinder mit dem identischen Namenfabrikat besitzt. Ein fabrikat-Knoten besitzt entweder ein Kind mit Namen modell oderzwei Kinder mit den Namen modell und rabatt. Zusatzlich fordern wir, dass jeder Baum inL2 mindestens ein

”rabatt-Blatt“ besitzt.

Wir zeigen, dass L2 eine regulare Baumsprache ist und geben dazu die folgenden Produktionenan.

Neuwagen -> neuwagen((Neu,Neur) | (Neur,Neu) | (Neur,Neur) )

Neu -> fabrikat(Modell)

Neur -> fabrikat(Modell,Rabatt)

Modell -> modell()

Rabatt -> rabatt()

Diese spezielle Baumgramatik ist naturlich nicht eindeutig, da die im Inhalt von Neuwagen

auftretenden Variablen Neu und Neur im”Buchstaben“ fabrikat kollideren.

Aufgabe 63Zeige, dass L2 keine Baumsprache mit eindeutigen Typen ist.

Es ist also nicht moglich, eine Klasse von XML Schema Dokumenten zu definieren, das alleAutohandler auffuhrt, die mindestens einen Neuwagen mit Rabatt anbieten. Fur regulareBaumgrammatiken hingegen stellt dies kein Problem dar: Sie konnen die globale Eigenschaft

”mindestens einmal eine Eigenschaft zu erfullen“ beschreiben:

Aufgabe 64Die Sprache L bestehe aus allen Baumen, deren Knoten mit entweder a oder b beschriftet sind. Zusatzlichverlangen wir, dass mindestens ein Knoten mit a markiert ist.

Zeige, dass L eine regulare Baumsprache ist.

Lemma 4.7

(a) Die Klasse der lokalen Baumsprachen ist eine echte Teilmenge der Klasse der Baum-sprachen mit eindeutigen Typen.

(b) Lokale Baumsprachen und Baumsprachen mit eindeutigen Typen sind abgeschlossen un-ter Durchschnitt, nicht aber unter Vereinigung und Komplementen.

Page 93: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4.3. REGULARE BAUMSPRACHEN 91

Beweis (a) Jede lokale Baumgrammatik ist auch eine Baumgrammatik mit eindeutigen Ty-pen. Beispiel 4.5 zeigt, dass es Baumsprachen mit eindeutigem Typ gibt, die keine lokalenBaumsprachen sind.

(b) Der Nicht-Abschluss unter Vereinigung wird in der folgenden Aufgabe nachgewiesen. Furdie verbleibenden Aussagen verweisen wir auf die Literatur.

Aufgabe 65Die Sprachen L1 = B1 und L2 = B2 bestehen jeweils aus genau einem Baum der Tiefe zwei; alle Knotensind mit dem Buchstaben a beschriftet. B1 ist der vollstandige binare Baum. B2 hat ebenfalls eine Wurzel mitzwei Kindern, die beiden Kinder haben aber selbst nur jeweils ein Kind.

Zeige: L1, L2 sind lokale Baumsprachen, L1 ∪ L2 ist keine Baumsprache mit eindeutigem Typ.

Also sind weder lokale Baumsprachen noch Baumsprachen mit eindeutigem Typ unter Vereinigung abgeschlos-sen.

Trotz gewonnener Ausdrucksstarke erlauben Baumsprachen mit eindeutigen Typen weiterhineine pfeilschnelle Losung des Typechecking Problems.

Ein Parser fur XML Schema, bzw. fur Baumsprachen mit eindeutigen Typen

Das XML-Dokument D liege mit einer XML Schema Deklaration, also einer eindeuti-gen Baumgrammatik G vor. Typechecking wird wieder durch einzigen links-nach-rechtsDurchlauf von D durchgefuhrt:

(1a) Wenn die Wurzelkennung mit Namen a angetroffen wird, dann suche eine S-Pro-duktion S → aR. Wenn es keine solche Produktion gibt, dann brich mit einerFehlermeldung ab.

(1b) Wenn eine von der Wurzelkennung verschiedene Startkennung mit Namen a ange-troffen wird, dann haben wir bereits die Startkennung des Elternknotens gelesenund genau eine Produktion Y → bR′ fur den Elternknoten ausgewahlt. Wir wahleneine Produktion X → aR aus, so dass X in R′ auftaucht. Wenn es keine solcheProduktion gibt, dann brich mit einer Fehlermeldung ab.

/* Da die Baumgrammatik eindeutig ist, gibt es keine zwei Variablen, die in R′

auftauchen und im Buchstaben a kollidieren. Unsere Wahl ist also eindeutig! */

(2) Wenn die entsprechende Endkennung gelesen wird, dann uberprufe, ob die denKindern zugeordnete Buchstabenfolge den regularen Ausdruck R erfullt. Ist diesnicht der Fall, dann brich mit einer Fehlermeldung ab.

4.3.2 Regulare Baumgrammatiken und Baumautomaten

Wir betrachten jetzt uneingeschrankte regulare Baumsprachen, die die Ausdruckskraft vonSchema Sprachen wie RELAX NG3 charakterisieren. Wir beschranken uns auf beschrifteBinarbaume.

Ein Parser fur regulare Baumsprachen

Das XML-Dokument D werde durch die regulare Baumgrammatik G erzeugt. Auchdiesmal genugt ein links-nach-rechts Durchlauf von D:

3Regular Language Description for XML New Generation

Page 94: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

92 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

(1) Wenn eine Startkennung mit Namen a angetroffen wird, dann betrachte alle Pro-duktionen X → aR.

/* Jetzt konnen wir uns nicht auf eine einzige Produktion konzentrieren. */

(2) Wenn die entsprechende Endkennung gelesen wird, dann wurden bereits die Kinderv1, v2 des aktuell betrachteten Knotens v verarbeitet. Wir nehmen an, dass wir furjedes Kind vi eine Menge Kandidaten(vi) von Variablen bestimmt haben.

/* In Kandidaten(vi) sammeln wir alle Variablen, die fur die Erzeugung von vi inBetracht kommen. */

Wir nehmen eine Variable X in die Menge Kandidaten(v) auf, wenn es eine Pro-duktion X → aR und Variablen Y ∈ Kandidaten(v1), Z ∈ Kandidaten(v2) gibt,so dass Y Z den regularen Ausdruck R erfullt.

Gib eine Fehlermeldung aus, wenn Kandidaten(v) leer ist.

(3) Typechecking ist erfolgreich, wenn das Startsymbol in der Kandidatenmenge derWurzel vorkommt.

Fur jeden Knoten v mussen wir bis zu |P | · |V |2 Mal uberprufen, ob ein regularer Aus-druck erfullt wird. Typechecking kann also weiterhin effizient durchgefuhrt werden, allerdingswachst der Aufwand betrachtlich. Beachte, dass wir zum ersten Mal moglicherweise meh-rere Ableitungen erhalten: Unterschiedliche Interpretationen desselben Dokuments konnenfur nachfolgende XML-Anwendungen problematisch sein und sollten zu einer Warnung desXML-Parsers fuhren. Diese mogliche Mehrdeutigkeit wie auch das verlangsamte Typecheckingsind die Schwachstellen allgemeiner regularer Baumgrammatiken, ihre Starken liegen in ihrerAusdruckskraft.

Auch allgemeine regulare Baumsprachen, also regulare Baumsprachen mit moglicherweisenicht-binaren Baumen besitzen effiziente Parser. Die eher argerlichen technischen Details be-sprechen wir hier nicht.

Wie groß ist die Klasse der regularen Baumsprachen und welche Eigenschaften hat die Klasse?Um diese Frage zu beantworten, setzen wir Baumautomaten ein. Angenommen, ein beschrif-teter binarer Baum B wird von einer regularen Baumgrammatik G = (V,Σ, S, P ) erzeugt.Wir stellen uns vor, dass fur jeden Buchstaben a ∈ Σ ein Teilmenge Q(a) aus einer Zustands-menge ausgewahlt wird. Fur jedes Blatt von B ersetzen wir die Beschriftung a des Blattsdurch einen (nichtdeterministisch geratenen) Zustand q(a) ∈ Q(a). Ein Baumautomat be-rechnet jetzt (ebenfalls nichtdeterministisch) sukzessive Zustande fur alle inneren Knoten v.Wenn v die Kinder v1, v2 besitzt und

- wenn vi den Zustand qi erhalten hat

- und wenn v mit dem Buchstaben a beschriftet ist,

! dann erhalt v nichtdeterministisch einen Zustand aus der Zustandsmenge δ(q1, q2, a).

Wir sagen, dass der Automat akzeptiert, wenn es eine Berechnung gibt, fur die die Wurzelmit einem akzeptierenden Zustand beschriftet wird.

Definition 4.8 Ein nichtdeterministischer Baumautomat A = (Q,Σ, δ, (Q(a) | a ∈ Σ), F )besitzt die folgenden Komponenten:

• Die endliche Zustandsmenge Q und das Alphabet Σ,

Page 95: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4.3. REGULARE BAUMSPRACHEN 93

• das Programm δ mit δ(q1, q2, a) ⊆ Q fur alle Zustande q1, q2 ∈ Q und alle Buchstabena ∈ Σ,

• fur jeden Buchstaben a ∈ Σ eine Menge Q(a) ⊆ Q von Anfangszustanden und

• die Menge F ⊆ Q akzeptierender Zustande.

Der Automat ist genau dann deterministisch, wenn die Mengen δ(q1, q2, a) und Q(a) fur alleZustande q1, q2 ∈ Q und alle Buchstaben a ∈ Σ einelementig sind.

L(A) ist die Menge aller mit Buchstaben aus Σ beschrifteten Baume, die von A akzeptiertwerden.

Beispiel 4.7 Wir beschreiben einen deterministischen Baumautomaten A fur die Sprache derbinaren Und/Oder Baume aus Beispiel 4.4. A hat zwei Zustande Null und Eins, wobei NullAnfangszustand fur den Buchstaben 0 und Eins Anfangszustand fur den Buchstaben 1 ist.Eins ist der einzige akzeptierende Zustand. Hier ist das Programm:

δ(Null, Null, or) = Null,δ(Eins, Null, and) = δ(Null, Eins, and) = δ(Null, Null, and) = Null,δ(Eins, Null, or) = δ(Null, Eins, or) = δ(Null, Null, or) = Eins,δ(Eins, Eins, and) = Eins.

Aufgabe 66(a) Die Grammatik G = (V,Σ, P, S) sei eine Grammatik mit eindeutigen Typen. Zeige, dass es einen determi-nistischen Baumautomaten A mit |V | Zustanden gibt, so dass L(G) = L(A) gilt.

(b) Die Baumsprache L werde von einem deterministischen Baumautomaten mit q Zustanden akzeptiert.Zeige, dass das Typechecking Problem fur L und einen Baum B in Zeit O(|B|) gelost werden kann. EineVorverarbeitung, die nicht von B abhangt und in Zeit O(q2 · |Σ|) ablauft, ist erlaubt.

Gibt es zu jeder regularen Baumgrammatik einen aquivalenten Baumautomaten und umge-kehrt, gibt es zu jedem Baumautomaten eine aquivalente regulare Baumgrammatik? Ja! Wennzum Beispiel eine regulare Baumgrammatik G = (V,Σ, P, S) gegeben ist, dann entwerfen wireinen Baumautomaten mit Zustandsmenge Q = V und dem Programm δ, so dass

δ(Y,Z, a) = X ∈ V | X → aR ist eine Produktion in P und

Y Z erfullt den regularen Ausdruck R .

Welche Anfangszustande sollten wir fur den Buchstaben a wahlen? Wir setzen

Q(a) = X ∈ V | X → a ist eine Produktion in P .

Der Automat rat also in jedem Fall eine Variable, die die aktuelle Beschriftung verursachthaben konnte. Sind alle Vermutungen des Automaten richtig, dann muss der Baum aus derGrammatik ableitbar sein, solange der Automat das Startsymbol S fur die Wurzel geratenhat. Wir setzen deshalb

F = S.Wenn aber der Baum aus den Regeln der Grammatik ableitbar ist, dann muss es auch eineFolge richtiger Vermuungen geben.

Wir haben gezeigt, dass es zu jeder regularen Baumgrammatik G einen nichtdeterministischenBaumautomaten A mit L(G) = L(A) gibt. Auch die Umkehrung ist richtig:

Page 96: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

94 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

Aufgabe 67Sei A ein nichtdeterministischer Baumautomat. Zeige: Dann gibt es eine regulare Baumgrammatik G mitL(A) = L(G).

Satz 4.9 Baumautomaten akzeptieren genau die Klasse der regularen Baumsprachen.

Baumgrammatiken erzeugen Baume B nach dem top-down Muster, denn die Erzeugung von Bbeginnt mit der Wurzel und endet an den Blattern. Baumautomaten hingegen arbeiten nachdem bottom-up Prinzip, denn Baumautomat durchforsten B beginnend mit den Blatternund arbeiten sich zur Wurzel durch. Satz 4.9 zeigt also, dass die top-down mit der bottom-upSichtweise zusammenfallt.

Wir konnen naturlich auch”top-down Baumautomaten“ A definieren:

Wenn A die Zustandsmenge Q besitzt, dann weist das Programm δ jedem Paar (q, a) ∈Q× Σ eine Teilmenge δ(q, a) ⊆ Q×Q zu.

Wie arbeitet A auf einem Binarbaum B? A beginnt an der Wurzel und arbeitet sichnichtdeterministisch bis zu den Blattern durch. Wenn A den Knoten v mit Namen aerreicht hat und sich im Zustand q befindet, dann wahlt A nichtdeterministisch ein Paar(q1, q2) ∈ δ(q, a) aus und weist q1 dem linken Kind und q2 dem rechten Kind zu. B wirdakzeptiert, wenn alle den Blattern zugewiesenen Zustande akzptierend sind.

Schließlich definiere L(A) als die Menge aller von A akzeptierten Binarbaume.

Aufgabe 68Sei A ein (bottom-up) Baumautomat. Zeige, dass es einen top-down Baumautomaten A′ mit L(A) = L(A′)gibt.

Aufgabe 69Sei A ein top-down Baumautomat. Zeige, dass es einen (bottom-up) Baumautomaten A′ mit L(A) = L(A′)gibt.

Aufgabe 70Die regulare Baumsprache L bestehe aus zwei Baumen B1 und B2. Der Baum B1 besteht aus der Wurzelund den mit a und b beschrifteten Blattern. Baum B2 stimmt mit B1 uberein, allerdings ist die Reihenfolgeder Blattmarkierungen vertauscht. Zeige, dass es keinen deterministischen top-down Automaten gibt, der Lakzeptiert.

Nichtdeterministische top-down Automaten erzeugen also genau die Klasse der regularenBaumsprachen. Wenn wir allerdings mit deterministischen top-down Baumautomaten arbei-ten, dann verlieren wir Ausdruckskraft!

Fur konventionelle Baumautomaten, also fur bottom-up Baumautomaten, ist die Situationganzlich anders: Zu jedem nichtdeterministischen Baumautomaten N gibt es einen aquiva-lenten deterministischen Baumautomaten D. Wir gehen genauso vor wie im Fall von Worten:Insbesondere wird D fur jeden Knoten eines Baums die Menge der von N zugewiesenenZustande als Zustand annehmen, wir verwenden also wieder die Potenzmengenkonstruktion.

Satz 4.10 Zu jedem nichtdetermministischen Baumautomaten N gibt es einen aquivalentendeterministischen Baumautomaten D.

Jetzt konnen wir die Ernte einfahren und erhalten die folgenden Abschlusseigenschaften.

Page 97: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4.4. XPATH UND XQUERY 95

Satz 4.11 Wenn L1 und L2 regulare Baumsprachen sind, dann sind auch L1 ∪ L2, L1 ∩ L2

und L1 regulare Baumsprachen.

Beweis Angenommen, der nichtdeterministische Baumautomat Ni akzeptiert Li. Dann bauenwir einen nichtdeterministischen Baumautomaten N fur L1 ∪ L2 wie folgt: N entscheidetsich nichtdeterministisch zu Anfang, ob er N1 oder N2 simulieren soll. Danach fuhrt er dieSimulation durch und akzeptiert, wenn der simulierte Austomat akzeptiert.

Um L1 zu akzeptieren, wahlen wir einen deterministischen Baumautomaten D fur L1 undakzeptieren genau dann, wenn D verwirft.

Schließlich beachte L1 ∩L2 = L1 ∪ L2 und auch der Abschluss unter Durchschnitten folgt.

Arbeitet man mit regularen Baumgrammatiken, dann lassen sich also problemlos zwei Doku-menttypen zu einem neuen Typ vereinigen.

Aufgabe 71Zeige, dass das Leerheitsproblem:

Ist L(N) 6= ∅ fur einen nichtdeterministischen Baumautomaten N?

effizient gelost werden kann.

Aufgabe 72Fur einen beschrifteten Baum B ist string(B) die Konkatenation aller Blattbeschriftungen, wobei die Reihen-folge der Blatter durch einen Praorder-Durchlauf (gemaß der Ordnung des Baums) definiert ist.

(a) Zeige, dassstring(L) = string(B) | B ∈ L

kontextfrei ist, wenn L eine regulare Baumsprache ist.

(a) Zeige, dass es fur jede kontextfreie Sprache K eine regulare Baumsprache L mit

K = string(L)

gibt.

4.4 XPath und XQuery

Wir geben eine kurze Beschreibungen der Sprachen XPath und XQuery, die fur die Naviga-tion, bzw. fur Datenbankanfragen in XML-Dokumenten eingesetzt werden. Beide Sprachenverwenden regulare Ausdrucke als ihre zentralen Beschreibungsmechanismen.

XPath: Navigation in XML-Dokumenten

Die XPath-Ausdrucke sind ahnlich aufgebaut wie die Beschreibung von Verzeichniswegen inUnix. Exemplarisch nehmen wir an, dass die Elemente a,b,c,d,e,f,g in einem vorgege-benen XML-Dokument vorkommen und dass x ein Attributwert ist. Wir betrachten einen

”typischen“ XPath Ausdruck

//a/b[c/d]//e[f=x]/g

// ist ein Nachfahren-Operator und / ist ein Kindoperator; die eckigen Klammern beschreibenjeweils einen Filter. Da der Ausdruck mit einem Operator beginnt, nimmt XPath an, dassdie Navigation in der Wurzel beginnt und bestimmt alle Knoten, die Endpunkte der vomAusdruck beschriebenen Wege sind. Welche Wege beschreibt der Ausdruck?

Page 98: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

96 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

(1) Wir beachten zuerst die Filter nicht.

- Jeder Weg beginnt mit einem Nachfahren der Wurzel, der mit Element a beschriftetist und ein mit b beschriftetes Kind u besitzt.

- u muss einen Nachfahren v haben, der mit Element e beschriftet ist.

- Schließlich muss v ein mit g beschriftetes Kind w besitzen.

(2) Die Filter kommen jetzt ins Spiel. Nur die Wege uberleben

- fur die der Knoten u auch ein mit c beschriftetes Kind hat, das seinerseits ein mitd beschriftetes Kind besitzt.

- Zuletzt wird gefordert, dass v ein mit f beschriftetes Kind besitzt und dass diesesKind den Attributwert x hat.

Die Ausgabe fur den Ausdruck besteht dann aus allen Endpunkten w der uberlebenden Wege.

Nicht erwahnt haben wir die Moglichkeit, Attribute mit dem @-Operator auszuwahlen. Wennwir zum Beispiel die Namen aller Zutaten fur das Pfannkuchenrezept ausgeben wollen, danngelingt dies mit dem Ausdruck //zutat/@name. Hatten wir hingegen eine Wurzel rezeptemit Kindern vom

”Typ“ rezept definiert, so musste man diesmal den Ausdruck

/rezept[@name=Mein erster Pfannkuchen]//zutat/@name verwenden.

Viele Anfragen von XPath konnen auch durch Baumautomaten implementiert werden. Fureinen nichtdeterministischen Baumautomaten A zeichnen wir dazu eine Teilmenge S ⊆ Q von

”auswahlenden Zustanden“ aus. Wir sagen dann, dass A einen Knoten v auswahlt, wenn eseine akzeptierende Berechnung von A gibt, die v mit einem Zustand aus S durchlauft.

XQuery: Eine Anfragesprache fur XML-Datenbanken

XQuery ist eine”vollwertige“ Anfragesprache, das Analogon von SQL fur relationale Daten-

banken. Xquery benutzt XPath als”Navigationskomponente“ und verwendet unter anderem

for-let-where-return Ausdrucke (oder FLWR-Ausdrucke):

for $variable1 in AUSDRUCK1

let $variable2 := AUSDRUCK2

where BOOLESCHER AUSDRUCK

return AUSDRUCK3

Hier darf jeder XQuery Ausdruck benutzt werden: Da ein XPath Ausdruck auch ein XQueryAusdruck ist, durfen somit zum Beispiel alle XPath Ausdrucke benutzt werden. Auch kannzum Beispiel ein FLWR-Ausdruck als Ausdruck in einem anderen FLWR-Ausdruck vorkom-men.

Wir geben ein Beispiel fur die Datenbank einer Bibiothek, in der jedes Buch mit Autor,Titel und Verlag aufgefuhrt ist. Wir mochten die Verlage herausfinden, die mindestens 100in der Bibiothek gefuhrte Bucher veroffentlicht haben. Wir benutzen dazu die Funktionendistinct-values und count:

for $v in distinct-values(document("bib.xml")//Verlag)

let $b := document("bib.xml")//book[publisher = $v]

where count($b) > 100

return $v

Page 99: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

4.4. XPATH UND XQUERY 97

In freier Ubersetzung: Fur jeden Verlag, der in der Datenbank bib.xml vertreten ist, betrach-ten wir alle von diesem Verlag publizierten Bucher. Das bib.xml-Dokument, eingeschranktauf alle Verlage, die mindestens 100 Bucher der Datenbank veroffentlicht haben, wird ausge-geben.

Wahrend also XPath fur ein vorgegebenes XML-Dokument eine Teilmenge von Knoten aus-gibt, gibt XQuery ein modifiziertes XML-Dokument aus.

Page 100: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

98 KAPITEL 4. XML UND REGULARE BAUMGRAMMATIKEN

Page 101: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Kapitel 5

Berechenbarkeit

Wir haben zwei Ziele. Unser erstes Ziel ist eine technologie-unabhangige Formalisierung desBegriffs der Berechenbarkeit einer Funktion, beziehungsweise der Entscheidbarkeit einer Spra-che L. Unser zweites Ziel ist die Untersuchung nicht-berechenbarer Funktionen und nicht-entscheidbarer Sprachen.

Man beachte, dass diese Ziele in der Tat sehr ehrgeizig sind, denn wir mochten die Be-griffe der Berechenbarkeit und Entscheidbarkeit fur die Zukunft festschreiben ohne zukunf-tige Rechnertechnologien zu kennen! Unser Vorgehen wird widersinnig sein: Um eine auchfur die Zukunft geltende Definition der Berechenbarkeit anzugeben, arbeiten wir mit einem

”Steinzeit-Rechnermodell“, den Turingmaschinen. Wir zeigen aber dann, dass deterministi-sche Turingmaschinen moderne Rechner wie Registermaschinen effizient simulieren konnenund sogar die Berechnungskraft von Quantenrechnern besitzen.

Wie sehen nicht entscheidbare Sprachen aus? Wir zeigen, dass Super-Compiler nicht existie-ren, wobei ein Super-Compiler nicht nur ein Anwenderprogramm ubersetzt, sondern auchuberpruft, ob das Anwenderprogramm auf allen Eingaben halt. Und wenn nur uberprft wer-den soll, ob das Anwenderprogramm auf einer einzigen, vorher spezifizierten Eingabe halt?Auch das ist zuviel verlangt, weil wir zeigen werden, dass die Uberprufung irgendeiner nicht-trivialen Eingeschaft von Anwenderprogrammen auf nicht entscheidbare Probleme fuhrt.

5.1 Turingmaschinen und die Churchsche These

Was genau ist ein Rechner? Betrachten wir die wesentlichen Anforderungen an ein vernunf-tiges Rechnermodell:

Ein Rechner muss jderzeit auf die Eingabe zugreifen konnen und Rechnungen ohneBeschrankung der Rechenzeit und des Speicherplatzes ausfuhren konnen.

Naturlich ist nicht klar, was es heißt”Rechnungen ausfuhren zu konnen“: Wir fuhren deshalb

zur Formalisierung ein sehr einfaches Rechnermodell, namlich die Turingmaschine ein.

Eine Turingmaschine besitzt ein nach links und nach rechts unendliches, lineares Band, das inZellen unterteilt ist; die Zellen besitzen Zahlen aus Z als Adressen. Anfanglich ist die Eingabew = w1 · · ·wn in den Zellen mit den Adressen 1 . . . , n abgelegt, wobei Zelle i (mit 1 ≤ i ≤ n)den Buchstaben wi speichert; alle verbleibenden Zellen speichern das Blanksymbol B. DieTuringmaschine manipuliert ihr Band mit Hilfe eines Lese-/Schreibkopfes, der sich zu Beginnder Rechnung auf der Zelle 1 befindet. Wahrend zu Anfang also alle Buchstaben entweder

99

Page 102: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

100 KAPITEL 5. BERECHENBARKEIT

aus dem Eingabealphabet Σ stammen oder mit dem Blanksymbol ubereinstimmen, darf dieTuringmaschine im Verlauf der Rechnung Zellen mit Buchstaben eines Arbeitsalphabets Γmit Σ ∪ B ⊆ Γ beschriften.

Wie rechnet eine Turingmaschine? Das Programm einer Turingmaschine wird durch eineZustandsuberfuhrungsfunktion δ mit

δ:Q× Γ → Q× Γ× links, bleib, rechts

beschrieben. Die endliche Menge Q heißt Zustandsmenge, wobei wir annehmen, dass dieMaschine im Anfangszustand q0 ∈ Q startet. Wenn die Maschine sich im Zustand q ∈ Qbefindet und den Buchstaben γ ∈ Γ liest, dann ist der

”Befehl“ δ(q, γ) anzuwenden. Wenn

δ(q, γ) = (q′, γ′, Richtung)

gilt, dann wird γ′ gedruckt (und damit wird γ uberdruckt), die Maschine wechselt in denZustand q′ und der Kopf wechselt zur linken Nachbarzelle (Richtung = links), zur rechtenNachbarzelle (Richtung = rechts) oder bleibt stehen (Richtung = bleib).

Wir sagen, dass die Maschine halt, wenn sie”auf der Stelle tritt“, d.h. wenn sich die Maschine

im Zustand q ∈ Q befindet, den Buchstaben γ ∈ Γ liest und wenn δ(q, γ) = (q, γ, bleib) gilt.Schließlich zeichnen wir eine Teilmenge F ⊆ Q als Menge der akzeptierenden Zustande ausund sagen, dass die Maschine die Eingabe w akzeptiert, wenn sie in einem Zustand aus Fhalt.

Zusammengefaßt: Eine Turingmaschine wird durch das 6-Tupel (Q,Σ, δ, q0,Γ, F ) beschrieben.Wir sagen, dass die Turingmaschine M = (Q,Σ, δ, q0,Γ, F ) die Sprache

L(M) = w |M akzeptiert w

erkennt. Schließlich messen wir die Laufzeit und definieren schritteM(x) als die Anzahl derSchritte von M auf Eingabe x ∈ Σ∗. Die worst-case Laufzeit von M auf Eingaben der Langen ist dann

ZeitM (n) = max schritteM (x) |x ∈ Σn .

Ist uns eine wirklich uberzeugende Definition eines Rechnermodells gelungen? Der erste Ein-druck ist negativ, denn eine Turingmaschine erinnert eher an eine Nahmaschine als an dieModellierung eines modernen Rechners. Tatsachlich werden wir im Folgenden aber sehen,dass Nahmaschinen modernste Rechner und sogar Parallelrechner ohne Probleme simulierenkonnen, solange die Rechenzeit der Nahmaschine polynomiell großer sein darf als die Rechen-zeit des simulierten Rechners: So zeigen wir zum Beispiel im nachsten Abschnitt, dass eine

”moderne“ Registermaschine, die in Zeit t(n) rechnet, von Turingmaschinen in Zeit O(t6(n))simuliert werden kann.

5.1.1 Die Berechnungskraft von Turingmaschinen∗

Aufgabe 73Gegeben sei die folgende Turingmaschine:

Q = q0, q1, q2, Eingabealphabet Σ = 1, Startzustand q0, Bandalphabet Γ = 1, B und F = q2. DasProgramm δ sei

δ(q0, B) = (q1, B, bleib)δ(q0, 1) = (q1, 1, rechts)δ(q1, B) = (q1, B, bleib)δ(q1, 1) = (q2, 1, rechts)δ(q2, B) = (q2, B, bleib)δ(q2, 1) = (q1, 1, rechts)

Page 103: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 101

Welche Sprache wird durch die Turingmaschine akzeptiert?Stoppt die Turingmaschine immer?

Beispiel 5.1 Die Sprache L = an bn |n ∈ N ist zu erkennen. Das Eingabealphabet istΣ = a, b. Wir wahlen Γ = Σ∪ B als Bandalphabet. Beachte, dass unsere Turingmaschinedie a’s nicht mitzahlen kann: Da unsere Zustandsmenge endlich sein muß, konnen wir nichtfur jede mogliche Anzahl der a’s einen Zustand vergeben.

Unsere Idee ist es, immer abwechselnd vom Anfang des Wortes ein a und dann vom Endedes Wortes ein b zu loschen. Landen wir mit diesem Verfahren beim leeren Wort, so war dasursprungliche Wort aus L. Bleibt ein Uberschuß von einem der beiden Buchstaben oder findenwir einen Buchstaben an einer Stelle, wo er nicht auftauchen darf, so gehort das Ausgangswortnicht zu L.

Der Anfangszustand ist q0. Wir durfen annehmen, dass der Lese-Schreibkopf auf dem ersten(linkesten) Element der Eingabe steht. Finden wir hier ein B, so haben wir es mit a0b0 ∈ Lzu tun. In diesem Fall springen wir in den akzeptierenden Zustand qja. Finden wir ein b, soist das ein Grund, das Wort zu verwerfen. Dafur richten wir den Zustand qnein ein. Findenwir ein a, so loschen wir es. Sodann wechseln wir in den Zustand qrechts a und bewegen unsnach rechts.

δ(q0, B) = (qja, B, bleib)

δ(q0, a) = (qrechts a, B, rechts)

δ(q0, b) = (qnein, b, bleib)

Die Zustande qja und qnein sollen Endzustande werden und konnen nicht mehr verlassenwerden. Demzufolge sehen die betreffenden Teile der Ubergangsfunktion so aus:

δ(qja, x) = (qja, x, bleib) ∀x ∈ a, b,Bδ(qnein, x) = (qnein, x, bleib) ∀x ∈ a, b,B

Die Maschine bleibt im Zustand qrechts a, solange a’s gelesen werden und wechselt beim erstenb in den Zustand qrechts b. Stoßen wir auf das Blanksymbol, solange wir noch im Zustandqrechts a sind, so liegt ein Restbestand von as vor, dem keine bs mehr entsprechen. Wir wechselnin den Zustand qnein.

δ(qrechts a, B) = (qnein, B, bleib)

δ(qrechts a, a) = (qrechts a, a, rechts)

δ(qrechts a, b) = (qrechts b, b, rechts)

Im Zustand qrechts b wird bis zum ersten Blanksymbol gelesen. Das Auffinden eines a’s ist einFehler:

δ(qrechts b, B) = (qzu loschen, B, links)

δ(qrechts b, a) = (qnein, a, bleib)

δ(qrechts b, b) = (qrechts b, b, rechts)

Im Zustand qzu loschen wird das erste b (vom rechten Bandende) geloscht:

δ(qzu loschen, b) = (qrucklauf , B, links)

Page 104: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

102 KAPITEL 5. BERECHENBARKEIT

(Beachte, dass im Zustand qzu loschen stets der Buchstabe b gelesen wird. Wir geben deshalbkeine Befehle fur die Buchstaben a und B an). Wir haben nun je einen Buchstaben vomAnfang und vom Ende des Wortes entfernt. Unser Ausgangswort gehort genau dann zu L,wenn der aktuelle Bandinhalt zu L gehort. Wir laufen also zuruck zum Anfang des Wortesund gehen wieder in den Zustand q0.

δ(qrucklauf , B) = (q0, B, rechts)

δ(qrucklauf , a) = (qrucklauf , a, links)

δ(qrucklauf , b) = (qrucklauf , b, links)

Zusammengefaßt: mit der Zustandsmenge

Q =

q0, qrechts a, qrechts b, qrucklauf , qzu loschen, qja, qnein

,

Eingabealphabet Σ = a, b, Programm δ, Startzustand q0, Bandalphabet Γ = a, b,B undF = qja, haben wir die Turingmaschine

M = (Q,Σ, δ, q0,Γ, F )

konstruiert mitL(M) = an bn |n ∈ N.

Wir haben einen ersten Programmiertrick kennengelernt, namlich die Benutzung von Zustan-den zur Speicherung: Zum Beispiel

”erinnert“ sich der Zustand qrechts a daran, dass bisher nur

a’s gelesen wurden. Wesentlich ist, dass die Menge der Informationen, die sich die Maschinein den Zustanden merkt, endlich ist. Zu keinem Zeitpunkt

”weiß“ die Maschine, wie lang das

Wort ist, wie oft der Buchstabe a darin enthalten ist oder ahnliches.

Im nachsten Beispiel lernen wir einen weiteren Trick kennen, die Bildung von Spuren.

Beispiel 5.2 Die Kopierfunktion

f : Σ∗ → Σ∗ ⋄ Σ∗

mitf(w) = w ⋄ w

ist zu berechnen. Wir verzichten hier auf die genaueren Details der Programmierung undskizzieren hier nur das Vorgehen einer TuringmaschineM . Durch Unterstreichung drucken wirdie aktuelle Position des Lese/Schreibkopfs aus. M beginnt im Startzustand Drucke-Kasten,lauft bis zum Ende der Eingabe und druckt einen Kasten

Bw1 · · ·wnB ⇒ Bw1 · · ·wn ⋄ .

Nachdem der Kasten gedruckt wurde, lauft die MaschineM im Zustand Zuruck- vom-Kasten

zuruck bis zum ersten Blanksymbol

Bw1 · · ·wn⋄ ⇒ Bw1 · · ·wn ⋄ .

M wechselt in den Zustand *-Drucken und legt eine zweite Spur an, indem w1 durch(

w1

)

ersetzt wird. Dabei steht(

w1

)

fur ein Zeichen, welches nicht im Eingabealphabet enthaltenist und dem Zeichen w1 eindeutig zuzuordnen ist.

Bw1 · · ·wn⋄ ⇒ B

(

w1

)

w2 · · ·wn ⋄ .

Page 105: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 103

Fur jeden Buchstaben a ∈ Σ verfugt M uber einen Rechtslauf-Zustand rechts a. In dem w1

entsprechenden Zustand lauft M nach rechts bis zum ersten Blanksymbol und druckt, dortangekommen, w1.

B

(

w1

)

w2 · · ·wn⋄ ⇒ B

(

w1

)

w2 · · ·wn ⋄ w1.

Dann wechselt M in den Zustand Zuruck-vom-Kopieren und lauft bis zum markierten Buch-staben. (Zu diesem Zeitpunkt ist es M schon wieder gleichgultig, was sie soeben gedruckthat.)

B

(

w1

)

w2 · · ·wn ⋄ w1B ⇒ B

(

w1

)

w2 · · ·wn ⋄ w1B.

Die Markierung wird entfernt. M bewegt den Lese-Schreibkopf auf die nachste Position w2

und wechselt in den Zustand *-Drucken. Von jetzt ab wiederholt M ihre Vorgehenswei-se, bis im Zustand *-Drucken der Kasten gelesen wird. In diesem Fall wechselt M in denZustand Fast-Fertig, lauft nach links bis zum ersten Blank, wo es zur rechten Nachbarzel-le im Zustand Fertig wechselt und dann halt. Also arbeitet M mit dem EingabealphabetΣ = σ1, σ2, ..., der Zustandsmenge

Q = qDrucke−Kasten, qZuruck−vom−Kasten, q∗−Drucken, qZuruck−vom−Kopieren,

qFast−Fertig, qFertig, qrechts σ1 , qrechts σ2 , . . .,

dem Startzustand Drucke-Kasten und dem Bandalphabet

Γ =

B, σ1, σ2, . . . , σ|Σ|⋄,(

σ1∗

)

,

(

σ2∗

)

. . . ,

(

σ|Σ|

)

.

Unsere Turingmaschine M erfullt ZeitM (n) = Θ(

n2)

. Warum? M kopiert die n Buchsta-ben der Eingabe, indem es jeden der n Buchstaben von w uber eine Strecke von n Zellentransportiert.

Aufgabe 74Gegeben ist die Sprache P aller Palindrome (uber dem Alphabet 0, 1); also

P = w|w ∈ 0, 1∗ und w = wR

wobei wR = wnwn−1 · · ·w2w1, falls w = w1w2 · · ·wn−1wn.

Beschreibe explizit eine Turingmaschine, die genau die Sprache P akzeptiert.

Aufgabe 75Die Speicherzellen einer (konventionellen) Turingmaschine sind auf einem beidseitig unendlichen Band angeord-net. In dieser Aufgabe betrachten wir ein anscheinend stark eingeschranktes Modell, namlich Turingmaschinenmit einem nur nach rechts unendlichen Band.

Einige Kommentare zu diesem eingeschrankten Modell. Wir denken uns die Speicherzellen mit den Adressen1, 2, 3 . . . nummeriert und nehmen wie ublich an, dass die Eingabe in den Speicherzellen 1, 2, . . . , n erscheint.Wir definieren, dass eine Berechnung einer eingeschrankten Turingmaschine scheitert, falls der Kopf versuchtZelle 0 zu lesen.

Gegeben sei eine (konventionelle) Turingmaschine M , die fur Eingabealphabet Σ durch das Bandalphabet Γ,die Zustandsmenge Q, den Anfangszustand q0, der Menge F von akzeptierenden Zustanden sowie durch dasProgramm δ beschrieben ist. Beschreibe eine eingeschrankte Turingmaschine M∗, die M simuliert. Insbeson-dere, beschreibe Bandalphabet, Zustandsmenge und Ubergangsfunktion.

Aufgabe 76Beschreibe explizit eine Einband Turingmaschine, die fur Eingabe w = (w1, w2, . . . ,wn−1, wn) ∈ 0, 1n die Ausgabe (w1, w1, w2, w2, . . . , wn−1, wn−1, wn, wn) liefert. D.h. nach Terminierung der

Page 106: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

104 KAPITEL 5. BERECHENBARKEIT

Berechnung soll fur i ≤ n in Zellen 2i− 1 und 2i des Bandes der Wert wi gespeichert sein. Gib in deiner Be-schreibung das Bandalphabet Γ, die Zustandsmenge Q, Anfangszustand q0 und die Menge F der Endzustande,sowie das Programm δ an. Deine Maschine sollte asymptotisch moglichst schnell arbeiten.

Bestimme die Laufzeit deiner Maschine in θ-Notation. (Die Laufzeit ist naturlich eine Funktion von n, derAnzahl der eingegebenen Buchstaben.)

Wir mussen wie angekundigt nachweisen, dass unsere Definition der Entscheidbarkeit techno-logie-unabhangig ist. Deshalb werden wir das anscheinend machtigere Modell der Registerma-schinen, eine Modellierung der modernen von Neumann Rechner, betrachten und feststellen,dass dieses Maschinenmodell durch Turingmaschinen sogar effizient simuliert werden kann.Mit anderen Worten: Der Sprung von der Nahmaschine zum Supercomputer fuhrt nur zueiner polynomiellen Leistungssteigerung!

Wir betrachten zuerst k-Band-Turingmaschinen. Als Neuerung haben wir jetzt eine Archi-tektur von k Bandern, wobei die Eingabe auf Band 1 gespeichert wird.

Jedes Band besitzt einen eigenen Lese-/Schreibkopf. Ein Befehl wird jetzt in Abhangigkeitvom gegenwartigen Zustand und den Inhalten der k gelesenen Zellen ausgewahlt. Der aus-gewahlte Befehl legt fur jeden Kopf den zu druckenden Buchstaben fest wie auch die

”Marsch-

richtung“ links, bleib oder rechts. Ansonsten verhalten sich k-Band Maschinen analog zuTuringmaschinen.

Satz 5.1 Sei M eine k-Band-Maschine, die auf Eingaben der Lange n nach hochstens T (n)Schritten halt. Dann gibt es eine Turingmaschine M ′, so dass

- M ′ auf Eingaben der Lange n nach hochstens O(

T 2(n))

Schritten halt und

- M und M ′ dieselbe Funktion berechnen bzw. dieselbe Sprache erkennen.

Beweis:Wir”bauen“ eine TuringmaschineM ′, die die k Bander vonM durch k Spuren simu-

liert. Die k Spuren entsprechen den k Bandern, wobei wir in den Spuren auch die Position desjeweiligen Lese/Schreibkopfs vermerken mussen. Wir wahlen deshalb fur das BandalphabetΓ von M das neue Bandalphabet

Γ′ = (Γ× ∗, B)k ∪ Γ.

Man mache sich klar, dass bei konstantem k und endlichem Bandalphabet Γ auch das neueBandalphabet Γ′ endlich ist.

Liest nun beispielsweise unsere Turingmaschine bei der Simulation einer 4-Band Maschine ineiner Zelle das Zeichen

[(a, ∗), (b, B), (a, B), (B, ∗)],so bedeutet das, dass in dieser Zelle auf den 4 Bandern die Zeichen a, b, a, B stehen und, dassdie Schreibkopfe der Bander 1 und 4 zu diesem Zeitpunkt auf unserer Zelle stehen.

Anfangsphase von M ′: M ′ ersetzt, fur Eingabe w1, . . . , wn, den Inhalt der ersten n Zellendurch

[(w1, ∗), (B, ∗), . . . , (B, ∗)], . . . , [(wn, B), (B, B), . . . , (B, B)].Das entspricht unserer beabsichtigten Interpretation. Die Bander 2 bis k sind leer. Auf jedemBand steht der Lese/Schreibkopf an der ersten Position. Band 1 enthalt das Eingabewort.

Wir haben nun zu zeigen, dass wir einen Rechenschritt der k-Band-Maschine M mit M ′ sosimulieren konnen, dass diese Interpretation auch fur die Folgeschritte richtig bleibt. Dies

Page 107: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 105

geschieht mittels einer Induktion uber die Zahl der bereits erfolgten Berechnungsschritte vonM . Nach 0 Schritten stimmt unsere Darstellung, wie wir uns eben klar gemacht haben.

Simulation von Schritt t+1 von M : Wir nehmen an, dass M nach Schritt t den Band-inhalt

a1 · · · ai · · · aj · · · al · · · Band 1

b1 · · · bi · · · bj · · · bl · · · Band 2

c1 · · · ci · · · cj · · · cl · · · Band k

besitzt. (Die unterstrichenen Buchstaben kennzeichnen die Position des jeweiligen Kopfes.)Wir nehmen weiterhin an, dass M ′ den Bandinhalt

[(a1, B), (b1, B), . . . , (c1, B)], . . . , [(ai, ∗), (bi, B), . . . , (ci, B)], . . .[(aj , B), (bj , ∗), . . . , (cj , B)], . . . , [(al, B), (bl, B), . . . , (cl, ∗)], . . .

besitzt und den gegenwartigen Zustand von M kennt. Der Kopf von M ′ steht am linken Endeseines Bandes.

Zuerst durchlauft M ′ das Band von links nach rechts. M ′ merkt sich die k von M gelesenenBuchstaben in seinen Zustanden. Damit meinen wir, dassM ′ zu diesem Zweck uber (|Γ|+1)k

viele zusatzliche Zustande verfugt. Ist das Bandalphabet etwa a, b und ist k = 3, so konntendiese

q???, q??a, q??b, q?a?, q?b? . . . , qaaa, qbbb

heißen. Beginnend in q??? lauft M ′ von links nach rechts ubers Band. Erreicht sie eine Stelle,an der der Lese/Schreibkopf eines Bandes von M steht, so liest sie das entsprechende Zeichenund wechselt in den entsprechenden Zustand. Findet sie beispielsweise als erstes den Kopfvon Band 2, und liest dieser ein a, so wurde M ′ in den Zustand q?a? wechseln und die Suchefortsetzen.

Wenn alle Lese/Schreibkopfe gefunden sind, kenntM ′ durch den Zustand das vonM gelesenek-Tupel und kennt damit den auszufuhrenden Befehl. M ′ laßt seinen Kopf nach links zuruck-laufen, uberdruckt alle durch einen ∗ markierten Zellen und versetzt die Markierungen derLesekopfe wie gefordert. (Auch fur diesen Schritt mussen zusatzlich Zustande bereitgestelltwerden.) Wenn M das linke Ende seines Bandes erreicht hat, kann der nachste Simulations-schritt beginnen. Unsere Invariante ist erhalten geblieben.

Angenommen,M benotigt t Schritte fur Eingabe w. Dann wirdM auf jedem Band nur Zellenmit den Adressen −t, . . ., 0, 1, . . ., t erreichen konnen. Die Simulation eines Schrittes von Mgelingt also in Zeit hochstens O(t). Also benotigtM ′ insgesamt nur hochstens O

(

t2)

Schritte,und die Behauptung folgt.

Aufgabe 77Wir betrachten das Modell der zweidimensionalen Turingmaschinen. Eine Maschine M dieses Modells besitztein zweidimensionales Speicherband, also ein unendliches Schachbrett. Am Anfang der Berechnung steht derLese-/Schreibkopf auf der Zelle (0, 0). Die moglichen Kopfbewegungen von M in einem Rechenschritt sindrechts (von Position (i, j) nach (i + 1, j)), oben (von Position (i, j) nach (i, j + 1)), links (von Position (i, j)nach (i− 1, j)) und unten (von Position (i, j) nach (i, j − 1)).

Zeige: Jede zweidimensionale Turingmaschine M kann durch eine”gewohnliche“ Turingmaschine effizient

simuliert werden.(Effizient bedeutet hierbei: Falls M auf Eingaben der Lange n nach hochstens T (n) Schritten halt, so benotigtdie simulierende Turingmaschine hochstens O(T k(n)) Schritte, fur eine Konstante k.)

Anmerkung: Auf den Ergebnissen dieser Aufgabe aufbauend laßt sich auch das parallele Rechnermodell derzweidimensionalen zellularen Automaten durch

”gewohnliche“ Turingmaschinen simulieren.

Page 108: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

106 KAPITEL 5. BERECHENBARKEIT

Ein zellularer Automat besteht aus identisch programmierten Prozessoren (auf einem unendlichen Schachbrettangeordnet), die gemaß einer Zustandsuberfuhrungsfunktion

δ : Q×Q4 → Q

arbeiten. Alle Prozessoren wechseln ihre Zustande parallel. Insbesondere wechselt ein Prozessor mit gegenwarti-gem Zustand q ∈ Q in einen Zustand q′ ∈ Q falls

δ(q, qlinks, qrechts, qoben, qunten) = q′

gilt, fur die Zustande qlinks, qrechts, qoben bzw. qunten seines linken, rechten, oberen bzw. unteren Nachbarn.

Vielleicht kennt ihr ja das Spiel des Lebens, welches mit zellularen Automaten gespielt wird.

Aber auch k-Band Maschinen sind alles andere als Modelle moderner Rechner. Deshalb wen-den wir uns jetzt den Registermaschinen zu, einem modernen Modell sequentieller Rechner.

Definition 5.2 (a) Die Architektur einerRegistermaschine besteht aus einem Eingabeband,dem Speicher und einem Ausgabeband. Das Eingabe- wie auch das Ausgabeband ist inZellen unterteilt, wobei eine Zelle eine naturliche Zahl speichern kann. Das Eingabeband(bzw. das Ausgabeband) besitzt einen Lesekopf (bzw. einen Schreibkopf), der die Zellendes Bandes von links nach rechts lesen (bzw. beschreiben) kann.

Der Speicher besteht aus dem Akkumulator, der arithmetische und logische Befehleausfuhren kann, sowie aus einer unendlichen Anzahl von Registern. Der Akkumulatorkann, wie auch die Register, naturliche Zahlen speichern. Der Akkumulator erhalt dieAdresse 0, das i-te Register die Adresse i. Wir bezeichnen den Inhalt des Akkumulatorsmit c(0) und den Inhalt des i-ten Registers mit c(i).

(b) Jeder Befehl wird durch ein Label identifiziert. Eine Registermaschine besitzt Lese-und Schreibbefehle, Speicherbefehle, Vergleichsoperationen, arithmetische Befehle undSprung-Befehle:

READ und WRITE sind die Lese-/Schreibbefehle. Der Befehl READ liest die gegenwartigegelesene Zahl in den Akkumulator und bewegt den Lesekopf um eine Zelle nach rechts.Der Befehl WRITE schreibt den Inhalt des Akkumulators auf das Ausgabeband und bewegtden Schreibkopf um eine Zelle nach rechts.

Wir unterscheiden verschiedene Typen von Speicherbefehlen.

LOAD i (c(0) = c(i))

INDLOAD i (c(0) = c(c(i)))

KLOAD i (c(0) = i)

weisen dem Akkumulator direkt oder indirekt Registerinhalte zu, beziehungsweise erlau-ben eine Initialisierung durch Konstanten.

Der Akkumulator-Wert kann abgespeichert werden mit Hilfe von

STORE i (c(i) = c(0))

und

INDSTORE i (c(c(i)) = c(0)).

Eine Registermaschine besitzt die arithmetischen Befehle

ADD i (c(0) = c(0) + c(i))

SUBT i (c(0) = c(0)− c(i))

MULT i (c(0) = c(0) ∗ c(i))DIV i (c(0) = ⌊c(0)/c(i)⌋)

Page 109: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 107

wie auch die indirekten Varianten

INDADD, INDSUBT, INDMULT, INDDIV

und die konstanten Operationen

KADD, KSUBT, KMULT und KDIV.

Desweiteren haben wir die Vergleichsoperationen

IF (c(0) v e) THEN GOTO j,

wobei v ∈ ≤, <, =, >, ≥, e eine Konstante und j das Label eines Befehls ist. DerInhalt des Akkumulators wird also mit der Konstanten e verglichen. Wenn der Vergleichpositiv ist, wird der Befehl mit Label j als nachster ausgefuhrt; ansonsten wird der derif-Anweisung folgende Befehl ausgefuhrt.

Schließlich ist auch eine”end-of-file“-Abfrage moglich:

IF (eof) THEN GOTO j

Die SprungbefehleGOTO j

undEND

sind die beiden letzten Befehlstypen.

(c) Initialisierung: Die Eingabe erscheint linksbundig auf dem Eingabeband. Der Lesekopfdes Eingabebandes wie auch der Schreibkopf des Ausgabebandes stehen auf der erstenZelle ihres Bandes. Der Akkumulator, wie auch alle anderen Register, sind mit 0 initia-lisiert.

Der erste auszufuhrende Befehl ist der Befehl mit Label 1.

Beispiel 5.3 Wir entwerfen eine Registermaschine, die die Kopierfunktion w 7→ ww fur w ∈0, 1∗ effizient berechnet.

Die Registermaschine liest zuerst die Eingabe w = w1 · · ·wn in die Register mit den Adres-sen 3, 4, . . ., n + 2. Im Register mit Adresse 1 ist 3, die Adresse von w1, gespeichert. DasRegister mit der Adresse 2 speichert n, die Anzahl der Bits. Gleichzeitig werden die einge-lesenen Bits sofort auf das Ausgabeband geschrieben. Das folgende Programmsegment fuhrtdiesen Ladeprozeß aus:

(1) KLOAD 3(2) STORE 1 / ∗ c(1) = 3 ∗ /(3) IF (eof) THEN GOTO 11(4) READ

(5) WRITE

(6) INDSTORE 1 /∗ das gelesene Symbol wird gespeichert ∗/(7) LOAD 1(8) KADD 1(9) STORE 1 / ∗ c(1) = c(1) + 1 ∗ /(10) GOTO 3(11) LOAD 1 / ∗ c(0) = n+ 3 ∗ /(12) KSUBT 3(13) STORE 2 / ∗ c(2) = n ∗ /(14) KLOAD 3(15) STORE 1 / ∗ c(1) = 3 ∗ /

Page 110: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

108 KAPITEL 5. BERECHENBARKEIT

Der Kopierprozeß wird ausgefuhrt durch Wiederholung der folgenden Befehlssequenz:

(16) LOAD 2(17) IF (c(0) = 0) THEN GOTO 27(18) INDLOAD 1(19) WRITE

(20) LOAD 1(21) KADD 1(22) STORE 1 / ∗ c(1) = c(1) + 1 ∗ /(23) LOAD 2(24) KSUBT 1(25) STORE 2 / ∗ c(2) = c(2)− 1 ∗ /(26) GOTO 16(27) END

Man beachte, dass die Kopierfunktion in Zeit O(n) berechnet wird, also wesentlich schnellerals die von Turingmaschinen benotigte quadratische Laufzeit.

Im obigen Beispiel haben wir die Anzahl der ausgefuhrten Schritte gezahlt. Dieses Lauf-zeitmaß wird auch als uniforme Laufzeit bezeichnet. Ein realistischeres Laufzeitmaß ist dielogarithmische Laufzeit : Hier summieren wir die Bitlangen der beteiligten Operanden fur al-le ausgefuhrten Befehle. (Operanden sind die manipulierten Daten wie auch die beteiligtenAdressen. Zum Beispiel sind die logarithmischen Kosten des Befehls

INDLOAD i

die Summe der Bitlangen von c(0), i und c(i).) Beachte, dass die Kopierfunktion in Zeit

O(n log n)

ausgefuhrt wird, wenn wir das logarithmische Kostenmaß benutzen. Warum? Die Store- undLoad-Operationen sind teuer: Sie konnen bis zu O(log2 n) Zeit kosten.

Wenn wir Turingmaschinen und Registermaschinen vergleichen, mussen wir die Eingabefor-mate aneinander angleichen: Turingmaschinen erwarten Worte uber einem endlichen (aberbeliebigen) Alphabet, wahrend Registermaschinen Folgen naturlicher Zahlen erwarten.

Es ist aber einfach, die verschiedenen Formate ineinander zu ubersetzen. Die Buchstaben desAlphabets konnen in einfacher Weise durch naturliche Zahlen kodiert werden, wahrend wireine naturliche Zahl durch ihre Binardarstellung (und damit durch ein Wort uber dem Alpha-bet 0, 1) kodieren konnen. Wie laßt sich aber eine Folge (a1, a2, . . . , ar) naturlicher Zahlenkodieren? Indem wir zusatzlich den Buchstaben

”,“ (zur Trennung der einzelnen Zahlen)

verwenden.

Satz 5.3 Sei R eine Registermaschine, die auf Eingaben der (logarithmischen) Lange n nachhochstens t(n) Schritten, gemessen im logarithmischen Kostenmaß, halt. Dann gibt es eineTuringmaschine M , so dass

(a) M auf Eingaben der Lange n nach hochstens O(t6(n)) Schritten halt und

(b) R und M dieselbe Funktion berechnen.

Page 111: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 109

Beweis: Die Behauptung folgt, wenn wir eine Simulation von R durch eine k-Band MaschineM ′ in Zeit O(t3(n)) durchfuhren.

Angenommen R hat auf Eingabe w fur i Schritte gerechnet. Dann wird M ′ die folgendeStruktur besitzen:

- Band 1 enthalt die kodierte Eingabe. Die gegenwartig von R gelesene Zelle ist markiert.

- Band 2 enthalt die kodierte bisherige Ausgabe von R.

- Band 3 enthalt Adressen und Inhalte der bisher von R benutzten Register. Wenn Rzum Beispiel die Register mit den Adressen r1, . . . , rp und Inhalten c(r1), . . . , c(rp) zumgegenwartigen Zeitpunkt benutzt hat, dann wird Band 3 die Form

0#Bin(c(0))##Bin(r1)#Bin(C(r1))## · · ·##Bin(rp)#Bin(C(rp))##

haben.

- Band 4 speichert das Label des nachsten Befehls von R.

- Weitere Hilfsbander stehen zur Verfugung.

Die Eingabe w von R moge die logarithmische Lange n haben. Beachte, dass dann Band 3 zujedem Zeitpunkt die Lange hochstens t(n) besitzt. Wie simuliert M ′ den (i + 1)-ten Schrittvon R?

Betrachten wir als ein erstes Beispiel den Befehl

INDLOAD i.

Dann wirdM ′ zuerst den Inhalt von Band 3 auf Band 5 kopieren. Dies gelingt in Zeit O(t(n)),denn Band 3 wird zu jedem Zeitpunkt hochstens die Lange t(n) haben. Dann begibt sich derKopf von Band 3 auf die Suche nach Register i. Auch dies gelingt in Zeit O(t(n)), denn die(konstante!) Adresse i kann in den Zustanden abgespeichert werden.

Wenn das Register i gefunden ist, bewegt sich der Kopf des dritten Bandes auf den Anfangvon Bin(c(i)). Der Kopf des funften Bandes begibt sich jetzt mit Hilfe des Kopfes auf Band 3auf die Suche nach einem Register mit Adresse c(i). Auch dieses Register kann in Zeit O(t(n))gefunden werden. Abschließend uberschreibt der Kopf von Band 3 Bin(c(0)) mit Bin(c(c(i))),und zwar unter Mithilfe des Kopfes auf Band 3 (Adresse 0 und Trennsymbol mussen mogli-cherweise neu geschrieben werden). Die Gesamtlaufzeit der Simulation des Befehls ist somitO(t(n)).

Betrachten wir als zweites Beispiel den Befehl

MULT i.

M ′ erreicht jetzt eine Simulation, wenn c(0) und c(i) auf die Bander 5 bzw. 6 geschriebenwerden und wenn auf den beiden Bandern mit der Schulmethode multipliziert wird. Die Schul-methode verlangt sukzessives Addieren der geshifteten Zahl c(0) (wenn die entsprechendenBits von c(i) gleich 1 sind). Damit gelingt die Multiplikation also in Zeit

O(

|Bin(c(0))| · |Bin(c(i))|)

= O(

t2(n))

.

Letztlich ist noch der Akkumulator zu uberschreiben.

Auch die verbleibenden Befehle von R lassen sich mit analogem Vorgehen jeweils in ZeitO(t2(n) simulieren. Zusammengefaßt: Hochstens t(n) Schritte sind zu simulieren, wobeidie Simulation eines jeden Schrittes in Zeit O(t2(n)) gelingt. Wie behauptet, ist Zeit O(t3(n))ausreichend.

Page 112: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

110 KAPITEL 5. BERECHENBARKEIT

5.1.2 Die Klasse P

Die Fahigkeit moderne Rechner mit nur polynomieller Verzogerung simulieren zu konnen,bedeutet sicherlich nicht, dass Intel oder AMD in Zukunft Nahmaschinen verkaufen sollten,denn der Geschwindigkeitsabfall in der Simulation von Laufzeit t(n) auf Laufzeit O(t(n)6) istgewaltig. Wenn wir uns aber nur fur Probleme interessieren, die in polynomieller Rechenzeitlosbar sind, dann konnen wir die entsprechende Problemklasse durch Supercomputer oderdurch Nahmaschinen definieren ohne die Klasse zu andern: Genau das wird in der Vorle-sung

”Algorithmentheorie“ mit der Definition der Klasse P aller effizient losbaren Probleme

gemacht.

Definition 5.4 Die Klasse P besteht aus allen Sprachen L fur die es eine TuringmaschineM mit L = L(M) gibt, so dass ZeitM(n) = O((n + 1)k) fur eine Konstante k gilt.

Wir sagen, dass L effizient berechenbar ist, wenn L ∈ P gilt.

Beispiel 5.4 Die folgenden Sprachen gehoren zur Klasse P . (Wir nehmen jeweils eine”ge-

eignete“ Darstellung der Eingabe an; zum Beispiel reprasentieren wir Graphen durch ihreAdjazenzmatrix, die wir durch Hintereinanderschreiben ihrer Zeilen als ein binares Wort auf-fassen konnen.)

- Regulare Sprachen werden von Turingmaschinen in linearer Zeit erkannt. Auch kontext-freie Sprachen lassen sich mit der Cocke-Younger-Kasami Konstruktion in polynomiellerZeit akzeptieren.

- Die in der”Algorithmentheorie“ behandelten Graph-Algorithmen wie etwa das Zusam-

menhangsproblem

Zh =

G |G ist ein ungerichteter, zusammenhangender Graph

gehoren zu P .

- Auch das Problem der linearen Programmierung, also die Losung der linearen Optimie-rungsaufgabe

min cT · x so dass A · x ≥ b, x ≥ 0,

gelingt in polynomieller Zeit und moderne Algorithmen beherrschen Systeme mit meh-reren Tausenden von Variablen. (Die benotigte Zeit ist polynomiell in der Lange derBinardarstellung fur die Matrix A und die Vektoren b, c.)

- Viele arithmetische Probleme wie

n |n ist eine Quadratzahl

oder

(k, n) | k teilt n

gehoren zur Klasse P. Nach langer Forschungsarbeit ist sogar gezeigt worden, dassPrimzahlen effizient erkannt werden konnen, die Sprache

n | n ist eine Primzahl

gehort also auch zu P . (Man beachte, dass wir in all diesen Fallen annehmen, dassdie Zahl n in Binardarstellung gegeben ist. Polynomielle Laufzeit bedeutet also eineLaufzeit der Form poly(log2 n).) Das Faktorisierungsproblem

Page 113: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 111

Bestimme die Teiler einer Zahl n

ist hingegen in aller Wahrscheinlichkeit nicht effizient losbar. Das Faktorisierungspro-blem nimmt eine Sonderstellung ein, weil es (wahrscheinlich) nicht mitNP-vollstandigenProblemen in Zusammenhang gebracht werden kann. Die (vermutete) Schwierigkeit desFaktorisierungsproblems ist die Grundlage vieler Public-Key Kryptosysteme.

5.1.3 Berechenbarkeit und Entscheidbarkeit

Welche Funktionen lassen sich durch Rechner irgendeiner zukunftigen Rechnergeneration be-rechnen und welche Sprachen lassen sich erkennen? Auch hier nehmen wir den Mund gewaltigvoll und beantworten die Frage mit der Klasse aller Sprachen, die von einer stets haltendenTuringmaschine erkannt werden.

Definition 5.5 Σ, Σ1 und Σ2 seien Alphabete.

(a) Eine Funktion f : Σ∗1 → Σ∗

2 heißt genau dann berechenbar, wenn es eine TuringmaschineM gibt, die fur jede Eingabe x ∈ Σ∗

1 halt und die Ausgabe f(x) als Ausgabe produziert.

(b) Eine Sprache L ⊆ Σ∗ heißt genau dann entscheidbar, wenn es eine Turingmaschine Mgibt, die fur jede Eingabe x ∈ Σ∗ halt, so dass

x ∈ L ⇔ M akzeptiert x.

gilt.

Die Churchsche These behauptet, dass eine Funktion genau dann von Rechnern einer zukunf-tigen Rechnergeneration berechnet werden kann, wenn die Funktion (Turing-)berechenbar ist,genauer:

Es gibt genau dann ein stets haltendes”Rechenverfahren“ zur Berechnung einer

Funktion, wenn diese Funktion durch eine stets haltende Turingmaschine berechnetwerden kann.

Die Churchsche These behauptet also, naturlich ohne Beweis, dass der intuitive Begriff derBerechenbarkeit mit der Berechnebarkeit durch Turingmaschinen ubereinstimmt. Man beach-te, dass die Churchsche These, wenn richtig, weitgehende Konsequenzen hat: Zum Beispielsollte dann die Funktionsweise des menschlichen Genoms

”berechenbar“ sein, da wir das Ge-

nom als ein Rechenverfahren auffassen konnen, dass die Reaktionen des Korpers auf innereoder außere Einflusse, die Eingaben, steuert.

Im nachsten Abschnitt sammeln wir Indizien fur die Churchsche These, indem wir die beein-druckende Berechnmungskraft von Nahmaschinen nachweisen.

5.1.4 Nichtdeterministische, probabilistische und Quantenberechnungen

Wie groß ist die Klasse der entscheidbaren Sprachen? Naturlich sind alle Sprachen in Pentscheidbar und damit sind insbesondere auch alle regularen und kontextfreien Sprachenentscheidbar. Sind auch alle Sprachen in NP entscheidbar? Wir mussen uns diese Frage stel-len, da wir Entscheidbarkeit uber deterministische Turingmaschinen definiert haben, wahrendSprachen in NP uber deterministische Turingmaschinen definert werden.

Page 114: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

112 KAPITEL 5. BERECHENBARKEIT

Wenn L ∈ NP , dann gibt es eine nichtdeterministische Turingmaschine M , die L in Zeitpoly(n) erkennt. Dann konnen wir aber M mit einer deterministischen Turingmaschine M ′

simulieren, die alle moglichen Berechnungen von M aufzahlt und genau dann akzeptiert,wenn eine Berechnung von M akzeptiert. Da M hochstens poly(n) Schritte ausfuhrt, gibt eshochstens

2O(poly(n))

verschieden Berechnungen und M ′ lauft in”hochstens“ exponentieller Zeit. Diese Ergebnis

lasst sich leicht verallgemeinern.

Satz 5.6 Sei M eine nichtdeterministische Turingmaschine, die in Zeit t(n) rechnet. Danngibt es eine aquivalente deterministische Turingmaschine M ′, die in Zeit hochstens 2O(t(n)

rechnet.

Insbesondere andert sich die Klasse entscheidbarer Probleme also nicht, wenn wir Entscheid-barkeit uber nichtdeterministische Turingmaschinen definieren! Stimmt NP moglicherweisemit der Klasse entscheidbarer Probleme uberein? Um Himmels willen, nein: Als ein Beispielbetrachten wir die Theorie ThR(0,1,+,−, ∗, /,≤) der reellen Zahlen, also alle Formeln derPradikatenlogik erster Stufe (mit den Konstanten 0 und 1 sowie den Operationen +,−, ∗, /sowie der Relation ≤, die fur die reellen Zahlen wahr sind. Es kann gezeigt werden, dassThR(0,1,+,−, ∗, /,≤) entscheidbar ist, aber nicht zur Klasse NP gehort.

Wahrscheinlich gehort sogar eine sehr viel einfachere Theorie, namlich die Menge aller wahrenquantifizierten booleschen Formeln (QBF genannt) nicht zu NP . In QBF liegt zum Beispieldie wahre Formel

∀x∃y [ (¬x ∨ y) ∧ (x ∨ ¬y) ],

wahrend die Formel

∃y∀x [ (¬x ∨ y) ∧ (x ∨ ¬y) ],

nicht zu QBF gehort. Naturlich(?) ist QBF entscheidbar und dies gelingt sogar mit relativgeringem Speicherplatz.

Aufgabe 78Sei α eine quantifizierte boolesche Formel, die aus n Symbolen besteht. (Wir zahlen alle Quantoren, Varia-blen, aussagenlogische Operatoren und Klammern.) Entwirf eine deterministische Turingmaschine, die mitSpeicherplatz O(n) auskommt und entscheidet, ob α wahr ist oder nicht.

Angenommen, wir mochten uberprufen, ob es einen Gewinnzug in einem nicht-trivialen Zwei-personen Spiel (wie etwa Schach) gibt. Handelt es sich hier um ein entscheidbares Problem?

Aufgabe 79Wir definieren das Spiel GEOGRAPHY . Dieses Spiel verallgemeinert das Geographie-Spiels, bei dem zweiSpieler abwechselnd noch nicht genannte Stadtenamen wahlen, wobei jede Stadt mit dem Endbuchstaben derzuvor genannten Stadt beginnen muß.

Eingabe: Ein gerichteter Graph G = (V,E) und ein ausgezeichneter Knoten s ∈ V .

Das Spiel: Zwei Spieler A und B wahlen abwechselnd jeweils eine noch nicht benutzte Kante aus E. SpielerA fangt an.

Die zu Beginn des Spiels gewahlte Kante muß eine Kante mit Startknoten s sein. Jede anschließend gewahlteKante muß im Endknoten der zuvor gewahlten Kante beginnen.

Der Spieler, der als erster keine solche unbenutzte Kante mehr findet, verliert das Spiel.

Aufgabe: Es ist zu entscheiden, ob ein optimal spielender Spieler A gegen jeden Spieler B auf G gewinnenkann.

Page 115: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 113

Zeige, dass GEOGRAPHY durch eine deterministische Turingmaschine mit hochstens polynomiellem Spei-cherplatz gelost werden kann. Warum gehort GEOGRAPHY wahrscheinlich nicht zur Klasse NP?

Auch hier haben wir wieder Turingmaschinen mit polynomiellem Speicherplatz angetroffen.Tatsachlich liegen viele interessante Probleme in der Komplexitatsklasse PSPACE (polynomialspace).

Definition 5.7 Die Klasse PSPACE besteht aus allen Sprachen, die von deterministischenTuringmaschinem auf polynomiellem Speicherplatz erkannt werden konnen.

QBF wie auch die Uberprufung, ob eine vorgegebene Spielsituation im GEOGRAPHY -Spieleinen Gewinnzug besitzt, gehoren zu PSPACE. Die Klasse PSPACE ist sehr machtig undbesitzt zum Beispiel NP als Teilmenge.

Satz 5.8 Es ist NP ⊆ PSPACE. Weiterhin sind alle Sprachen in PSPACE entscheidbar.

Beweis: SeiM eine nichtdeterministische Turingmaschine, die in Zeit t(n) rechnet. Dann wirdM hochstens 2O(t(n)) verschiedene Berechnungen besitzen, wobei jede Berechnung hochstensSpeicherplatz t(n) benotigt: In Zeit t(n) konnen ja hochstens t(n) Speicherzellen aufgesuchtwerden. Eine deterministische Turingmaschine M ′ kann dann aber alle Berechnungen von Mauf Speicherplatz O(t(n)) aufzahlen und auswerten!

Da Sprachen in PSPACE von deterministischen Turingmaschinen erkannt werden, ist jede zuPSPACE gehorende Sprache naturlich auch entscheidbar.

(In der Vorlesung”Komplexitatstheorie“ werden die Klasse PSPACE und andere Komple-

xitatsklassen im Detail untersucht.) Ist denn moglicherweise PSPACE die Klasse aller ent-scheidbaren Sprachen? Nein, nein und nochmals nein: Die Klasse entscheidbarer Sprachen istriesig im Vergleich zu PSPACE. Eine konkrete entscheidbare Sprache, die nicht zu PSPACEgehort, ist zum Beispiel die Theorie ThN(0,1,+,−,≤) aller Formeln (mit den Konstanten 0und 1, den Operationen +,− und der Relation ≤), die fur die naturlichen Zahlen wahr sind1.

Die Klasse der entscheidbaren Sprachen enthalt naturlich nicht nur alle auf polynomiellemSpeicherplatz erkennbaren Sprachen, sondern auch alle auf exponentiellem, doppelt expo-nentiellem ... Speicherplatz erkennbaren Sprachen und ist in der Tat riesig im Vergleich zuPSPACE.

Was aber passiert, wenn wir probabilistische Berechnungen zulassen? Randomisierte Algorith-men spielen im Algorithmenentwurf eine wichtige Rolle —es sei zum Beispiel an den randomi-sierten Quicksort Algorithmus erinnert— und wir sollten deshalb fragen, ob die ChurchscheThese auch gilt, wenn wir probabilistische Turingmaschines als

”konkurrierende Rechenver-

fahren“ zulassen.

Eine probabilistische Turingmaschine M wird durch den Vektor

M = (Q,Σ, δ, q0,Γ, F ) bzw. M = (Q,Σ, δ, q0,Γ)

beschrieben. Die Uberfuhrungsfunktion δ hat im Gegensatz zu deterministischen Turingma-schinen die Form

δ : Γ×Q× Γ×Q× links, bleib, rechts ⇒ [0, 1] ∩Q

1Man beachte, dass wir die Operation der Multiplikation ausgelassen haben. Lassen wir auch die Multipli-kation zu, dann werden wir, wie wir spater sehen werden, Entscheidbarkeit verlieren.

Page 116: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

114 KAPITEL 5. BERECHENBARKEIT

und weist damit jedem moglichen Ubergang

(γ, q) ⇒ (γ′, q′, Richtung)

die Wahrscheinlichkeitδ(γ, q, γ′, q′, Richtung)

zu. Wir verlangen, dass fur jedes Paar (γ, q) ∈ Γ×Q eine Wahrscheinlichkeitsverteilung aufden Ubergangen vorliegt. Das heißt, wir fordern fur jedes Paar (γ, q) die Bedingung

(γ′,q′,Richtung)∈Γ×Q×links,bleib,rechts

δ(γ, q, γ′, q′, Richtung) = 1.

Wie arbeitet eine probabilistische Turingmaschine M? Fur Eingabe x wird M , abhangig vomAusgang der Munzwurfe, moglicherweise viele Berechnungen ausfuhren. Als Wahrscheinlich-keit einer Berechnung B bezeichnen wir das Produkt aller Ubergangswahrscheinlichkeiten furdie einzelnen Schritte von B, also

prob[ B ] =m−1∏

i=0

pi

wenn pi die Ubergangswahrscheinlichkeit des iten Schritts ist.

Wie sollen wir die von einer probabilistischen Turingmaschine M akzeptierte Sprache definie-ren? Es liegt nahe, fur jede Eingabe x die Wahrscheinlichkeit akzeptierender Berechnungen,also

px =∑

B ist akzeptierende Berechnung von x

prob[ B ]

zu messen.

Definition 5.9 Sei M eine probabilistische Turingmaschine. Dann ist

LM =

x ∈ Σ∗|px >1

2

die von M akzeptierte Sprache. Wir sagen, dass M mit beschrankten Fehler ε rechnet, fallspx ≤ ε fur alle Eingaben x 6∈ LM und px ≥ 1− ε fur alle x ∈ LM gilt.

Probabilistische Turingmaschinen mit beschranktem Fehler ε < 1/2 sind ein sinnvolles undin der Praxis außerst nutzliches Maschinenmodell: Wenn wir die Maschine k-mal auf einervorgegebenen Eingabe x laufen lassen und das Mehrheitsergebnis ubernehmen, dann wird dieWahrscheinlichkeit eines Fehlers hochstens

2−Ω(k)

sein. (Warum ?)

Die Berechnungskraft probabilistischer Turingmaschinen mit beschranktem Fehler ist natur-lich mindestens so groß wie die Berechnungskraft deterministischer Turingmaschinen. Es gibtallerdings starke Indizien, die vermuten lassen, dass die in polynomieller Zeit mit beschrank-tem Fehler berechenbare Sprachenklasse sogar in deterministischer, polynomieller Zeit bere-chenbar ist. Wir zeigen jetzt, dass selbst die weitaus machtigeren Berechnungen mit unbe-schranktem Fehler, wenn also der Fehler ε mit wachsender Eingabelange gegen 1/2 konver-gieren darf, die Churchsche These unterstutzen.

Page 117: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 115

Satz 5.10 SeiM eine probabilistische Turingmaschine (mit nicht notwendigerweise beschrank-tem Fehler). Wenn die worst-case Laufzeit einer jeden Berechnung fur Eingaben der Langen durch t(n) beschrankt ist, dann gibt es eine deterministische Turingmaschine M ′, die LMakzeptiert und dazu hochstens Speicherplatz

O(t(n))

benotigt. Es muß allerdings gefordert werden, dass die Unardarstellung von t(n) mit Speicher-platz O(t(n)) berechnet werden kann.

Beweisskizze : Die zu konstruierende deterministische Turingmaschine M ′ wird zuerst t(n)Zellen

”abstecken“. Dann werden nacheinander alle hochstens 2O(t(n)) Berechnungen fur eine

vorgegebene Eingabe x simuliert. Ein Zahler summiert die Wahrscheinlichkeiten akzeptie-render Berechnungen (auf O(t(n)) Zellen). Nachdem alle Berechnungen simuliert sind, wirdgepruft, ob der Zahler einen Wert großer 1

2 hat und in diesem Fall wird akzeptiert.

Bemerkung (a): Randomisierte Algorithmen fuhren fur viele wichtige Fragestellungen zuden schnellsten bekannten algorithmischen Losungen, scheinen aber keine exponentielle Be-schleunigung gegenuber deterministischen Algorithmen zu bringen. Die Berechnungskraft ge-genuber deterministischen Algorithmen nimmt allerdings stark zu, wenn Online-Algorithmenbetrachten werden: Ein Online-Algorithmus2 muss Entscheidungen treffen ohne die Eingabevollstandig zu kennen. Hier hilft es,

”gegen die Zukunft zu randomisieren“. Diese und ahnliche

Themen werden in der Bachelor-Vorlesung”Effiziente Algorithmen“ behandelt.

(b) Auch das Ergebnis von Satz 5.10 weist auf die Wichtigkeit der KomplexitatsklassePSPACE hin, denn alle Sprachen, die sich in polynomieller Zeit mit unbeschranktem Feh-ler ε < 1/2 berechnen lassen, gehoren zu PSPACE.

(c) Wie groß kann die Laufzeit einer Berechnung mit polynomiellen Speicherplatz werden?Wenn eine deterministische Turingmaschine auf s(n) Zellen rechnet, dann wird sie nachhochstens

|Γ|s(n) · |Q| · s(n)vielen Schritten in eine Schleife eintreten. Diese Schranke ergibt sich aus der Tatsache, dassder aktuelle Bandinhalt (|Γ|s(n) Moglichkeiten), der aktuelle Zustand (|Q| Moglichkeiten) unddie aktuelle Position des Lese/Schreibkopfs (s(n) Moglichkeiten) eine Konfiguration eindeutigfestlegen. Mit anderen Worten, die Laufzeit einer solchen Turingmaschine ist durch

2O(s(n))

beschrankt. Also ist die Laufzeit durch 2O(s(n)) beschrankt.

Wir kommen als nachstes zu einer allerdings nur recht oberflachlichen Beschreibung vonQuantenrechnern. Zu Anfang erinnern wir an das Rechnen mit komplexen Zahlen. C = x+iy | x, y ∈ R bezeichnet die Menge der komplexen Zahlen und es ist i =

√−1. Fur die

komplexe Zahl z = x+ iy ist z = x− iy die Konjugierte von z. Die Lange von z ist durch

|z| =√

x2 + y2

definiert und fur komplexe Zahlen z1, z2 ∈ C mit zk = xk + iyk ist

z1 + z2 = x1 + x2 + i(y1 + y2)

z1 · z2 = x1 · x2 − y1 · y2 + i(x1 · y2 + x2 · y1).2Finanztransaktionen sind ein typisches Beispiel fur Online Algorithmen: Anlageentscheidungen sind ohne

Kenntnis der zukunftigen Entwicklung zu tatigen.

Page 118: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

116 KAPITEL 5. BERECHENBARKEIT

Die Grobstruktur eines Quantenrechners ahnelt der einer probabilistischer Turingmaschine.Diesmal hat aber die Uberfuhrungsfunktion δ die Form

δ : Γ×Q× Γ×Q× links, bleib, rechts → C

wobei nur komplexe Zahlen der Lange hochstens 1 zugewiesen werden. Wie im Fall probabi-listischer Turingmaschinen gibt es zu jedem Paar (γ, q) ∈ Γ × Q potentiell viele Ubergange,wobei diesmal

γ′,q′,Richtung

|δ(γ, q, γ′, q′, Richtung|2 = 1

gelten muß. Wir sagen, dassδ(γ, q, γ′, q′, Richtung)

die (Wahrscheinlichkeits-)Amplitude ist und, dass

|δ(γ, q, γ′, q′, Richtung)|2

die zugewiesene Wahrscheinlichkeit ist. Bisher haben wir nur eine merkwurdige Darstellungder Wahrscheinlichkeit eines Ubergangs kennengelernt, der wesentliche Unterschied zu denprobabilistischen Turingmaschinen folgt aber sofort: Wir betrachten zu einem beliebigen aberfesten Zeitpunkt alle Berechnungen und weisen jeder Berechnung B das Produkt pB derihren Ubergangen entsprechenden Wahrscheinlichkeitsamplituden zu. Charakteristischerweisewerden wir im Allgemeinen aber viele Berechnungen haben, die in derselben KonfigurationC enden. Wir weisen der Konfiguration C die Wahrscheinlichkeitsamplitude

τC =∑

B fuhrt auf C

pB

zu und definieren|τC |2

als die Wahrscheinlichkeit der Konfiguration C. Die von einem Quantenrechner Q akzeptierteSprache definieren wir dann als

LQ =

x|∑

C ist akzeptierende Konfiguration von Q auf Eingabe x

|τC |2 >1

2,

analog zu probabilistischen Turingmaschinen. Auch hier ist es notwendig Quantenrechnermit beschranktem Fehler einzufuhren, um dem gesehenen Ergebnis, notfalls nach genugendhaufigem Wiederholen, trauen zu konnen.

Unsere Beschreibung ist zu diesem Zeitpunkt unvollstandig: das beschriebene Rechnermodellist weitaus machtiger als das Modell der Quantenrechner. Deshalb noch einmal ein Ausflugin die komplexe Zahlen. Fur eine Matrix A = (zi,j)1≤i,j≤n mit komplexwertigen Eintragen ist

A = (zj,i)1≤i,j≤n

die konjugiert Transponierte von A. Wir nennen A unitar, falls

A · A = Einheitsmatrix

gilt. Wir halten jetzt in der Konfigurationsmatrix AQ die Wahrscheinlichkeitsamplituden eines1-Schritt Ubergangs zwischen je zwei Konfigurationen C und C ′ fest. Also

AQ[C,C′] = Wahrscheinlichkeitsamplitude des Ubergangs von C ′ nach C.

Ein Quantenrechner liegt vor, falls die Matrix AQ unitar ist.

Page 119: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.1. TURINGMASCHINEN UND DIE CHURCHSCHE THESE 117

Satz 5.11 Wenn ein Quantenrechner Q in Zeit t(n) rechnet, dann gibt es eine determini-stische Turingmaschine M , die auf Platz O(t2(n)) die Sprache LQ erkennt. Hierzu ist dieForderung eines beschrankten Fehlers ebenso nicht notwendig wie die Forderung, dass dieKonfigurationsmatrix AQ unitar ist.

Beweisskizze : Die simulierende deterministische Turingmaschine wird die Eintrage desMatrix/Vektor-Produkts

At(n)Q · v

nacheinander berechnen und die Wahrscheinlichkeiten akzeptierender Konfigurationen auf-summieren. Es wird akzeptiert, falls die Summe großer als 1/2 ist. Warum funktioniert dieserAnsatz, wenn wir den Vektor v durch

vi =

0 i 6= Startkonfiguration1 sonst

definieren? Der Vektor AQ ·v gibt die Wahrscheinlichkeitsamplituden der 1-Schritt Nachfolgerder Startkonfiguration wieder und allgemeiner listet der Vektor AkQ ·v die Wahrscheinlichkeit-samplituden der k-Schritt Nachfolger auf. Im letzten Schritt (also k = t(n)) mussen wir dannnur noch von den Wahrscheinlichkeitsamplituden zu den Wahrscheinlichkeiten ubergehen.

Wie berechnet man aber At(n)Q · v in Platz O(t2(n))? Die Matrix AQ besitzt ja 2O(t(n)) Zeilen

und Spalten! Hier ist ein Tipp: Der Vektor AkQ · v kann in Platz O(k · t(n)) berechnet werden.

Unsere Beschreibung von Quantenrechnern ist mathematisch und greift nicht auf die motivie-renden Hintergrunde der Quantenmechanik zuruck. Wir verweisen deshalb auf das Textbuchvon Mika Hirvensalo uber Quantum Computing.

Die Moglichkeiten von Quantenrechnern sind enorm. So hat Peter Shor (Algorithms for Quan-tum Computing : Discrete Logarithms and Factoring, Procedings of the 35th Annual Sympo-sium on Foundations of Computer Science, pp.124-134) 1994) zeigen konnen, dass naturlicheZahlen in polynomieller Zeit faktorisiert werden konnen. Dies impliziert, dass die meisten

”public-key“ Verschlusselungstechniken gebrochen werden konnen! Allerdings ist zu dieserZeit unklar, ob und wenn ja, wann Quantenrechner tatsachlich realisiert werden konnen.

Fassen wir zusammen: Nichtdeterministische und probabilistische Turingmaschinen wie auchQuantenrechner sind zwei weitere Rechnermodelle, die die Church’sche These unterstutzen.Wahrend probabilistische Turingmaschinen durch pseudo-Zufallsgeneratoren moglicherweisemit nur polynomieller Verlangsamung simulierbar sind, so scheinen Quantenrechner machti-ger. Wir haben aber gezeigt, dass jede von einem Quantenrechner in polynomieller Zeit be-rechnete Funktion auch von einer deterministischen Turingmaschine auf polynomiellen Platzund damit in exponentieller Zeit berechenbar ist3

Aufgabe 80Finde heraus, ob die wie folgt definierte Funktion h : 1∗ → 0, 1 berechenbar ist: h(x) = 1 ⇔ [In derDezimaldarstellung der Zahl π gibt es eine Stelle, wo die Ziffer 7 mindestens |x| mal hintereinander vorkommt.]Begrunde deine Antwort.

(Zur Erinnerung π = 3, 141592653589793.......)

Hinweis: Uberlege, welches Aussehen die Funktion h haben kann.

3Eine effiziente Berechnung NP-vollstandiger Probleme durch Quantenrechner erscheint aber hochst un-wahrscheinlich.

Page 120: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

118 KAPITEL 5. BERECHENBARKEIT

5.2 Unentscheidbare Sprachen

Das nachste Ziel dieses Kapitels ist die Untersuchung unentscheidbarer Probleme, also dieUntersuchung von Problemen, die von keiner stets haltenden Turingmaschine erkannt werdenkonnen.

Warum ist die Existenz unentscheidbarer Probleme alles andere als uberraschend? Jede Tu-ringmaschine hat ein endliches Programm, das wir eindeutig durch eine naturliche Zahl ko-dieren konnen (fur Details siehe weiter unten). Es gibt also nur abzahlbar unendlich vieleTuringmaschinen.

Aber wieviele Sprachen gibt es (zum Beispiel uber dem Alphabet 0, 1)? Um eine Sprachezu spezifizieren, mussen wir fur jedes Wort w ∈ 0, 1∗ angeben, ob w zur Sprache gehort. Zudieser Aufgabe benotigen wir offensichtlich nur ein Bit bit(w) ∈ 0, 1. Den Vektor

(bit(w) |w ∈ 0, 1∗)

konnen wir aber als Binardarstellung einer reellen Zahl im Intervall [0, 1] auffassen. Ande-rerseits konnen wir auch jede reelle Zahl r ∈ [0, 1] als die Beschreibung einer Sprache Lrauffassen. (Wie?) Also stimmt die Kardinalitat aller Sprachen uber 0, 1 mit der Kardina-litat des reellen Intervalls [0, 1] uberein. Es gibt also wesentlich mehr Sprachen als Turingma-schinen, und sogar die

”meisten“ Sprachen sind unentscheidbar.

Dieser Existenzbeweis laßt aber die Frage offen, wie unentscheidbare Sprachen”aussehen“.

Bevor wir diese Frage angehen, zeigen wir, dass Turingmaschinen programmierbar sind; dasheißt, wir werden eine Turingmaschine U entwerfen, die ein (geeignet kodiertes) Turingmaschi-nenprogramm P und eine Eingabe w fur P als Eingabe annimmt und sodann das ProgrammP auf Eingabe w simuliert. Eine solche Turingmaschine wird auch universelle Turingmaschinegenannt.

Wir schranken zuerst die Turingmaschinenprogramme syntaktisch ein.

Aufgabe 81Der AkzeptorM = (Q,Σ, δ, q0,Γ, F ) sei eine beliebige Turingmaschine. Wir sagen, dass die TuringmaschinenMundM ′ = (Q′,Σ, δ′, q′0,Γ

′, F ′) genau dann aquivalent sind, wenn beide Maschinen dieselbe Sprache akzeptieren(also L(M) = L(M ′)) und wenn beide Maschinen fur dieselbe Eingabemenge halten (fur alle w ∈ Σ∗ muß alsogelten: M ′ halt auf Eingabe w ⇔ M halt auf Eingabe w.)

(a) Beschreibe eine zu M aquivalente Turingmaschine M ′ mit Q′ = 0, 1, . . . , |Q| − 1 und q′0 = 0. (Zuerstnormieren wir also die Zustandsmenge und den Anfangszustand.) Aus der Beschreibung sollte insbesonderehervorgehen, wie δ′ aus δ erhalten wird.

(b) Beschreibe eine zu M aquivalente Turingmaschine M ′ mit Q′ = 0, 1, . . . , |Q|, q′0 = 0 und F ′ = 1.(Wir fordern also jetzt zusatzlich, dassM ′ genau einen akzeptierenden Zustand, den Zustand 1, besitzt. Diesmalbenotigen wir aber moglicherweise einen zusatzlichen Zustand. Warum?)

(c) Beschreibe, fur eine geeignete Zahlm, eine zuM aquivalente TuringmaschineM ′ mitQ′ = 0, 1, . . . ,m, q′0 =0, F ′ = 1 und Γ′ = 0, 1, B.

Hinweis: Die Zahl m wird von der Turingmaschine M abhangen. Weiterhin, um die Maschine M simulieren zukonnen, mussen wir versuchen, die Buchstaben des Bandalphabets Γ durch binare Worte zu kodieren.

Eine umgangssprachliche Beschreibung der Simulation ist ausreichend.

Wir erlauben nur das Eingabealphabet Σ = 0, 1. Nach der obigen Aufgabe konnen wir alsobeim Entwurf der universellen Turingmaschine U annehmen, dass eine Turingmaschine Mmit Bandalphabet Γ = 0, 1,B auf einer Eingabe w ∈ 0, 1∗ zu simulieren ist. Wir konnenweiterhin annehmen, dass M einen einzigen akzeptierenden Zustand besitzt, namlich den

Page 121: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.2. UNENTSCHEIDBARE SPRACHEN 119

Zustand 1 und dass Q = 0, 1, . . . , |Q| − 1 die Zustandsmenge von Q mit Anfangszustand 0ist. Es bleibt zu klaren, wie wir die Turingmaschine

M = (Q,Σ, δ, q0,Γ, F )

als binares Wort kodieren. Σ, q0, Γ und F sind a priori bekannt, und es genugt, |Q| und δ zukodieren. Wir definieren

〈M〉 := 1|Q| 0 code(δ) 00

als die Kodierung von M oder die Godelnummer von M . Die Kodierung code(δ) der Zu-standsuberfuhrungsfunktion δ erfolgt durch Konkatenation der Kodierungen der einzelnenBefehle, wobei der Befehl

δ(q, a) = (q′, b,wohin)

durch das Wort1q+1 0 1Zahl(a) 0 1q

′+1 0 1Zahl(b) 0 1Zahl(wohin) 0

kodiert wird. (Es ist

Zahl(0) = 1, Zahl(1) = 2, Zahl(B) = 3,

Zahl(links) = 1, Zahl(rechts) = 2, Zahl(bleib) = 3.)

Wir mussen jetzt U so programmieren, dass fur Eingabe

〈M〉wdie Maschine M auf Eingabe w simuliert wird. Wie? Es genugt gemaß Satz 5.1 eine 3-Band-Maschine zu entwerfen. Zuerst wird die 3-Band-Maschine die Godelnummer 〈M〉 vom Einga-beband loschen und auf das zweite Band schreiben. Dann wird uberpruft, ob 〈M〉 syntaktischkorrekt ist, d.h. ob 〈M〉 einer Godelnummer entspricht. Ist dies der Fall, wird der Startzu-stand 0 auf Band 3 geschrieben, und die schrittweise Simulation wird durchgefuhrt, wobeijedesmal Band 3 den gegenwartigen Zustand speichert.

Lemma 5.12 Die universelle Turingmaschine U hat die folgenden Eigenschaften:

(a) M akzeptiert die Eingabe w genau dann, wenn U die Eingabe 〈M〉w akzeptiert .

(b) M halt genau dann auf Eingabe w, wenn U auf Eingabe 〈M〉w halt.

Wir kommen jetzt zum ersten Hohepunkt dieses Abschnitts, namlich der Unentscheidbarkeitder Diagonalsprache D.

Definition 5.13 D = 〈M〉 |M akzeptiert die Eingabe 〈M〉 nicht.

Satz 5.14 D ist nicht entscheidbar.

Beweis: Angenommen, D ist entscheidbar. Dann gibt es eine stets haltende TuringmaschineM∗, so dass fur alle Turingmaschinen M gilt:

M∗ akzeptiert 〈M〉 ⇔ 〈M〉 ∈ D

⇔ M akzeptiert 〈M〉 nicht.Diese Aquivalenz gilt fur alle Turingmaschinen und somit auch fur die Turingmaschine M =M∗. Damit folgt aber die sinnlose Aussage

M∗ akzeptiert 〈M∗〉 ⇔ M∗ akzeptiert 〈M∗〉 nicht,und wir haben somit einen Widerspruch zur Annahme der Entscheidbarkeit erreicht.

Page 122: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

120 KAPITEL 5. BERECHENBARKEIT

Bemerkung 5.1 Warum heisst D die Diagonalsprache? Wir bilden eine unendliche Matrix Tund ordnen einer Zeile (bzw. einer Spalte) eine Turingmaschine M (bzw. eine Godelnummer< N >) zu. Fur Zeile M und Spalte < N > definieren wir

T (M,< N >) =

1 M akzeptiert < N >0 sonst.

Die Matrix T beschreibt also das Verhalten samtlicher Turingmaschinen auf Godelnummern.Die Diagonalsprache D

”flippt“ die Diagonale von T und erzwingt damit, dass D von keiner

Turingmaschine M∗ entscheidbar ist: M∗ wird auf Eingabe < M∗ > die Anwort T (M∗, <M∗ >) geben, wahrend D die geflippte Antwort verlangt.

Aufgabe 82Eine Menge X heißt abzahlbar, falls jedem x ∈ X eine Zahl i(x) ∈ N zugewiesen werden kann, so dass i(x) 6= i(y)fur alle x 6= y ∈ X.

Sei X die Menge aller 0-1 Folgen, also X = x | x : N → 0, 1.

Zeige, dass X nicht abzahlbar ist.

Hinweis: Wende das Diagonalisierungsargument an.

Leider ist die Diagonalsprache eine”kunstliche“ Sprache: ihre Untentscheidbarkeit scheint kei-

ne Konsequenzen fur”real world“-Probleme zu haben. Tatsachlich ist das Gegenteil der Fall,

wie wir bald sehen werden. Zuerst aber fuhren wir den Reduktionsbegriff ohne polynomielleZeitbeschrankung ein, um weitere unentscheidbare Sprachen zu erhalten.

Definition 5.15 L1 und L2 seien zwei Sprachen uber Σ1 beziehungsweise uber Σ2. Wir sa-gen, dass L1 genau dann auf L2 reduzierbar ist (L1 ≤ L2), wenn es eine stets haltendeTuringmaschine T gibt, so dass fur alle w ∈ Σ∗

1 gilt:

w ∈ L1 ⇔ T (w) ∈ L2.

(T (w) ∈ Σ∗2 bezeichnet die Ausgabe von T fur Eingabe w. T heißt die transformierende Tu-

ringmaschine.)

Satz 5.16 L sei eine unentscheidbare Sprache.

(a) Dann ist auch L, das Komplement von L, unentscheidbar.

(b) Es gelte L ≤ K. Dann ist auch K unentscheidbar.

Beweis:

a) Wenn die stets haltende Turingmaschine M die Sprache L erkennt, dann konnen wireine stets haltende TuringmaschineM ′ bauen, die L erkennt: Wir wahlen Q\F als neueMenge akzeptierender Zustande.

b) Angenommen, es gibt eine stets haltende TuringmaschineM , die K erkennt. Da L ≤ K,gibt es eine stets haltende Turingmaschine T mit

w ∈ L ⇔ T (w) ∈ K.

Also gilt w ∈ L ⇔ M akzeptiert die Eingabe T (w).

Damit wird L aber durch eine stets haltende Turingmaschine (namlich die Maschine, diezuerst T und dann M simuliert) erkannt. Das verstoßt jedoch gegen die Unentscheid-barkeit der Sprache L.

Page 123: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.2. UNENTSCHEIDBARE SPRACHEN 121

Satz 5.16 liefert uns die gewunschten Methoden, um neue Unentscheidbarkeitsergebnisse zuerhalten. Wir sind insbesondere an den folgenden Sprachen interessiert:

Definition 5.17

(a) H = 〈M〉w |M halt auf Eingabe w ist das Halteproblem.

(b) Hε = 〈M〉 |M halt auf dem leeren Wort ε ist das spezielle Halteproblem.

(c) U = 〈M〉w |M akzeptiert w ist die universelle Sprache.

Satz 5.18 Die universelle Sprache U ist nicht entscheidbar.

Es kann somit keinen Super-Compiler geben, der stets korrekt voraussagt, ob ein Programmeine vorgelegte Eingabe akzeptiert, es sei denn, wir erlauben, dass der Super-Compiler selbst

”manchmal“ nicht halt.

Beweis: Wir betrachten das Komplement D der Diagonalsprache, also

D =

w ∈ 0, 1∗ | (w = 〈M〉 und M akzeptiert Eingabe 〈M〉)

oder (w ist keine Godelnummer)

.

Nach Satz 5.16 (a) ist D nicht entscheidbar. Mit Satz 5.16 (b) genugt es, die Reduktion

D ≤ U

nachzuweisen. Die transformierende Turingmaschine T pruft zuerst, ob w die Godelnummereiner Turingmaschine M ist. Ist dies der Fall, dann berechnet T die Ausgabe 〈M〉w. Ist diesnicht der Fall, dann berechnet T die Ausgabe 〈M0〉 ε, wobei die Turingmaschine M0 auf jederEingabe sofort halt und diese akzeptiert. Offensichtlich halt T fur jede Eingabe.

Wir mussen nachweisen, dass

w ∈ D ⇔ T (w) ∈ U

gilt.

Fall 1: w ist keine Godelnummer.

Dann ist w ∈ D. Andererseits ist T (w) = 〈M0〉 ε, wobei M0 jedes Wort, und damit auch dasleere Wort akzeptiert. Es ist also 〈M0〉 ε ∈ U .

Fall 2: w = 〈M〉.Dann ist T (w) = 〈M〉w und

〈M〉 ∈ D ⇔ M akzeptiert 〈M〉⇔ 〈M〉w ∈ U

⇔ T (w) ∈ U

Page 124: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

122 KAPITEL 5. BERECHENBARKEIT

Satz 5.19 Das Halteproblem H ist nicht entscheidbar.

Beweis: Es genugt zu zeigen, dass die universelle Sprache auf das Halteproblem reduzierbarist, dass also U ≤ H gilt.

Sei die Eingabe v ∈ 0, 1∗ gegeben. Wie muß die transformierte Eingabe T (v) aussehen?

Fall 1: Wenn v nicht die Form v = 〈M〉w hat, dann setzen wir T (v) = v.

Fall 2: v = 〈M〉wDie transformierende Turingmaschine T muß die Maschine M durch eine Maschine M ′ erset-zen, so dass

M akzeptiert w ⇔ M ′ halt auf w

gilt. Wie bekommen wir das hin? Sei q∗ ein neuer Zustand. Wir ersetzen jeden Befehl δ(q, a) =(q, a, bleib) vonM durch den Befehl δ(q, a) = (q∗, a, bleib), falls q kein akzeptierender Zustandist. Sodann fugen wir die Befehle

δ(q∗, 0) = (q∗, 0, rechts)

δ(q∗, 1) = (q∗, 1, rechts)

δ(q∗,B) = (q∗,B, rechts)

hinzu. Die neue MaschineM ′ wird entweder ihre Eingabe w akzeptieren (namlich genau dann,wenn M die Eingabe w akzeptiert) oder aber nicht halten. Es gilt also

M akzeptiert w ⇔ M ′ halt auf Eingabe w. (5.1)

Wir setzen deshalb, fur v = 〈M〉w,T (v) =

M ′⟩

w

und mussenv ∈ U ⇔ T (v) ∈ H

nachweisen.

Fall 1: v hat nicht die Form v = 〈M〉w.Dann ist v /∈ U und v /∈ H. Da aber T (v) = v, gilt v /∈ U und T (v) /∈ H.

Fall 2: v = 〈M〉w. Es giltv ∈ U ⇔ M akzeptiert w

⇔ M ′ halt auf Eingabe w (mit 5.1)

⇔ T (v) ∈ H.

Satz 5.20 Das spezielle Halteproblem Hε ist nicht entscheidbar.

Beweis: Wir zeigen, dass das Halteproblem H auf Hε reduzierbar ist, dass also H ≤ Hε gilt.Wir mussen zuerst die transformierende Turingmaschine T beschreiben.

Sei v ∈ 0, 1∗ eine Eingabe. Wenn v nicht die Form v = 〈M〉w hat, dann setze

T (v) = 1

(Damit ist T (v) keine Godelnummer, und es ist v /∈ H und T (v) /∈ Hε).

Wenn v = 〈M〉w, dann baut T eine Turingmaschine M ′, die fur jede Eingabe

Page 125: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.2. UNENTSCHEIDBARE SPRACHEN 123

- zuerst das Wort w auf das Band schreibt,

- den Kopf auf den ersten Buchstaben von w positioniert und sodann

- M simuliert.

Offensichtlich gilt

v ∈ H ⇔ M halt auf w

⇔ M ′ halt auf dem leeren Wort

⇔⟨

M ′⟩

∈ Hε

Wir setzen T (v) = 〈M ′〉 und haben somit

v ∈ H ⇔ T (v) ∈ Hε

nachgewiesen. Da T fur jede Eingabe halt, folgt die Behauptung des Satzes.

Aufgabe 83Welche der folgenden Sprachen sind entscheidbar, welche sind unentscheidbar?

Begrunde Deine Antwort durch die Angabe eines stets haltenden Algorithmus oder durch die Angabe einerReduktion.

(a) G = (Σ, V, S, P ) sei eine kontextsensitive Grammatik, d.h. die Produktionen in P sind von der Formα → β mit α, β ∈ (Σ ∪ V )∗ und |α| ≤ |β|. Zu betrachten ist die Sprache LG = w ∈ Σ∗ | w ∈ L(G).

(b) Eine quantifizierte KNF-Formel α hat die Form

α = ∀x1∃x2∀x3∃x4 · · ·Qxnβ(x1, x2, x3, x4, . . . , xn)

wobei Q ∈ ∀,∃, β eine aussagenlogische Formel in konjunktiver Normalform ist und jede Variable vonβ durch einen Quantor gebunden wird.

Zu betrachten ist die Sprache

Q-KNF =

α∣

∣ α ist eine quantifizierte KNF-Formel und α ist wahr

.

(c)

(〈M〉 , 〈A〉)

M ist eine deterministische Turingmaschine, A ist ein DFAund L(M) = L(A)

.

(d)

(〈M〉 , w)

M ist eine deterministische Turingmaschineund M wird fur Eingabe w den Kopf stets nach rechts bewegen

.

(e)

(〈M〉 , q)

M ist eine deterministische Turingmaschine, q ist ein Zustand von Mund M erreicht q, wenn M auf dem leeren Wort startet

.

Aufgabe 84Es sei

L# = 〈M〉 | M schreibt fur Eingabe ε irgendwann das Zeichen # auf das Band.

Zeige, dass die Sprache L# nicht entscheidbar ist.

Aufgabe 85Es sei Lnon−blank die folgende Sprache

Lnon−blank = < M > |M schreibt fur Eingabe ε irgendwann ein Nicht-Blank aufs Band

Zeige, dass die Sprache Lnon−blank entscheidbar ist.

Nun fuhren wir einen Beweis vor, der zeigt, dass die Sprache Lnon−blank doch nicht entscheidbar ist. Es sei< M >∈ Lnon−blank gegeben, konstruiere < M1 >∈ L# wie folgt:

1. M1 hat das gleiche Band-Alphabet wie M und zusatzlich das Zeichen #.2. M1 hat die gleiche Zustandsmenge wie M .3. Die Uberfuhrungsfunktion von M1 ist die von M mit der Ausnahme, dass jede Regel, beider ein Nicht-Blank geschrieben wird, durch die Regel: (schreibe # und halte) ersetzt wird.

Page 126: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

124 KAPITEL 5. BERECHENBARKEIT

Damit ist bewiesen, dass M gestartet auf dem leeren Band genau dann ein Nicht-Blank schreibt, wenn M1

gestartet auf dem leeren Band das Zeichen # schreibt. Nach dem Reduktionsprinzip folgt, dass die SpracheLnon−blank nicht entscheidbar ist.

Der Beweis ist falsch. Finde das fehlerhafte Argument und begrunde deine Antwort.

5.3 Der Satz von Rice

Der Satz von Rice besagt im wesentlichen, dass die Frage, ob eine vorgegebene Turingmaschineeine nicht-triviale Eigenschaft besitzt, nicht entscheidbar ist.

Zuerst weisen wir jeder Turingmaschine M die von ihr berechnete Funktion fM zu:

fM(w) =

Ausgabe von M auf w M halt auf w,nil M halt auf w nicht.

Wir setzenF = fM |M ist eine Turingmaschine

und interpretieren eine Teilmenge S ⊆ F als eine Eigenschaft. S ist nicht-trivial, wenn S nichtdie leere Menge ist und und nicht mit F ubereinstimmt. Wir konnen jetzt den Satz von Riceformulieren:

Satz 5.21 Sei S ⊆ F . Dann ist die Sprache

TM(S) = 〈M〉 |M berechnet eine Funktion in S

nicht entscheidbar, fallsS 6= ∅ und S 6= F .

Beachte, dass TM(∅) = ∅ und TM(F) = 〈M〉 |M ist eine Turingmaschine. Der Satz vonRice zeigt somit, dass alle nicht-trivialen Eigenschaften, also alle Eigenschaften fur S 6= ∅ undS 6= F , nicht entscheidbar sind.

Beweis: Sei S gegeben mit S 6= ∅ und S 6= F . Wir behaupten, dass

Hε ≤ TM(S)

gilt. Die Behauptung des Satzes folgt damit, denn Hε und damit auch Hε ist nicht entscheid-bar.

Wir nehmen an, dass die uberall undefinierte Funktion nie zu S gehort. Ist dies nicht der Fall,dann ist nie ∈ F \ S. Wir wurden dann nachweisen, dass TM(F \ S) nicht entscheidbar istund erhalten die Unentscheidbarkeit von TM(S), da TM(S) = TM(F \ S).Da S 6= F , gibt es eine Funktion f ∈ F \S. SeiMf eine Turingmaschine, die f berechnet. Wirbeschreiben jetzt die transformierende Turingmaschine T fur den Nachweis von Hε ≤ TM(S).

Sei v ∈ 0, 1∗ eine Eingabe. Wenn v keine Godelnummer ist, dann setzen wir T (v) = 〈M0〉,wobei M0 eine Turingmaschine ist, die nie halt. Beachte, dass in diesem Fall v ∈ Hε undT (v) ∈ TM(S) ist.

Ansonsten ist v = 〈M〉. Die transformierende Turingmaschine T modifiziert M wie folgt:

- Die tatsachliche Eingabe w von M wird nicht beachtet. Stattdessen wird M auf dasleere Wort angesetzt. (Kopiere w auf eine zweite Spur und losche die erste Spur).

Page 127: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.4. ENTSCHEIDBARE UND REKURSIV AUFZAHLBARE SPRACHEN 125

- Wenn M auf dem leeren Wort halt, wird die Turingmaschine Mf auf der tatsachli-chen Eingabe w simuliert (nachdem samtliche Ergebnisse der Berechnung von M auf εgeloscht wurden).

Sei M ′ die resultierende Turingmaschine. Wir setzen T (〈M〉) = 〈M ′〉. Es gilt

〈M〉 ∈ Hε ⇔ M halt nicht auf dem leeren Wort

⇔ M ′ berechnet nie

⇔⟨

M ′⟩

∈ TM(S).

Die Behauptung des Satzes folgt, da die transformierende Turingmaschine T stets halt.

Bemerkung 5.2 Der Satz von Rice liefert eine Fulle unentscheidbarer Probleme. Wir listeneinige Beispiele auf:

(a) L1 = 〈M〉 |M halt fur irgendeine Eingabe (denn L1 = TM(F \ nie)).

(b) L2 = 〈M〉 |M berechnet auf allen Eingaben dieselbe Ausgabe 0 oder 1 (denn L2 = TM(0, 1), wobei 0(w) = 0 und 1(w) = 1 fur alle Worte w).

(c) L3 = 〈M〉 |M berechnet die Identitatsfunktion(denn L3 = TM(id) mit id(w) = w fur alle w).

(d) L4 = 〈M〉 |M akzeptiert alle Eingaben(denn L4 = TM(1). Hier haben wir angenommen, dass akzeptiert wird, indem eineEins als Ausgabe gedruckt wird).

5.4 Entscheidbare und rekursiv aufzahlbare Sprachen

Wir zeigen zuerst, dass entscheidbare Sprachen unter den Operationen Vereinigung, Durch-schnitt und Komplement abgeschlossen sind.

Satz 5.22 L1 und L2 seien entscheidbare Sprachen. Dann sind auch

L1 ∪ L2, L1 ∩ L2 und L1

entscheidbar.

Beweis: L1 (bzw. L2) werde durch die stets haltende TuringmaschineM1 (bzw.M2) erkannt.Um L1 ∪L2 zu erkennen, entwerfen wir eine Turingmaschine M , die zuerst M1 simuliert undsodannM2 simuliert.M wird genau dann akzeptieren, wenn eine der beiden Turingmaschinenakzeptiert. Da M stets halt, ist L1 ∪ L2 entscheidbar.

Wenn L1 entscheidbar ist, ist offensichtlich auch das Komplement L1 entscheidbar; ersetze Fdurch Q \ F .Da L1 ∩L2 = L1 ∪ L2, folgt die Entscheidbarkeit des Durchschnitts aus der Entscheidbarkeitvon Vereinigung und Komplementbildung.

Page 128: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

126 KAPITEL 5. BERECHENBARKEIT

Wir fuhren als nachstes den Begriff der rekursiven Aufzahlbarkeit ein:

Definition 5.23 Eine Sprache K heißt genau dann rekursiv aufzahlbar, wenn es eine Tu-ringmaschine M mit K = L(M) gibt, d.h. es muss gelten

w ∈ K ⇔ M akzeptiert w.

Die Turingmaschine M muß also nicht fur jede Eingabe halten. Fur Eingaben w /∈ K muß sienicht erkennen, dass w nicht zur Sprache gehort, sie darf nur niemals w akzeptieren.

Aufgabe 86Zeige, wenn L1 ≤ L2 und L2 rekursiv aufzahlbar ist, dann ist auch L1 rekursiv aufzahlbar.

Beachte, dass eine entscheidbare Sprache auch rekursiv aufzahlbar ist. Die Umkehrung giltaber nicht immer.

Satz 5.24 Die Sprachen H,Hε und U sind rekursiv aufzahlbar, aber nicht entscheidbar.

Beweis: Warum ist zum Beispiel das Halteproblem H rekursiv aufzahlbar? Fur Eingabe vuberprufe zuerst, ob v = 〈M〉w. Wenn nicht, verwerfe. Ansonsten benutze die universelleTuringmaschine, um M auf Eingabe w zu simulieren. Sollte M auf w halten, so akzeptiere.

Sei N die gerade beschriebene Turingmaschine. Dann gilt offensichtlich

v ∈ H ⇔ v = 〈M〉w und M halt auf w

⇔ N akzeptiert w.

Beachte aber, dass N nicht stets halten wird!

Wir konnen als nachstes zeigen, dass rekursiv aufzahlbare Sprachen abgeschlossen sind unterden Operationen Vereinigung und Durchschnitt.

Satz 5.25 L1 und L2 seien rekursiv aufzahlbar. Dann sind auch L1∪L2 und L1∩L2 rekursivaufzahlbar.

Beweis: Es sei L1 = L(M1) und L2 = L(M2). Wir bauen eine Turingmaschine M , die diebeiden Turingmaschinen M1 und M2 ”

verzahnt“ simuliert:

M hat eine Spur fur M1 und eine Spur fur M2. In der ersten Phase wird M einen Schritt vonM1 und einen Schritt von M2 simulieren.

Wenn L1 ∪ L2 zu erkennen ist, wird M halten und akzeptieren, sobald eine der beiden Ma-schinen M1 oder M2 akzeptiert. (Warum reicht es nicht, zuerst M1 vollstandig zu simulierenund sodann M2 zu simulieren?)

Wenn L1∩L2 zu erkennen ist, wirdM akzeptieren, sobald beide Maschinen akzeptiert haben.

Page 129: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.4. ENTSCHEIDBARE UND REKURSIV AUFZAHLBARE SPRACHEN 127

Ganz im Gegensatz zu entscheidbaren Sprachen sind aber rekursiv aufzahlbare Sprachen nichtunter Komplementbildung abgeschlossen.

Satz 5.26

(a) Wenn L und L rekursiv aufzahlbar sind, dann ist L entscheidbar.

(b) Hε, H und U sind nicht rekursiv aufzahlbar.

Beweis: :

(a) Es sei L = L(M1) und L = L(M2). Wir bauen, wie in Satz 5.25, eine TuringmaschineM , die M1 und M2 verzahnt simuliert.

M akzeptiert genau dann, wenn M1 akzeptiert und M verwirft genau dann, wenn M2

akzeptiert. Beachte, dass aber fur jede Eingabe w genau eine der Maschinen M1 oderM2 akzeptieren muß, da L(M1) ∪ L(M2) = Σ∗ und L(M1) ∩ L(M2) = ∅.Also ist M eine stets haltende Turingmaschine, die L erkennt, und L ist somit ent-scheidbar.

(b) ist eine Konsequenz der folgenden allgemeineren Aussage: Wenn eine Sprache L rekursivaufzahlbar, aber nicht entscheidbar ist, dann ist L nicht rekursiv aufahlbar.

Warum? Sonst ware L ja entscheidbar.

Aufgabe 87Beweise den folgenden Satz:

Eine Sprache L ist genau dann rekursiv aufzahlbar, wenn es eine nichtdeterministische Turingmaschine gibt,die L akzeptiert.

Aufgabe 88L sei eine Sprache. Beweise die folgende Aussage.

Es gibt genau dann eine deterministische Turingmaschine, die alle Worter w ∈ L (und nur dieWorter w ∈ L) in irgendeiner Reihenfolge (durch ein # getrennt) auf ein Ausgabeband schreibt,wenn L rekursiv aufzahlbar ist.

Es ist erlaubt, dass Worter mehrfach auf dem Ausgabeband der deterministischen Turingmaschine erscheinen.

Aufgabe 89Die Sprachen L1 und L2, uber dem gemeinsamen Alphabet Σ, seien vorgegeben.

Zeige, dass L = (L1 \ L2)∗ entscheidbar ist, wenn L1 und L2 entscheidbar sind.

Zeige, dass L = L1 L2 rekursiv aufzahlbar ist, wenn L1 und L2 rekursiv aufzahlbar sind.

Aufgabe 90Das Tiling Problem ist wie folgt definiert. Fur eine vorgegebene endliche Menge von Kacheltypen mussen wirdie Ebene Z×N mit Kacheln ausfullen. Wir haben unendlich viele Kacheln jedes Typs zur Verfugung, wobei alleKacheltypen quadratisch mit Seitenlange 1 sind. Die Verkachelung muss allerdings die folgenden Bedingungeneinhalten: (i) eine spezielle “Anfangskachel” muss auf (0, 0) mit seiner linken unteren Ecke plaziert sein, und(ii) nur bestimmte Kacheltypen durfen nebeneinander liegen. Das Problem laßt sich wie folgt formalisieren.

Ein Tiling-Muster ist ein Tupel K = (K, k0,H, V ), wobei K eine endliche Menge (von Kacheltypen) ist, k0 ∈ Kdie “Anfangskachel” ist, und H,V ⊆ K × K die horizontalen bzw. vertikalen Bedingungen fur benachbarteKacheln sind. Das Auslegen von Kacheln ist durch eine Funktion f : Z× N → K gegeben. Diese Funktion isteine Tiling-Funktion fur das Muster K, falls

Page 130: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

128 KAPITEL 5. BERECHENBARKEIT

• f(0, 0) = k0 (der Platz fur die Anfangskachel);

• (f(n,m), f(n+ 1,m)) ∈ H fur alle n ∈ Z und m ∈ N;

• (f(n,m), f(n,m+ 1)) ∈ V fur alle n ∈ Z und m ∈ N.

Das Tiling-Problem ist dann die Sprache

TP =

K∣

∣ es gibt eine Tiling-Funktion f : Z× N → K fur K

.

Wir geben jetzt ein Tiling-Muster K = (K, k0,H, V ) an, so dass eine “erfolgreiche Verkachelung” die Berech-nung einer Turingmaschine M = (Q,Σ, δ, q0,Γ) auf dem leeren Wort wiedergibt: die i-te Zeile der Verkachelungsoll dabei der Konfiguration von M zum Zeitpunkt i entsprechen. (Eine Konfiguration . . . , at−1, (q, at), at+1, . . .zum Zeitpunkt i besteht aus dem Bandinhalt, dem Zustand und der Kopfposition zum Zeitpunkt i.)

Wir wahlen die folgenden Kacheltypen (Kacheltyp 3 ist unsere Anfangskachel k0): siehe Abbildung 5.1.

a

a

(q,a)

p

1

5

x

(q,x)

2

(q,a)

p 6

b

(p,b)

B

(q , B)

3

B

4

p

x

7

(q,a)

(p,b)

8

b

p

B

.

.

0

BB

Abbildung 5.1: Hier ist p, q ∈ Q, a, b, x ∈ Γ und B das Blank.

(a) Wie sind die Kacheltypen 2, 5 und 7 in Abhangigkeit von δ zu definieren, wie sind die horizonta-len Bedingungen H und die vertikalen Bedingungen V zu definieren, so dass eine Verkachelung einerBerechnung von M auf dem leeren Wort entspricht?

(b) Zeige, dass das Tiling-Problem unentscheidbar ist.

5.4.1 Godels Unvollstandigkeitssatz

Die Peano-Arithmetik ist ein Beweissystem der Pradikatenlogik der ersten Stufe, das erlaubt,zahlentheoretische Aussagen herzuleiten. Die Axiome der Peano-Arithmetik formulieren dieEigenschaften der Addition (x+0 = x, x+(y+1) = (x+y)+1), der Multiplikation (x ·0 = 0,x · (y +1) = x · y+ x) sowie die Induktionseigenschaft: Fur jede Formel φ(x) wird die Formel

(φ(0) ∧ ∀x(φ(x) → φ(x+ 1))) → ∀xφ(x)

als Axiom aufgenommen. Gibt es wahre zahlentheoretische Aussagen, die aber in der Peano-Arithmetik nicht beweisbar sind? Angenommen, jede wahre Aussage ist auch beweisbar. MitSatz 5.66 konnen wir fur jede rekursiv aufzahlbare Sprache L eine Formel ϕL der Peano-Arithmetik bestimmen, so dass

x ∈ L⇔ ϕL(x) ist wahr

Page 131: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 129

gilt. Wenn Wahrheit und Beweisbarkeit ubereinstimmen, folgt also

x ∈ L⇔ ϕL(x) ist aus den Axiomen der Peano Arithmetik beweisbar

und ebenso naturlich

x 6∈ L ⇔ ¬ϕL(x) ist wahr.⇔ (¬ϕL(x)) ist beweisbar.

Also istL = x|(¬ϕL(x)) ist beweisbar

und damit ist L rekursiv aufzahlbar. Warum?

Aufgabe 91Sei P eine rekursiv aufzahlbare Menge von Formeln der Zahlentheorie. Dann ist die Menge der aus P beweis-baren Formeln rekursiv aufzahlbar.

Also ist fur jede rekursiv aufzahlbare Sprache L auch ihr Komplement rekursiv aufzahlbar,und jede rekursiv aufzahlbare Sprache ist auch entscheidbar! Wir haben einen Widerspruch er-halten und damit gezeigt, dass nur eine echte Teilmenge aller wahren Formeln auch beweisbarist.

Nun konnte man zu den Axiomen der Peano Arithmetik weitere wahre Formeln hinzunehmenund hoffen, dass das neue Axiomensystem P

”vollstandig“ ist, also fur alle wahren Formeln

auch Beweise zulasst. Mitnichten, denn entweder ist P nicht rekursiv aufzahlbar (und wirkonnen noch nicht einmal verifizieren, dass ein Axiom zu P gehort) oder es gibt weiterhinwahre, aber nicht beweisbare Aussagen.

Satz 5.27 Godelscher Unvollstandigkeitssatz.

Sei P eine rekursiv aufzahlbare Menge von wahren Formeln der Zahlentheorie, wobei P dieAxiome der Peano-Arithmetik enthalte. Dann gibt es eine wahre Formel, die nicht aus Pableitbar ist.

Beweis: Wenn Wahrheit mit Beweisbarkeit zusammenfallt, dann konnen wir die obigen Ar-gumente wieder anwenden. (Wir benotigen die rekursive Aufzahlbarkeit von P , um wiederschließen zu konnen, dass die Menge L rekursiv aufzahlbar ist).

Die Sprache aller fur die naturlichen Zahlen wahren Formeln ist also nicht nur nicht entscheid-bar, sondern es gibt sogar kein (rekursiv aufzahlbares) Axiomensystem, das erlaubt alle wah-ren Formeln abzuleiten: Die Wirklichkeit kann nicht formal beschrieben werden!

5.5 µ-rekursive Funktionen∗

Wir fuhren einen ganzlich neuen Formalismus einen, der uns aber wiederum das Konzept derberechenbaren Funktionen liefern wird. Dass wir von zwei verschiedenen Konzepten ausgehenddieselbe Menge von Funktionen berechnen, ist ein weiteres Indiz fur die Churchsche These.

Der im folgenden dargestellte Formalismus hat den zusatzlichen Vorteil, dass wir fur einegroße Klasse von Funktionen, namlich die primitiv rekursiven Funktionen, einen konstruktivenBeweis ihrer Berechenbarkeit erhalten.

Zusatzlich konnen wir eine Idee vom Godelschen Unvollstandigkeitssatz vermitteln:

Page 132: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

130 KAPITEL 5. BERECHENBARKEIT

Jede rekursiv aufzahlbare Axiomatisierung der Zahlentheorie besitzt wahre, abernicht beweisbare, Aussagen.

Also ist nicht nur das Ableiten oder Beweisen ableitbarer Aussagen schwierig, sondern wirstoßen auf ein viel fundamentaleres Problem: selbst der machtige Formalismus der Pradika-tenlogik kann eine komplexe Realitat nicht exakt widerspiegeln!

5.5.1 Primitiv rekursive Funktionen

Zunachst mussen wir die Verbindung zwischen den Berechnungen einer Maschine und mathe-matischen Funktionen herstellen. Was tut eine Maschine? Sie nimmt eine Eingabe entgegenund berechnet daraus eine Ausgabe. Da wir bisher ausschließlich uber deterministische Ma-schinenmodelle reden, liefert die Maschine fur dieselbe Eingabe auch stets dieselbe Ausgabe.Die Berechnung beschreibt somit eine Funktion.

Sprachen, als Teilmenge von Σ∗ verstanden, lassen sich als Pradikate (also Eigenschaften)auffassen. Zu einem gegebenen x ∈ Σ∗ soll entschieden werden, ob x zur Sprache L gehortoder nicht. Das entspricht genau der Frage, ob das x das Pradikat

”zu L gehorend“ erfullt

oder nicht.

Als erstes betten wir das Problem der Entscheidbarkeit von Sprachen in das Problem derBerechnung von Funktionen ein.

Definition 5.28 Sei L ⊆ Σ∗ eine Sprache. Die Funktion fL : Σ∗ → 0, 1 heißt charakteri-stische Funktion oder Indikatorfunktion von L, falls

∀x ∈ Σ∗ : x ∈ L↔ f(x) = 1

gilt.

Beispiel 5.5 Sei L ⊆ 0, 1∗ die Menge der Worte mit gerader Anzahl von Einsen. Dann istfL : 0, 1∗ → 0, 1 mit

f(w) = 1−

|w|∑

i=1

wi

mod 2

die Indikatorfunktion.

Wir sehen, dass wir eine Sprache immer dann handhaben konnen, wenn wir ihre Indikatorfunk-tion in den Griff bekommen. Wir konzentrieren uns daher zunachst auf die Berechenbarkeitvon Funktionen.

Wie schon bei unserem Ansatz mit dem Modell der Turingmaschine werden wir hier rechtspartanisch vorgehen. Wir versuchen nur mit ganz elementaren Konzepten, deren Berechen-barkeit niemand ernsthaft in Frage stellt, auszukommen.

Bei den Turingmaschinen haben wir unterstellt, dass ein Rechner ein Zeichen aus einemvorgegebenen Zeichensatz wiedererkennen (lesen) und reproduzieren (schreiben) kann. Wirhaben unterstellt, dass wir uns in einem linearen Speicherband in beide Richtungen bewegenkonnen und angenommen, dass unser Maschinenmodell endlich viele Zustande auseinander-halten kann. Eigentlich ist das ein recht mageres Anforderungsprofil. Dennoch konnten wirzeigen, dass jede Funktion, die von einem modernen Parallelrechner berechnet werden kann,auch von einer Turingmaschine berechnet werden kann.

Wir beginnen an dieser Stelle ahnlich, indem wir von den folgenden simplen Grundfunktionenausgehen.

Page 133: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 131

Definition 5.29 Die Nachfolgerfunktion S : N → N ordnet jeder naturlichen Zahl x ihrenNachfolger x+ 1 zu, also die Funktion, die x auf die nachstfolgende Zahl S(x) abbildet.

S(x) = x+ 1

(Der Buchstabe S soll an das englische successor erinnern).

Definition 5.30 Die Konstantenfunktion Ckq : Nk → N bildet jeden Vektor ~x ∈ Nk auf dieKonstante q ab.

Ckq (x1, x2, . . . , xk) = q

Diese Funktionen leisten nicht mehr, als dass sie alle ihre Argumente ignorieren und diebetreffende Konstante q als Resultat liefern. Auch diese Funktionen werden uns nur schwerlichSchwierigkeiten bei der Berechnung machen.

Definition 5.31 Die Projektionsfunktion Pi : Nk → N mit 1 ≤ i ≤ k ist die Funktion, die

~x ∈ Nk auf die i-te Koordinate xi abbildet.

P ki (x1, x2, . . . , xi, . . . , xk) = xi

Das heißt, wir erlauben uns, aus einer endlichen geordneten Menge von Argumenten einkonkretes auszuwahlen und damit weiterzuarbeiten. Auch das ist intuitiv problemlos moglich.

Diese drei Funktionentypen nennt man Grundfunktionen. Um jedoch auch interessante Funk-tionen zu erfassen, benotigen wir noch Konstruktionsprinzipien, die uns erlauben, aus bereitsexistierenden Funktionen neue zu bauen.

Ein wesentliches Konstruktionsprinzip ist das der Einsetzung. Wir wollen zulassen, dass dieArgumente einer Funktion ihrerseits Werte von weiteren, bereits berechneten Funktionen sind.Somit erhalten wir die Moglichkeit, durch das Einsetzen von schon bekannten Funktionen zuneuen Funktionen zu kommen.

Definition 5.32 Sind ψ,χ1, χ2, . . . , χm Funktionen mit χi : Nn → N fur alle i und mitψ : Nm → N, so heißt die durch

ϕ(x1, x2, . . . , xn) = ψ(χ1(x1, x2, . . . , xn), . . . , χm(x1, x2, . . . , xn))

definierte Funktion ϕ : Nn → N die durch Einsetzung von χ1, χ2, ..., χn in ψ erhaltene Funk-tion.

Schließlich erlauben wir noch die induktive Definition einer Funktion, wie sie aus der Mathe-matik vertraut ist.

Definition 5.33 Ist χ : N2 → N eine Funktion und q ∈ N eine Konstante, so ist ϕ : N → N,definiert als

ϕ(0) = qϕ(S(x)) = χ(x, ϕ(x)),

die durch Induktion aus χ mit Anfangswert q hervorgegangene Funktion.

Vollstandigkeitshalber erlauben wir noch die Induktion fur Funktionen mit mehr als einemArgument. In der Sache andert sich nicht viel. Es wird jedoch zugelassen, dass der Anfangswertund die Berechnung des Nachfolgerwertes auch von den ubrigen Argumenten abhangt.

Das Induktionsprinzip schreibt sich dann wie folgt:

Page 134: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

132 KAPITEL 5. BERECHENBARKEIT

Definition 5.34 Sind χ : Nn+1 → N und ψ : Nn−1 → N Funktionen, so ist ϕ : Nn → N,definiert als

ϕ(0, x2, . . . , xn) = ψ(x2, . . . , xn)ϕ(S(x1), x2, . . . , xn) = χ(x1, ϕ(x1, x2, . . . , xn), x2, . . . , xn),

die durch Induktion aus χ mit Anfangsfunktion ψ hervorgegangene Funktion.

Wir werden sehen, dass wir mit den beiden Konstruktionsprinzipien Einsetzung und Induktionaufbauend auf den Grundfunktionen Nachfolger, Konstanten und Projektionen bereits einerecht beachtliche Menge von Funktionen darstellen konnen. Diese Menge bezeichnen wir alsdie Menge der primitiv rekursiven Funktionen.

Definition 5.35 Eine Funktion heißt primitiv rekursiv, wenn sie sich durch endlich vieleAnwendungen von Einsetzung und Induktion basierend auf den Grundfunktionen darstellenlaßt.

Ein Pradikat heißt primitiv rekursiv, wenn seine Indikatorfunktion primitiv rekursiv ist.

Bevor wir im nachsten Abschnitt die primitive Rekursivitat einiger interessanter Funktionenzeigen, versuchen wir an dieser Stelle, eine Brucke zu unseren Betrachtungen des letztenKapitels zu schlagen.

Was laßt sich uber die Berechenbarkeit von primitiv rekursiven Funktionen sagen?

(a) Sicherlich werden wir ein stets terminierendes Programm schreiben konnen, welches einenaturliche Zahl um 1 erhoht.

(b) Wir schaffen es auch, ein stets haltendes Programm zu schreiben, das alle ihm uberge-benen Argumente ignoriert und einfach eine Konstante ausgibt.

(c) Ebenso problemlos konnen wir ein Programm schreiben, das von n ubergebenen Argu-menten das i-te ausgibt.

(d) Haben wir fur die Funktionen ψ,χ1, . . . , χm jeweils stets ein haltendes Programm, sokonnen wir diese als Prozeduren verwenden undmit ihrer Hilfe nacheinander χ1(x1, . . . , xn),χ2(x1, . . . , xn), . . .,χm(x1, . . . , xn) ausrechnen. Diese Werte ubergeben wir der Prozedur,die ψ berechnet. Damit liefert unser komplettes Programm also das Resultat der Ein-setzung von χ1, . . . , χm in ψ. Da die einzelnen Prozeduren stets halten, wird auch unserGesamtprogramm stets nach endlicher Zeit terminieren.

(e) Wir betrachten das Induktionsprinzip. Haben wir stets haltende Prozeduren fur χund gegebenenfalls ψ, so konnten wir mittels einer Schleife beginnend bei ϕ(0) bzw.ϕ(0, x2, . . . , xn) die Werte fur ϕ(1),ϕ(2), . . ., ϕ(x) bzw. ϕ(1, x2, . . . , xn), ϕ(2, x2, . . . , xn),. . . , ϕ(x1, x2, . . . , xn) ermitteln, indem wir die Prozedur fur χ jeweils aufrufen. Da dieseProzedur stets halt, dauert eine Schleifeniteration nur endliche Zeit. Da weiter die Zahlder Iterationen mit x bzw. x1 begrenzt ist, wird auch das gesamte Programm stets nachendlicher Zeit anhalten.

Da eine primitiv rekursive Funktion durch endlich viele Anwendungen dieser Konstrukti-onsschritte beschrieben werden kann, existiert fur jede primitiv rekursive Funktion ein stetshaltendes Programm. Dann existiert folglich auch eine stets terminierende Turingmaschine,die die Funktion berechnet. Wir haben mit diesen Uberlegungen den folgenden Satz bewiesen.

Satz 5.36 Jede primitiv rekursive Funktion ist berechenbar. Jedes Pradikat mit primitiv re-kursiver Indikatorfunktion ist entscheidbar.

Page 135: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 133

5.5.2 Beispiele primitiv rekursiver Funktionen und Pradikate

Wir geben jetzt eine Reihe von Beispielen primitiv rekursiver Funktionen an.

Lemma 5.37 Die Addition + : N2 → N mit +(x1, x2) = x1 + x2 istprimitiv rekursiv.

Beweis: +(x1, x2) laßt sich wie folgt beschreiben.

+(0, x2) = P 11 (x2)

+(S(x1), x2) = S(P 32 (x1,+(x1, x2), x2)).

Wir benutzen also das Induktionsschema fur mehrere Argumente. Die erste Zeile ist soforteinsichtig. Es gilt 0 + x2 = x2 und die Ausgangsfunktion ist in diesem Fall also P 1

1 .

Weiter gilt S(x1)+x2 = S(x1+x2). Zur Berechnung von +(S(x1), x2) stehen uns die Werte x1sowie +(x1, x2) und x2 zur Verfugung. Als Resultat brauchen wir den Nachfolger des zweitenArgumentes. Aber P 3

2 (x1,+(x1, x2), x2) liefert das zweite Aegument. Das Ergebnis setzen wirin die Nachfolgerfunktion S ein und erhalten das gewunschte Ergebnis.

+(x1, x2) ist also durch eine Induktion und eine Einsetzung aus den Grundfunktionen kon-struierbar und damit primitiv rekursiv.

Da wir die Addition jetzt als primitiv rekursiv nachgewiesen haben, verwenden wir nun zurbesseren Lesbarkeit wieder die Schreibweise a+b statt +(a, b). Man behalte aber im Gedacht-nis, dass + eine gewohnliche Funktion von N2 nach N ist.

Nun konnen wir + naturlich auch zur Beschreibung weiterer Funktionen heranziehen. Alserstes nehmen wir uns die Multiplikation vor.

Lemma 5.38 Die Multiplikation · : N2 → N mit ·(x1, x2) = x1 · x2 ist primitiv rekursiv.

Beweis: ·(x1, x2) laßt sich wie folgt beschreiben.

·(0, x2) = C10 (x2)

·(S(x1), x2) = +(P 32 , P

33 )(x1, ·(x1, x2), x2).

Im Basisfall wird festgehalten, dass die Multiplikation von 0 identisch mit der konstantenNullfunktion ist.

Beachte, dass S(x1) · x2 = (x1 · x2) + x2 und diese Identitat wird in der induktiven Definitionausgenutzt.

Nun, da wir die Multiplikation haben, konnen wir uns auch das Potenzieren sichern.

Lemma 5.39 Die Potenzierung exp : N2 → N mit exp(x1, x2) = xx21 ist primitiv rekursiv.

Aufgabe 92Beweise Lemma 5.39.

Das Induktionsschema fur ein Argument konnen wir verwenden, um die Fakultat als primitivrekursiv nachzuweisen.

Page 136: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

134 KAPITEL 5. BERECHENBARKEIT

Lemma 5.40 Die Fakultat ! : N → N mit !(x) = x! ist primitiv rekursiv.

Beweis: Wir behaupten, dass sich !(x1) wie folgt beschreiben laßt.

!(0) = 1!(S(x1)) = ·(S(P 2

1 ), P22 ))(x1, !(x1)).

Die erste Zeile definiert 0! = 1. In der zweiten wird S(x1)! als Produkt des Nachfolgers von x1und x1! dargestellt. Also S(x1)! = S(x1) · x1!. Das deckt sich mit der Definition der Fakultat.

Mit dem gleichen Schema erhalten wir auch die Vorgangerfunktion pd (vom englischen pre-decessor).

Lemma 5.41 Die Vorgangerfunktion pd : N → N mit pd(x) = x− 1 fur x ≥ 1 und pd(0) = 0ist primitiv rekursiv.

Beweis: Wir behaupten, dass pd(x1) sich wie folgt beschreiben laßt.

pd(0) = 0pd(S(x1)) = P 2

1 (x1, pd(x1)).

Die Richtigkeit dieses Ansatzes ist offensichtlich.

Da uns die Nachfolgerfunktion zum Addieren gefuhrt hat, sollten wir doch nun auch zumSubtrahieren gelangen konnen. Wir betrachten eine modifizierte Differenz − mit

x1−x2 =

x1 − x2 fur x1 ≥ x20 sonst.

Lemma 5.42 Die modifizierte Differenz − : N2 → N ist primitiv rekursiv.

Beweis: Naturlich wollen wir ausnutzen, dass (a−S(b)) = pd(a−b) ist. Das heißt wir, mochteninduktiv mit der zweiten Variablen argumentieren. Das Schema der primitiven Rekursionerlaubt uns aber nur eine Induktion auf der ersten Unbekannten. Wir helfen uns, indem wireine Hilfsfunktion − einfuhren, die a−b = b−a erfullt.

−(x1, x2) laßt sich wie folgt beschreiben.

−(0, x2) = P 11 (x2)

−(S(x1), x2) = pd(P 32 (x1, −(x1, x2), x2)).

Nun mussen wir lediglich noch unser eigentliches Ziel erreichen, namlich − durch − auszu-drucken. Dies geschieht jedoch leicht mit:

−(x1, x2) = −(P 22 , P

21 )(x1, x2).

Page 137: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 135

Die modifizierte Differenz erlaubt es uns, das Minimum von zwei Elementen zu bestimmen.

Lemma 5.43 Die Funktion min(x1, x2) : N2 → N mit

min(x1, x2) =

x2 fur x1 ≥ x2x1 sonst

ist primitiv rekursiv.

Beweis: Wir konnen das Minimum mit der modifizierten Differenz ausdrucken, denn

min(x1, x2) = x2−(x2−x1).

Falls x1 ≥ x2 ist, so ergibt (x2−x1) Null und wir erhalten x2, das richtige Resultat. Istx2 > x1, so ziehen wir von x2 genau den Wert ab, um den es großer als x1 ist. Wir erhaltenalso x1, das richtige Resultat.

Jetzt, da wir den Baustein min(x1, x2) haben, konnen wir leicht fur jede beliebige Argum-entzahl n die Minimumsfunktion min(x1, . . . , xn) bilden.

Lemma 5.44 Jede Minimumsfunktion minn(x1, . . . , xn) : Nn → N ist primitiv rekursiv.

Beweis: Wir setzen einfach immer ein noch nicht betrachtetes Argument und das bisherigeMinimum in die zweistellige Minimumsfunktion ein.

min(x1, . . . , xn) = min(x1,min(x2,min(x3, . . . ,min(xn−2, (min(xn−1, xn) . . .)).

Da n fest ist, ist diese Darstellung endlich lang.

Auch die folgenden drei Funktionen sind primitiv rekursiv.

Lemma 5.45 Die Funktion max(x1, x2) : N2 → N mit

max(x1, x2) =

x1 fur x1 ≥ x2x2 sonst

ist primitiv rekursiv.

Auch hier kann wieder leicht auf Maximumsfunktionen hoherer (fester) Ordnung verallgemei-nert werden.

Lemma 5.46 Die Signum-Funktion sg(x1) : N → 0, 1 mit

sg(x1) =

0 fur x1 = 01 sonst

ist primitiv rekursiv.

Lemma 5.47 Die Differenz |x1 − x2| : N2 → N ist primitiv rekursiv.

Page 138: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

136 KAPITEL 5. BERECHENBARKEIT

Aufgabe 93Beweise Lemma 5.45, 5.46 und 5.47.

Die ganzzahlige Division erschließen wir uns mit den Funktionen div und mod. Sie liefern denganzzahligen Anteil des Quotienten bzw. den Rest bei der Division. Auch diese Funktionensind primitiv rekursiv.

Lemma 5.48 Die Funktion mod(x1, x2) : N2 → N mit

x1modx2 = x1 − x2 · (x1 div x2)

ist primitiv rekursiv.

Beweis: Wir konnen induktiv vorgehen.

mod(0, x2) = 0mod(S(x1), x2) = S(mod(x1, x2)) · sg(x2−(S(mod(x1, x2))).

Warum ist das richtig? Der Wert von (x1modx2) durchlauft die Zahlen von 0 bis x2− 1. Wirhaben zwei Falle zu betrachten. Die Signumsfunktion

sg(x2−(S(mod(x1, x2)))

ist entweder 0 oder 1. Sie ist genau dann 0, wenn x2−S(mod(x1, x2)) = 0, also wenn (x1modx2) =x2−1 ist. In diesem Fall ist S(x1) ein Vielfaches von x2 und richtigerweise wird (S(x1)modx2)auf 0 gesetzt.

Tritt dieser Fall jedoch nicht ein, so liefert die Signumsfunktion stets eine 1 und wir erhaltendas korrekte Ergebnis S(x1modx2) ubrig.

Lemma 5.49 Die Funktion div(x1, x2) : N2 → N mit

x1 div x2 =x1 − (x1modx2)

x2

ist primitiv rekursiv.

Aufgabe 94Beweise Lemma 5.49.

Wir wenden uns nun noch einigen Pradikaten, sprich Eigenschaften, zu. Wir haben gesagt,dass ein Pradikat genau dann primitiv rekursiv ist, wenn es eine primitiv rekursive Indika-torfunktion besitzt. Hier also die wichtigsten Pradikate von naturlichen Zahlen und Tupelnnaturlicher Zahlen. Wir beschranken uns hier darauf, die betreffenden Indikatorfunktionenanzugeben. Die Verifikation ist im allgemeinen leicht.

Lemma 5.50 Die Pradikate

gerade, ungerade, <,=, >, 6=,≤,≥, ist Vielfaches von, ist Teiler von

sind primitiv rekursiv.

Page 139: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 137

Beweis:Pradikat Indikatorfunktiona gerade 1−(amod 2)

a ungerade amod 2a < b sg(b−a)a = b 1−|a− b|a > b sg(a−b)a 6= b sg(|a− b|)a ≤ b sg(S(b)−a)a ≥ b sg(S(a)−b)

a ist Vielfaches von b 1−(amod b)a ist Teiler von b 1−(bmod a)

Wir erhohen nun die Menge der uns bekannten primitiv rekursiven Pradikate drastisch, indemwir folgende Abgeschlossenheitseigenschaft feststellen.

Satz 5.51 Sind A und B primitiv rekursive Pradikate, so sind auch die Pradikate

¬A, A ∨B, A ∧B, A↔ B, A→ B, A XOR B, A NOR B, A NAND B

primitiv rekursiv.

Beweis: Da A und B primitiv rekursiv sind, gibt es Indikatorfunktionen fA und fB mitWertebereich 0,1 und fA(~x) = 1 ↔ A(~x) sowie fB(~x) = 1 ↔ B(~x). Daraus lassen sichIndikatorfunktionen fur die zusammengesetzten Pradikate bilden.

Pradikat Indikatorfunktion¬A 1−fAA ∨B sg(fA + fB)A ∧B fA · fbA↔ B 1−|fA − fB|A→ B 1−(fA · (1−fB))AXORB (fA + fB)mod 2ANORB 1 · −(fA + fB)ANANDB sg(2−(fA + fB)

Wie erschließen uns nun weitere Hilfsmittel, indem wir endliche Summen und Produkte be-trachten und das hier Beobachtete auf beschrankte Quantoren ubertragen.

Definition 5.52 Sei ψ : Nn+1 → N eine primitiv rekursive Funktion. Dann nennen wir

ψΣ(x1, . . . , xn, z) :=∑

y<z

ψ(x1, . . . , xn, y)

die endliche Summe uber ψ.

Lemma 5.53 Ist ψ : Nn → N eine primitiv rekursive Funktion, dann ist auch die endlicheSumme uber ψ primitiv rekursiv.

Page 140: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

138 KAPITEL 5. BERECHENBARKEIT

Beweis: Wir verwenden hier eine Induktion uber die obere Schranke z. Man erinnere sich,dass man durch das Vertauschen der Reihenfolge der Argumente (siehe −) jedes beliebige Ar-gument zum Induktionsargument machen kann. Die Summe laßt sich in

”laxer“ Schreibweise

so aufschreiben :

ψΣ(x1, . . . , xn, 0) = 0ψΣ(x1, . . . , xn, S(z)) = ψΣ(x1, . . . , xn, z) + ψ(x1, . . . , xn, S(z)).

Summen mit anders angegebenen Grenzen lassen sich aus dieser mit elementaren Umformun-gen herleiten.

y≤z ψ(x1, . . . , xn, y) =∑

y<S(z) ψ(x1, . . . , xn, y),∑

w<y<z ψ(x1, . . . , xn, y) =∑

y<z−S(w) ψ(x1, . . . , xn, (y + S(w))),∑

w≤y≤z ψ(x1, . . . , xn, y) =∑

y<S(z)−w ψ(x1, . . . , xn, (y + w)).

Die Uberlegungen fur endliche Produkte folgen analog. Allerdings wird das leere Produkt∏

y<0 auf 1 gesetzt.

Wir haben nun das notige Rustzeug zusammen, um unsere primitiv rekursiven Pradikate umendliche Quantoren zu bereichern.

Lemma 5.54 Sei A ein n-stelliges primitiv rekursives Pradikat. Dann sind auch die be-schrankte Existenzialisierung

∃y<zA(x1, . . . , xn−1, y)

und die beschrankte Generalisierung

∀y<zA(x1, . . . , xn−1, y)

primitiv rekursive Pradikate.

Beweis: Wir geben primitiv rekursive Indikatorfunktionen an. Sei fA : Nn → 0, 1 dieIndikatorfunktion des Pradikats A. fA ist primitiv rekursiv, da A primitiv rekursiv ist.

Pradikat Indikatorfunktion∃y<zA(x1, . . . , xn−1, y) sg(

y<z fA(x1, . . . , xn−1, y)

∀y<zA(x1, . . . , xn−1, y)∏

y<z fA(x1, . . . , xn−1, y)

Lemma 5.55 Sei A ein n-stelliges primitiv rekursives Pradikat. Dann ist auch die beschrank-te eindeutige Existenzialisierung

∃!y<zA(x1, . . . , xn−1, y)

(In Worten:”Es gibt genau ein y < z mit A(x1, . . . , xn−1, y)“)

primitiv rekursiv.

Page 141: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 139

Aufgabe 95Beweise Lemma 5.55.

Auch hier konnen in anderer Form gegebene Grenzen (etwa ∃w<y≤z) analog zum Vorgehenbei den Summen beschrieben werden.

Diese beschrankten Existenz- und Allaussagen erlauben uns nun bereits, sehr komplexe Ei-genschaften von naturlichen Zahlen und Zahlentupeln als primitiv rekursive Pradikate dar-zustellen. Wir nennen gleich ein paar Beispiele. Selbstverstandlich ist dies nur eine kleineAuswahl.

Lemma 5.56 Die folgenden Pradikate sind primitiv rekursiv:

Pradikat Darstellunga ist prim ∀2≤y<a¬(y ist Teiler von a)

a und b sind relativ prim ¬∃2≤y≤min(a,b)(y ist Teiler von a) ∧ (y ist Teiler von b)

a ist eine Quadratzahl ∃y≤a(y · y = a)a ist Carmichael-Zahl ¬(a prim) ∧ ∀2≤p<a(p prim) → (ap−1modp = 1)

Beweis: Die Darstellungen der Pradikate sind endlich und bestehen ihrerseits nur aus primitivrekursiven Funktionen und Pradikaten.

Wir sollten auch erklaren, warum wir hier lediglich Funktionen und Pradikate auf naturlichenZahlen betrachten. Bei Turingmaschinen haben wir stets ein Eingabewort, welches aus denElementen eines endlichen Eingabealphabets zusammengesetzt ist. Wir weisen nun nach, dasswir durch die Einschrankung auf naturliche Zahlen nichts verlieren.

Sei Σ = σ1, . . . , σn das Eingabealphabet. Ein endlich langes Wort a := σi0σi1 . . . σim−1 kanndann als (n+1)-are Darstellung einer naturlichen Zahl interpretiert werden.

Zahl(a) =

m−1∑

k=0

ik · (n+ 1)k.

5.5.3 Der beschrankte µ-Operator

Im letzten Kapitel haben wir von einigen Funktionen nachgewiesen, dass sie primitiv rekursivsind. Da alle primitiv rekursiven Funktionen von stets haltenden Turingmaschinen in end-licher Zeit berechnet werden konnen, sind primitiv rekursive Funktionen zwangslaufig bere-chenbar. In diesem Kapitel untersuchen wir, ob die Begriffe primitiv rekursiv und berechenbardeckungsgleich sind.

Existenz- bzw. Allquantoren konnen wir nur dann als primitiv rekursiv nachweisen, wenn eineendliche obere Schranke angegeben wird, wenn also das Pradikat nur uber einem Intervall mitendlich vielen Kandidaten quantifiziert ist. Was passiert mit unbeschrankten Quantoren?

Beispielsweise ist es bis heute eine offene Frage, ob die sogenannte Goldbachsche Vermutunggilt.

Goldbachsche Vermutung : Jede naturliche gerade Zahl großer 2 ist die Summe zweierPrimzahlen.

∀a>2(a gerade) → (∃x<a x prim ∧ (a−x) prim).

Page 142: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

140 KAPITEL 5. BERECHENBARKEIT

Der Existenzquantor ist durch a beschrankt. Auch die Pradikate prim, gerade,die Funktion −,und die Implikation sind primitiv rekursiv. Allein der Allquantor entzieht sich einer primitivrekursiven Darstellung.

Wir fuhren nun zunachst den beschrankten µ-Operator ein.

Definition 5.57 Sei A(x1, . . . , xn−1, y) ein primitiv rekursives Pradikat. Dann wird der be-schrankte µ-Operator

µy<zA(x1, . . . , xn−1, y)

durch

miny < z|A(x1, . . . , xn−1, y) falls ein solches y existiertz sonst

definiert.

Falls es also im Intervall von 0 bis z (ausschließlich) Werte fur y gibt, die das Pradikaterfullen, dann liefert der µ-Operator den kleinsten dieser Werte zuruck. Existiert kein Wert,der A erfullt, so wird z als Resultat zuruckgegeben.

Die folgende Tabelle soll das verdeutlichen. Wir betrachten ein fiktives Pradikat A.

y 0 1 2 3 4 5 6 7A(~x, y) nein nein nein nein ja nein ja ja

Der µ-Operator µy<8A(x1, . . . , xn−1, y) liefert hier also das Resultat 4, da 4 der kleinste y-Wert ist, der das Pradikat A erfullt.

Berechnen wir µy<3A(x1, . . . , xn−1, y), ist das Resultat die Obergrenze 3, da kein y < 3 dasPradikat erfullt.

Lemma 5.58 Der beschrankte µ-Operator ist primitiv rekursiv.

Beweis: Wir bauen die Funktion schrittweise auf und uberzeugen uns am obigen Beispiel,dass die Konstruktion ihren Zweck erfullt. Zunachst besitzt A(x1, . . . , xn, y) als primitiv re-kursives Pradikat eine primitiv rekursive Indikatorfunktion fA(x1, . . . , xn, y). Sie ist unserAusgangspunkt. Am Beispiel:

y 0 1 2 3 4 5 6 7A(~x, y) nein nein nein nein ja nein ja jafA(~x, y) 0 0 0 0 1 0 1 1

Diese Indikatorfunktion negieren wir zunachst, indem wir eine Hilfsfunktion α(~x, y) := 1−fA(~x, y)einfuhren.

y 0 1 2 3 4 5 6 7A(~x, y) nein nein nein nein ja nein ja jafA(~x, y) 0 0 0 0 1 0 1 1α(~x, y) 1 1 1 1 0 1 0 0

Nun berechnen fur alle y-Werte die endlichen Produkte der α-Funktion bis einschließlich y.Diese Hilfsfunktion nennen wir π(~x, y) =

w≤y α(~x,w). Die Werte von π sind folglich solange1, bis erstmalig das Pradikat A wahr ist. Ab dann folgen nur noch Nullen.

y 0 1 2 3 4 5 6 7A(~x, y) nein nein nein nein ja nein ja jafA(~x, y) 0 0 0 0 1 0 1 1α(~x, y) 1 1 1 1 0 1 0 0π(~x, y) 1 1 1 1 0 0 0 0

Page 143: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 141

Den gesuchten Wert erhalten wir nun, wenn wir die Funktion π aufsummieren. Mit µy<zA(~x, y) =∑

y<z π(~x, y) sind wir am Ziel.

y 0 1 2 3 4 5 6 7A(~x, y) nein nein nein nein ja nein ja jafA(~x, y) 0 0 0 0 1 0 1 1α(~x, y) 1 1 1 1 0 1 0 0π(~x, y) 1 1 1 1 0 0 0 0

w<y π(~x,w) 0 1 2 3 4 4 4 4

Man uberzeuge sich, dass diese Werte genau der Definition des beschrankten µ-Operatorsentsprechen.

Der µ-Operator kann nun beispielsweise dazu verwendet werden, die (n + 1)-te Primzahlprimitiv rekursiv zu berechnen. Wir zeigen dies in dem folgenden wichtigen Lemma.

Lemma 5.59 Die Funktion Pr(x) : N → N mit

Pr(x) = y ↔ y ist die (x+ 1)-te Primzahl

ist primitiv rekursiv.

Beweis: Wir gehen induktiv vor.

Pr(0) = 2Pr(S(x)) = µy≤S((Pr(x))!) ((y prim) ∧ (y > Pr(x)).

Die Verankerung ist sofort einsichtig. Pr(0) ist 2, da 2 die erste Primzahl ist. Im Indukti-onsschritt suchen wir die kleinste Zahl, die prim ist und großer ist als die zuletzt gefundene.Das ist dann gerade die nachste Primzahl. Die obere Schranke S((Pr(x))!) folgt aus Euklidsklassischem Beweis fur die Existenz unendlich vieler Primzahlen.

Warum ist diese Funktion nun von besonderer Bedeutung? Das liegt daran, dass wir mitihr und den schon bekannten primitiv rekursiven Funktionen (insbesondere div und mod)Primfaktorzerlegungen durchfuhren konnen. Mit Hilfe der Primfaktorzerlegung konnen wirdann endlich lange Folgen naturlicher Zahlen durch naturliche Zahlen kodieren: Sei a1, . . . , ameine Folge naturlicher Zahlen. Dieser Folge ordnen wir die Zahl

m−1∏

i=0

pS(a1)i = 2S(a1) · 3S(a2) · 5S(a3) · . . . · pS(am)

m

zu. (Warum ist es notig die Exponenten um 1 zu erhohen?) Da jede Zahl eine eindeutigePrimfaktorzerlegung besitzt, verlieren wir keine Informationen, wenn wir anstelle der Folgenun von der die Folge reprasentierenden Zahl sprechen. Bei Bedarf konnen wir jederzeit dieFolge aus der Zahl mittels Primfaktorzerlegung reproduzieren.

Beispiel 5.6 Wir betrachten die Folge: 10, 4, 5, 2, 7, 3, 2, 1, 0, 0, 1. Sie entspricht der Zahl

211 · 35 · 56 · 73 · 118 · 134 · 173 · 192 · 231 · 291 · 312

und damit der Zahl

2048 · 243 · 15625 · 343 · 214358881 · 28561 · 4913 · 361 · 23 · 29 · 961.

Page 144: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

142 KAPITEL 5. BERECHENBARKEIT

Dies ergibt, bitte nachrechnen,

18563867077158102910633902487008000000.

Diese Zahl ist vielleicht etwas groß, aber sie reprasentiert eindeutig unsere endliche Zahlen-folge. Es gibt nicht mehr endliche Folgen aus naturlichen Zahlen als naturliche Zahlen!

Dieses Resultat stoßt das Tor auf zu einer Flut von weiteren machtigen primitiv rekursivenFunktionen und Konstruktionsprinzipien.

• Werteverlaufsinduktionen sind primitiv rekursiv. Was ist das? Wir haben uns bei In-duktionen bisher auf solche Falle beschrankt, in denen ein Wert f(x) jeweils vom Funk-tionswert des unmittelbaren Vorgangers f(x − 1) abhangt, nicht aber von weiterenschon berechneten Werten wie etwa f(x − 2) oder f(x div 2). Nun konnen wir abereine Hilfsfunktion basteln, die die Folge aller bisher ermittelten Funktionswerte in ei-ne solche reprasentierende Zahl quetscht. Aus diesem einen Funktionswert, konnen diegewunschten Werte extrahiert werden.

• Simultane Induktionen sind primitiv rekursiv. Unsere Induktionen durchlaufen jeweilsnur ein Argument und zahlen es herauf. Es ist auch moglich, Induktionen anzugeben, indenen zur Berechnung von f(a, b) sowohl f(a−1, b) und f(a, b−1) als auch f(a−1, b−1)vorliegen muß. Auch deren primitiv rekursive Behandlung ist nun moglich.

• Parallele Induktionen sind primitiv rekursiv. Dies sind solche Induktionen, bei denenzwei (oder mehr) Funktionen parallel zueinander berechnet werden mussen, weil etwaf(x) von f(x − 1) und g(x − 1) abhangt, g(x) seinerseits aber ebenso f(x − 1) undg(x− 1) benotigt.

5.5.4 Die Ackermann-Funktion

Dies alles sind bereits ausgesprochen machtige Werkzeuge. Wir zeigen jedoch nun am Beispielder Ackermann-Funktion, dass es Funktionen gibt, die zwar berechenbar, aber nicht primitivrekursiv sind. Der Aufwand, den wir treiben mussen, um diesen Nachweis zu fuhren, mag alsIndiz dafur herhalten, wie weit primitive Rekursion doch reicht.

Definition 5.60 Die Ackermann-Funktion: a : N2 → N wird durch

a(0, y) = y + 1

a(x+ 1, 0) = a(x, 1)

a(x+ 1, y + 1) = a(x, a(x+ 1, y))

definiert.

Zunachst mussen wir einige technische Lemmata beweisen, die wir spater verwenden werden.

Lemma 5.61 Die Ackermann-Funktion besitzt folgende Eigenschaften:

a) a(x, y) > x.

b) a(x, y) > y.

Page 145: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 143

c) Monotonie in x: x2 > x1 → a(x2, y) ≥ a(x1, y).

d) a(x, y + 1) > a(x, y).

e) Monotonie in y: y2 > y1 → a(x, y2) > a(x, y1).

f) a(x+ 1, y) ≥ a(x, y + 1).

g) a(x+ 2, y) ≥ a(x, 2y).

Beweis: b) Wir zeigen a(x, y) > y durch Induktion nach x. Ix (bzw. Iy) bezeichnet eineAnwendung der Induktionshypothese fur x (bzw. y).

x = 0 : a(0, y) = y + 1 > y

x→ x+ 1 : Induktion nach y

y = 0 : a(x+ 1, 0) = a(x, 1)Ix> 1 > 0 = y

y → y + 1 : a(x+ 1, y + 1) = a(x, a(x+ 1, y))Ix≥ a(x+ 1, y) + 1Iy> y + 1.

Beweis: d)Wir zeigen a(x, y + 1) > a(x, y) durch Induktion nach x.

x = 0 : a(0, y + 1) = y + 2 > y + 1 = a(0, y)

x→ x+ 1 : a(x+ 1, y + 1) = a(x, a(x+ 1, y))b)> a(x+ 1, y).

Beweis: e) y2 > y1 → a(x, y2) > a(x, y1) ergibt sich durch Iteration von d).

Beweis: f) Wir zeigen a(x+ 1, y) ≥ a(x, y + 1) durch Induktion nach y.

y = 0 : 2 Falle treten auf:x = 0 : a(1, 0) = a(0, 1).

x > 0 : a(x, 0) = a(x− 1, 1).

y → y + 1 : Wiederum treten 2 Falle auf:x = 0 : a(1, y + 1) = a(0, a(1, y))

wegen b) gilt a(1, y) > y ≥ y + 1 und e) lieferta(1, y + 1) ≥ a(0, y + 1) = y + 2 = a(x, y + 1).

x→ x+ 1 : a(x+ 1, y + 1) = a(x, a(x+ 1, y))Iy

≥ a(x, a(x, y + 1))wegen b) gilt a(x, y + 1) ≥ y + 2und e) liefert a(x+ 1, y + 1) ≥ a(x, y + 2).

Page 146: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

144 KAPITEL 5. BERECHENBARKEIT

Beweis: c) x2 > x1 → a(x2, y) ≥ a(x1, y) ist zu zeigen.

a(x2, y)f)

≥ a(x2 − 1, y + 1)f)

≥ a(x2 − 2, y + 2)f)

≥ . . .

f)

≥ a(x2 − (x2 − x1), y + (x2 − x1))

= a(x1, y + (x2 − x1))

e)

≥ a(x1, y).

Beweis: a) a(x, y) > x ist zu zeigen.

a(x, y)f)

≥ a(x− 1, y + 1)f)

≥ a(x− 2, y + 2)f)

≥ . . .

f)

≥ a(0, y + x)

= y + x+ 1

> x.

Beweis: g) Wir zeigen a(x+ 2, y) ≥ a(x, 2y) durch Induktion nach y.

y = 0 : a(x+ 2, 0)c)

≥ a(x, 0)y → y + 1 :

a(x+ 2, y + 1) = a(x+ 1, a(x+ 2, y))Iy

≥ a(x+ 1, a(x, 2y))

f)

≥ a(x, a(x, 2y) + 1)

≥ a(x, a(0, 2y) + 1)

≥ a(x, 2y + 1 + 1) = a(x, 2y + 2).

Ausgerustet mit diesen Eigenschaften konnen wir nun nachweisen, dass die Ackermann-Funktion nicht primitiv rekursiv ist. Wir zeigen, dass die Ackermann-Funktion starker wachst,als jede primitiv rekursive Funktion.

Satz 5.62 Die Ackermann-Funktion wachst schneller als jede primitiv rekursive Funktion.

Formal: Sei f : Nn → N primitiv rekursiv, dann gibt es einen Tempoparameter k, so dass

∀~x∈Nnf(~x) < a(k,MAXx1, . . . , xn)

Satz 5.63 Die Ackermann-Funktion ist nicht primitiv rekursiv.

Beweis: Diese Tatsache folgt sofort aus Satz 5.62.

Page 147: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 145

Beweis: von Satz 5.62 Unser Beweis muß fur alle primitiv rekursiven Funktionen gelten.Wir werden uns zunachst die Grundfunktionen naher ansehen und nachweisen, dass wir furjede von ihnen einen Tempoparameter k mit der im Satz geforderten Eigenschaft angebenkonnen. Wir werden dann sehen, dass sich bei den beiden Konstruktionsprinzipien Induktionund Einsetzung neue Tempoparameter aus den Tempoparametern der zur Konstruktion her-angezogenen Funktionen bestimmen lassen. Wir zeigen also, dass die Eigenschaft, irgendwovon der Ackermann-Funktion uberholt zu werden, vererbt wird. Formal spricht man hier voneiner Induktion uber den Formelrang.

Fur die Dauer dieses Beweises bezeichne ξ stets das maximale Argument der betrachtetenFunktion: ξ =MAXx1, . . . , xn.Wir beginnen mit den Grundfunktionen.

f = S Wir wahlen den Tempoparameter k = 1 und erhalten

a(1, x1) ≥ a(0, x1 + 1) > x1 + 1 = S(x1) = f(x1).

f = Cnq Wir wahlen k = q und erhalten.

a(k, ξ) = a(q, ξ) > q = f(x1, . . . , xn).

f = Pni Hier leistet k = 0 das Verlangte:

a(k, ξ) = a(0, ξ) = ξ + 1 > ξ ≥ f(x1, . . . , xn).

Nun nehmen wir uns die Einsetzung vor. Von den dabei verwendeten Funktionen ψ und denχi wissen wir bereits, dass es fur sie k-Werte gibt, die die im Satz geforderte Eigenschafterfullen.

Es ist also f = ψ(χ1, . . . , χm). Wir wissen, dass fur jedes i aus 1, . . . ,m einen Tempopara-meter ki mit

∀~x∈Nnχi(~x) < a(ki, ξ)

gilt. Der Tempoparameter fur ψ sei k0, d.h. es ist

∀~x∈Nnψ(~x) < a(k0, ξ).

Die Behauptung ist nun, dass k =MAXk0, k1, . . . , km+ 2 den Zweck erfullt. Wir erhalten

a(k, ξ)f)

≥ a(k − 1, ξ + 1)Def.= a(k − 2, a(k − 1, ξ)).

Definitionsgemaß ist k − 1 > ki fur alle i ∈ 1, . . . ,m. Deswegen gilt auch fur alle i ∈1, . . . ,m

a(k − 1, ξ) ≥ a(ki, ξ) > χi(x1, . . . , xn)

und wir erhalten

a(k, ξ) > a(k − 2, a(k − 1, ξ))

> a(k − 2,MAXχ1(~x), . . . , χm(~x)).

Weiterhin gilt k− 2 ≥ k0 nach Definition von k, und wir konnen die obige Ungleichungsketteweiterfuhren:

a(k, ξ) > a(k − 2,MAXχ1(~x), . . . , χm(~x))≥ a(k0,MAXχ1(~x), . . . , χm(~x))> ψ(χ1(~x), . . . , χm(~x)).

Page 148: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

146 KAPITEL 5. BERECHENBARKEIT

Die letzte Abschatzung ergibt sich aus der Annahme uber k0.

Zuletzt mussen wir uns die Induktion naher ansehen.

f(x1, . . . , xn) =

ψ(x2, . . . , xn) falls x1 = 0χ(x− 1, f(x1 − 1, . . . , xn), x2, . . . , xn) sonst.

Auch hier nehmen wir an, dass uns fur ψ und χ bereits Werte kψ und kχ mit der gesuchtenEigenschaft vorliegen, d.h.

∀~x∈Nn−1 ψ(~x) < a(kψ ,MAXx1, . . . , xn−1),

∀~x∈Nn+1 χ(~x) < a(kχ,MAXx1, . . . , xn+1).Die Behauptung ist nun, dass der Ansatz k =MAXkχ, kψ+3 zum Ziel fuhrt. Wir verwendenden Buchstaben ξ ab jetzt als Maximum der Elemente x2 bis xn. Wir zeigen zunachst dieEigenschaft:

(∗) ∀x1∈N (a(k − 2, ξ + x1) > f(~x).

Wir beweisen dies durch eine Induktion nach x1.x1 = 0: Es ist f(~x) = f(0, x2, . . . , xn) = ψ(x2, . . . , xn)

< a(kψ, ξ)< a(k − 2, ξ) < · · · < a(k − 2, ξ + x1).

x1 → x1 + 1: Fur den Ausdruck a(k − 2, ξ + x1) erhalten wir die Abschatzungen

a(k − 2, ξ + x1) > ξ + x1 > ξ, x1

a(k − 2, ξ + x1) > f(x1, x2, . . . , xn).

Letzteres ist die Induktionsannahme. Wir fassen diese drei Ungleichungen zusammen underhalten

a(k − 2, ξ + x1) > MAXx1, f(x1, x2, . . . , xn), ξ.Wir konnen nun die folgende Ungleichungskette aufstellen, mit der wir den Induktionsschlußabschliessen.

a(k − 2, ξ + x1 + 1)Def.= a(k − 3, a(k − 2, ξ + x1))

≥ a(kχ, a(k − 2, ξ + x1))

> a(kχ,MAXx1, f(x1, x2, . . . , xn), x2, . . . , xn.

Dieses Maximum bilden wir uber die Argumente, auf die χ im Induktionsschritt bei derBerechnung von f((x1 + 1), x2, . . . , xn) zugreift. Also konnen wir unsere Annahme uber kχverwenden und wir erhalten

a(k − 2, ξ + x1 + 1) > f((x1 + 1), x2, . . . , xn).

Damit ist (∗) gezeigt. Wir verwenden dieses Ergebnis nun, um wie folgt zu schließen:

a(k,MAXx1, . . . , xn) = a(k,MAXx1, ξ)g)

≥ a(k − 2, 2 ·MAXx1, ξ)≥ a(k − 2, x1 + ξ)∗> f(x1, x2, . . . , xn)

= f(~x).

Page 149: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.5. µ-REKURSIVE FUNKTIONEN∗ 147

Damit ist die Vererbungseigenschaft gezeigt. Da nach Definition nur solche Funktionen primi-tiv rekursiv sind, die durch iterierte Anwendung der beiden Schemata Einsetzung und Induk-tion aus den Grundfunktionen entstehen, haben wir fur jede primitiv rekursive Funktioneneinen Tempoparameter k gefunden, fur den die Ackermann-Funktion dominiert.

Bestandsaufnahme: Wir haben gesehen, dass die Ackermann-Funktion nicht primitiv re-kursiv ist. Andererseits konnen wir die rekursive Definition der Acker- mann-Funktion fur einProgramm in einer hoheren Programmiersprache fast direkt abschreiben:

int ackermann(int x, int y)

/* berechnet den Wert der Ackermann-Funktion */

if(x == 0) return(y+1);

else if(y == 0) return(ackermann(x-1,1));

else return(ackermann(x-1,ackermann(x,y-1));

Aufgabe 96Zeige, dass das Programm ackerman stets halt. Zeige ebenfalls, dass die Laufzeit dieses Programms alleprimitiv rekursiven Schranken sprengt.

Selbst beliebig haufig geschachtelte Exponentialfunktionen stellen keine obere Laufzeitschran-ke dar. Berechnen wir doch mal ackermann(2,2) von Hand.

a(2, 2) = a(1, a(2, 1))

= a(1, a(1, a(2, 0)))

= a(1, a(1, a(1, 1)))

= a(1, a(1, a(0, a(1, 0))))

= a(1, a(1, a(0, a(0, 1))))

= a(1, a(1, a(0, 2)))

= a(1, a(1, 3))

= a(1, a(0, a(1, 2)))

= a(1, a(0, a(0, a(1, 1))))

= a(1, a(0, a(0, a(0, a(1, 0)))))

= a(1, a(0, a(0, a(0, a(0, 1)))))

= a(1, a(0, a(0, a(0, 2))))

= a(1, a(0, a(0, 3)))

= a(1, a(0, 4))

= a(1, 5)

= a(0, a(1, 4))

= a(0, a(0, a(1, 3)))

= a(0, a(0, a(0, a(1, 2))))

= a(0, a(0, a(0, a(0, a(1, 1)))))

= a(0, a(0, a(0, a(0, a(0, a(1, 0))))))

= a(0, a(0, a(0, a(0, a(0, a(0, 1))))))

Page 150: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

148 KAPITEL 5. BERECHENBARKEIT

= a(0, a(0, a(0, a(0, a(0, 2)))))

= a(0, a(0, a(0, a(0, 3))))

= a(0, a(0, a(0, 4)))

= a(0, a(0, 5))

= a(0, 6)

= 7

5.5.5 Der unbeschrankte µ-Operator

Da unser Programm die Ackermann-Funktion berechnet, existiert also auch eine Turingma-schine, die sie berechnet und die Ackermann-Funktion ist berechenbar.

Mit unserem Konzept der primitiven Rekursion konnen wir also nicht alle berechenbarenFunktionen erfassen. Aber mit der Hinzunahme des unbeschrankten µ-Operators erhaltenwir tatsachlich die Klasse der berechenbaren Funktionen.

Definition 5.64 Sei A(x1, . . . , xn−1, y) ein primitiv rekursives Pradikat. Dann wird der un-beschrankte µ-Operator

µA(x1, . . . , xn−1, y)

durch

miny ∈ N|A(x1, . . . , xn−1, y) falls ein solches y existiert0 sonst

definiert.

Definition 5.65 Die Funktionenklasse, die man aus den Grundfunktionen durch endlichesAnwenden der

Einsetzung, Induktion und des unbeschrankten µ-Operators

erhalt, heisst die Klase der µ-rekursiven Funktionen.

Die Klasse der µ-rekursiven Funktionen und die Klasse der berechenbaren Funktionen stim-men uberein!

Satz 5.66

(a) Jede µ-rekursive Funktion ist berechenbar.

(b) Jede berechenbare Funktion f : Nk → N ist µ-rekursiv.

Aufgabe 97Beweise Satz 5.66.

Hinweis fur Teil (b): Ubersetze, ahnlich wie im Nachweis der NP-Vollstandigkeit von KNF–SAT , die Berech-nung einer Turingmaschine in die Sprache der Aussagenlogik.

Page 151: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

5.6. ZUSAMMENFASSUNG 149

5.6 Zusammenfassung

Wir haben den Begriff der Berechenbarkeit von Funktionen sowie den dazu aquivalentenBegriff fur Sprachen, namlich die Entscheidbarkeit von Sprachen eingefuhrt. Wir haben gesagt,dass eine Funktion berechenbar (bzw. eine Sprache entscheidbar ist), wenn sie durch eine stetshaltende Turingmaschine berechnet (bzw. erkannt) werden kann.

Die Church’sche These, namlich, dass unsere Definition der Berechenbarkeit und Entscheid-barkeit den intuitiven Begriff der Berechenbarkeit und Entscheidbarkeit exakt widerspiegelt,wird untermauert durch verschiedene Simulationen: Wir haben (sogar parallele) Register-maschinen durch Turingmaschinen simuliert und haben gezeigt, dass auch probabilistischeTuringmaschinen und Quanten-Turingmaschinen simuliert werden konnen. Weiterhin habenwir gezeigt, dass die Klasse der µ-rekursiven Funktionen mit der Klasse der berechenbarenFunktionen zusammenfallt. Man beachte aber, dass wir keinen Beweis fur die Church’scheThese besitzen.

Wir haben weiterhin gesehen, dass die meisten Sprachen nicht entscheidbar sind. Mit derDiagonalisierungsmethode haben wir nachgewiesen, dass die Diagonalsprache unentscheidbarist. Wir haben dann den Begriff einer Reduktion von Sprache L1 auf Sprache L2 eingefuhrt.Da sich die Diagonalsprache auf das Halteproblem, das spezielle Halteproblem und die uni-verselle Sprache reduzieren laßt, haben wir die Unentscheidbarkeit dieser Sprachen zeigenkonnen. Weiterhin haben wir gesehen, dass jede nicht-triviale

”Eigenschaft“ von Turingma-

schinen (wie”nie zu halten“,

”eine bestimmte, vorgegebene Funktion zu berechnen“) auf ein

unentscheidbares Problem fuhrt. Dies ist Inhalt des Satzes von Rice.

Was ist die Konsequenz dieser Unentscheidbarkeitsresultate? Eine Konsequenz ist, dass esunmoglich ist, korrekte Compiler zu schreiben, die auch nur eines der folgenden Problemelosen:

• festzustellen, dass eine bestimmte Anweisung eines Programms je ausgefuhrt wird,

• nachzuprufen, ob ein Programm fur jede Eingabe halt,

• nachzuprufen, ob ein Programm fur eine bestimmte Eingabe halt.

Dabei ist es unwesentlich, ob wir”Programm“ durch Turingmaschinenprogramm, Pascal-Pro-

gramm, C++-Programm, . . . ubersetzen.

Wir haben das Kapitel abgeschlossen, indem wir den Begriff der rekursiven Aufzahlbarkeiteingefuhrt haben. Beachte, dass jede entscheidbare Sprache rekursiv aufzahlbar ist. Die Um-kehrung gilt nicht, wie Halteproblem, spezielles Halteproblem und universelle Sprache zeigen.

Gibt es Sprachen, die nicht rekursiv aufzahlbar sind? Ja, die Komplementsprachen von rekur-siv aufzahlbaren, aber nicht entscheidbaren Sprachen sind nicht rekursiv aufzahlbare Spra-chen. Als Konsequenz dieser Eigenschaft haben wir den Godelschen Unvollstandigkeitssatzabgeleitet. Hier haben wir auch ausgenutzt, dass die Menge aller beweisbaren Aussagen, diesich von einem rekursiv aufzahlbarem Axiomensystem ableiten lassen, selbst rekursiv aufzahl-bar ist.

Gibt es Sprachen, so dass weder die Sprache noch ihr Komplement rekursiv aufzahlbar ist?Auch dies ist der Fall. Als Beispiel sei die Sprache

A = 〈M〉 |M halt fur alle Eingaben

genannt.

Page 152: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

150 KAPITEL 5. BERECHENBARKEIT

Aufgabe 98Zeige, dass Hε ≤ A und, dass Hε ≤ A.

Fazit: Weder A noch A sind rekursiv aufzahlbar, denn sonst ware ja Hε rekursiv aufzahlbar.

Es ist moglich, so etwas wie den”Schwierigkeitsgrad“ einer unentscheidbaren Sprache anzu-

geben (namlich den Turing-Grad). Diese und ahnliche Fragestellungen werden in der Rekur-sionstheorie verfolgt.

Page 153: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

Kapitel 6

Komplexitatsklassen und die

Chomsky Hierarchie

Wir schliessen in diesem Kapitel unsere Betrachtungen zum Wortproblem ab. Unser Ziel istein Vergleich der bereits betrachteten Komplexitatsklassen und Sprachenklassen

Wir haben bisher die Komplexitatsklassen P,NP und die Klasse PSPACE, der auf polyno-miellen Speicherplatz entscheidbaren Sprachen kennengelernt und die Klassen der regularenund kontextfreien Sprachen untersucht. Insbesondere haben wir eingeschrankte Grammatikenals Grundlagen fur die Beschreibung von Programmiersprachen behandelt und dabei entge-gengesetzten Ziele verfolgen mussen, namlich

1. eine effiziente Losung des Wortproblems. Es sollte in vertretbarer Zeit entscheidbar sein,ob ein vorgelegtes Wort ableitbar ist, bzw. ob ein Programm syntaktisch korrekt ist.Dauert dieser Entscheidungsvorgang zu lange, so kommt die Sprachenklasse als moglicheGrundlage fur Programmiersprachen und Compiler nicht in Frage.

2. Die Sprachen sollten moglichst ausdruckstark sein, um hohere Programmiersprachenkomfortabel darzustellen zu konnen.

Wir fuhren jetzt die Klasse der kontextsensitiven Grammatiken ein und erhalten damit dieChomsky-Hierarchie, eine Grobeinteilung der Sprachenklassen.

Definition 6.1 (Chomsky-Hierarchie)

(a) Grammatiken (ohne jede Einschrankung) heißen Typ-0-Grammatiken. Die entsprechen-de Sprachenfamilie ist

L0 =

L(G) |G ist vom Typ 0

(b) Eine Grammatik G mit Produktionen der Form

u→ v mit |u| ≤ |v|

heißt Typ 1 oder kontextsensitiv. Die zugehorige Sprachenfamilie ist

L1 =

L(G) |G ist vom Typ 1

L(G) ∪ ε |G ist vom Typ 1

151

Page 154: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

152 KAPITEL 6. KOMPLEXITATSKLASSEN UND DIE CHOMSKY HIERARCHIE

(c) Eine Grammatik G mit Produktionen der Form

u→ v mit u ∈ V und v ∈ (V ∪ Σ)∗

heißt Typ 2 oder kontextfrei. Die zugehorige Sprachenfamilie ist

L2 =

L(G) |G hat Typ 2

(d) Eine regulare Grammatik heißt auch Typ-3-Grammatik. Die zugehorige Sprachenfamilieist

L3 =

L(G) |G hat Typ 3

Beispiel 6.1 Die kontextfreie Grammatik G mit Startsymbol S und Produktionen

S → 0S0 | 1S1 | ε

erzeugt alle Palindrome uber dem Alphabet 0, 1. Diese Sprache ist nicht regular, wie wirim Kapitel 1.4 schon gesehen haben. Da offensichtlich jede regulare Grammatik kontextfreiist, zeigt dieses Beispiel, dass L2 eine echte Obermenge von L3 ist.

Beispiel 6.2 Wir entwerfen eine kontextsensitive Grammatik, die die Sprache

K =

aibici | i ≥ 0

erkennt. Die Grammatik G besitzt drei Variablen, namlich das Startsymbol S sowie die Va-riablen R und L. Die Produktionen haben die Form

S → ε | abcS → aRbc

R wird ein neues a und b einfuhren, dann nach rechts wandern, bis das erste c angetroffenwird. Ein c wird eingefugt, und R wird durch L ersetzt:

aRb → aabbR

bRb → bbR

bRc → bcc |Lbcc

Die Variable L lauft nach links, bis das erste a gefunden wird. Dann wird L durch R ersetzt:

bL → Lb

aLb → aRb

Wir haben in Kapitel 3 gesehen, dass die Sprache K nicht kontextfrei ist. Da kontextfreieSprachen L mit ε /∈ L durch Grammatiken in Chomsky Normalform erzeugt werden konnen,ist jede kontextfreie Sprache auch kontextsensitiv, und L1 ist eine echte Obermenge von L2.

Page 155: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

153

Satz 6.2 Die Chomsky Hierarchie

(a) L0 ist die Klasse aller rekursiv aufzahlbaren Sprachen.

(b) L1 ist die Klasse aller Sprachen, die von nichtdeterministischen Turingmaschinen auflinearem Platz erkannt werden. Insbesondere ist jede Sprache in L1 entscheidbar.

(c) L3 ⊂ L2 ⊂ L1 ⊂ L0, und alle Inklusionen sind echt.

Beweis (a): Sei G eine Grammatik. Wir behaupten, dass L(G) rekursiv aufzahlbar ist.Wenn wir namlich entscheiden wollen, ob ein Wort w zur Sprache L(G) gehort, listen wir allemogliche Ableitungen auf: Wenn w ∈ L(G), dann werden wir eine Ableitung finden. Wennw /∈ L(G), wird unser Programm nicht halten, aber dies ist auch nicht erforderlich.

Andererseits sei M eine Turingmaschine. Wir behaupten, dass L(M) = L(G) fur eine Gram-matik G. Fur die Konstruktion von G beachten wir, dass Berechnungen vonM naturlich stetsmit der Eingabe w beginnen, wahrend eine Ableitung von w mit w endet. Also sollten wir dieGrammatik so konstruieren, dass die Berechnungen von M

”ruckwarts“ simuliert werden.

Zuerst normieren wir M . Wir nehmen an, dass M

- nur einen akzeptierenden Zustand qa besitzt und

- dass akzeptierende Berechnungen mit dem leeren Band enden.

Wenn wir eine Berechnung von M anhalten, dann konnen wir die gegenwartige Situationdurch den

- Bandinhalt α1 · · ·αN ∈ ΓN ,

- den gegenwartigen Zustand q ∈ Q und

- die Position des Kopfes

exakt beschreiben. Wenn der Kopf die Position i des Bands liest, dann beschreiben wir dieKonfiguration durch das Wort

α1 · · ·αi−1 q αi · · ·αN .Die zu entwerfende Grammatik G wird Konfigurationen von M ruckwarts konstruieren. Gbesitzt

(Γ \ Σ) ∪Q ∪ eraseals Variablenmenge und qa als Startsymbol. Zuerst wird der von M benutzte Bandbereichdurch die Produktionen

qa → Bqa | qaBerzeugt. Dann beginnt die Ruckwartsrechnung.

Fall 1: δ(q, a) = (q′, b, links). Wir nehmen die Produktion

q′cb→ cqa fur alle c ∈ Γ

auf: Wenn die Konfiguration ∗ · · · ∗ q′cb ∗ · · · ∗ schon erzeugt wurde, konnen wir damit diemogliche Vorganger-Konfiguration ∗ · · · ∗ cqa ∗ · · · ∗ erzeugen.

Fall 2: δ(q, a) = (q′, b, bleib). Wir fugen die Produktion

q′b→ qa.

Page 156: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

154 KAPITEL 6. KOMPLEXITATSKLASSEN UND DIE CHOMSKY HIERARCHIE

zu G hinzu.

Fall 3: δ(q, a) = (q′, b, rechts). Diesmal nehmen wir die Produktion

bq′ → qa.

auf.

Am Ende der Ableitung werden wir eine Konfiguration

Bkq0wBs

erzeugt haben. Die zusatzlichen Produktionen

q0 → erase

B erase → erase

erasea → aerase fur a ∈ Σ

eraseB → erase

erase → ε

garantieren jetzt, dass das Wort w abgeleitet wird.

(b) Zuerst beachten wir, dass eine kontextsensitive Grammatik langenerhaltend ist: Die rechteSeite v einer kontextsensitiven Produktion u→ v ist mindestens so lang wie die linke Seite u.Wenn wir also aus dem Startsymbol ein Wort w ∈ Σ∗ erzeugen, dann sind alle zwischenzeitlicherzeugten Strings aus (Σ ∪ Γ)∗ in ihrer Lange durch |w| nach oben beschrankt. Das aber be-deutet, dass wir eine mogliche Ableitungsfolge auf Platz O(|w|) raten und verifizieren konnen:Jede kontextsensitive Sprache kann also durch eine nichtdeterministische Turingmaschine auflinearem Platz erkannt werden.

Betrachten wir jetzt eine nichtdeterministische Turingmaschine M , die auf linearem Platzrechnet. In Teil (a) haben wir unbeschrankte Turingmaschinen durch Typ 0 Grammatiken si-muliert und die benutzten Produktionen waren mit Ausnahme der erase-Produktionen bereitskontextsensitiv! Insbesondere ist es moglich mit den Produktionen aus Teil (a) eine Ableitung

qa∗→ Bkq0wB

s zu erhalten, wobei k + s = O(|w|).Durch eine Erweiterung des Bandalphabets Γ vonM konnen wir erreichen, dassM tatsachlichauf Platz genau |w| rechnet. (Dazu ersetze Γ durch Γk fur eine geeignete Konstante k undandere M , so dass jetzt in einem Schritt auf Blocken von k Zellen gearbeitet wird.) Jetzt

ist es moglich mit den Produktionen aus Teil (a) eine Ableitung qa∗→ q0w zu erhalten. Wie

konnen wir aber die Variable qa entfernen?

Fur einen voll ausgefuhrten Beweis verweisen wir auf I. Wegener, Theoretische Informatik,

S. 136–140.

(c) Beachte, dass L1 eine echte Teilmenge von L0 ist, da alle Sprachen in L1 entscheidbarsind. Die restlichen (echten) Inklusionen haben wir in den obigen Beispielen nachgewiesen.

Wie schwierig ist das Wortproblemn fur die Klasse der kontextsensitiven Sprachen? Viel zuschwierig, denn das NP-vollstandige Erfullbarkeitsproblem ist kontextsensitiv!

Satz 6.3 Die Sprache KNF–SAT ist kontextsensitiv.

Beweis: Wir konnen naturlich eine erfullende Belegung auf linearem Platz raten und verifi-zieren. Die Behauptung folgt also aus Satz 6.2 (b).

Wie verhalten sich die Klassen P,NP und PSPACE zu den Klassen der Chomsky-Hierarchie?

Page 157: Skript zur Vorlesung ” Formale Sprachen und Berechenbarkeit“

155

Satz 6.4

(a) L3 ⊂ L2 ⊂ P und alle Inklusionen sind echt.

(b) P ⊆ NP ⊆ PSPACE. Es ist nicht bekannt, ob eine der Inklusionen echt ist.

(c) L1 ⊂ PSPACE ⊂ L0 und die Inklusionen sind echt.

Beweis (a): Da das Wortproblem in Zeit O(|w|3) losbar ist, gehoren alle kontextfreien Spra-chen zur Klasse P. Die Sprache akbkck | k ∈ N ist nicht kontextfrei, gehort aber naturlichzur Klasse P. Also ist L2 eine echte Teilmenge von P .

(b) Es ist P ⊆ NP , denn jede deterministische Turingmaschine kann auch als eine nichtde-terministische Turingmaschine aufgefasst werden. Auch die Inklusion NP ⊆ PSPACE gilt,denn wir konnen alle Berechnungen einer nichtdeterministischen Turingmaschine mit Laufzeitt(n) deterministisch mit Speicherplatz O(t(n)) aufzahlen und simulieren.

(c) Wir konnen hier nur motivieren, dass die Inklusion L1 ⊂ PSPACE echt ist: Mit Hilfe vonDiagonalisierungsargumenten kann man zeigen, dass mehr Sprachen erkannt werden konnen,wenn der erlaubte Speicherplatz asymptotisch zunimmt. Als Konsequenz folgt, dass L1 eineechte Teilmenge von NPSPACE ist, der Klasse aller Sprachen, die durch nichtdeterministischeTuringmaschinen auf polynomiellem Speicherplatz berechenbar sind. Man zeigt dann, dassNPSPACE = PSPACE gilt.

Da jede Sprache in PSPACE entscheidbar ist, muss die Inklusion PSPACE ⊂ L0 echt sein.

Fassen wir zusammen. Die rekursiv aufzahlbaren Sprachen sind genau die Sprachen, die vonunbeschrankten Grammatiken erzeugt werden konnen. Wir haben damit eine unbeschrankteAusdruckskraft durch die Unentscheidbarkeit des Wortproblems erkauft, ein nicht akzeptablerKompromiss. Selbst die kontextsensitiven Sprachen sind noch zu komplex, da ihr WortproblemNP-vollstandig sein kann. (Es kann sogar gezeigt werden, dass das Wortproblem PSPACE-vollstandig ist, also ein schwierigstes Problem in der Klasse aller auf nichtdeterministischpolynomiellem Platz erkennbaren Sprachen darstellt. Beachte, dass die Klasse PSPACE dieKlasse NP enthalt und dementsprechend ist eine Losung des Wortproblems noch komplexerals die Losung eines NP-vollstandigen Problems.) Demgegenuber stehen die kontextfreienSprachen, deren Wortproblem bei Beschrankung auf deterministisch kontextfreie Sprachensogar in Linearzeit gelost werden kann.