126
Automaten und Formale Sprachen Skript zur Vorlesung WS 2010/11 Teil 1 Prof. Dr. M. Dietzfelbinger Fassung vom 6.10.2010 Technische Universit¨ at Ilmenau Fakult¨ at f¨ ur Informatik und Automatisierung Fachgebiet Komplexit¨ atsheorie und Effiziente Algorithmen

Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Automaten und Formale Sprachen

Skript zur Vorlesung

WS 2010/11

Teil 1

Prof. Dr. M. Dietzfelbinger

Fassung vom 6.10.2010

Technische Universitat Ilmenau

Fakultat fur Informatik und Automatisierung

Fachgebiet Komplexitatsheorie und Effiziente Algorithmen

Page 2: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

i

Page 3: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Inhaltsverzeichnis

0 Vorbemerkungen 2

0.1 Einleitung und Uberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

0.2 Zur Arbeitstechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

0.3 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1 Grundbegriffe 9

1.1 Alphabete und Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Endliche Automaten und regulare Sprachen 18

2.1 Deterministische endliche Automaten . . . . . . . . . . . . . . . . . . . . . 18

2.1.1 Endliche Automaten mit Ausgabe . . . . . . . . . . . . . . . . . . . 30

2.2 Nichtdeterministische endliche Automaten . . . . . . . . . . . . . . . . . . 31

2.3 Regulare Ausdrucke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.4 Das Pumping-Lemma fur regulare Sprachen . . . . . . . . . . . . . . . . . 60

2.5 Abschlusseigenschaften fur regulare Sprachen . . . . . . . . . . . . . . . . . 63

2.6 Entscheidbarkeitsfragen fur regulare Sprachen . . . . . . . . . . . . . . . . 68

2.7 Die Minimierung deterministischer endlicher Automaten . . . . . . . . . . 71

2.7.1 Unerreichbare Zustande . . . . . . . . . . . . . . . . . . . . . . . . 71

2.7.2 Aquivalente und nicht-aquivalente Zustande . . . . . . . . . . . . . 74

2.7.3 Minimalautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3 Grammatiken und die Chomsky-Hierarchie 87

3.1 Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.2 Rechtslineare Grammatiken und regulare Sprachen . . . . . . . . . . . . . 99

3.2.1 Rechtslineare Grammatiken . . . . . . . . . . . . . . . . . . . . . . 99

3.2.2 Aquivalenz zu regularen Sprachen . . . . . . . . . . . . . . . . . . . 100

ii

Page 4: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

3.2.3 Linkslineare Grammatiken . . . . . . . . . . . . . . . . . . . . . . . 102

4 Kontextfreie Grammatiken und kontextfreie Sprachen 105

4.1 Beispiele und Ableitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.2 Ableitungsbaume, Linksableitungen, Rechtsableitungen . . . . . . . . . . . 111

4.3 Die Chomsky-Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

4.3.1 Separierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

4.3.2 Verkurzung rechter Seiten . . . . . . . . . . . . . . . . . . . . . . . 127

4.3.3 Bearbeitung von ε-Produktionen . . . . . . . . . . . . . . . . . . . 129

4.3.4 Elimination von Kettenregeln . . . . . . . . . . . . . . . . . . . . . 137

4.4 Das Pumping-Lemma fur kontextfreie Sprachen . . . . . . . . . . . . . . . 141

4.5 Der Cocke-Younger-Kasami-Algorithmus . . . . . . . . . . . . . . . . . . . 157

4.6 Abschlusseigenschaften kontextfreier Sprachen I . . . . . . . . . . . . . . . 162

5 Kellerautomaten 167

5.1 Nichtdeterministische Kellerautomaten . . . . . . . . . . . . . . . . . . . . 167

5.2 Top-Down-Parsing, LL-Parsing . . . . . . . . . . . . . . . . . . . . . . . . 180

5.3 Bottom-Up-Parsing, LR-Parsing . . . . . . . . . . . . . . . . . . . . . . . . 191

5.4 Akzeptierungsmodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

5.5 Kellerautomaten und Grammatiken . . . . . . . . . . . . . . . . . . . . . . 198

5.6 Abschlusseigenschaften II . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

5.7 Deterministische Kellerautomaten und ihre Sprachen . . . . . . . . . . . . 202

5.8 Entscheidungsfragen fur kontextfreie Sprachen . . . . . . . . . . . . . . . . 209

A 214

A.1 Zahldarstellungen und Abzahlungen . . . . . . . . . . . . . . . . . . . . . . 214

A.1.1 Die b-are Zahldarstellung . . . . . . . . . . . . . . . . . . . . . . . 214

A.1.2 Die b-adische Zahldarstellung . . . . . . . . . . . . . . . . . . . . . 218

A.2 Induktive Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

A.2.1 Beispiel: Aussagenlogische Formeln . . . . . . . . . . . . . . . . . . 222

A.2.2 Beispiel: Korrekte Klammerausdrucke . . . . . . . . . . . . . . . . . 225

A.2.3 Induktive Definitionen: Formaler Rahmen . . . . . . . . . . . . . . 228

1

Page 5: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Kapitel 0

Vorbemerkungen

0.1 Einleitung und Uberblick

Die Lehrveranstaltung”Automaten und Formale Sprachen (AFS)“ behandelt zusammen

mit der Veranstaltung”Berechenbarkeit und Komplexitatstheorie (BKT)“ im 5. Semester

die Grundlagen der Theoretischen Informatik, wie sie traditionell im Grundstudium desStudienganges Informatik vermittelt werden. Die in diesen Vorlesungen benutzten Me-thoden sind mathematisch, auch hier werden also Dinge (

”Begriffe“/

”Konzepte“) formal

definiert, uber die dann Satze bewiesen werden. Allerdings haben die in diesen Veranstal-tungen behandelten Gegenstande auch noch die Eigenschaft, dass sie in engem Bezug zukonkreten Fragen aus dem Informatik-Alltag stehen.

In der AFS-Veranstaltung geht es hauptsachlich um Mittel zur Beschreibung”formaler

Sprachen“, wie man sie insbesondere bei der Erstellung von Compilern oder Interpreternbenotigt. Die wesentlichen Beschreibungsmittel hierfur sind Automaten und Grammati-ken.

Wir beginnen die Vorlesung mit der Einfuhrung des Begriffs (synonym: Konzeptes)”For-

male Sprache“. Etwas flapsig ausgedruckt ist eine formale Sprache einfach eine Mengevon Texten (technisch sagt man zu einem Text

”Wort“ oder

”String“), wobei man die

Menge der Zeichen festlegen muss, die im Text benutzt werden durfen. Beispiele fur for-male Sprachen sind

• die Menge {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, . . .} der Dezimaldarstellungen dernaturlichen Zahlen; die erlaubten Zeichen sind 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;

• die Menge {0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, . . .} der Binardarstellungen dernaturlichen Zahlen; die erlaubten Zeichen sind 0 und 1;

• die Menge aller Zeichenreihen aus {X, , 0, 1,∨,∧,¬, (, )}, die Formeln mit Aussage-symbolen X 1, X 10, X 11 usw. in disjunktiver Form darstellen (wie (X 100∧X 11)∨(X 1 ∧ ¬X 10 ∧ ¬X 1001));

2

Page 6: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

• die Menge der korrekten Darstellungen fur Floating-point-Zahlen in Pascal (oder C,oder C++, oder Java);

• die Menge der korrekt gebildeten Namen (”identifier“) in Pascal-Programmen;

• die Menge der korrekt gebildeten arithmetischen Ausdrucke in Pascal-Progammen;

• die Menge der syntaktisch korrekten Pascal-Programme (oder C- oder C++- oderJava-Programme);

• die Menge der syntaktisch korrekten Pascal-Programme, die auf allen Eingaben nachendlich vielen Schritten anhalten;

• die Menge aller Worter, die in der gedruckten Version des Vorlesungsverzeichnissesder TU Ilmenau fur das Wintersemester 2007/08 stehen.

Man kann sich daruber streiten, ob die Menge der korrekten Satze der deutschen Spracheeine formale Sprache darstellt, da wohl fur viele Satze die Frage, ob sie korrekt oder nichtkorrekt sind, nicht eindeutig beantwortet werden kann, da die Antwort vom Zusammen-hang oder vom Geschmack abhangt oder sich im Lauf der Zeit andert.

Aus den Beispielen sieht man schon, dass viele wichtige formale Sprachen unendlich sind.Um eine solche Sprache zu beschreiben (d. h. zu

”spezifizieren“), kann man also nicht

einfach alle Worter aufzahlen, die dazu gehoren. Vielmehr brauchen wir Formalismen,die es gestatten, solche unendlichen Mengen von Texten durch einen einzigen endlichenText oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endlicheBeschreibung sei die bekannte Methode zur Definition der syntaktisch korrekten Pascal-Programme durch Syntaxdiagramme genannt. Alle Syntaxdiagramme (die man in jedemordentlichen Pascal-Buch findet) zusammen sind nur ein endliches Gebilde, aber sie er-lauben es, korrekte und nicht korrekte Programmtexte zu unterscheiden.

Ein Hauptgegenstand der Vorlesung sind also verschiedene Formalismen zur Beschreibungund Manipulation formaler Sprachen. Dabei beginnen wir mit den endlichen Automa-ten (schon aus der Vorlesung

”Rechnerorganisation“ bekannt), die eine der primitivsten

solchen Beschreibungsformen darstellen. Bemerkenswert ist, dass solche Automaten ei-ne Vielzahl von Anwendungen haben: ziemlich naheliegende im Zusammenhang mit demLesen und Analysieren einfachst strukturierter Texte (wie Identifier oder Floating-Point-Zahlen) oder einfacher Kommandosprachen, aber auch bei Grundfunktionen von Editoren(Suchen eines Strings in einer Datei). Andererseits werden endliche Automaten immerdann verwendet, wenn es um die mathematische Modellierung eines Systems geht, dasnur endlich viele Zustande annehmen kann. Diese findet man in praktisch jedem Anwen-dungsbereich, bei den Betriebssystemen, bei technischen Anwendungen (Steuerung), inder Rechnerarchitektur, in der Telematik ebenso wie bei der Modellierung von Transak-tionen zwischen Geschaftspartnern (e-commerce). Oft erzeugen endliche Automaten dannauch Ausgabesymbole oder Ausgabeworter. Diesen Aspekt streifen wir nur kurz. Nicht-deterministische endliche Automaten bilden eine Verallgemeinerung von endlichen

3

Page 7: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Automaten, bei denen der nachste Schritt nicht eindeutig vorgeschrieben ist. Dieses Mo-dell macht die Beschreibung einger Sprachen kompakter moglich; wir werden aber sehen,dass die Ausdruckskraft solcher Automaten im Prinzip nicht starker ist als die der gewohn-lichen endlichen Automaten. Automaten kann man als

”Akzeptoren“ fur Texte benutzen,

indem man sie einen endlichen Eingabetext Buchstabe fur Buchstabe lesen lasst und amEnde fragt, ob der Automat den gelesenen Text gut findet (

”akzeptiert“) oder nicht.

Wenn ein Automat M gegeben ist, bildet die Menge der von M akzeptierten Texte eineSprache LM . Die Sprachen, die sich von endlichen Automaten beschreiben lassen, nennenwir regulare Sprachen. Fur sie stellen wir noch einen anderen Beschreibungsmecha-nismus bereit, die regularen Grammatiken. Diese beschreiben Sprachen nicht durcheinen Lese- und Akzeptierungsmechanismus, sondern durch einen Erzeugungsprozess inder Art, wie die Syntaxdiagramme die Regeln aufzeigen, wie Pascalprogramme gebautwerden konnen. Wir zeigen, dass endliche Automaten und regulare Grammatiken genaudieselbe Klasse von Sprachen beschreiben, indem wir Grammatiken in Automaten undAutomaten in Grammatiken umbauen, ohne dass sich die zugehorige Sprache andert.

Weiter untersuchen wir Wege, wie wir zu einem”minimalen Automaten“ kommen konnen,

also demjenigen Automaten fur eine regulare Sprache L, der die geringste Anzahl vonZustanden hat. (Ein solcher Automat ist im wesentlichen eindeutig bestimmt.)

Eine weitere wichtige Beschreibungsform fur regulare Sprachen sind durch die regularenAusdrucke gegeben. Man begegnet einfachen regularen Ausdrucken, wenn man einenEditor eine komplexere Suchen nach Teilstrings in einer Datei durchfuhren lasst (z. B.mit wildcards und Wiederholungen von Teiltextstrukturen). Auch hier zeigen wir wie-der exakt, das heißt mit einem mathematischen Beweis, dass diese Beschreibungsformaquivalent zu der mit endlichen Automaten ist.

Die Untersuchung der regularen Ausdrucke und der von ihnen definierten Sprachen gibtuns Gelegenheit, die Methode der

”induktiven Definitionen“ etwas genauer unter die

Lupe zu nehmen, die oft zur Abgrenzung von”legalen“ Strukturen von

”illegalen“ benutzt

wird, wie etwa, um die Menge aller korrekt gebildeten aussagenlogischen Formeln prazi-se zu beschreiben. Auch die Beschreibung der Menge der syntaktisch korrekten Pascal-Programme lasst sich als eine solche induktive Definition auffassen. — Es stellt sich heraus,wiederum mit einem konstruktiven Umbau-Beweis, dass die Klasse der von regularen Aus-drucken beschreibbaren Sprachen wieder dieselbe ist wie die durch endliche Automatenbeschreibbare.

Wichtig sind mathematische Techniken, mit denen man beweisen kann, dass eine vorge-gebene Sprache nicht regular ist, man sich also die Suche nach einem sie beschreibendenAutomaten sparen kann. Wir beweisen das sogenannte Pumping Lemma, das die wich-tigste Technik fur diesen Zweck darstellt. Mit dieser Technik lasst sich dann schnell undelegant unterscheiden, welche Aufgaben man von endlichen Automaten erledigen lassenkann und welche nicht.

Der zweite Teil der Vorlesung ist der Betrachtung der kontextfreien Grammatiken undder zugehorigen Klasse der kontextfreien Sprachen gewidmet. Woher die merkwurdige

4

Page 8: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Bezeichnung stammt, werden wir im Verlauf der Vorlesung erklaren. Hier sei nur gesagt,dass kontextfreie Grammatiken das Beschreibungsmittel sind, mit dem die Syntax allerProgrammiersprachen definiert wird, die irgendeine Form von Klammerschachtelungzulassen (und das sind praktisch alle). Hinter den Pascal-Syntaxdiagrammen steckt einekontextfreie Grammatik, ebenso wie hinter den mehr oder weniger formalen Beschrei-bungen C, C++, Java, Haskell, usw. in den entsprechenden Handbuchern. Auch XML,der aktuell praktisch extrem wichtige Formalismus zur Beschreibung

”semistrukturierter

Daten“, ist im wesentlichen ein System, in dem man fur jede Anwendung eine eigenekontextfreie Grammatik uberlegen muss.

Wir definieren kontextfreie Grammatiken, untersuchen Syntaxbaume und Ableitungs-sequenzen, und betrachten wichtige Normalformen fur Grammatiken. Ein

”Pumping

Lemma“ fur kontextfreie Sprachen erlaubt den Nachweis, dass bestimmte Sprachen nichtkontextfrei sind; hierzu gehort zum Beispiel die Sprache aller Texte, die durch Hinter-einanderfugen eines Textes mit einer exakten Kopie entstehen (z. B. gehort das Wortabrakadabrakad zu dieser Sprache). Diese einfache Beobachtung fuhrt zu der Erkennt-nis, dass kontextfreie Grammatiken nicht ausreichen, um eine typische Eigenschaft vonPascal-Programmen auszudrucken, namlich dass jede Variable, die irgendwo benutzt wird,vorher deklariert worden sein muss. (Hierfur gibt es dann gesonderte

”Kontextbedingun-

gen“, die man zusatzlich zu den Syntaxdiagrammen beachten muss.)

Die Beschreibung der Menge der syntaktisch korrekten Programme ist eine Sache, die Syn-taxanalyse und die Ubersetzung in Maschinensprache (oder einen Zwischencode wie beiJava) eine andere. Hierfur braucht man Syntaxanalysemethoden, die im Fall von kontext-freien Grammatiken durch sogenannte Kellerautomaten geliefert werden. Auch diesesModell wird ausfuhrlich besprochen, und wir untersuchen im Prinzip, wie KellerautomatenWorter daraufhin untersuchen, ob sie zu einer von einer Grammatik beschriebenen Spra-che gehoren. Auch hier werden nichtdeterministische Automaten fur Modellierungszweckebenutzt. Um eine Syntaxanalyse durch einmaliges Lesen des Textes zu erreichen, benotigtman Kellerautomaten, die in jeder Situation einen eindeutig bestimmten nachsten Schritthaben, was zu den

”deterministischen Kellerautomaten“ fuhrt. Die Einzelheiten der Kon-

struktion von Syntaxanalyseverfahren aus einer kontextfreien Grammatik bleibt einerSpezialvorlesung zum Thema

”Ubersetzerbau“ vorbehalten.

Ausblick: Die Vorlesung”Berechenbarkeit und Komplexitatstheorie“ im 5. Semester be-

fasst sich zunachst mit der Theorie zur”Berechenbarkeit und Entscheidbarkeit“; hier

wird versucht, die Trennlinie zu verstehen zwischen Aufgaben, die man mit einem Com-puter im Prinzip losen kann und solchen, die man nicht losen kann. Das beruhmteste vonComputern unlosbare Problem, das

”Halteproblem“, mochte wohl jeder Programmierer

gerne gelost haben: Gegeben ein Computerprogramm P und eine Eingabedatei D, haltP irgendwann an, wenn ich es mit den Daten aus D als Input futtere? In einem zweitenTeil (

”NP-Vollstandigkeit“) geht es um die Grenze zwischen Problemen, die von effizien-

ten, das heißt, schnellen Algorithmen gelost werden konnen, und solchen, fur die es keineschnellen Algorithmen gibt.

5

Page 9: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

0.2 Zur Arbeitstechnik

Erfahrungsgemaß fallt es vielen Studierenden schwer, sich mit der Arbeits- und Denkwei-se anzufreunden, die in den beiden Theorie-Vorlesungen erwartet wird. Dabei fallt denmeisten die Arbeit mit der AFS-Vorlesung noch leichter als die BKT-Vorlesung.

Daher folgen hier einige aus der Erfahrung der mit diesen Vorlesungen und zugehorigenUbungen befassten Lehrpersonen fließende Ratschlage. (Sie klingen vielleicht banal, ihreBeachtung erhoht aber Ihre Erfolgschancen. Die Ratschlage sind nicht unbedingt leichtumzusetzen, erfordern also Ihre Aufmerksamkeit jede Woche neu.)

• Diese Vorlesung ist von der Dichte und der Art des Stoffs her nicht dafur geeignet,sie durch reines Zuhoren zu verarbeiten. Eigenes Weiterarbeiten ist unabdingbar.

• Arbeiten Sie daher den Stoff jeder Vorlesung zeitnah nach. Material hierfur sind Ihreeigenen Notizen, das Skript im Web, erganzendes Material von der Webseite, sowieweitere Literatur. Veranschlagen Sie hierfur mindestens 3 Zeitstunden pro Woche,also deutlich mehr als die Dauer der Vorlesung.

• Stil und Arbeitsweise sind mathematisch, und es kommt darauf an, dass man dieDefinitionen ganz genau ansieht und versteht.

• Es bestehen enge Zusammenhange innerhalb eines Vorlesungsteils, aber auch uberweitere Abstande. Man muss die relevanten Definitionen und Sachverhalte (

”Satze“)

aus den vergangenen Vorlesungen auswendig parat haben, da man sonst die Dingenicht verstehen kann, die darauf aufbauen.

• Wir geben alle 14 Tage ein Ubungsblatt heraus. Uberlegen Sie sich fur einige oderalle Ubungsaufgaben Losungen, die dann mit den in der Ubungsstunde angegebe-nen verglichen werden konnen. Studierende sind auch eingeladen, selbst Losungenvorzutragen. – Minimale Vorbereitung auf die Ubung ist das Durchdenken der Auf-gaben, damit man weiß, worum es geht. – Auch fur die Ubungen gilt, dass zeitnahesNacharbeiten und Kontrolle des eigenen Verstehens am meisten nutzt.

• Stellen Sie Fragen (in oder nach der Vorlesung, in oder nach den Ubungen).

• Bereiten Sie sich semesterbegleitend auf die Prufung vor, die im Februar stattfindet.

• Gegenstand der Prufung ist der Stoff der Vorlesung und die in den Ubungen bear-beiteten Aufgabentypen. Fur die Fragen zur Vorlesung ist es sehr hilfreich, wenn Siesich eine eigene Kurzfassung mit den Definitionen und den zentralen Tatsachen an-fertigen. Sie finden fruhere Klausuren auf unseren Webseiten. Das schriftliche Losenvon Ubungsaufgaben und fruheren Klausuraufgaben, auch in der Nacharbeit derUbungen, ist die beste Prufungsvorbereitung.

6

Page 10: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

0.3 Literatur

Zur Vorlesung erscheint ein Skript im ps- und pdf-Format, das im Copyshop und auf derWebseite zur AFS-Vorlesung

http://www.tu-ilmenau.de/fakia/Automaten-und-Formal.afs_ws07.0.html

zu finden ist.

Auf derselben Webseite findet sich auch weiteres Material (Ubungsblatter, Links zu fruher-en Vorlesungen, fruhere Klausuren, Kopien von Folien bzw. Prasentationsmaterialien, diein der Vorlesung benutzt wurden). Das Skript und die Folien gemeinsam definieren denprufungsrelevanten Stoff der Vorlesung.

Es wird aber allen Studierenden geraten, auch andere Darstellungen und Bucher zu Ratezu ziehen. Fast alle Bucher zum Thema decken den Stoff beider Vorlesungen (AFS undBKT) ab.

Hier einige (bei weitem nicht alle) Bucher zum Stoff der Vorlesungen AFS und BKT:

1. J. E. Hopcroft, R. Motwani, J. D. Ullman: Einfuhrung in die Automatentheorie,Formale Sprachen und Komplexitatstheorie. Pearson, 2002.(Klassiker in Neubearbeitung. Ubersetzt aus dem Englischen. Sehr ausfuhrlich, vieleAnwendungen und Beispiele, mathematische Details; Ubungsaufgaben.)

2. U. Schoning: Theoretische Informatik – kurzgefasst. 4. Auflage. Spektrum Akademi-scher Verlag, 2001.(Sehr kompakt, konzentriert sich auf die wesentlichen Techniken. Viele Exemplarein der Lehrbuchsammlung.)

3. I. Wegener: Theoretische Informatik – eine algorithmenorientierte Einfuhrung. 3.Auflage. Teubner, 2005.(Verwandt zur Vorlesung, aber anderer Stil. Beginnt mit BKT-Stoff, dann AFS-Stoff.)

4. I. Wegener: Kompendium Theoretische Informatik – eine Ideensammlung. Teubner,1996.(Erganzung zur Vorlesung, erlautert Konzepte und ubergreifende Ideen.)

5. G. Vossen, K.-U. Witt, Grundkurs Theoretische Informatik, 3. Auflage, Vieweg,2004.(Dieses Buch entwickelt die Theorie, legt aber auch großen Wert auf die Darstellungvon Anwendungsbeispielen.)

6. A. Asteroth, C.Baier: Theoretische Informatik – Eine Einfuhrung in Berechenbar-keit, Komplexitat und formale Sprachen mit 101 Beispielen. Pearson Studium, 2002.(Theoretische Informatik, wie sie an der Universitat Bonn gelehrt wird. Viele Bei-spiele, aber mathematisch genaue Entwicklung.)

7

Page 11: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

7. D. C. Kozen: Automata and Computability. Springer, 1997.(Amerikanische Version des Themas.)

8. K. W. Wagner: Theoretische Informatik – Eine kompakte Einfuhrung. 2. Auflage.Springer, 2003.(Theoretische Informatik, wie sie an der Universitat Wurzburg gelehrt wird. Deut-lich mehr Gewicht auf der Berechenbarkeitstheorie mit Maschinenmodellen.)

9. N. Blum: Einfuhrung in Formale Sprachen, Berechenbarkeit, Informations- undLerntheorie. Oldenbourg, 2007.(Kombination des Stoffs der Vorlesung mit einer Einfuhrung in das Gebiet der In-formationstheorie, exakte Durchfuhrung der Beweise.)

Zu Informatik- und Mathematik-Grundlagen:

1. A. Aho, J. D. Ullman. Informatik: Datenstrukturen und Konzepte der Abstraktion.International Thomson Publishing, 1996.

2. Ehrig, Mahr, Cornelius, Große-Rhode, Zeitz: Mathematisch-strukturelle Grundlagender Informatik. Springer, 2001.

3. C. Meinel, M. Middendorf: Mathematische Grundlagen der Informatik – Mathema-tisches Denken und Beweisen. Teubner, 2002.

Website:

1.”Lernumgebung Automatentheorie“, Universitat Zurich, Skript und Automaten zum

Selberbasteln. http://www.ifi.unizh.ch/cl/broder/jflap

Weiterfuhrende Literatur:

1. A. Aho, R. Sethi, J. D. Ullman. Compilerbau Teil 1. Oldenbourg, 1999.

2. R. Floyd, R. Beigel. Die Sprache der Maschinen. International Thomson Publishing,1996.

3. J. Hromkovic: Theoretical Computer Science – Introduction to Automata, Computa-bility, Complexity, Algorithmics, Randomization, Communication, and Cryptogra-phy. Springer, 2004.

4. H. Lewis, C. Papadimitriou: Elements of the Theory of Computation. Prentice Hall,1998.

5. R. Wilhelm, D. Maurer: Ubersetzerbau – Theorie, Konstruktion, Generierung. Sprin-ger, 1997.

8

Page 12: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Kapitel 1

Grundbegriffe

1.1 Alphabete und Sprachen

1.1.1 Vereinbarung N bezeichnet die Menge {0, 1, 2, 3, . . .} der naturlichen Zahlen.Fur die Menge {1, 2, 3, . . .} der positiven naturlichen Zahlen schreiben wir N+.

1.1.2 Definition Fur eine beliebige Menge X, X 6= ∅, bezeichnet Seq(X) die Mengeder endlichen Folgen oder “Tupel” in X, d. h. die Menge

{(a1, . . . , an) | n ≥ 0, a1, . . . , an ∈ X}.

(Im Gegensatz dazu ist XN = {(ai)i≥0 | ai ∈ X fur i ≥ 0} die Menge der unendlichenFolgen in X.)

1.1.3 Beispiel Wir konnen endliche Tupel aus naturlichen Zahlen betrachten: DieMenge Seq(N) enthalt ( ) (die leere Folge mit Lange 0), (0), (1), . . ., (0, 0), (0, 1), (0, 2),. . ., (1, 0), (1, 1), (1, 2), . . ., (3, 4, 4, 2), . . ..

In hoheren Programmiersprachen wie Pascal, C, Java, usw. wird anscheinend mit Zahlengerechnet. Bei genauerem Hinsehen stellt sich heraus, dass reale Rechner dies gar nichttun. Vielmehr operieren sie auf Bitfolgen (der Inhalt des Hauptspeichers eines Rechners et-wa ist eine Bitfolge, ebenso Dateiinhalte). Zahlen muß man binar kodieren. Auch wir wer-den uns meist auf den Standpunkt stellen, dass Maschinen nur Zeichenreihen mit Zeichenaus einem endlichen Zeichensatz bearbeiten konnen. Im Anhang

”Zahldarstellungen und

Abzahlungen“ (A.1) werden die Prinzipien des Umrechnens von Zahlen in Zeichenreihenund umgekehrt besprochen. An dieser Stelle geben wir einige allgemeine Grundkonzeptefur solche Zeichenreihen (synonym: Worter, Strings, Zeichenketten) an.

9

Page 13: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

1.1.4 Definition Ein Alphabet Σ ist eine endliche nichtleere Menge. (Alphabete wer-den oft auch mit ∆,Γ, . . . bezeichnet.) Die Elemente eines Alphabets heißen Buchstaben .Typische konkrete Buchstaben sind: 0, 1, 2,. . . , a, b, c, . . . , A, B, C, . . . , #, /c, $, . . ..Die Symbole a, b, . . . , a0, a1, a2, . . . werden auch als Platzhalter fur

”beliebige Buchstaben“

verwendet.

1.1.5 Beispiel

(a) Die Menge {1} oder {|} heißt das unare Alphabet . Die Menge Σ = {0, 1} heißt dasbinare Alphabet . Die Menge {0, 1, #} ist das binare Alphabet mit Trennzeichen#.

(b) Die Menge Γ = {0, 1}8 ist das Alphabet aller 8-Bit-Strings (Bytes). Der einfacheASCII-Code gibt eine injektive Abbildung einer Menge von

”naturlichen“ Buch-

staben, Ziffern, und Symbolen (d. h. eines gewissen Alphabets) in {0, 1}7 an. DieseDarstellung wird dann durch eine fuhrende Null zu einem Byte erganzt. Der volleASCII-Code hat 256

”Buchstaben“, unter ihnen auch jede Menge (unsichtbare)

Steuerzeichen.

(c) Das lateinische Alphabet besteht aus 26 Groß- und 26 Kleinbuchstaben. Hinzu kom-men eine Reihe von Sonderzeichen wie die Satzzeichen und der Zwischenraum.

(d) Naturlich sind Alphabete Σ und Σ′”gleichwertig“, wenn |Σ| = |Σ′| gilt, es also eine

bijektive Abbildung von Σ nach Σ′ gibt. Jedes Alphabet Σ mit k Buchstaben ist mit{1, 2, . . . , k} und {0, 1, . . . , k− 1} gleichwertig. Die Schreibweise Σ = {b1, b2, . . . , bk}bzw. Σ = {b0, b1, . . . , bk−1} stellt die entsprechende Korrespondenz her.

1.1.6 Definition Σ sei ein Alphabet. Fur n ∈ N bezeichnet Σn die Menge aller Folgenw = (a1, . . . , an) aus n Buchstaben aus Σ. Statt (a1, . . . , an) schreiben wir a1 · · · an, fallskeine Verwirrung moglich ist1. Eine solche Folge w nennen wir ein Wort uber Σ (synonym:Zeichenreihe, Zeichenkette oder String uber Σ). Die Lange von w, bezeichnet mit|w|, ist n. Offenbar gibt es genau |Σ|n Worter der Lange n uber Σ. Die Menge aller Worteruber Σ wird folgendermaßen bezeichnet:

Σ∗ :=⋃{Σn | n ∈ N}.

Naturlich ist Σ∗ = Seq(Σ). Ein besonderes Wort ist ε, das leere Wort, das einzige Wortder Lange 0 uber Σ. Formal: ε = ( ), die leere Folge.

1Sind die Buchstaben in Σ selbst Worter, muss man naturlich die Fugen markieren:z.B. w = (11, 7, 9, 13, 20) bei Σ = {0, . . . , 31} oder w = 〈del1〉〈text〉〈del2〉 bei Σ = {del1, text,del2, . . .}.Treten (, ) und das Komma als Buchstaben auf, verhindert man Missverstandnisse gegebenenfalls durchEinschließen in Anfuhrungszeichen “(”, “)”, “,” oder dergleichen.

10

Page 14: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beachte: Σ0 = {ε}, Σ1

”=“ Σ. (Man identifiziert das 1-Tupel (a) mit dem Objekt a und

erhalt Σ1 = {(b) | b ∈ Σ}”=“ Σ.) Mit dieser Vereinbarung ist dann stets Σ ⊆ Σ∗.

Die Menge aller nichtleeren Worter uber Σ heißt Σ+:

Σ+ := Σ∗ − {ε} =⋃{Σn | n ≥ 1}.

1.1.7 Beispiel

(a) Σ = {1} : Dann ist Σ∗ = {ε, 1, 11, 111, 1111, 11111, . . .} = {0, 1, 2, 3, 4, 5, . . .}.(Die Bijektion 1 · · · 1︸ ︷︷ ︸

k−mal

↔ k liefert die Strichlistendarstellung oder unare Darstellung

fur die naturlichen Zahlen.)

(b) Σ = {0, 1} : Dann ist Σ∗ = {ε, 0, 1, 00, 01, 10, 11, 000, 001, . . .}, die Menge aller Bi-narworter.

(c) Ein ASCII-File ist ein Wort uber Σ = {0, 1}8. Man beachte dabei, dass bei der rech-nerinternen Darstellung die unsichtbaren Leerzeichen als Buchstabe (

”space“) gelten

und Zeilenumbruche durch Steuerzeichen markiert werden, die selbst Buchstabe imASCII-Alphabet sind.

1.1.8 Definition Sind u = (a1, . . . , an) und v = (b1, . . . , bm) Worter (uber einem Al-phabet Σ), so heißt u◦ v := (a1, . . . , an, b1, . . . , bm) (ein Wort der Lange n+m) die Kon-katenation oder Hintereinanderschaltung von u und v. Kurz: a1 · · · an ◦ b1 · · · bm =a1 · · · anb1 · · · bm. Manchmal findet man auch die Notation u · v fur diese Operation. Nor-malerweise lasst man das Operationszeichen weg und schreibt uv statt u ◦ v.

1.1.9 Beispiel010 · 111 = 010 ◦ 111 = 010111

ε · 11 = ε ◦ 11 = 1110 · ε = 10 ◦ ε = 10

εε = ε · ε = ε ◦ ε = ε

1.1.10 Bemerkung Die Menge Σ∗ ist mit der Operation ◦ (Konkatenation) ein Mo-noid mit neutralem Element ε, d.h. es gelten die folgenden Beziehungen:

(i) Assoziativitat: (uv)w = u(vw) fur alle u, v, w ∈ Σ∗.

(ii) Neutrales Element: εu = uε = u fur alle u ∈ Σ∗.

11

Page 15: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

1.1.11 Beispiel(00 ◦ 10) ◦ 111 = 001011100 ◦ (10 ◦ 111) = 0010111

100 ◦ ε = ε ◦ 100 = 100ε ◦ ε = ε

Konsequenz: Bei Konkatenation kann man Klammern beliebig setzen oder alle Klammernweglassen. Man schreibt also 00 ◦ 01 ◦ 101 fur (00 ◦ 01) ◦ 101 oder 00 ◦ (01 ◦ 101).

1.1.12 Definition Fur ein Wort w = a1 · · · an ∈ Σ∗ und einen Buchstaben a ∈ Σ sei

|w|a := die Haufigkeit des Auftauchens von a in w

:= |{i | 1 ≤ i ≤ n ∧ ai = a}|.

Beispiele: |0101011|1 = 4; |0101011|0 = 3; |0101011|2 = 0.

Offenbar gilt: |uv|a = |u|a + |v|a (und ahnliche Formeln) und |w| =∑k

i=1 |w|bi, wenn

Σ = {b1, . . . , bk} ist.

1.1.13 Definition Ist w ∈ Σ∗ ein Wort und i ∈ N, so wird mit wi die i-fache Kon-katenation von w mit sich selbst bezeichnet, d.h. wi = ww · · ·w︸ ︷︷ ︸

i−mal

. Formal definieren wir

induktiv:w0 := ε wi := wwi−1, fur i ≥ 1.

Da Σ ⊆ Σ∗, ist damit auch ai fur Buchstaben a ∈ Σ erklart. Informal: ai = a · · · a︸ ︷︷ ︸i−mal

, fur

i ≥ 0. Man beachte die Gleichheiten a0 = ε und a1 = a, sowie εi = ε fur beliebiges i ≥ 0.

Wir vereinbaren folgende Prioritatsregel beim Zusammentreffen von Konkatenation undPotenzierung: Potenzieren bindet starker als Konkatenation. Um dies aufzuheben, sindgeeignet Klammern zu setzen.

Beispiele: Sei Σ = {0, 1}. Ist a = 0 und w = 101, dann gilt a0 = w0 = ε, a6 = 000000,w3 = 101101101. Weiter gilt 000120 = 000110, (00)(01)20 = 0001010 und (0001)20 =000100010.

1.1.14 Definition u und w seien Worter uber Σ. Dann heißt u ein

TeilwortPrafix oder Anfangsstuck

Suffix oder Endstuck

von w, falls

∃v1, v2 ∈ Σ∗ : w = v1uv2

∃v ∈ Σ∗ : w = uv∃v ∈ Σ∗ : w = vu

.

Beachte: Wenn u ein Prafix (oder Suffix) von w ist, ist u auch Teilwort von w, da w = εuv(oder w = vuε) geschrieben werden kann. — Es ist klar, dass jedes w ∈ Σn genau n + 1Prafixe und n+ 1 Suffixe hat, unter denen sich jeweils auch w selbst und ε befinden.

12

Page 16: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

1.1.15 Beispiel 0000 ist Teilwort von 010000011, aber weder Prafix noch Suffix. 0000ist Prafix von 0000010 und Suffix von 1110000; daher ist 0000 auch Teilwort von 000010und 1110000.

1.1.16 Definition

(a) Wenn Σ ein Alphabet ist und L ⊆ Σ∗, dann heißt L eine (formale) Sprache uberΣ.

(b) Eine Menge L heißt eine (formale) Sprache, wenn es ein Alphabet Σ mit L ⊆ Σ∗

gibt.

Im Zusammenhang mit dieser Vorlesung bedeutet”Sprache“ immer dasselbe wie

”formale

Sprache“.

Sprachen interessieren uns in zweierlei Hinsicht: einmal als Formalisierung des Begriffseines

”Berechnungsproblems“ (dieser Aspekt wird in der Vorlesung

”Berechenbarkeit und

Komplexitatstheorie“ im Vordergrund stehen), hier aber zunachst als Gegenstande derTheorie der formalen Sprachen.

Charakteristisch am Umgang mit Sprachen in der Informatik ist, dass die dort vorkom-menden Sprachen meist unendlich viele Worter enthalten (man denke etwa an die Mengeder syntaktisch korrekten Pascal-Programme). Eine unendliche Sprache kann man nichtdurch Auflisten ihrer Elemente angeben, sondern immer nur dadurch, dass man eine end-liche Menge von Regeln angibt, anhand derer man entscheiden kann, welche Worter dazugehoren und welche nicht. In dieser Vorlesung werden viele solche Beschreibungsmetho-den angegeben und der Umgang mit ihnen geubt. Wir werden als Beschreibungsform(Spezifikation) von Sprachen hauptsachlich Grammatiken betrachten, aber auch Maschi-nenmodelle untersuchen, die die Analyse von vorgelegten Wortern durchfuhren konnen,im Hinblick darauf, ob sie zu einer Sprache gehoren oder nicht.

Wenn L eine Sprache uber Σ ist, so gehort zu L in ganz naturlicher Weise ein Entschei-dungsproblem, namlich:

Wortproblem fur L: Eingabe: w ∈ Σ∗. Ausgabe: JA, falls w ∈ L, NEIN sonst.

Umgekehrt kann man normalerweise Entscheidungsprobleme als Wortprobleme uber pas-senden Sprachen formulieren. Dieser Zusammenhang wird aber erst in der Vorlesung BKTwichtig werden.

1.1.17 Beispiel

(a) L∅ = ∅ heißt die leere Sprache ; Lε = {ε} ist die Sprache, die nur das leere Wortenthalt. L∅ und Lε sind Sprachen uber Σ fur jedes Alphabet Σ. Fur jedes beliebige

13

Page 17: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Alphabet Σ ist Σ ⊆ Σ∗, also ist die Menge Σ eine Sprache; fur n ∈ N beliebig ist Σn

eine Sprache, Σ∗ ist Sprache uber Σ. Fur a ∈ Σ ist {an | n ∈ N} Sprache uber Σ.

(b) Sei Σ = {0, 1} das binare Alphabet. Dann ist Σ+ = die Sprache aller nichtleeren Bit-strings; Σ8 ist die Sprache, die genau die 256 verschiedenen Bytes enthalt; Σ32 ist dieSprache, die alle 32-Bit-Worter enthalt. Einem Binarwort w = bk−1 · · · b0 ∈ Σk ent-spricht die Zahl (w)2 =

∑k−1i=0 bi2

i (Umrechnung von Binardarstellung in naturlicheZahl). Ist i ∈ N, so heißt ein Wort w mit |w| ≥ 1 und (w)2 = i eine Binardarstel-lung von i. Das kurzeste solche Wort w (außer fur (0)2 = 0 hat das Wort w alserstes Zeichen eine 1) heißt oft

”die“ Binardarstellung von i und wird mit bin(i)

bezeichnet.

Fur i ∈ N nennen wir 1i die Unardarstellung von i. Offenbar ist die Abbildung

N ∋ i 7→ 1i ∈ {1}∗

eine Bijektion. Eine (recht naturliche) Bijektion N↔ {1, 2}∗ wird in Abschnitt A.1.2im Anhang vorgestellt.

(c) Man kann nun mathematische und andere Probleme als Wortprobleme uber passen-den Sprachen darstellen, z. B.

Lgerade = {0, 10, 100, 110, 1000, 1010, 1100, . . .} = {bin(n) ∈ {0, 1}∗ | n gerade}.Lbin = {0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, . . .} = {bin(n) | n ∈ N}.Lprim = {10, 11, 101, 111, 1011, 1101, 10001, 10011, . . .} = {bin(p) | p Primzahl}.LPrimzahlzwillinge = {bin(i)#bin(j) | i, j ∈ N, i+ 2 = j, i, j Primzahl}.

Dabei heißt ein Paar (i, i + 2) ein Paar von Primzahlzwillingen, wenn sowohl i alsauch i+ 2 Primzahlen sind. Zum Beispiel sind (3, 5), (5, 7), (11, 13), (17, 19) solchePaare. Es ist ein beruhmtes offenes Problem der Zahlentheorie, herauszufinden, ob esunendlich viele solche Paare gibt. LPrimzahlzwillinge ist eine Sprache uber dem Alphabet{0, 1, #}. Das Problem

”Gibt es unendlich viele Primzahlzwillinge?“ lasst sich dann

schreiben als die Frage”Ist LPrimzahlzwillinge unendlich?“

Wenn Σ ⊆ Σ′ ist, so ist selbstverstandlich jede Sprache uber Σ automatisch auch Spracheuber Σ′. Wir werden dies im folgenden oft stillschweigend benutzen. Insbesondere kannman bei beliebigen Sprachen L1 (uber Σ1) und L2 (uber Σ2) immer annehmen, dassdasselbe Alphabet zugrundeliegt: man wahlt einfach Σ = Σ1 ∪ Σ2.

1.1.18 Bemerkung Die Gesamtheit aller Sprachen uber Σ riesig, namlich uberabzahl-bar unendlich. (Dies gilt fur jedes Alphabet Σ, selbst wenn Σ = {0} ist, also Σ nur einElement hat.) Daher werden wir nur sehr wenige Sprachen uberhaupt zu sehen bekommen.

Behauptung: Fur jedes Alphabet Σ ist LΣ = {L | L ⊆ Σ∗} eine uberabzahlbare Menge.

Wir bemerken zunachst, dass aus Korollar A.1.12 im Anhang folgt, dass wir die Elementevon Σ∗ aufzahlen konnen:

Σ∗ = {w0, w1, w2, w3, . . . }.

14

Page 18: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Die Mengen {w0}, {w1}, {w2}, . . . sind Elemente von LΣ, also ist diese Menge sicherunendlich.

Nun sei L0, L1, L2, . . . irgendeine Aufzahlung von (einigen) Elementen von LΣ. Wir defi-nieren

L× := {wi | wi /∈ Li}.Es ist klar, dass L× eine Teilmenge von Σ∗ ist, also eine Sprache. Kann L in der FolgeL0, L1, L2, . . . vorkommen? Nun, fur jedes j ∈ N gilt: wj ∈ Lj ⇔ wj /∈ L×, also Lj 6= L×.Daher kommt L nicht in L0, L1, L2, . . . vor. Das bedeutet, dass keine Aufzahlung ganz LΣ

erfassen kann, also kann LΣ nicht abzahlbar sein.

1.1.19 Definition

(a) Sind L1 und L2 Sprachen, so heißt

L1 ◦ L2 := {w1w2 | w1 ∈ L1, w2 ∈ L2} (auch L1 · L2 oder L1L2)

die Konkatenation von L1 und L2.

Beispiele:{0}∗{1}∗ = {0i1j | i, j ≥ 0},{0} ∪ {1}{0, 1}∗ = Lbin.

Beachte: Die Konkatenation ist assoziativ, d. h. fur beliebige Sprachen L1, L2, L3 gilt

(i) (L1L2)L3 = L1(L2L3).

Weiter gilt

(ii) LεL = LLε = L fur jede Sprache L.

(Damit ist fur jedes Alphabet Σ die Menge {L | L ⊆ Σ∗, L 6= ∅} der nichtleerenSprachen uber Σ ein Monoid mit neutralem Element Lε.) Andererseits ist L∅ einausloschendes Element, denn es gilt

L∅L = LL∅ = L∅ = ∅ fur jede Sprache L.

Beweis von (i): Wenn w ∈ (L1L2)L3, dann ist w = w′w3 fur ein w′ ∈ L1L2 undw3 ∈ L3. Weiter ist dann w′ = w1w2 fur ein w1 ∈ L1 und ein w2 ∈ L2. Damitist w2w2 ∈ L2L3, also w = w1(w2w3) ∈ L1(L2L3). Insgesamt haben wir gezeigt:(L1L2)L3 ⊆ L1(L2L3). Die umgekehrte Richtung zeigt man ahnlich.

Beweis von (ii): Wenn w ∈ LεL, dann ist w = ε ◦ w′ fur ein w′ ∈ L. Da ε neutralesElement ist, folgt w = w′, also w ∈ L. – Wenn umgekehrt w ∈ L ist, dann istw = ε ◦ w ∈ LεL.

15

Page 19: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(b) Ist L Sprache, so definieren wir:

Li := {w1w2 · · ·wi | w1, . . . , wi ∈ L}, fur i ≥ 0.

Formal definieren wir induktiv:

L0 := Lε;Li := LLi−1 fur i ≥ 1.

Man beachte, dass {wi | w ∈ L} ⊆ Li ist, dass aber gewohnlich nicht Gleichheitherrscht, wie man etwa an dem Beispiel {01, 10}2 = {0101, 0110, 1001, 1010} 6={0101, 1010} sieht.

Weiter seiL

∗ :=⋃{Li | i ≥ 0} = L0 ∪ L1 ∪ L2 ∪ L3 ∪ · · ·

Diese Sprache heißt der Kleene-Abschluss von L. Weiter sei

L+ :=

⋃{Li | i ≥ 1} = L1 ∪ L2 ∪ L3 ∪ · · · .

In Worten: L∗ enthalt die Worter w der Form w = w1 · · ·wi, i ≥ 0, wobei w1, . . . , wi ∈L; L+ enthalt die Worter w = w1 · · ·wi, i ≥ 1, wobei w1, . . . , wi ∈ L sind. Zur Ubunguberlege man, dass L+ = LL∗ = L∗L ist.

Man beachte den Unterschied zwischen L∗ und {wi | w ∈ L, i ≥ 0}. Fur die SpracheL = {0, 11} ist zum Beispiel das Wort 011001111011 = 0(11)00(11)(11)0(11) in L∗

enthalten, nicht aber in {wi | w ∈ L, i ≥ 0}.

(c) Sprachen lassen naturlich auch alle Mengenoperationen zu, insbesondere folgen-de: Sind L1, L2 Sprachen, so auch die Vereinigung L1 ∪ L2 und der DurchschnittL1 ∩ L2.

Ist L Sprache uber Σ, kann man auch das Komplement L = Σ∗ − L betrachten.

L∅ ist neutrales Element bezuglich Vereinigung: L ∪ L∅ = L∅ ∪ L = L.Fur Sprachen uber Σ ist Σ∗ neutrales Element bezuglich Durchschnitt : L ∩ Σ∗ =Σ∗ ∩ L = L.

1.1.20 Beispiel Betrachte L1 = {w ∈ {0, 1}∗ | |w|0 = |w|1} undL2 = {0}∗{1}∗ = {0i1j | i, j ≥ 0}.Dann ist

L1 ∩ L2 = {0i1j | i = j} = {ε, 01, 0011, 000111, . . .}und

L1 = {w ∈ {0, 1}∗ | |w|0 6= |w|1}.

16

Page 20: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Sprechweise: Oft betrachtet man die Gesamtheit aller Sprachen mit einer gewissen Ei-genschaft. Dann sprechen wir gewohnlich von einer Klasse von Sprachen (nicht von einerMenge). Beispiele hierfur: Die

”Klasse aller Sprachen“, die

”Klasse der unendlichen Spra-

chen“, die”Klasse der Sprachen uber einem einelementigen Alphabet“, die

”Klasse der

regularen Sprachen“. Fur Mathematikfans und Puristen sei kurz der Hintergrund erklart:In der Mengenlehre zeigt man, dass die Gesamtheit aller Mengen selber keine Menge ist.Daraus ergibt sich sofort, dass die Gesamtheit aller Alphabete keine Menge sein kann, undauch nicht die Gesamtheit aller formalen Sprachen. Fur Gesamtheiten, die man definierenkann, die aber keine Mengen darstellen, benutzt man in der Mengenlehre die Bezeichnung

”(echte) Klasse“. Fur den Gebrauch in dieser Vorlesung macht diese Feinheit aber kei-

nen Unterschied. Die Bemerkung in Beispiel 1.1.5(d) zeigt, dass man sich immer auf ein

”Normalalphabet“ {b1, . . . , bk} zuruckziehen kann.

17

Page 21: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Kapitel 2

Endliche Automaten und regulareSprachen

Die regularen Sprachen (”regular sets“) sind die einfachsten formalen Sprachen. Wir wer-

den Maschinenmodelle kennenlernen (”endliche Automaten“ in verschiedenen Vari-

anten), die diesen Sprachen entsprechen, und andere Methoden, diese Sprachen zu be-schreiben (

”regulare Ausdrucke“ und

”regulare Grammatiken“). Wir wollen uns

anhand der regularen Sprachen exemplarisch die Ubergange zwischen verschiedenen Be-schreibungsformen fur dieselbe Sprache klarmachen, und fur diese Ubergange soweit wiemoglich effiziente Algorithmen bereitstellen. Zudem wird sich zeigen, dass man fur jederegulare Sprache algorithmisch einen

”effizientesten“ Automaten konstruieren kann.

Ebenso wichtig wie das Konzept der regularen Sprache ist das Konzept des Automatenselbst, das in vielen verschiedenen Teilbereichen der Theoretischen, der Praktischen undder Technischen Informatik Anwendung findet. Erinnert sei an die Vorlesung

”Rechner-

organisation“, in der schon endliche Automaten untersucht wurden.1

2.1 Deterministische endliche Automaten

In diesem Abschnitt besprechen wir das fur die regularen Sprachen grundlegende Ma-schinenmodell: die deterministischen endlichen Automaten (

”deterministic fi-

nite automata“, abgekurzt”DFA“). Diese Automaten erhalten ein Eingabewort x =

b1 · · · bm ∈ Σ∗ (fur ein Alphabet Σ) vorgelegt, das einmal von links nach rechts gelesenwird. Endliche Automaten haben eine Steuereinheit (engl. finite control), die eine endlicheSpeicherkapazitat reprasentiert und abstrakt durch eine endliche Menge Q von Zustandengegeben ist. Einer der Zustande ist als Startzustand ausgezeichnet (bezeichnet mit q0).Startend in p0 = q0, liest der DFA einen Buchstaben des Eingabewortes nach dem ande-ren und geht dabei in jedem Schritt in Abhangigkeit vom alten Zustand pt−1 und dem

1Im Gegensatz zur dortigen Darstellung ist es fur unsere Zwecke nicht wichtig, ob die Eingabezeichenund die Zustande binar oder anders dargestellt werden.

18

Page 22: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

gerade gelesenen Buchstaben at in einen Zustand pt uber, fur t = 1, 2, . . . ,m. WelcherZustand jeweils anzunehmen ist, wird von einer Ubergangsfunktion δ : Q × Σ → Q vor-geschrieben (δ(q, a) = q′ bedeutet: wird in Zustand q der Buchstabe a gelesen, so ist derneue Zustand q′). Am Ende der Berechnung, d. h. sobald der letzte Buchstabe bm gelesenwurde, wird (nur!) anhand von pm, dem schließlich erreichten Zustand, entschieden, obx = b1 · · · bm ”

akzeptiert“ oder”verworfen“ werden soll. Dazu wird eine Menge F ⊆ Q

(die”akzeptierenden“ Zustande) benutzt.

Hinter dem Modell des deterministischen endlichen Automaten steht das etwas allge-meinere Konzept eines

”finite state system“: ein System mit endlich vielen Zustanden

(Menge Q), das mit einer Folge von”Signalen“ aus einem endlichen Vorrat Σ von Signa-

len gefuttert wird und auf jedes Signal mit dem Ubergang in einen durch alten Zustandund Signal eindeutig bestimmten nachsten Zustand reagiert. Wenn man noch einen Start-zustand q0 spezifiziert (

”Reset-Zustand“), so bestimmt jede Signalfolge (b1, . . . , bm) ∈ Σ∗

eine Folge von Zustanden, die das System durchlauft. Dieses Modell lasst sich auch durcheine Ausgabefunktion erweitern, so dass etwa in jedem Schritt ein Ausgabesignal odereine endliche Folge von Ausgabesignalen erzeugt wird (Moore- und Mealy-Automaten).

Wir stellen die Bearbeitung eines Eingabewortes durch einen DFA wie folgt graphischdar:

p21p0p =q

0 F ?1 2b b bpm

mStart ...

Abbildung 2.1: Ablauf einer Berechnung auf einem DFA

Die Folge der durchlaufenen Zustande p0, . . . , pm wird als (gerichteter) Weg dargestellt,wobei naturlich Wiederholungen moglich sind. Die Kante vom Knoten pt−1 zum Knotenpt ist mit bt markiert.

Wir geben nun eine prazise Definition von DFA’s und ihrer Arbeitsweise.

2.1.1 Definition Ein deterministischer endlicher Automat (”deterministic

finite automaton“ — DFA) M besteht aus 5 Komponenten:

• einer endlichen Menge Q (der”Zustandsmenge“);

• einem Alphabet Σ (dem”Eingabealphabet“);

• einem ausgezeichneten Zustand q0 ∈ Q (dem”Startzustand“);

• einer Menge F ⊆ Q von”akzeptierenden“ Zustanden;

• einer”Ubergangsfunktion“ δ : Q× Σ→ Q.

(Formal schreibt man M = (Q,Σ, q0, F, δ).)

19

Page 23: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Wenn ein DFAM = (Q,Σ, q0, F, δ) gegeben ist, dann kann man ein beliebiges Eingabewortb1 · · · bm von M verarbeiten lassen und am Ende nachsehen, ob der erreichte Zustand pm

in F liegt oder nicht.

2.1.2 Beispiel Wir beschreiben einen DFA, der genau die Dezimalzahlen akzep-tiert, deren Wert nicht durch 3 teilbar ist. Nach einer bekannten Rechenregel gilt: N =(b1 · · · bm)10 ist durch 3 teilbar genau dann wenn die Quersumme der Dezimaldarstellungb1 · · · bm von N durch 3 teilbar ist, d. h. wenn

∑1≤i≤m bi ≡ 0 (mod 3) ist. Wir geben

nun einen Automaten an, der eine Dezimalzahl (auch mit fuhrenden Nullen) ziffernweisevon links nach rechts liest und dabei (in der Steuereinheit) die Quersumme der bislanggesehenen Ziffern modulo 3 speichert. Wir setzen M = (Q,Σ, q0, F, δ) mit Q = {0,1,2}(die moglichen Reste), Σ = {0, 1, . . . , 9}, q0 = 0, F = {1,2}; δ ist durch folgende Tabellegegeben:

δ:

aq 0 1 2 3 4 5 6 7 8 90 0 1 2 0 1 2 0 1 2 01 1 2 0 1 2 0 1 2 0 12 2 0 1 2 0 1 2 0 1 2

Tabelle 2.1: Tabellendarstellung eines DFA

Wir sehen uns an, wie der DFA auf der Eingabe w = 044318 arbeitet. Es werden dieZustande 0, 0, 1, 2, 2, 0 durchlaufen und schließlich 2 erreicht. Da 2 ∈ F , wird dasEingabewort w akzeptiert. — Man bemerkt, dass man aus der Berechnung auch erfahrt,

i 0 1 2 3 4 5 6bi 0 4 4 3 1 8pi 0 0 1 2 2 0 2∈ F? – –

√ √ √–

Tabelle 2.2: Arbeitsweise eines DFA

dass das leere Wort ε nicht akzeptiert wird, ebenso wie die Ziffernfolge 04431.

Dem Leser wird geraten, als weiteres Beispiel die vonM auf den Eingaben u = 00123234345durchlaufene Zustandsfolge anzusehen. (u wird nicht akzeptiert.) Man uberzeugt sichleicht (per Induktion uber t), dass M nach dem Lesen von b1, . . . , bt im Zustand( ∑

1≤i≤t bi

)mod 3 ist, sich also die Quersumme modulo 3

”merkt“. Aufgrund der Fest-

legung von F gilt dann, dass M genau die Worter akzeptiert, die Zahlen darstellen, dienicht durch 3 teilbar sind.

20

Page 24: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.1.3 Bemerkung Wir geben verschiedene nutzliche Darstellungsweisen fur endlicheAutomaten an.

(a) Tabellenform :

Man hat die Mengen Q und Σ durch Auflistungen gegeben, ebenso F ; weiter ein Elementq0 ∈ Q. Die Ubergangsfunktion δ ist als Tabelle (|Q| × |Σ|-Matrix) gegeben: Der Eintragam Schnittpunkt der Zeile fur q ∈ Q mit der Spalte fur a ∈ Σ ist δ(q, a) ∈ Q. Als Beispielbetrachte man Tabelle 2.1.

Diese Form ist besonders gut zur Ausfuhrung der Berechnungen von DFA’s und zur Ma-nipulation von DFA’s auf Rechnern geeignet. Die dazu benotigten Datenstrukturen mogeman sich selbst zurechtlegen. (Arrays fur Σ und Q, ein Bitvektor fur F , ein Index fur q0,ein zweidimensionales Array mit Eintragen aus Q fur δ. Wenn ein Eingabewort verarbeitetwird, muss nur ein Zustand, d. h. ein Index im Q-Array, gespeichert werden.)

(b) Beschreibung durch Formeln :

Mitunter ist Q so groß, dass eine explizite Auflistung nicht in Frage kommt. Man denkeetwa an ein 32 Bit breites Register, auf das eine Folge (b1, . . . , bm) von 30-Bit-Zahlenaufaddiert werden soll (modulo 232). Der Zustand ist der Inhalt des Registers, ein Eingabe-

”Buchstabe“ ist ein 30-Bit-String. Also ist Q = {0, 1}32 und Σ = {0, 1}30. Die Tabelle

hatte Große 262 ≈ 4,6 · 1018. Man schreibt aber einfach:

δ(q, a) = die Binardarstellung (mit 32 Bits) von ((q)2 + (a)2) mod 232,

fur q ∈ Q und a ∈ Σ; damit erubrigt sich das Berechnen und Speichern der Tabelle. DerStartzustand q0 ist eventuell das Wort 032; wie die Menge F zu wahlen ist, hangt von derAnwendung ab.

(c) Graphenform :

Man kann einen DFA M als einen gerichteten Graphen GM mit Knoten- und Kanten-markierungen auffassen. Jedem Zustand q ∈ Q entspricht ein Knoten vq mit Markierungq. Die (gerichteten) Kanten in GM sind mit Buchstaben a ∈ Σ markiert. Dabei verlaufteine mit a markierte Kante von vq nach vq′ genau dann wenn δ(q, a) = q′. Beachte, dassGM Mehrfachkanten (mit verschiedenen Markierungen) und Schleifen (Kanten mit dem-selben Anfangs- und Endpunkt) besitzen kann. Jeder Knoten in GM hat genau |Σ| vieleausgehende Kanten.

21

Page 25: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

q q’a

Einfachkante

(q,a)=q’δ

q q’a

b

d

b

d

Mehrfachkante

δ(q,a)=δ (q,d)=q’δ(q,b)=

a

q c

δ(q,a)=δ (q,c)=q

Schleife

Abbildung 2.2: Graphische Darstellung eines DFA

Eine Tabelle fur δ wie in (a) ist einfach eine kompakte Beschreibung von GM .

Die Knoten vq0und vq, q ∈ F , sind speziell markiert. Wenn wir GM zeichnen, markieren

wir vq0mit einem mit

”Start“ bezeichneten eingehenden Pfeil; die Knoten vq mit q ∈ F

erhalten einen doppelten Rand:

qq0Start

Abbildung 2.3: Startknoten (links) und Knoten fur einen akzeptierenden Zustand (rechts)

Bei der graphischen Darstellung vermeiden wir Mehrfachkanten von vq nach vq′ dadurch,dass wir nur eine Kante angeben und diese mit den Elementen der Menge {a ∈ Σ |δ(q, a) = q′} bzw. einer Abkurzung fur diese Menge markieren.

Der große Vorteil der Darstellung von endlichen Automaten als Graphen liegt nebender anschaulicheren Darstellung darin, dass DFA’s mit Graphenalgorithmen bearbeitetwerden konnen. Wir werden die Graphensichtweise oft verwenden.

Als graphische Darstellung des Automaten aus Beispiel 2.1.2 ergibt sich folgendes:

Start

0,3,6,9

1,4,7 1,4,7

1,4,7

2,5,8

0,3,6,92,5,80,3,6,92,5,8

0 1 2

Abbildung 2.4: Graphische Darstellung eines DFA

22

Page 26: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Die akzeptierende Berechnung von M auf der Eingabe x = 12211112 wird wie folgtdargestellt:

Start 1 2 2111120 1 0 2 0 1 2 0 2

Abbildung 2.5: Eine akzeptierende Berechnung

Man”sieht“, dass jedes Wort w = b1 · · · bm einen Weg in GM beschreibt, der in vq0

beginnt und dessen Kanten mit den Buchstaben b1, . . . , bm beschriftet sind. Dieser Wegist eindeutig bestimmt, weil δ eine Funktion ist. Die Darstellung der Berechnung wiein Abb. 2.1 ergibt sich dabei als

”abgewickelte“ Version dieses Weges, wobei die Knoten

wiederholt werden. Das Wort w wird genau dann akzeptiert, wenn der von w in G erzeugteWeg in einem Knoten vq mit q ∈ F endet.

2.1.4 Beispiel Sei Σ = B ∪Z, wo B = {a, . . . , z, A, . . . , Z} die Menge der Buchstabenund Z = {0, . . . , 9} die Menge der Dezimalziffern ist. Weiter sei

L := BΣ∗(= {w ∈ Σ∗ | w beginnt mit einem Buchstaben})

die Menge der legalen Bezeichner (”identifier“), z. B. in Pascal. Zum Beispiel sind eagle15

und afs2005 in L, nicht jedoch 1E oder ε. Der folgende Automat M = (Q,Σ, q0, F, δ)akzeptiert genau die Worter in L: Q = {0, 1, 2}, F = {1}, q0 = 0, und δ gegeben durchfolgendes Diagramm:

0

1

2

Start

B

Z

Σ

Σ

Abbildung 2.6: DFA mit Fehlerzustand”2“

Bemerkenswert an diesem Diagramm ist der Knoten v2:2 Σ

Ein solcher Knoten stellteinen

”Fehlerzustand“ dar. Wird wahrend der Verabeitung eines Eingabewortes einmal

dieser Zustand erreicht, kann er nie mehr verlassen werden, und der Automat wird ga-rantiert verwerfen. Mitunter lasst man in der graphischen Darstellung von DFA’s solcheFehlerzustande und die in sie hineinfuhrenden Kanten weg. Das sieht dann so aus:

0 1 ΣStart

B

Abbildung 2.7: DFA aus Abb. 2.6, Fehlerzustand weggelassen

23

Page 27: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Wenn beim Lesen eines Wortes w versucht wird, eine nicht vorhandene Kante zu benutzen,ist man schon sicher, dass w nicht akzeptiert wird.

Wir wenden uns nun der mathematischen Definition der zu einem DFA M gehorendenSprache zu. Man definiert, in welchen Zustand M gerat, wenn er in einem beliebigenZustand q startet und das Wort w = b1 · · · bm,m ≥ 0, liest, und sieht nach, ob dieserZustand in F liegt.

2.1.5 Definition

(a) Definiere δ : Q × Σ∗ −→ Q durch Induktion uber die Lange m eines Wortes w =b1 · · · bm:

δ(q, ε) := q, fur q ∈ Q.;

δ(q, b1 · · · bm) := δ(δ(q, b1 · · · bm−1), bm), fur q ∈ Q,m ≥ 1, b1, . . . , bm ∈ Σ.

(Kurz: δ(q, ε) = q, fur q ∈ Q; δ(q, ua) = δ(δ(q, u), a), fur q ∈ Q und u ∈ Σ∗, a ∈ Σ.)

(b) Fur w ∈ Σ∗ definieren wir: M akzeptiert w, falls δ(q0, w) ∈ F .

(c) LM := {w ∈ Σ∗ |M akzeptiert w}.Wenn L = LM , sagt man auch:

”M akzeptiert L“, als Abkurzung fur

”M akzeptiert

die Worter in L und nur diese“. Umgekehrt heißt L”die von M akzeptierte

Sprache“.

(d) Eine Sprache L heißt regular , falls es einen DFA M mit L = LM gibt.

(Die Herkunft der Bezeichnung”regular“ wird in Abschnitt 2.3 geklart.)

Fur q ∈ Q, a ∈ Σ gilt nach den Definitionen: δ(q, a) = δ(q, εa) = δ(δ(q, ε), a) = δ(q, a).Also ist δ eine Fortsetzung von δ von Q × Σ auf Q × Σ∗. Es kann also keine Verwirrungauftreten, wenn wir ab jetzt stets δ statt δ schreiben.

Die erweiterte δ-Funktion hat eine simple Interpretation im Automatengraphen GM :δ(q, w) = q′ gilt genau dann, wenn man in vq startend und dann den von w = b1 · · · bmvorgeschriebenen Kanten folgend den Knoten vq′ erreicht.

Wir notieren einfache Eigenschaften, die die Aneinanderreihung von Teilrechnungen be-treffen.

2.1.6 Bemerkung

(a) Sind w,w′ ∈ Σ∗, q ∈ Q, so ist δ(q, ww′) = δ(δ(q, w), w′).

(b) Sind w1, w2,∈ Σ∗, q ∈ Q mit δ(q, w1) = δ(q, w2), so ist δ(q, w1w′) = δ(q, w2w

′) furalle w′ ∈ Σ∗.

24

Page 28: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beweis (a) Diese Aussage sollte intuitiv klar sein. Wir geben den Beweis als Beispielfur einen einfachen Beweis

”durch Induktion uber die Lange von Wortern“ an.

Induktion uber |w′|:I. A.: Ist |w′| = 0, also w′ = ε, so ist δ(q, ww′) = δ(q, w) = δ(δ(q, w), ε) nach Definiti-on 2.1.5(a).I. S.: Ist |w′| ≥ 1, also w′ = ua fur u ∈ Σ∗, a ∈ Σ, so gilt:

δ(q, ww′) = δ(q, wua)2.1.5(a)

= δ(δ(q, wu), a)I.V.= δ(δ(δ(q, w), u), a)

2.1.5(a)=

= δ(δ(q, w), ua) = δ(δ(q, w), w′).

(b) δ(q, w1w′)

(a)= δ(δ(q, w1), w

′)Vor.= δ(δ(q, w2), w

′)(a)= δ(q, w2w

′). �

Bemerkung 2.1.6 kann man informal so ausdrucken: Alles, was ein DFA nach dem Leseneines Prafixes w der Eingabe

”weiß“, steckt in dem Zustand δ(q0, w). Weil Q endlich ist,

kann ein DFA nur endlich viele verschiedene Situationen auseinanderhalten. Wir benutzendies, um eine ganz einfache Aufgabe anzugeben, die kein DFA losen kann.

2.1.7 Beispiel (”Kein endlicher Automat kann beliebig weit zahlen“.) Wir betrachten

die SpracheL := {x ∈ {0, 1}∗ | |x|0 = |x|1},

die aus allen Binarwortern besteht, die genau gleich viele Nullen und Einsen haben. (ZumBeispiel ist 01100011 ∈ L, nicht aber 00011100.) Wir behaupten: L ist nicht regular. DerBeweis ist indirekt. Angenommen, es gilt L = LM fur einen DFA M = (Q,Σ, q0, F, δ).Weil Q endlich ist, konnen die Zustande δ(q0, 0), δ(q0, 0

2), δ(q0, 03), . . . nicht alle verschie-

den sein, also gibt es i, j ≥ 0 mit i < j, so dass δ(q0, 0i) = δ(q0, 0

j). Weil L = LM

und 0i1i ∈ L und 0j1i /∈ L, gilt δ(q0, 0i1i) ∈ F und δ(q0, 0

j1i) 6∈ F . Andererseits gilt(wegen δ(q0, 0

j) = δ(q0, 0i) und nach 2.1.6(b)), dass δ(q0, 0

i1i) = δ(q0, 0j1i). Dies ist der

gewunschte Widerspruch.

2.1.8 Bemerkung Zwischen Definition 2.1.5 und der graphischen Darstellung GM

von DFA’s besteht folgender einfacher Zusammenhang. Dabei ist mit GM die eigentlicheVersion, also die mit Mehrfachkanten, gemeint. Zu einem Zustand q und einem Wortx = b1 · · · bm gehort ein eindeutig bestimmter Weg der Lange m, der in vq startet unddessen Kanten mit b1, . . . , bm markiert sind. Offenbar gilt δ(q, b1 · · · bm) = q′ genau dann,wenn dieser Weg in vq′ endet. (Z. B. haben wir in Abbildung 2.5 den Weg, der in demAutomaten aus Beispiel 2.1.2 von Zustand 0 ausgehend durch das Wort 12211112 erzeugtwird, explizit angegeben.) Man beachte den Spezialfall m = 0, der einem Weg der Lange 0entspricht. Der Fall q = q0 fuhrt zu folgender Charakterisierung des Akzeptierungsbegriffs:

b1 · · · bm ∈ LM genau dann, wenn der eindeutige Weg, der in vq0startet und

Kantenbeschriftung b1, . . . , bm hat, in einem Knoten vq mit q ∈ F endet.

Zur Ubung interpretiere man Bemerkung 2.1.6(a) in der Sichtweise der Graphen. (Eswerden Wege aneinandergehangt.)

25

Page 29: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Wir wollen einige einfache Eigenschaften der Klasse der regularen Sprachen notieren.Vorher stellen wir ein Lemma bereit, das besagt, dass man bei einer regularen SpracheL das Alphabet des zugehorigen Automaten beliebig wahlen kann, solange das Alphabetalle Buchstaben enthalt, die in Wortern von L vorkommen. Beispiel : Die Sprache {02i |i ∈ N} = {ε, 00, 0000, 000000, . . .} der Strichlisten gerader Lange ist Sprache uber demAlphabet {0}, aber auch Sprache uber den Alphabeten {0, 1} und {0, 1, . . . , 9} usw.

2.1.9 Lemma Wenn L regulare Sprache ist und L ⊆ Σ∗, dann existiert ein DFAM = (Q,Σ, q0, F, δ) mit L = LM .

Beweis Weil L regular ist, existiert nach Definition 2.1.5(d) ein DFAM ′ = (Q′,Σ′, q′0, F′, δ′)

mit L = LM ′ . (Das Problem ist, dass Σ 6= Σ′ sein kann, und auf den ersten Blick keinDFA fur L mit Alphabet Σ in Sicht ist. Man stelle sich vor, Σ = {0, 1}, L ⊆ {0}∗, und wirhaben einen DFA fur L mit Alphabet Σ′ = {0, a, b}.) Wir bauen M ′ wie folgt zu einemneuen DFA M um: Buchstaben aus Σ′ − Σ werden nicht berucksichtigt (sie kommen inWortern aus L auf keinen Fall vor). Buchstaben aus Σ− Σ′ werden gelesen, fuhren abersofort in einen Fehlerzustand, denn auch sie kommen in Wortern aus L nicht vor. Formalsetzen wir:

Q = Q′ ∪ {qFEHLER}, fur einen neuen Zustand qFEHLER,

q0 = q′0,

F = F ′,

δ(q, a) = δ′(q, a), wenn q ∈ Q′, a ∈ Σ ∩ Σ′;

δ(q, a) = qFEHLER, wenn q ∈ Q′, a ∈ Σ− Σ′;

δ(qFEHLER, a) = qFEHLER fur alle q ∈ Q.

In der Graphendarstellung sieht die Anderung so aus: Aus GM ′ werden alle Kanten weg-gelassen, die mit a ∈ Σ′−Σ beschriftet sind. Sodann wird ein neuer Knoten fur den (ver-werfenden) Fehlerzustand qFEHLER hinzugefugt; aus allen ursprunglichen Knoten fuhrenKanten, die mit a ∈ Σ− Σ′ beschriftet sind, in diesen Fehlerknoten.

Es ist leicht zu sehen, dass folgendes gilt: Fur w ∈ (Σ∩Σ′)∗ ist δ(q0, w) = δ′(q′0, w), also istw ∈ LM genau dann wenn w ∈ LM ′ = L. (Formal beweist man das durch Induktion uberdie Lange von w.) Fur w ∈ Σ∗, die mindestens einen Buchstaben aus Σ − Σ′ enthalten,ist δ(q0, w) = qFEHLER, also w 6∈ LM . Daraus folgt LM = L. �

2.1.10 Satz

(a) Die Sprache L∅ = ∅ ist regular.

(b) Ist Σ ein Alphabet und w ∈ Σ∗, so ist {w} regular. (Insbesondere sind also {ε} und{a} fur a ∈ Σ regular.)

26

Page 30: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(c) Sind L1 und L2 regulare Sprachen, so sind auch L1 ∪ L2 und L1 ∩ L2 regular.

(d) Alle endlichen Sprachen sind regular.

(e) Ist L ⊆ Σ∗ eine regulare Sprache, so ist auch L = Σ∗ − L regular.

Beweis

(a) Der DFA

0Start Σ

(fur ein beliebiges Alphabet Σ) akzeptiert ∅. (Zur Ubung gebe man diesen Automa-ten auch in Tabellenform an.)

(b) Ist w = a1 · · · an ∈ Σ∗, so akzeptiert der DFA

1a a2 3a an-1 an

a2Σ−{ }3aΣ−{ } anΣ−{ }

Start . . . 0 1 2 n-1 n

qFEHLER

Σ. . .

Σ

Σ−{ }1a

die Sprache {w}.(Ubung: Wie sieht die Tabelle fur δ aus?)

Man beachte die folgenden Spezialfalle: Fur w = ε fallen die Zustande 0 und nzusammen, d. h. der DFA hat nur zwei Zustande 0 und qFEHLER. Dabei ist δ(0, a) =qFEHLER fur alle a ∈ Σ, und F = {0}. Fur w = a ∈ Σ hat der DFA drei Zustande 0,1 und qFEHLER. (Was ist δ und F?)

(c) Wahle ein Alphabet Σ mit L1 ∪ L2 ⊆ Σ∗ und (nach Lemma 2.1.9 geht das!)

DFA’s M1 = (Q1,Σ, q(1)0 , F1, δ1) und M2 = (Q2,Σ, q

(2)0 , F2, δ2) mit LM1

= L1 undLM2

= L2. Die Idee ist, beide Automaten”gleichzeitig“ laufen zu lassen. Dazu sieht

man Zustande vor, die aus einem M1-Zustand und einem M2-Zustand bestehen.

27

Page 31: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Aus offensichtlichen Grunden heißt die folgende Konstruktion Kreuzproduktkon-struktion . Definiere

Q := Q1 ×Q2,

q0 := (q(1)0 , q

(2)0 ),

δ((q(1), q(2)), a) :=(δ1(q

(1), a), δ2(q(2), a)

), fur q(1) ∈ Q1, q

(2) ∈ Q2, a ∈ Σ.

Man zeigt dann durch Induktion uber |w| :

δ(q0, w) = (δ1(q(1)0 , w), δ2(q

(2)0 , w)) ∈ Q, fur alle w ∈ Σ.

Wenn wir also definieren:

F ′ := {(q(1), q(2)) ∈ Q | q(1) ∈ F1 und q(2) ∈ F2},F ′′ := {(q(1), q(2)) ∈ Q | q(1) ∈ F1 oder q(2) ∈ F2},

so sehen wir (nach Definition 2.1.5), dass M ′ = (Q,Σ, q0, F′, δ) ein DFA fur L1 ∩L2

und M ′′ = (Q,Σ, q0, F′′, δ) ein DFA fur L1 ∪ L2 ist.

Analog kann man DFA’s fur andere Boolesche Kombinationen wie L1 − L2 oderL1 ⊕ L2 = (L1 − L2) ∪ (L2 − L1) konstruieren.

(Man uberlege zur Ubung, wie der Graph GM ′ bzw. GM ′′ aussieht. Tipp: Trage dieKnoten vonGM ′ in ein Gitter ein, dessen Zeilen mit q(1) ∈ Q1 und dessen Spalten mitq(2) ∈ Q2 beschriftet sind. Der Knoten fur Zustand (q(1), q(2)) sitzt am Schnittpunktvon Zeile q(1) und Spalte q(2).)

(d) Um einen DFA fur die Sprache L := {w1, . . . , wm} zu erhalten, definiere L0 := ∅und Li := {w1, . . . , wi}. Ein DFA fur Li entsteht aus dem fur Li−1 und dem fur{wi} (gemaß (b)) durch Anwendung der Konstruktion aus (c). Die Behauptungfolgt durch vollstandige Induktion.

Alternativ betrachte man die folgende direkte Konstruktion, die i. a. deutlich weni-ger Zustande benotigt. Es sei Σ ein Alphabet mit L ⊆ Σ∗. Die Idee ist folgende:Der DFA muss sich

”merken“, welche Zeichen er bisher gelesen hat. Wenn diese ein

Wort in L bilden, muss der DFA in einem akzeptierenden Zustand sein. Wenn diebisher gelesenen Zeichen nicht Prafix eines Wortes aus L sind, kann der DFA ineinen Fehlerzustand gehen. Nach kurzer Uberlegung sieht man, dass man als Zu-standsmenge einfach die Menge aller Prafixe der Worter in L und einen zusatzlichenFehlerzustand nehmen kann.

Q := {u ∈ Σ∗ | u ist Prafix eines Wortes w ∈ L} ∪ {qFEHLER};q0 := ε;

F := L;

δ(u, a) := ua, falls u ∈ Q− {qFEHLER} und ua ∈ Q,δ(u, a) := qFEHLER, falls u ∈ Q− {qFEHLER} und ua 6∈ Q,

δ(qFEHLER, a) := qFEHLER fur alle a ∈ Σ.

28

Page 32: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(Ein Beispiel fur diese Konstruktion findet sich in Beispiel 2.1.11(c).) Man kann nundurch Induktion uber |w| zeigen, dass δ(q0, w) = w ist, falls w Prafix eines Wortesin L ist und δ(q0, w) = qFEHLER sonst. Daraus folgt nach der Definition von F , dassM genau die Worter in L akzeptiert.

(e) Nach Lemma 2.1.9 ist es moglich, einen DFA M = (Q,Σ, q0, F, δ) mit L = LM zuwahlen. Dann definiere F ′ := Q − F und M ′ := (Q,Σ, q0, F

′, δ), d. h. M ′ entstehtaus M durch Vertauschen von akzeptierenden und nicht akzeptierenden Zustanden.Es ist klar, dass L = Σ∗ − L = LM ′ , da fur w ∈ Σ∗ gilt:

w ∈ L⇔ w 6∈ L⇔ δ(q0, w) 6∈ F ⇔ δ(q0, w) ∈ F ′.Beachte: Fur diese Konstruktion ist es notig, dass δ eine Funktion ist. Die nichtdetermi-nistischen endlichen Automaten des nachsten Abschnitts lassen diese Konstruktion nichtzu. �

2.1.11 Beispiel

(a) Die Sprachen L0 = {x ∈ {0, 1}∗ | |x|0 gerade} und L1 = {x ∈ {0, 1}∗ ||x|1 gerade} sind regular: Offenbar ist L0 = LM0

fur folgenden DFA M0:

0 1Start

110

0

Vertauschen wir bei den Kantenmarkierungen 0 und 1, erhalten wir einen DFA M1

fur die Sprache L1. Setzen wir in M0 F′ = {0, 1} − F = {1}, so erhalten wir einen

DFA M ′0 fur die Sprache L0 = {x ∈ {0, 1}∗ | |x|0 ungerade}.

(b) Die mit dem Verfahren von Satz 2.1.10(c) konstruierten Automaten fur L0 ∪ L1,L0 ∩ L1, L0 ∪ L1 sehen im Prinzip wie folgt aus:

(0,0)Start

(1,0) (1,1)

(0,1)

0 0

1

1

0 01

1

29

Page 33: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Gezeichnet ist ein Automat fur L0∩L1. Automaten fur die anderen Sprachen erhaltman durch Variieren der Menge der Endzustande. Z. B. entspricht F = {(0, 0), (0, 1),(1, 0)} der Sprache L0 ∪ L1, und F = {(1, 1)} der Sprache L0 ∪ L1.

(c) Der mit dem Verfahren von Satz 2.1.10(d) konstruierte Automat fur die endlicheSprache L = {bei, beine, bube} (Prafixautomat) sieht folgendermaßen aus. Dabeiist der Fehlerzustand mit

”∅“ markiert.

e

bube

bei beinebein

0/

be

i n

u

eb

ε b

be

bu bub

Start

2.1.1 Endliche Automaten mit Ausgabe

Fur die Modellierung von Aufgaben sind auch endliche Automaten wichtig, die uber dasAkzeptieren/Verwerfen hinaus andere Ausgabesignale erzeugen. Beispiele hierfur wurdenauch in der Veranstaltung

”Rechnerorganisation“ besprochen. Wir skizzieren hier, wie

eine solche Zusatzanforderung in unseren formalen Rahmen passt. Hierfur skizzieren wirMealy-Automaten , bei denen die Ausgabe ein beliebiges (auch leeres) Wort sein kann,das vom gegenwartigen Zustand und vom gelesenen Zeichen abhangt.

Ein Mealy-Automat ist ein 6-Tupel M = (Q,Σ,Γ, q0, δ, λ), wobei

• Q die endliche, nichtleere Zustandsmenge ist,

• Σ das Alphabet der Eingangssignale/-symbole,

• Γ das Alphabet der Ausgabesignale/-symbole,

• q0 ∈ Q der Startzustand,

• δ : Q× Σ→ Q die Ubergangsfunktion, und

• (NEU) λ : Q× Σ→ Γ∗ die Ausgabefunktion

30

Page 34: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

ist.

Ein solcher Automat arbeitet wie folgt, in Schritten. M startet in Zustand q0. Wenn M inZustand q ist und Signal bzw. Symbol a ∈ Σ erhalt bzw. liest, wechselt M in den neuenZustand q′ = δ(q, a) und gibt die Folge λ(q, a) ∈ Γ∗ aus. (Dies konnte durch Ausgebeneiner Folge von Signalen oder durch Schreiben auf ein Ausgabeband erfolgen.)

Wie bei DFA’s kann man das Verhalten von M auf einem Eingabewort w ∈ Σ∗ (einerSignalfolge) induktiv beschreiben:

δ(q, ε) = q; δ(q, ua) = δ(δ(q, u), a), fur u ∈ Σ∗, a ∈ Σ;λ(q, ε) = ε ∈ Γ∗; λ(q, ua) = λ(q, u)λ(δ(q, u), a), fur u ∈ Σ∗, a ∈ Σ.

Dann sagt δ(q, w), welchen Zusatnd der Automat nach Lesen von w hat, und λ(q, w) sagt,welche Ausgabe von der Eingabe w bewirkt wird, falls der Automat im Zustand q startet.

Beispiel : Der folgende Mealy-Automat ersetzt in einer Eingabe w ∈ {0, 1}∗ jeden Blockvon ≥ 1 aufeinander folgenden Nullen durch 00. Er tut dies, indem er Einsen kopiert unddie jeweils erste Null in einem Block von Nullen verdoppelt, die darauf folgenden jedochignoriert.

Zustandsmenge: Q = {p0, p1}.(Intuition: p0: letztes Symbol war = 0; p1: letztes Symbol war 6= 0.)q0 := p1.δ(q, 1) = p1, λ(q, 1) = 1, fur q ∈ Q.δ(p0, 0) = p0; λ(p0, 0) = ε;δ(p1, 0) = p0; λ(p1, 0) = 00.

Zur Ubung sollte man sich Tabelle und graphische Darstellung fur M aufmalen. (An derKante von vq zu vq′ steht a | x wenn δ(q, a) = q′ und λ(q, a) = x ∈ Γ∗.)

Studieren Sie die Arbeitsweise von M an einigen Beispielen! (Eingabe 000100101110 sollteAusgabe 0010010011100 liefern.)

Eine Variante von Automaten mit Ausgabe sind die Moore-Automaten . Bei dieserSorte hangt die Ausgabe in einem Schritt nicht vom gelesenen Zeichen, sondern nur vomZustand ab. Es ist nicht schwer, sich zu uberlegen, dass bis auf oberflachliche UnterschiedeMoore- und Mealy-Automaten genau dieselben

”Ubersetzungs-Aufgaben“ losen konnen.

Alle Einzelheiten uber die entsprechenden Konstruktionen sind in der Literatur zu finden.

2.2 Nichtdeterministische endliche Automaten

Nichtdeterministische Automaten unterscheiden sich von deterministischen dadurch, dasssie in einer gegebenen Situation (Zustand und neu gelesenes Zeichen) eventuell die Moglich-keit haben, unter mehreren Nachfolgezustanden auszuwahlen. Nach wie vor liest der Au-tomat in jedem Schritt einen Buchstaben, jedoch ist zugelassen, dass zu einem gegebenengegenwartigen Zustand q und gelesenem Buchstaben a kein, ein oder mehr als ein legalerNachfolgezustand q′ existieren. Demgemaß gibt es zu einer Eingabe w unter Umstanden

31

Page 35: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

mehrere legale Berechnungen.

2.2.1 Beispiel (Eingeschranktes Rucksackproblem) Wir stellen uns folgendeSituation vor: Ein Einbrecher ist mit einem Rucksack ausgerustet, der genau h Kubikzen-timeter fasst, fur ein h ∈ N. Er steht in einem Raum, in dem sich n Sackchen befinden, diemit Edelmetallkrumeln gefullt sind. Die Sackchen sind beliebig verformbar; ihre Voluminasind a1, a2, . . . , an, wobei die ai Zahlen in {1, . . . , h} sind. Naturlich mochte der Einbre-cher seinen Rucksack moglichst voll packen. Ist es moglich, eine Teilmenge der Sackchenauszuwahlen, so dass die Kapazitat h des Rucksacks perfekt ausgenutzt wird? Technischausgedruckt: gibt es eine Teilfolge i1 < · · · < ik in der Folge 1, . . . , n derart dass

ai1 + · · ·+ aik = h

ist? Um diese Situation als Sprache zu modellieren, legen wir als Eingabealphabet dieMenge Σh = {1, 2, . . . , h} fest, fur ein h ≥ 1. Unser Problem entspricht dann dem Wort-problem fur die Sprache

LRSh =

{a1 · · · an ∈ Σ∗

∣∣ ∃I ⊆ {1, . . . , n} :∑

i∈I

ai = h}.

Beispielsweise ist (2, 2, 2, 2, 2, 2) /∈ LRS5 , jedoch (2, 1, 2, 3, 2, 1, 3) ∈ LRS

5 .

Wir wollen das Problem mit einem nichtdeterministischen Verfahren losen, bei dem dieReihe der Zahlen a1, . . . , an nur einmal von links nach rechts gelesen wird. Fur eine Einga-befolge (ein Eingabewort) w = a1 · · · an ∈ Σ∗h wollen wir also herausbekommen, ob es eineTeilfolge gibt, die sich zu h summiert. Wir geben einen endlichen Automaten mit nichteindeutig bestimmten Ubergangen an, der zur Bearbeitung des Problems geeignet ist. AlsZustandsmenge wahlen wir Q = {0, 1, . . . , h} (mit der Intention, in einem Zustand q dieSumme der bisher gewahlten Volumina zu speichern). Wir starten mit q0 = 0 (anfangsist nichts gewahlt) und zielen auf F = {h} (am Ende soll die Summe h genau erreichtsein). Wird nun ein Eingabezeichen a ∈ Σh gelesen, kann man die Zahl a entweder derTeilsumme hinzufugen oder nicht. Mogliche neue Zustande sind also q (Gegenstand nichtnehmen) oder q+a (Gegenstand nehmen — das ist naturlich nur sinnvoll, wenn q+a ≤ hist). Formal drucken wir das so aus, dass wir als Wert δ(q, a) die Menge aller Zustandeangeben, die von q aus gewahlt werden durfen, wenn a gelesen wird. Also:

δ(q, a) :=

{{q, q + a}, falls q + a ≤ h,{q}, falls q + a > h.

Nun kann eine Eingabe zu mehreren verschiedenen legalen Berechnungen fuhren. Bei-spielsweise kann man auf Eingabe w = (2, 1, 3, 1) unter anderen die beiden in Abb. 2.8gezeigten Berechnungen erhalten.

32

Page 36: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

4

42 1 3 1

0 2 3

02 1 3 1

50 1

3

Start

Start

Abbildung 2.8: Zwei verschiedene Berechnungen fur eine Eingabe auf einem NFA

Um einen Uberblick uber alle moglichen Berechnungen zu erhalten, stellen wir diese ineinem

”Berechnungsbaum“ dar. Fur jeden erreichten Zustand und das nachste eingelesene

Zeichen stellt man alle moglichen Nachfolgezustande als Knoten dar. Zum Beispiel ergebensich fur die Eingabeworter (2, 4, 2, 2) und (2, 1, 3, 1), wo h = 5, die in Abb. 2.9 angegebenenBilder.

Start

0 2 42 4 2 4 4

0 2 4 2 4

0 4 2

0 2

02 2

4 4 4

2 2 2 2 2

2 2 2 2 2 2 2 2

1

2

1 1 1 1

3 3 3 3 3 3 3

111111111111

2

0 3 1

4

4 2 5 3

0 1 2 3

0 2

0Start

0 1 3 4 1 2 5 2 3 5 3 4

Abbildung 2.9: Alle Berechnungen fur (2, 4, 2, 2) und (2, 1, 3, 1), fur h = 5

Bei Eingabe (2, 4, 2, 2) /∈ LRS5 enden alle Berechnungen in nicht akzeptierenden Zustanden;

dies entspricht der Situation, dass es keine Folge von Entscheidungen gibt, die dazu fuhrt,dass man am Ende in Zustand h = 5 landet. Bei Eingabe (2, 1, 3, 1) ∈ LRS

5 enden mancheBerechnungen in nicht akzeptierenden Zustanden; hier hat man unterwegs ungeeigneteEntscheidungen getroffen. Es gibt aber zwei verschiedene Berechnungswege, die zum ak-zeptierenden Zustand h = 5 fuhren.

Auch fur kleine Zustandsmengen und Alphabete konnen die Berechnungsbaume sehr großwerden. Konnen wir hier etwas sparen? Man sieht, dass Zustande auf demselben Level

33

Page 37: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

mehrfach aufgelistet werden, obwohl dies eigentlich nicht notig ist. Eine kurze Uberle-gung fuhrt zu der Erkenntnis, dass es genugt, die Menge der auf einem Level auftreten-den Zustande zu registrieren. (Das sind {0}, {0, 2}, {0, 2, 4}, {0, 2, 4}, {0, 2, 4} im erstenund {0}, {0, 2}, {0, 1, 2, 3}, {0, 1, 2, 3, 4, 5}, {0, 1, 2, 3, 4, 5} im zweiten Baum in Abb. 2.9.)Diese Beobachtung werden wir benutzen, um den Akzeptierungsmodus fur unsere nicht-deterministischen Automaten zu definieren.

Wir entwickeln nun die formale Definition von nichtdeterministischen endlichen Automa-ten. Ein solcher Automat M spezifiziert Q,Σ, q0, F und eine Ubergangsfunktionδ : Q× Σ→ P(Q) (wobei P(Q) die Potenzmenge {B | B ⊆ Q} bezeichnet).

2.2.2 Definition Ein nichtdeterministischer endlicher Automat (”nondeter-

ministic finite automaton“, abgekurzt NFA) M besteht aus

• einer endlichen Menge Q;

• einem Alphabet Σ;

• einem ausgezeichneten Zustand q0 ∈ Q;

• einer Menge F ⊆ Q;

• einer”Ubergangsfunktion“ δ : Q× Σ→ P(Q).

(Formal schreibt man M = (Q,Σ, q0, F, δ).)

Die Situation, dass q′ ∈ δ(q, a) ist, ist so zu interpretieren, dass M in den Zustand q′

ubergehen darf, falls er in Zustand q ist und a liest. Man beachte, dass δ(q, a) leer seinkann (kein Nachfolgezustand), ein Element enthalten kann (Nachfolgezustand eindeutigbestimmt), oder mehr als ein Element enthalten kann (nichtdeterministische Auswahl).

Der NFA M = MRS5 aus Beispiel 2.2.1 sieht dann folgendermaßen aus: M = (Q,Σ, q0, F, δ)

mit Q = {0, 1, 2, 3, 4, 5}, Σ = {1, 2, 3, 4, 5}, q0 = 0, F = {5}, und δ wie in Tabelle 2.3angegeben.

(Es ist untypisch an diesem Automaten, dass in jeder Situation mindestens ein nachsterSchritt moglich ist.)

Wenn ein NFA M = (Q,Σ, q0, F, δ) gegeben ist, setzen wir δ wieder auf Q × Σ∗ fort,definieren also aus δ eine iterierte Version δ. Wenn dann q′ ∈ δ(q, w) ist, bedeutet dies,dass der NFA, in Zustand q gestartet, bei der Verarbeitung des Wortes w in den Zustand q′

gelangen kann. Basierend auf unseren Beobachtungen zu Abb. 2.9 erfassen wir die Mengeder beim Lesen von w erreichbaren Zustande.

34

Page 38: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

aq 1 2 3 4 5

0 {0, 1} {0, 2} {0, 3} {0, 4} {0, 5}1 {1, 2} {1, 3} {1, 4} {1, 5} {1}2 {2, 3} {2, 4} {2, 5} {2} {2}3 {3, 4} {3, 5} {3} {3} {3}4 {4, 5} {4} {4} {4} {4}5 {5} {5} {5} {5} {5}

Tabelle 2.3: Tabellendarstellung der Ubergangsfunktion δ eines NFA

2.2.3 Definition Wir definieren δ : Q × Σ∗ → P(Q) durch Induktion uber die Langevon w ∈ Σ, wie folgt.

δ(q, ε) := q, fur q ∈ Q;

δ(q, ua) :=⋃

q′∈δ(q,u)

δ(q′, a), fur q ∈ Q, u ∈ Σ∗, a ∈ Σ.

Im in Abb. 2.3 angegebenen Beispiel ist etwa δ(1, ε) = {1}, δ(1, 2) = {1, 3}, δ(1, (2, 2)) ={1, 3} ∪ {3, 5} = {1, 3, 5}, und δ(1, (2, 2, 1)) = {1, 2} ∪ {3, 4} ∪ {5} = {1, 2, 3, 4, 5}.Wir beobachten, dass

δ(q, a) =⋃

q′∈δ(q,ε)

δ(q′, a) =⋃

q′∈{q}

δ(q′, a) = δ(q, a)

ist. Wie im Falle der DFA’s schreiben wir also wieder δ statt δ, ohne dass Verwechslungenauftreten konnen.

Um die doch recht technische Definition der iterierten δ-Funktion besser verstehen zukonnen, ubersetzen wir sie in die Sprache von Berechnungen. Wie gewunscht, zeigt sich,dass q′ ∈ δ(q, w) ist genau dann wenn es die Moglichkeit gibt, von q startend unter Lesenvon w nach q′ zu gelangen, wobei in jedem Schritt ein nach δ erlaubter Zustandsubergangstattfindet.

2.2.4 Lemma In der Situation von Definition 2.2.3 gilt q′ ∈ δ(q, b1 · · · bm) fur ein Wortw = b1 · · · bm genau dann wenn es eine Folge p0, . . . , pm in Q gibt derart dass p0 = q,pm = q′ und pi ∈ δ(pi−1, bi) fur 1 ≤ i ≤ m.

Beweis Dies wird durch Induktion uber die Lange m des Eingabewortes w = b1 · · · bmbewiesen.

35

Page 39: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Wenn m = 0, also w = ε ist, dann ist δ(q, w) = {q} und es gibt nur eine Folge p0, . . . , pm

mit der beschriebenen Eigenschaft, namlich die Folge mit dem einen Element q.

Sei nun m ≥ 1. Als Induktionsvoraussetzung nehmen wir an, die Aussage sei wahr furalle Worter u der Lange m− 1. Wir betrachten ein Wort w = b1 · · · bm.

”⇐“: Wenn es eine Zustandsfolge p0, . . . , pm in Q gibt derart dass p0 = q, pm = q′ undpi ∈ δ(pi−1, bi) fur 1 ≤ i ≤ m, dann folgt nach I.V., dass pm−1 ∈ δ(q, b1 · · · bm−1) gilt. Weilnun q′ ∈ δ(pm−1, bm), gilt nach Definition 2.2.3 auch q′ ∈ δ(q, b1 · · · bm).

”⇒“: Wenn q′ ∈ δ(q, b1 · · · bm), dann heißt dies nach der Definition, dass q′ ∈ δ(q′′, bm) fur

einen Zustand q′′ ∈ δ(q, b1 · · · bm−1). Nach I.V. gibt es dann eine Folge p0, . . . , pm−1 in Qmit p0 = q und pm−1 = q′′, derart dass pi ∈ δ(pi−1, bi) fur 1 ≤ i ≤ m − 1. Wir konnen q′

einfach an diese Folge anhangen. �

2.2.5 Definition Ein NFA M = (Q,Σ, q0, F, δ) sei gegeben.

(a) Fur w ∈ Σ∗ definiere: M akzeptiert w, falls δ(q0, w) ∩ F 6= ∅, d. h. wenn man,von q0 startend, bei der Verarbeitung des Wortes w einen akzeptierenden Zustanderreichen kann. (Das ist genau dann der Fall, wenn eine Folge p0, . . . , pm in Q mitp0 = q0, pm ∈ F und pi ∈ δ(pi−1, bi) fur 1 ≤ i ≤ m existiert.)

(b) LM := {w ∈ Σ∗ |M akzeptiert w}. LM heißt die von M akzeptierte Sprache .

Das Modell”nichtdeterministischer endlicher Automat“ ist nicht als eine Maschine zu

denken, die direkt gemaß ihrer Ubergangsfunktion rechnen kann, sondern vielmehr alseine Moglichkeit, in kompakter Weise eine Sprache zu spezifizieren. Wie wir gleich sehenwerden, kann man aber aus einem NFA M einen in gewisser Weise effizienten determi-nistischen Algorithmus fur das Wortproblem von LM gewinnen. Die in Definition 2.2.3angegebene rekursive Formel fuhrt namlich zu einem iterativen Algorithmus, der bei Ein-gabe w = b1 · · · bm nacheinander δ(q, b1 · · · bt) fur t = 0, 1, . . . ,m berechnet und hierfureine einigermaßen maßige Rechenzeit benotigt — solange die Ubergangsfunktion δ alsTabelle gespeichert werden kann. Wenn M ein NFA ist, benutzen wir

|M | :=∑

q∈Q,a∈Σ

(1 + |δ(q, a)|)

als ein Maß fur die Große von M . Dies entspricht in etwa der Anzahl der Eintrage vonZustanden in einer tabellarischen Auflistung von δ.

2.2.6 Satz Es gibt einen Algorithmus zur Losung des”Wortproblems fur NFA’s“, d.h.

fur das Problem, zu vorgelegtem NFA M und w ∈ Σ∗ zu entscheiden, ob w ∈ LM odernicht. Die Laufzeit des Algorithmus ist O(|M | · |w|); der Platzbedarf ist O(|Q|).

36

Page 40: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beweis Wir geben etwas allgemeiner einen Algorithmus an, der die Menge δ(qin, w)berechnet, fur ein beliebiges gegebenes qin ∈ Q und ein w = b1 · · · bm ∈ Σ∗. Um dasWortproblem zu entscheiden, berechnet man mit dem Algorithmus δ(q0, w) und pruft, obdiese Menge ein Element von F enthalt.

Fur den Algorithmus setzen wir voraus, dass die Zustandsmenge Q einfach {1, 2, . . . , s}ist. Eine Teilmenge von Q lasst sich dann durch einen Bitvektor der Lange s darstel-len. Wir benutzen zwei solche Bitvektoren, Aalt[1..s] und Aneu[1..s]. Der BitvektorAneu[1..s] wird mit Nullen vorbesetzt, nur Aneu[qin] ist 1. Nun wird fur i = 1, 2, . . . ,mfolgendes durchgefuhrt:

1. kopiere Aneu[1..s] nach Aalt[1..s];

2. setze alle Eintrage in Aneu[1..s] auf 0;

3. fur jedes p mit Aalt[p] = 1 tue folgendes:fur jedes q ∈ δ(p, bi) fuhre Aneu[q]← 1 aus.

Die Ausgabe steht in Aneu[1..s].

Es ist mit einem Induktionsbeweis leicht zu sehen, dass der Algorithmus im Schleifen-durchlauf fur bi einen Bitvektor berechnet, der die Menge δ(qin, b1 · · · bi) darstellt. Wenndie Ubergangsfunktion in Tabellenform gegeben ist, dann erfordert die Ausfuhrung desSchleifendurchlaufs fur bi das Lesen und Abarbeiten der gesamten Spalte fur den Buch-staben a in der Tabelle. Diese Spalte hat Lange s, aber jeder Eintrag kann eine umfang-reiche Menge darstellen. Den gesamten Zeitaufwand konnen wir aber sicher als O(|M |)abschatzen (was den Kosten entspricht, die das Lesen der gesamten δ-Tabelle verursacht).

2.2.7 Bemerkung (Vgl. Bemerkung 2.1.3.) Auch NFA’s lassen sich bequem als GraphGM darstellen. Wieder gibt es fur jeden Zustand q ∈ Q einen Knoten vq, und von vq nachvq′ verlauft eine mit a ∈ Σ markierte Kante genau dann wenn q′ ∈ δ(q, a). Im Gegensatzzu DFA’s kann es nun sein, dass zu q ∈ Q und a ∈ Σ keine oder eine mit a markierteKante oder mehrere mit dem Buchstaben a markierte Kanten in vq beginnen:

a

amit Markierung

q q’

mit Markierungaus keine Kanteq

a

q

δ( , ) = {}q

aa

a

q’

q’’’

q’’q

q aδ( , ) = { , , }q’ q’’ q’’’

drei Kantenamit Markierung

eine Kante

a

q aδ( , ) = { }q’

37

Page 41: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Die Konventionen uber die Zusammenfassung von Mehrfachkanten sind dieselben wie beiden DFA’s.

Fortsetzung von Beispiel 2.2.1: Der NFA fur LRS3 hat die in Abb. 2.10 angegebene Graph-

darstellung.

2 2

3

1 1 1

1,2,3 1,2,3 1,2,3 1,2,3

Start 0 1 2 3

Abbildung 2.10: Graphdarstellung eines NFA

Wir beobachten, dass nunmehr Startknoten vq und Kantenbeschriftung b1, . . . , bm nichtmehr eindeutig einen Weg in GM festlegen. Unter Umstanden gibt es auch gar keinen mitb1, . . . , bm beschrifteten Weg, der in vq beginnt. Auf jeden Fall gilt fur q, q′ ∈ Q, b1 · · · bm ∈Σ∗ die folgende Charakterisierung des Akzeptierungsverhaltens eines NFA M . (Dies isteinfach eine Ubertragung von Definition 2.2.3 und der Charakterisierung der δ-Funktionin Lemma 2.2.4 in die Graphdarstellungs-Sprechweise.)

(a) q′ ∈ δ(q, b1 · · · bm) genau dann, wenn in GM ein Weg von vq nach vq′ existiert, dessenKanten mit b1, . . . , bm beschriftet sind.

Und damit, nach Definition 2.2.5(a):

(b) M akzeptiert b1 · · · bm genau dann, wenn in GM ein Weg von vq0zu einem Knoten

vq mit q ∈ F existiert, dessen Kanten mit b1, . . . , bm beschriftet sind.

Um ein Gefuhl fur diese Aussage zu bekommen, suche man im Graphen in Abb. 2.10Wege fur Eingaben (2, 2, 2, 2) und (1, 2, 3, 1, 2).

Man sieht sofort, dass jeder DFA M = (Q,Σ, q0, F, δ) einen NFA M ′ = (Q,Σ, q0, F, δ′)

bestimmt, der”dasselbe tut“ wie M : definiere einfach δ′(q, a) := {δ(q, a)}. Wir sagen:

”Jeder DFA M kann auch als NFA aufgefasst werden“. Wie sieht es mit der umgekehrten

Richtung aus?

Wir stellen im nachsten Satz fest, dass im Prinzip NFA’s nicht mehr leisten (also nichtmehr Sprachen akzeptieren) als DFA’s. Dennoch sind NFA’s nutzlich und wichtig: furtheoretische Untersuchungen wie die Klarung der Beziehung zwischen DFA’s und Gram-matiken und regularen Ausdrucken, die wir spater kennenlernen werden; zur bequemenKonstruktion von Automaten, wo direkte DFA-Konstruktionen muhselig waren; schließ-lich zur kompakten Darstellung von Automaten fur Sprachen, deren DFA’s zu groß waren(s. Bsp. 2.2.10 unten).

38

Page 42: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.2.8 Satz Ist L = LM fur einen NFA M , so gilt L = LM ′ fur einen DFA M ′.

Beweis (”Potenzmengenkonstruktion“) Sei M = (Q,Σ, q0, F, δ). Nach Definiti-

on 2.2.3 kann die Gesamtheit aller Berechnungen von M auf Eingabe w = b1 · · · bm durcheine Folge δ(q0, ε), δ(q0, b1), δ(q0, b1b2), . . . , δ(q0, b1 · · · bi), . . . , δ(q0, w) von Teilmengen vonQ dargestellt werden. Wir benutzen dementsprechend die Potenzmenge P(Q) als Zu-standsmenge fur M ′, und definieren: M ′ := (Q′,Σ, q′0, F

′, δ′), wo

Q′ := P(Q) = {B | B ⊆ Q};q′0 := {q0};F ′ := {B ∈ Q′ | B ∩ F 6= ∅};

δ′(B, a) :=⋃

q∈B

δ(q, a), fur B ∈ Q′, a ∈ Σ.

δ′(B, a) ist die Menge der Zustande, die M erreichen kann, wenn in einem Zustand q ∈ Bder Buchstabe a gelesen wird. Wir mussen zeigen, dass M ′ dieselben Worter akzeptiertwie M . Hierzu stellen wir einen Zusammenhang zwischen den beiden Automaten her:

Behauptung : δ′({q}, w) = δ(q, w) fur alle q ∈ Q,w ∈ Σ∗.

(Dabei ist δ′ die eben definierte Funktion, gehort also zu M ′, δ ist wie in 2.2.3, gehortalso zu M .)

Beweis der Behauptung durch Induktion uber |w| :w = ε :

δ′({q}, ε) Def.2.1.5(a)= {q} Def.2.2.3

= δ(q, ε).

w = ua fur u ∈ Σ∗, a ∈ Σ:

δ′({q}, ua) Def.2.1.5(a)= δ′(δ′({q}, u), a) I.V.

= δ′(δ(q, u), a)

Def. δ′=

q′∈δ(q,u)

δ(q′, a)2.2.3= δ(q, ua).

Damit haben wir, fur alle w ∈ Σ∗:

w ∈ LM

Def.2.2.5(a)⇔ δ(q0, w) ∩ F 6= ∅ Beh.⇔ δ′({q0}, w) ∩ F 6= ∅Def. q′

0,F ′

⇔ δ′(q′0, w) ∈ F ′ Def.2.1.5(b)⇔ w ∈ LM ′ .

Also ist LM = LM ′ . �

39

Page 43: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.2.9 Beispiel Wir fuhren Beispiel 2.2.1 fort, indem wir einen DFA fur LRSh angeben.

Die Potenzmengenkonstruktion liefert:

Q′ := P({0, 1, . . . , h})Σ = {1, . . . , h}q′0 := {0}F ′ := {B ⊆ {0, 1, . . . , h} | h ∈ B}

und, fur B ∈ Q′, a ∈ Σ :

δ′(B, a) := B ∪ ({b+ a | b ∈ B} ∩ {0, . . . , h}).

Als Beispiel wahlen wir h = 3 und geben den resultierenden Automaten graphisch an.Dabei werden Mengen durch Listen ihrer Elemente dargestellt.

0,1,2 0,1,3 0,2,3 1,2 1,2,3 1,3 2,3

0

0,1 0,2 0,3

Ο

0,1,2,3

321

Start

1 2

2

3

3

1 23 1 3 1 2

1,2,3

1,2,3

1,2

3

2,3

1

3

1,2,3 2,3 1,2,3

1 2

3

2,3

1

1,2,3

1,2,3

1 1

Beachte, dass im vorigen Beispiel der Teil des Graphen rechts (die Zustande B mit 0 6∈ B)in keiner Berechnung eine Rolle spielt, da diese Zustande vom Startzustand {0} nichterreicht werden konnen. (Solche Zustande heißen

”uberflussig“ und konnen weggelassen

werden, siehe weiter unten.) Man kann bei der Erstellung des Potenzmengenautomatendie Erzeugung uberflussiger Zustande vermeiden, indem man mit B0 = {q0} startet unddann nur solche Zustande generiert, die von einem bisher schon vorliegenden Zustand Baus durch Lesen eines Buchstabens erreicht werden, also als B′ =

⋃q∈B δ(q, a) darstellbar

sind.

Man kann dies zum Beispiel als Algorithmus formulieren, der mit einer (anfangs leeren)Warteschlange arbeitet:

40

Page 44: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Setze B0 := {q0}; (∗ Startzustand von M ′ ∗)setze B := {B0}. (∗ bisher erzeugte Zustande ∗)Fuge B0 in die Warteschlange ein.Solange die Warteschlange nicht leer ist:

entnehme ein B aus der Warteschlange;fur jedes a ∈ Σ teste ob B′ =

⋃q∈B δ(q, a) in B ist,

falls nicht, setze B := B ∪ {B′}und fuge B′ in die Warteschlange ein.

Ausgabe: B.

Nebenbei konnen wir die Tabelle fur die Ubergangsfunktion δ′ erzeugen.

Wie groß wird der von der Potenzmengenkonstruktion erzeugte DFA M ′? Grundsatzlichgibt es nur die obere Schranke |Q′| = 2|Q|. Lasst man uberflussige Zustande weg, wirdQ′ u. U. kleiner. Jedoch zeigt es sich, dass in manchen Fallen der exponentielle Blow-upunvermeidbar ist.

2.2.10 Beispiel Sei n ≥ 1 fest, und sei L = {0, 1}∗{0}{0, 1}n−1, die Menge allerBinarstrings der Lange mindestens n, die an der n-ten Stelle von rechts eine 0 haben. EinNFA fur L mit n+ 1 Zustanden sieht aus wie folgt:

0 n-11 2 n...Start

0,1

0 0,1 0,1 0,1

Die pure Potenzmengenkonstruktion liefert einen DFA mit 2n+1 Zustanden. Von diesensind 2n nicht erreichbar, namlich die B mit 0 /∈ B, wie man sich leicht uberlegt. DurchWeglassen dieser Zustande erhalten wir einen DFA mit 2n Zustanden. Andererseits gilt:

Behauptung : Jeder DFA M = (Q,Σ, q0, F, δ) mit L = LM hat mindestens 2n Zustande.

Dies sieht man mit folgendem indirekten Beweis ein: Angenommen, |Q| < 2n. Dannexistieren zwei verschiedene Worter a1 · · · an, b1 · · · bn ∈ {0, 1}n mit δ(q0, a1 · · · an) =δ(q0, b1 · · · bn). Wahle ein imit ai 6= bi, z. B. ai = 0 und bi = 1. Dann gilt a1 · · · ai · · · an0i−1 ∈L und b1 · · · bi · · · bn0i−1 6∈ L, also

δ(q0, a1 · · · an0i−1) ∈ F und δ(q0, b1 · · · bn0i−1) 6∈ F.Andererseits ist nach 2.1.6

δ(q0, a1 · · · an0i−1) = δ(q0, b1 · · · bn0i−1),

ein Widerspruch.

Wir betrachten noch zwei weitere Beispiele fur NFAs und die Potenzmengenkonstruktion.Dabei geht es um das Erkennen von Wortern aus einer endlichen Menge. Diese Beispielesollten im Detail studiert werden, da noch einige Besonderheiten von NFAs zur Sprachekommen.

41

Page 45: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.2.11 Beispiel Wir betrachten nochmals die Aufgabe, einen endlichen Automatenfur eine endliche Sprache L bereitzustellen. Diese Aufgabe wurde in Satz 2.1.10(d) schonauf zwei Arten gelost: durch einen Induktionsbeweis und durch direktes Angeben einesDFA, der als Zustandsmenge die Menge der Prafixe der Worter in L hatte.

Hier geben wir eine weitere Moglichkeit an: Wir konstruieren einen NFA fur L und wandelndiesen mit Hilfe der Potenzmengenkonstruktion in einen DFA um.

Angenommen, L = {w1, . . . , wn} mit s = |w1| + · · · + |wn|. Unser NFA ML hat einenStartzustand q0 und genau s weitere Zustande. Fur jedes Wort wi gibt es in GML

einenWeg, der aus Zustand 1 und |wi| weiteren Zustanden besteht. Die |wi| Kanten auf diesemWeg sind mit den Buchstaben von wi beschriftet. Die Endknoten der |L|Wege entsprechenakzeptierenden Zustanden. Wenn das leere Wort ε in L ist, entspricht diesem Wort einWeg der Lange 0; in diesem Fall ist der Startzustand 1 akzeptierend.

Abbildung 2.11 zeigt den NFA ML fur die Sprache L = {bei, beine, bube} uber demAlphabet Σ = {a, . . . , z}.

e8 9

10 11 12 13

b

b

b

bu e

e i

e i n1

2 3 4

5 6 7Start

Abbildung 2.11: Ein NFA in Graphdarstellung fur die Sprache {bei, beine, bube} uberΣ = {a, . . . , z}

Wir haben die Zustande willkurlich durchnummeriert. Der Startzustand ist q0 = 1, dieakzeptierenden Zustande sind durch F = {4, 9, 13} gegeben. Ein NFA fur die SpracheL′ = L ∪ {ε} wurde genau so aussehen, nur ware auch der Zustand 1 akzeptierend.Man beachte, dass man sich keine Muhe geben muss, gemeinsame Prafixe der Worterin L zu finden, da es bei einem NFA gestattet ist, dass ein Knoten mehrere ausgehendeKanten mit derselben Beschriftung hat, wie der Knoten 1 im Beispiel, aus dem drei b-Kanten herausfuhren. Es ist offensichtlich, dass in diesen NFA genau die drei Worteraus L

”hineinpassen“, im Sinn von Bemerkung 2.2.7. Alle Worter, die nicht Prafix eines

Wortes in L sind, fuhren in eine”Sackgasse“, d h. es gibt uberhaupt keine Berechnung

des NFA, der ein solches Wort vollstandig liest.

Die Ubergangsfunktion des NFA aus Abb. 2.11 ist in Tabellenform in Tab. 2.4 gegeben.

42

Page 46: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

q F b e i n u Σ− {b, e, i, n, u}start → 1 {2, 5, 10} − − − − −

2 − {3} − − − −3 − − {4} − − −4 ∗ − − − − − −5 − {6} − − − −6 − − {7} − − −7 − − − {8} − −8 − {9} − − − −9 ∗ − − − − − −

10 − − − − {11} −11 {12} − − − − −12 − {13} − − − −13 ∗ − − − − − −

Tabelle 2.4: Tabellendarstellung der Ubergangsfunktion δ eines NFA fur die Sprache L ={bei, beine, bube}. Statt

”∅“ schreiben wir

”−“; das Verhalten bei Buchstaben, die nicht

in L vorkommen, ist in einer Spalte zusammengefasst

Wenn wir die Potenzmengenkonstruktion auf diesen NFA anwenden, wobei wir die Versionverwenden, bei der die unerreichbaren Zustande nicht erzeugt werden, erhalten wir denDFA, der in Abb. 2.12 dargestellt ist.

43

Page 47: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

{1}

{8}

{11} {12} {13}

0/

be

i n e{9}{3,6} {4,7}

u{2,5,10}

eb

Start

Abbildung 2.12: Der durch Potenzmengenkonstruktion entstehende DFA fur die Sprache{bei, beine, bube}; gestrichelte Kanten fuhren zum Fehlerzustand ∅; sie sind mit allenBuchstaben beschriftet zu denken, die nicht explizit an anderen Kanten stehen

In der Abbildung gibt es einen Fehlerzustand (die leere Menge ∅); um die Abbildungubersichtlicher zu gestalten, haben die (gestrichelten) Kanten, die zu diesem Zustandfuhren, keine explizite Beschriftung. Dies soll bedeuten, dass alle nicht explizit angegebe-nen Ubergange uber diese Kanten in den Fehlerzustand fuhren.

Oft lasst man bei der graphischen Darstellung eines DFA mit einem Fehlerzustand diesenganz weg, inklusive aller Ubergange, die in ihn hineinfuhren. Im Bild wurde das bedeuten,dass alle gestrichelten Kanten weggelassen werden.

Nicht nur in diesem Beispiel, sondern immer bei der Anwendung der Potenzmengenkon-struktion auf den NFA ML ergibt sich ein DFA, der strukturell genau dem Prafixautoma-ten fur die Sprache L entspricht, siehe Satz 2.1.10(d). (In mathematischer Sprache sagtman, der entstehende DFA sei

”isomorph“ zum Prafixautomaten fur L.) Insbesonde-

re fuhrt die Potenzmengenkonstruktion hier nicht zu einer Vergroßerung der Anzahl derZustande.

2.2.12 Beispiel Unser letztes Beispiel sieht auf den ersten Blick dem vorangegange-nen Beispiel ahnlich. Wir untersuchen ein Problem, das bei der Verarbeitung von Textenimmer wieder vorkommt. Man mochte wissen, ob eine bestimmte Zeichenreihe in einemText (einem File) vorkommt, und wenn ja, wo. Etwas allgemeiner konnte man bei einergegebenen Suchwortliste S = (w1, . . . , wn) von endlich vielen Strings fragen, ob und woeiner dieser Strings in einem gegebenen File vorkommt. Das File wird dabei als Eingabe-wort w aufgefasst. (Allgemeinere Suchanfragen sind moglich; wir kommen spater daraufzuruck.)

Wir wollen einen deterministischen endlichen Automaten entwerfen, mit dem wir einEingabewort w durchmustern konnen, derart dass man unterwegs immer genau dann in

44

Page 48: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

einem akzeptierenden Zustand ist, wenn gerade das Ende eines der Worter aus S erreichtworden ist.

Wenn wir als Wortliste wieder (bei, beine, bube) verwenden, sollte beispielsweise dasWort obeinbubebeinebeleintabubeibringt zu einer Zustandsfolge fuhren, die sich fol-gendermaßen zu F verhalt:

o b e i n b u b e b e i n e b e l e i n t a b u b e i b r i n g t

- - - - F - - - - F - - F - F - - - - - - - - - - - F F - - - - - -

Wir konnen diese Anforderung wie folgt als formale Sprache formulieren, wobei Σ einpassendes Alphabet sein soll.

LS := {w ∈ Σ∗ | eines der Worter w1, . . . , wn ist Suffix von w}.

Dann ist jeder DFA fur uns geeignet, der das Wortproblem fur LS lost.

Wir bauen zunachst einen NFA MS fur LS, um diesen dann per Potenzmengenkonstruk-tion in einen DFA umzubauen. Kurzes Uberlegen zeigt, dass ein NFA fur LS einfach ausdem NFA aus Beispiel 2.2.11 fur die Wortmenge {w1, . . . , wn} zu erhalten ist, indem wiram Startzustand eine Schleife anbringen, die es ermoglicht, beliebige Buchstaben aus Σzu lesen, ohne diesen Zustand zu verlassen.

Wenn wir als Wortliste wieder (bei, beine, bube) und als Alphabet wieder Σ = {a, . . . , z}verwenden, ergibt sich die in Abbildung 2.13 angegebene Modifikation des NFA von eben.

a..z

9

10 11 12 13

b

b

bu e

e i

e i n e

b

1

2 3 4

5 6 7 8Start

Abbildung 2.13: Ein NFA fur LS mit S = (bei, beine, bube)

Wenn wir die Potenzmengenkonstruktion anwenden, naturlich wieder in der Version, in derkeine uberflussigen Zustande erzeugt werden, erhalten wir den in Abb. 2.14 angegebenenDFA.

45

Page 49: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

{1,3,6,13}b

b i n e

b

b

e

b

u

b

i

b

{1,2,5,10}

b

{1,9}{1,8}{1,3,6} {1,4,7}{1}

{1,2,5,10,12} e{1,11}b

u

Start

Abbildung 2.14: Ein DFA fur LS mit S = (bei, beine, bube)

Wir beobachten (ohne einen allgemeinen Beweis), dass der DFA nicht mehr Zustandehat als der NFA. (In unserem Fall sind es sogar weniger, weil bei Prafix von beine ist.)Wenn wir die erreichten DFA-Zustande (also NFA-Zustandsmengen) nicht nur daraufhinansehen, ob sie einen F -Zustand enthalten, sondern auch daraufhin, welche genau, konnenwir am nach dem Lesen eines Prafixes w′ von w erreichten Zustand B (des NFA) sogarablesen, welches Wort (welche Worter) aus S am Ende von w′ stehen.

2.3 Regulare Ausdrucke

Bisher haben wir Sprachen immer nur abstrakt oder durch zugehorige Maschinen beschrie-ben. Regulare Ausdrucke stellen eine andere Art dar, Sprachen zu spezifizieren. RegulareAusdrucke formalisieren den folgenden induktiven Ansatz zur Konstruktion immer kom-plizierterer Sprachen:

(i) Starte mit den”trivialen Sprachen“ ∅, {ε}, {a}, fur a ∈ Σ;

(ii) Wende die Operationen

Konkatenation: L1, L2 → L1L2 = L1 · L2 = {w1w2 | w1 ∈ L1, w2 ∈ L2}Vereinigung: L1, L2 → L1 ∪ L2 = {w | w ∈ L1 ∨ w ∈ L2}

46

Page 50: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

”Kleene-Abschluss“: L→ L∗ = {w1 . . . ws | s ≥ 0, w1, · · · , ws ∈ L}

iteriert auf bereits erzeugte Sprachen an.

Neben dem reinen Erzeugungsprozess geben regulare Ausdrucke den erzeugten Sprachenauch Namen (wobei jede Sprache unendlich viele Namen hat).

Fur das folgende setzen wir voraus, dass die Alphabete {∅, ε}, {(, ),+,∗ } und Σ disjunktsind.2 Fur allgemeine Informationen zu induktiven Definitionen siehe Anhang A.2.

2.3.1 Definition Σ sei ein Alphabet.

(a) Die Menge der regularen Ausdrucke (uber Σ) ist induktiv definiert wie folgt:

(i) ∅ und ε sind regulare Ausdrucke.(Hier werden

”∅“ und

”ε“ als Zeichen benutzt.)

Fur jedes a ∈ Σ ist a regularer Ausdruck.

(ii) Ist r regularer Ausdruck, so auch (r∗).

Sind r1 und r2 regulare Ausdrucke, so auch (r1r2) und (r1 + r2).

(iii) Nur die durch die obigen Regeln erzeugbaren Worter sind regulare Ausdrucke.

(b) Jedem regularen Ausdruck r ist eine Sprache L(r) ⊆ Σ∗ zugeordnet. Diese ist in-duktiv definiert wie folgt:

(i) L(∅) := ∅;L(ε) := {ε};L(a) := {a}, fur a ∈ Σ.

(ii) L((r∗)) := L(r)∗;

L((r1r2)) := L(r1)L(r2);

L((r1 + r2)) := L(r1) ∪ L(r2).

(c) Ist L(r) = L(r′), so heißen r und r′ aquivalent (Notation: r ∼ r′).

Wir werden sehen, dass die Klasse der solcherart erzeugten Sprachen (die durch”regulare

Ausdrucke“ beschriebenen Sprachen) gleich der Klasse der regularen Sprachen, d. h. dervon DFA’s akzeptierten Sprachen ist. Historisch war es naturlich umgekehrt: Die Be-zeichnung

”regulare Sprachen“ leitet sich von der Tatsache ab, dass diese Sprachen durch

regulare Ausdrucke beschrieben werden.

Regulare Ausdrucke uber Σ sind also Worter (uber dem Alphabet {∅, ε, (, ),+,∗ } ∪ Σ);jedes dieser Worter bezeichnet eine Sprache. Da L(r) = L((r+∅)) = L(((r+∅)+∅)) = . . .,gibt es fur jede Sprache L(r) unendlich viele Namen, d. h. zu r unendlich viele aquivalenteAusdrucke.

2Der Konvention gemaß benutzen wir in regularen Ausdrucken”∅“ und

”ε“ als Zeichen.

47

Page 51: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.3.2 Beispiel

(a) L((01)) = L(0)L(1) = {0}{1} = {01}

(b) L(((01)∗)) = L((01))∗ = {01}∗ = {ε, 01, 0101, 010101, . . .}

(c) L((((01)∗) + ((10)∗))) = L(((01)∗)) ∪ L(((10∗)) = {ε, 01, 10, 0101, 1010, . . .}

(d) L((((01)∗)((10)∗))) = . . . = {(01)i(10)j | i ≥ 0, j ≥ 0}

(e) L((a+ · · ·+ z+ A+ · · ·+ Z)(0+ · · ·+ 9+ a+ · · ·+ z+ A+ · · ·+ Z)∗) ist die Mengeder Pascal-Bezeichner. (Klammern weggelassen, siehe unten.)

(f) L(((0 + 1)∗)) = {0, 1}∗;L(((0 + ε)∗)) = L((0∗)), also ((0 + ε)∗) ∼ (0∗).

Um die Notation regularer Ausdrucke zu vereinfachen, legen wir Praferenzregeln fest: ∗

bindet starker als (das nicht geschriebene Zeichen) · (fur die Konkatenation) und +; ·bindet starker als +; wir notieren, dass + und · assoziativ sind und dass + kommutativist (bis auf Aquivalenz), wenn man die erzeugten Sprachen betrachtet. Dann lassen wiruberflussige Klammern weg:

(01∗001∗0 + (1 + 2)0∗1∗)∗

entspricht damit

(((((0(1∗))((00)(1∗)))0) + ((1 + 2)((0∗)(1∗))))∗)

oder auch(((((1 + 2)(0∗))(1∗)) + ((0(1∗))((00)((1∗)0))))∗).

Weiter benutzen wir manchmal die Abkurzung r+ fur (r∗)r. Offenbar gilt (L(r))+ =L(r)∗L(r) = L(r∗)L(r) = L((r∗)r) = L(r+).

Anmerkung: Oft findet man auch die Konvention, dass regulare Ausdrucke r und dievon ihnen bezeichnete Sprache L(r) identifiziert werden. Das liest sich dann so:

(01)∗ = {ε, 01, 0101, 010101, . . . },(0 + 1)∗ = {0, 1}∗,

(00 + 111)∗ = {ε, 00, 111, 00111, 11100, . . . }.

Statt des Aquivalenzsymbols benutzt man dann das Gleichheitszeichen: (0 + 1)∗ = ((0 +1)+1)∗ = (0+(1+1))∗; ((0+1)∗)∗ = (0+1)∗; (0+ε)∗ = 0∗; usw. Zum Einuben unterscheidenwir in diesem Text Sprachen und die regularen Ausdrucke, die sie bezeichnen.

Schließlich notieren wir noch einige Aquivalenzen, die beim”Rechnen“ mit regularen

Ausdrucken hilfreich sind:

48

Page 52: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

∅r ∼ r∅ ∼ ∅; εr ∼ rε ∼ r;r + ∅ ∼ ∅+ r ∼ r; (r + ε)∗ ∼ r∗; (r + ε)+ ∼ r∗;r + r ∼ r; (r∗)(r∗) ∼ r∗; (r∗)∗ ∼ r∗.

Die Beweise ergeben sich durch Betrachten der entsprechenden Manipulationen mit Spra-chen. Weitere Rechenregeln kann man sich selbst herleiten.

Wir zeigen im Rest dieses Abschnitts, dass regulare Ausdrucke genau die regularen Spra-chen erfassen.

2.3.3 Satz Ist M ein NFA, so gibt es einen regularen Ausdruck rM mit LM = L(rM).

Beweis M = (Q,Σ, q0, F, δ) sei gegeben. O. B. d. A. sei Q = {0, 1, . . . , s − 1}, q0 = 0.(Ist das nicht so, nummeriert man die Elemente von Q beliebig durch und ersetzt q ∈ Qdurch seine Nummer.) Wir definieren zunachst |Q|2 Sprachen:

L(i, j) := {w ∈ Σ∗ | j ∈ δ(i, w)}, fur 0 ≤ i, j < s.

Wir benutzen im folgenden intensiv die Interpretation von M als Graph GM (vgl. Bemer-kung 2.2.7). Demnach gilt: L(i, j) besteht aus den Wortern b1 · · · bm, die als Kantenbe-schriftung an Wegen auftreten, die in Knoten vi beginnen und in Knoten vj enden. UnserZiel ist es, regulare Ausdrucke rj fur L(0, j), j ∈ Q, zu finden (d. h. L(rj) = L(0, j)). Denndann konnen wir

rM := rj1 + · · ·+ rj|F |

benutzen, wo F = {j1, . . . , j|F |} ⊆ Q ist, weil LM =⋃{L(0, j) | j ∈ F} ist.

Um diese regularen Ausdrucke zu finden, benutzen wir einen algorithmischen Ansatz,der als

”dynamische Programmierung“ bekannt ist. Bei der Definition von L(i, j) werden

beliebige Wege von i nach j zugelassen. Wir fuhren eine feinere Unterscheidung ein, indemwir die Menge der Knoten einschranken, die auf dem Weg vorkommen durfen.

L(i, j, k) := {b1 · · · bm ∈ Σ∗ | ∃ Weg in GM von vi nach vj

mit Kantenbeschriftung b1, . . . , bm der [außer

vi am Anfang und vj am Ende] nur Knoten in

{v0, . . . , vk−1} benutzt},fur 0 ≤ i, j < s und 0 ≤ k ≤ s.

Schema eines Weges in GM , der b1 · · · bm ∈ L(i, j, k) bewirkt:

i j1b b2 b3 bm−1 bm...

nur Zustände in {0,...,k−1}

49

Page 53: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Wir beobachten folgende Eigenschaften der Mengen L(i, j, k), fur 0 ≤ i, j < s und k = 0bzw. k = s:

i 6= j ⇒ L(i, j, 0) = {a ∈ Σ | j ∈ δ(i, a)}(2.1)

= Menge der Buchstaben an Kanteni j

L(i, i, 0) = {a ∈ Σ | i ∈ δ(i, a)} ∪ {ε}(2.2)

= {ε} ∪ Menge der Buchstaben an Kanteni

(2.3) L(i, j) = L(i, j, s).

Um die regularen Ausdrucke fur L(i, j, k) induktiv konstruieren zu konnen, benotigen wirnoch eine Beziehung zwischen den Sprachen L(.., .., k) und L(.., .., k + 1). Dazu beob-achten wir: Ein Weg von vi nach vj, der unterwegs nur Knoten in {v0, . . . , vk} benutzt,verlauft entweder ganzlich in {v0, . . . , vk−1} oder setzt sich aus Teilwegen der folgendenArt zusammen:

(i) von vi nach vk in {v0, . . . , vk−1} ;

(ii) von vk nach vk in {v0, . . . , vk−1} [0-, 1-, oder mehrmals];

(iii) von vk nach vj in {v0, . . . , vk−1}.

Schematisch:

vjvi

vi vk vk vk vj

(l+1)-mal, l > 0

Weg in {v , ..., v }0 k-1

Daraus erkennt man:

L(i, j, k + 1) = L(i, j, k) ∪ L(i, k, k)L(k, k, k)∗L(k, j, k),(2.4)

fur 0 ≤ i, j < s, 0 ≤ k < s.

50

Page 54: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

[Fur Puristen geben wir einen exakten Beweis dieser Aussage an. Normalerweise wirdman sich mit dem genannten anschaulichen Argument zufriedengeben. Zum Gluck haltdie Graphensprechweise den Beweis noch einigermaßen ubersichtlich.

Beweis von (1.4):”⊆“: Ist w ∈ L(i, j, k + 1), so ist w = b1 · · · bm Kantenbeschriftung

eines Weges von vi nach vj uber Zwischenknoten in {v0, . . . , vk}. Falls auf diesem Wegvk nicht vorkommt, ist w ∈ L(i, j, k). Falls doch, zerlege den Weg in Teile wie oben un-ter (i), (ii), (iii) aufgefuhrt. Dadurch wird das Wort b1 · · · bm in Teilworter x, y1, . . . , yl,l ≥ 0, und z zerlegt, wo x die Kantenbeschriftung am Teilweg (i) ist, y1, . . . , yl die an denTeilwegen von Typ (ii), und z die Kantenbeschriftung am letzten Teilweg (iii). Damit istx ∈ L(i, k, k), y1, . . . , yl ∈ L(k, k, k), und z ∈ L(k, j, k), also w = b1 · · · bm = xy1 · · · ylz ∈L(i, k, k)L(k, k, k)∗L(k, j, k).

”⊇“: Es ist klar, dass L(i, j, k) ⊆ L(i, j, k + 1) gilt. Liegt

ein Wort w ∈ L(i, k, k)L(k, k, k)∗L(k, j, k) vor, so kann man w = xy1 · · · ylz schreiben furein l ≥ 0, x ∈ L(i, k, k), y1, . . . , yl ∈ L(k, k, k), z ∈ L(k, j, k). Diesen Wortern entspre-chen Wege von vi nach vk bzw. vk nach vk bzw. vk nach vj, die nur Zwischenknoten in{v0, . . . , vk−1} benutzen. Hangen wir diese l + 2 Wege hintereinander, erhalten wir einenWeg von vi nach vj mit Zwischenknoten in {v0, . . . , vk}, der w als Kantenbeschriftunghat; also ist w ∈ L(i, j, k + 1). Damit ist (1.4) bewiesen.]

Mit Hilfe der Aussagen (1.1), (1.2), (1.4) konstruieren wir (durch Induktion uber k) re-gulare Ausdrucke ri,j,k fur L(i, j, k), 0 ≤ i, j < s, 0 ≤ k ≤ s.

(1.1’) ri,j,0 := a1 + · · ·+ as + ∅, wo L(i, j, 0) = {a1, · · · , as} ⊆ Σ, i 6= j.

(1.2’) ri,i,0 := a1 + · · ·+ as + ε, wo L(i, i, 0) = {a1, . . . , as} ∪ {ε}.(1.4’) ri,j,k+1 := ri,j,k + ri,k,k(r

∗k,k,k)rk,j,k, fur 0 ≤ i, j < s, 0 ≤ k < s.

Aus der Konstruktion und (1.1), (1.2), (1.4) folgt sofort (technisch: per Induktion uberk), dass

L(i, j, k) = L(ri,j,k), fur 0 ≤ i, j < s, 0 ≤ k ≤ s.

Schließlich setzen wirrj := r0,j,s, fur 0 ≤ j < s;

es ist dann klar (mit (1.3)), dass

L(0, j) = L(0, j, s) = L(r0,j,s) = L(rj).

Damit kann die Konstruktion von rM beendet werden, wie ganz am Anfang des Beweisesangegeben. �

Der Beweis liefert auch eine konstruktive Methode, um rM zu erzeugen. Unglucklicherwei-se werden selbst fur kleine Automaten die entstehenden Ausdrucke schnell unhandlich.Man achte daher auf Vereinfachungsmoglichkeiten (Ersetzen von Teilausdrucken durchaquivalente einfachere). Weiter kann es Arbeit sparen, wenn man nicht alle ri,j,k konstru-iert, sondern nur die, die man zur Konstruktion von r0,j,s, j ∈ F , wirklich braucht.

Man kann beweisen, dass es eine Familie (Mn)n≥2 von DFA’s gibt, wo Mn = (Qn,Σn, . . . )mit |Qn| = n, |Σn| = n2, und wo der kleinste regulare Ausdruck rn fur LMn

mindestens

51

Page 55: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2n−1 Symbole hat (vgl. I. Wegener, Theoretische Informatik – eine algorithmenorientierteEinfuhrung, Teubner, 1999, S. 133f.). Das bedeutet, dass im allgemeinen ein Explodierender Große des entstehenden regularen Ausdrucks unvermeidlich ist.

2.3.4 Beispiel Wir wollen einen regularen Ausdruck fur den NFA

0 1Start

0

11

konstruieren. Zur Ubung erzeugen wir alle ri,j,k.

k = 0 :

r0,0,0 = 0 + ε; r0,1,0 = 1; r1,0,0 = ∅; r1,1,0 = 1 + ε;

k = 1:

r0,0,1 = r0,0,0 + r0,0,0(r∗0,0,0)r0,0,0 = (0 + ε) + (0 + ε)(0 + ε)∗(0 + ε) ∼ 0∗;

r0,1,1 = r0,1,0 + r0,0,0(r∗0,0,0)r0,1,0 = 1 + (0 + ε)(0 + ε)∗1 ∼ 0∗1;

r1,0,1 = r1,0,0 + r1,0,0(r∗0,0,0)r0,0,0 = ∅+ ∅(0 + ε)∗(0 + ε) ∼ ∅;

r1,1,1 = r1,1,0 + r1,0,0(r∗0,0,0)r0,1,0 = (1 + ε) + ∅(0 + ε)∗1 ∼ (1 + ε).

k = 2 :

r0,0,2 = r0,0,1 + r0,1,1(r∗1,1,1)r1,0,1 = 0∗ + 0∗1(1 + ε)∗∅ ∼ 0∗;

r0,1,2 = r0,1,1 + r0,1,1(r∗1,1,1)r1,1,1 = 0∗1 + 0∗1(1 + ε)∗(1 + ε) ∼ 0∗1+;

r1,0,2 = ∅;r1,1,2 = r1,1,1 + r1,1,1(r

∗1,1,1)r1,1,1 = (1 + ε) + (1 + ε)(1 + ε)∗(1 + ε) ∼ 1∗.

Gesamt: rM = r0,0,2 + r0,1,2 = 0∗ + 0∗1+ ∼ 0∗1∗.

Wir mussen jetzt noch die andere Richtung unserer ursprunglichen Behauptung beweisen:Zu jedem regularen Ausdruck r gibt es einen NFA (und damit auch einen DFA), der L(r)akzeptiert. Ein solcher Automat ist sogar algorithmisch erzeugbar. Diese Richtung ist auchdie fur Anwendungen interessante: Man spezifiziert eine Sprache durch einen regularenAusdruck (das ist oft bequem); der dazugehorige DFA oder NFA wird vom Rechner er-zeugt. Zum Beispiel gehen Substring-Suchalgorithmen, die in Editoren benutzt werden, indieser Weise vor. Wir beschreiben im folgenden grob einen Algorithmus, der dies leistet.Als technisches Hilfsmittel definieren wir noch NFA’s mit

”ε-Ubergangen“, ein Konzept,

das auch praktisch wichtig ist. Man erlaubt dem NFA, gewisse Zustandsubergange auchohne Lesen eines Symbols auszufuhren.

2.3.5 Definition Ein NFA mit ε-Ubergangen (kurz: ε-NFA) ist ein 5-Tupel M =(Q,Σ, q0, F, δ), wo Q,Σ, q0, F wie bei NFA’s sind (vgl. 2.2.2), mit ε /∈ Σ, aber

δ : Q× (Σ ∪ {ε})→ P(Q).

52

Page 56: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Interpretation: Ist q′ ∈ δ(q, ε), so kann M , ohne ein Zeichen zu lesen, von Zustand q inZustand q′ gelangen. Die formale Definition der iterierten Funktion δ : Q × Σ∗ → P(Q)ist hier etwas muhsam; wir gehen daher den leichteren und anschaulicheren Weg uber diegraphische Darstellung GM von M (vgl. Bemerkung 2.2.7). Zusatzlich zu den Elementen,die GM fur einen NFA M hatte, sind bei ε-NFA’s jetzt auch Kanten

q ε q’

gestattet. Eine solche Kante ist vorhanden genau dann wenn q′ ∈ δ(q, ε).

53

Page 57: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beispiel:

.

1

0

2

3Start

2

1

ε

ε ε

ε

3

Abbildung 2.15: Ein ε-NFA fur L(1∗3∗ + 2∗3∗)

2.3.6 Definition Sei M ein ε-NFA.

(a) Fur q ∈ Q,w = b1 · · · bm ∈ Σ∗ definieren wir

δ(q, w) := {p ∈ Q | ∃ Weg in GM von vq nach vp,

dessen Kantenmarkierungen, von ε’s

abgesehen, gleich b1, . . . , bm sind }.

Achtung: Es gilt δ(q, ε) ⊇ {q} und δ(q, a) ⊇ δ(q, a), aber nicht notwendig Gleichheit!

(b) M akzeptiert x :⇔ δ(q, x) ∩ F 6= ∅.

(c) LM := {x ∈ Σ∗ |M akzeptiert x}.

Im obigen Beispiel haben wir etwa den folgenden akzeptierenden Weg fur das Wort w =1113:

0 1 1 1 1 33Start ε ε1 1 1 3

Abbildung 2.16: Akzeptierende Rechnung fur 1113 ∈ LM

Es gibt keinen Pfad von v0 nach v3 mit Kantenbeschriftung ε · · · ε3ε · · · ε1ε · · · ε, also ist31 6∈ LM .

Wir stellen zunachst fest, dass ε-NFA’s nicht mehr Sprachen akzeptieren als NFA’s undDFA’s.

2.3.7 Satz Gilt L = LM fur einen ε-NFA M , so ist L = LM ′ fur einen NFA M ′ (alsoist L regular).

54

Page 58: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beweis Sei M = (Q,Σ, q0, F, δ). Die einfache Idee der Konstruktion von M ′ ist es,ε-Wege

”kurzzuschließen“. Wo in GM ein Weg von vq nach vp fuhrt, der mit ε, . . . , ε, a

beschriftet ist (a ∈ Σ), soll in GM ′ eine direkte, mit a beschriftete Kante von vq nachvp fuhren. Man muss dann noch sicherstellen, dass Knoten vq, von denen aus man aufeinem reinen ε-Weg zu einem Knoten vp, p ∈ F , gelangt, selbst akzeptierend werden.Also: M ′ = (Q,Σ, q0, F

′, δ′), mit

δ′(q, a) := {p ∈ Q | ∃ Weg in GM von vq nach vp,

der mit ε, . . . , ε, a markiert ist },fur q ∈ Q, a ∈ Σ, und

F ′ := {q ∈ Q | ∃p ∈ F : ∃ Weg (der Lange ≥ 0) in GM von vq nach vp,

der mit ε, . . . , ε markiert ist }.Zu zeigen ist: Fur a1 · · · an ∈ Σ∗ gilt:

M akzeptiert a1 · · · an ⇔M ′ akzeptiert a1 · · · an.

”⇒“: Falls M das Wort a1 · · · an akzeptiert, gibt es einen Weg in GM von v0 zu einem vq

mit q ∈ F , dessen Kanten mit ε, . . . , ε, a1, ε, . . . , ε, a2, . . . , ε, . . ., ε, an, ε, . . . , ε beschriftetsind. Es seien vq1

, . . . , vqndie Knoten auf dem Weg, in die die mit a1, . . . , an beschrifteten

Kanten dieses Weges munden. Dann sind, nach Definition von δ′, die Kanten (vqi−1, vqi

)in GM ′ mit ai beschriftet, 1 ≤ i ≤ n, und qn ∈ F ′. Also gibt es in GM ′ einen Weg vonvq0

zu vq′ mit q′ ∈ F ′, dessen Kanten mit a1, . . . , an beschriftet sind, d. h. M ′ akzeptierta1 · · · an.

”⇐“: Falls M ′ das Wort a1 · · · an akzeptiert, gibt es einen Weg vq0

, vq1, . . . , vqn

in GM ′ mitqn ∈ F ′, so dass die Kante (vqi−1

, vqi) mit ai beschriftet ist, 1 ≤ i ≤ n. Nach Definition von

M ′ gibt es in GM Wege von vqi−1nach vqi

, die mit ε, . . . , ε, ai beschriftet sind, 1 ≤ i ≤ n,und einen Weg von vqn

zu vq mit q ∈ F , der mit ε, . . . , ε beschriftet ist. Man verkettetdiese n+ 1 Wege, um einen zu erhalten, der von vq0

nach vq verlauft, und abgesehen vonε’s, mit a1, . . . , an beschriftet ist. Also akzeptiert M das Wort a1 · · · an. �

Wenden wir die im Beweis angegebene Konstruktion auf das Beispiel von oben an, erhaltenwir folgenden NFA.

.30

1

2

Start

1

2

3

3

3

2

1

3

55

Page 59: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.3.8 Satz Sei Σ ein Alphabet. Ist r ein regularer Ausdruck uber Σ, so existiert einε-NFA Mr mit L(r) = LMr

. (Nach 2.3.7 und 2.2.6 ist also L(r) regular.)

Beweis Wir zeigen durch Induktion uber den Aufbau von r die folgende Aussage: Esgibt einen ε-NFA

Mr = (Q,Σ, q0, {qf}, δ), mit q0 6= qf .

mit L(r) = LMr. (Mr hat also genau einen akzeptierenden Zustand, der zudem vom

Startzustand verschieden ist.)

Die Automaten werden dabei durchweg in der Graphdarstellung angegeben. (Man be-achte, dass ahnliche Konstruktionen auch ohne die Einschrankung q0 /∈ F und |F | = 1moglich sind; dadurch vermindert sich u. U. die Große des entstehenden Automaten.) Diefolgenden Skizzen zeigen den Aufbau der Automaten M∅, Mε,Ma und die induktive Tech-nik, mit der man aus Mr1

und Mr2ε-NFA’s M(r1+r2),M(r1r2) und M(r∗

1) aufbaut. Dabei

stellt ein Rechteck

q0

qf

Start GM

M:

immer den Graphen eines ε-NFA M mit Startzustand q0 = q und akzeptierendem Zustandqf = q′ dar.

.

1OM :

Start 0

Abbildung 2.17: r = ∅ : GM∅hat keine Kante!

1εM :

Start 0 ε

Abbildung 2.18: r = ε : GMεhat eine ε-Kante.

56

Page 60: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

0 1

M :

Start aa

Abbildung 2.19: r = a : GMahat eine a-Kante.

Abbildung 2.20: r = r1r2: Aus Mr1, Mr2

baue Mr wie folgt:

εStart G GM Mr r 21

r1r2

r1 r2

M :

M M

57

Page 61: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Abbildung 2.21: r = r1 + r2: Aus Mr1, Mr2

baue Mr wie folgt:

2M

r1 r2M + :

GMr 2

Start

GMr 1

r1M

ε

ε

ε

r

ε

Abbildung 2.22: r = r∗1: Aus Mr1baue Mr wie folgt:

Start

M r1

ε

ε

εε GMr 1

(r *)M :1

Um die Behauptung zu beweisen, musste man fur jeden der Konstruktionsschritte nach-weisen, dass der zusammengesetzte Automat tatsachlich zu der Sprache L(r1r2), L(r1+r2),L(r∗1) gehort, vorausgesetzt, dies stimmt schon fur L(r1) undMr1

bzw. L(r2) undMr2. Die-

ser formale Beweis sei dem Leser/der Leserin als Ubung empfohlen. Als Vorbild benutzeman den Beweis der Formel (1.4) in Satz 2.3.3. �

58

Page 62: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.3.9 Bemerkung Die Konstruktion von ε-NFA’s (und damit NFA’s, s. Satz 2.3.7)aus regularen Ausdrucken ist wesentlich gutartiger als die umgekehrte Konstruktion. Manzeigt leicht durch (starke) Induktion uber l ≥ 1: Besteht r aus l Symbolen aus {ε} ∪ {a |a ∈ Σ} ∪ {∅} ∪ {+, ·, ∗}, so hat GMr

hochstens 2l Knoten und hochstens 4l Kanten.Wenn man die Datenstrukturen geschickt wahlt, und Syntaxanalysetechniken aus spaterenKapiteln benutzt, ist eine Konstruktion von GMr

aus r in Zeit O(l) moglich, da in jedemKonstruktionsschritt nur eine fixe Menge von Kanten neu zu ziehen ist.

2.3.10 Beispiel Wendet man die Konstruktion aus 2.3.8 auf den regularen Ausdruck0∗1∗ + 11∗0 an, ergibt sich folgender ε-NFA:

Start

ε ε

ε

ε

ε εε

ε

ε

ε

ε ε ε ε ε

ε ε ε

0 1

1 1 0ε

Obgleich dieser Automat im anschaulichen Sinn ubertriebenen Aufwand hat, ist seineKnotenzahl nicht großer als 2 ·# (Symbole in 0∗ · 1∗ + 1 · 1∗ · 0) = 2 · 12 = 24.

Wir fassen die beiden letzten Satze zusammen:

2.3.11 Satz Eine Sprache L ⊆ Σ∗ ist regular genau dann, wenn L = L(r) fur einenregularen Ausdruck r uber Σ.

2.3.12 Korollar Die Klasse der regularen Sprachen ist unter der ∗-Operation (Kleene-Abschluss) und unter Konkatenation abgeschlossen.

Beweis Wenn L, L1, L2 regulare Sprachen sind, dann kann man nach Satz 2.3.3 regulareAusdrucke r, r1 und r2 mit L = L(r), L1 = L(r1) und L2 = L(r2) angeben. Wir bildendie regularen Ausdrucke r∗ und r1r2. Dann sind nach Satz 2.3.7 L∗ = L(r∗) und L1L2 =L(r1r2) ebenfalls regular. �

Es ist eine interessante Ubung, das letzte Korollar ohne Benutzung von regularen Aus-drucken zu beweisen. (Man kann direkt mit NFA’s arbeiten.)

59

Page 63: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.4 Das Pumping-Lemma fur regulare Sprachen

Dieser Abschnitt behandelt eine”Struktur-Eigenschaft“, die jede regulare Sprache besitzt

(Satz 2.4.1). Diese wird meistens dazu benutzt, um nachzuweisen, dass gewisse Sprachennicht regular sind.

2.4.1 Satz (Pumping-Lemma fur regulare Sprachen)

Ist L regular, so gibt es eine Zahl n ≥ 1, fur die folgendes gilt:

Ist x ∈ L, |x| ≥ n, so kann man x = uvw schreiben fur u, v, w ∈ Σ∗, derart dass |uv| ≤n, |v| ≥ 1, und uviw ∈ L fur alle i ≥ 0.

(”Aufpumpen“ heißt aus x = uvw die Worter uv2w = uvvw, uv3w = uvvvw, . . . bilden;

”abpumpen“ heißt uv0w = uw bilden.)

Beweis Es sei L eine regulare Sprache. Dann ist L = LM fur einen NFA M = (Q,Σ, q0, F , δ). Die Zahl n ist einfach die Zahl |Q| der Zustande von M . Betrachte nunx = a1 · · · am ∈ L,m ≥ n. Es gibt eine akzeptierende Berechnung von M fur x, die einemWeg Px von vq0

nach vq, q ∈ F , in GM entspricht, dessen Kanten mit a1, . . . , am markiertsind:

p1

p2

p3

pn

pm

a1 a2 a3 a4 an amp0

... ...Start

(p = q )0 0

Da |Q| = n, konnen die Zustande p0, p1, . . . , pn nicht alle verschieden sein, also gibt esk, l ∈ {0, . . . , n} mit k < l, so dass pk = pl.

Wir setzen u := a1 · · · ak; v := ak+1 · · · al; w := al+1 · · · am. Offenbar ist x = uvw, |uv| =l ≤ n, |v| = l − k ≥ 1. Es bleibt nur die

”Pump-Eigenschaft“ nachzukontrollieren. Wir

zerschneiden den Weg Px in drei Teile:

Pu von vq0nach vpk

, Kantenmarkierungen a1, . . . , ak;

Pv von vpknach vpl

= vpk, Kantenmarkierungen ak+1, . . . , al;

Pw von vpl= vpk

nach vpm, Kantenmarkierungen al+1, . . . , am.

Sind P , P ′ zwei Wege, wo Endpunkt p und Anfangspunkt p′ ubereinstimmen, so bezeich-net PP ′ die Konkatenation der beiden. Wir haben: PuPw ist Weg von vq0

nach vpmmit

Kantenmarkierung uw; PuPvPvPw ist Weg von vq0nach vpm

mit Kantenmarkierung uv2w;allgemein: fur i ≥ 0 ist Pu Pv · · ·Pv︸ ︷︷ ︸

i-mal

Pw Weg von vq0nach vpm

mit Kantenmarkierung uviw.

Weil pm ∈ F , erhalten wir uviw ∈ L fur i ≥ 0. �

60

Page 64: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Als Beispiel betrachten wir den folgenden Automaten M , der die Sprache LM = {x ∈{0, 1}∗ | |x|0 , |x|1 sind gerade} akzeptiert.

0 1

3 2

Start

1

1

0 0

1

1

0 0

Der Weg in GM , der der Eingabe x = 000101 ∈ LM entspricht, sieht so aus:

0 3 0 123 0Start 0 0 0 1 0 1

//

//

Unter den ersten 5 Zustanden der Folge kommt ein Zustand, z. B. der Zustand 3, zweifachvor. Die akzeptierenden Wege in GM

0 3

2 1 000 3

2 1 0

0 3

Start

Start 3

1 0 10

0 0 0 0 0 1 0 1

die durch Entfernen bzw. Wiederholen des Teilwegs zwischen dem 2. und 4. Knoten ent-stehen, belegen, dass 0101 = 0(00)0101 und 00000101 = 0(00)2101 in L sind. Genausolassen sich langere solche Wege mit Kantenmarkierungen 0(00)i101 fur i ≥ 3 erzeugen.

Wir benutzen das Pumping-Lemma ausschließlich, um zu zeigen, dass gewisse Sprachennicht regular sind. Dafur verwenden wir folgendes Schema mit funf Schritten. L sei dieSprache, deren Nichtregularitat bewiesen werden soll.

[1] (Wortlich) Beweis indirekt. Annahme: L ist regular.

[2] (Wortlich) Dann gibt es ein n ≥ 1 mit den im Pumping-Lemma 2.4.1 behauptetenEigenschaften.

61

Page 65: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

[3] (Problemspezifisch) Wahle nun x ∈ L, mit |x| genugend groß (mindestens |x| ≥ n)— so dass Schritt 5 ausfuhrbar ist.

[4] (Wortlich) Gemaß Pumping-Lemma kann man x = uvw mit |uv| ≤ n und |v| ≥ 1schreiben, so dass X = {uw, uvw, uv2w, . . .} ⊆ L.

[5] (Problemspezifisch) Wahle ein passendes Element y aus X aus und zeige direkt,dass y nicht in L sein kann. (Manchmal ist dies uw, manchmal auch uviw fur eini ≥ 2.) Dies ist der gewunschte Widerspruch.

Wir demonstrieren die Verwendung des Schemas an einigen Beispielen.

2.4.2 Behauptung Die folgenden Sprachen sind nicht regular.

(a) L1 = {0m1m | m ∈ N}.(b) L2 = {0m2 | m ∈ N}.(c) L3 = {0m10l10m+l | m, l ∈ N}.(d) L4 = {0p | p ist Primzahl}.(e) L5 = {w | w ∈ {0, 1}∗ ist korrekter Klammerausdruck}.

Beweis

(a) [1] Beweis indirekt. Annahme: L1 ist regular. [2] Dann existiert ein n ≥ 1 mit den imPumping-Lemma behaupteten Eigenschaften. [3] Wir wahlen x = 0n1n. Offenbar istx ∈ L und |x| ≥ n. [4] Gemaß Pumping-Lemma kann x = uvw geschrieben werdenmit |uv| ≤ n und |v| ≥ 1 derart dass uviw ∈ L fur alle i ≥ 0. [5] Weil |uv| ≤ n,besteht uv nur aus Nullen. Also ist

uv0w = 0n−|v|1n.

Dieses Wort ist nicht in L1, weil |v| ≥ 1 ist. Andererseits musste nach dem Pumping-Lemma uv0w ∈ L1 sein. Das ist der gewunschte Widerspruch. (Genauso konnte manverwenden, dass uv2w = 0n+|v|1n /∈ L1 ist.)

Wenn man das Schema einmal verstanden hat, muss man es nicht mehr ganz detailliertabschreiben, wie in den folgenden Beweisen.

(b) Annahme, L2 ware regular. Dann gabe es n ≥ 1 wie im Pumping-Lemma. Wahlex = 0n2

. Offenbar ist x ∈ L2, |x| ≥ n. Gemaß Pumping-Lemma kann man x = uvwschreiben, mit |uv| ≤ n, |v| ≥ 1, so dass ∀i ∈ N : uviw ∈ L2. Nun ist aber z. B.uv2w = 0n2+|v| 6∈ L2, weil n2 + |v| ≤ n(n+ 1) < (n+ 1)2. Dies ist ein Widerspruch.

62

Page 66: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(c) Annahme, L3 ware regular. Dann gabe es n ≥ 1 wie im Pumping-Lemma. Wahlex = 0n110n. Offenbar ist x ∈ L3, |x| ≥ n. Gemaß Pumping-Lemma kann manx = uvw schreiben, mit |uv| ≤ n, |v| ≥ 1, so dass ∀i ∈ N : uviw ∈ L3. Weil|uv| ≤ n, erstreckt sich uv nur uber einen Teil der ersten n Nullen in x; also ist z. B.uv0w = 0n−|v|110n 6∈ L3, ein Widerspruch.

(d) Annahme, L4 ware regular. Dann gabe es n ≥ 1 wie im Pumping-Lemma. Wahlex = 0p fur eine Primzahl p ≥ n + 2. Offenbar ist x ∈ L4 und |x| ≥ n + 2. GemaßPumping-Lemma kann man x = uvw schreiben mit |uv| ≤ n, |v| ≥ 1, und uviw ∈ L4

fur alle i ≥ 0. Offenbar ist dann |w| ≥ 2. Betrachte uv|u|+|w|w = 0|u|+|u||v|+|w||v|+|w| =0(|u|+|w|)(|v|+1). Es ist |u| + |w| ≥ 2 und |v| + 1 ≥ 2, also ist

∣∣uv|u|+|w|w∣∣ = (|u| +

|w|)(|v|+ 1) keine Primzahl, ein Widerspruch.

(e) Fur L5 benutzt man x = 0n1n und argumentiert sonst wie in Teil (a). �

Es gibt nichtregulare Sprachen, deren Nichtregularitat sich nicht mit dem Pumping-Lemma beweisen lasst. Zum Beispiel hat die Sprache

L ={z ∈ {0, 1}∗ | z = 1k fur ein k ≥ 0 oder z = 0j1k2

fur j ≥ 1 und k ≥ 0}

diese Eigenschaft. (Vgl. Buch von Wegener, S. 102, Bsp. 4.3.3.) Wir geben noch eineallgemeinere Version an, die fur manche solche Falle doch noch eine Handhabe liefert. DieVerwendung dieses Lemmas folgt demselben Schema wie oben formuliert.

2.4.3 Satz (Verallgemeinertes Pumping-Lemma fur regulare Sprachen) IstL regular, so gibt es eine Zahl n ≥ 1, fur die folgendes gilt: Ist x ∈ L, und ist x =y0y1 · · · ynyn+1 fur y0, . . . , yn+1 ∈ Σ∗, wo |y1| , . . . , |yn| ≥ 1, so gibt es Zahlen 0 ≤ k < l ≤ nderart dass fur u := y0 · · · yk, v := yk+1 · · · yl, w := yl+1 · · · yn+1 gilt: uviw ∈ L fur allei ≥ 0.

Beweis Analog zum Beweis von 2.4.1. �

2.5 Abschlusseigenschaften fur regulare Sprachen

Dieses kurze Kapitel behandelt Operationen, die aus regularen Sprachen wieder regulareSprachen erzeugen. Wir fassen zusammen, was wir schon wissen.

2.5.1 Satz Lreg, die Klasse der regularen Sprachen, enthalt alle endlichen Sprachen undist abgeschlossen unter Durchschnitt, Vereinigung, Komplementbildung, Konkatenationund Kleene-Abschluss.

63

Page 67: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beweis Fur Abgeschlossenheit unter Konkatenation (sind L1, L2 regular, so auch L1L2)und Kleene-Abschluss (ist L regular, so auch L∗), siehe 2.3.7. Die anderen Eigenschaftenwurden in 2.1.10 bewiesen. �

Mitunter ist es gunstig, regulare Sprachen hierarchisch zu definieren. Ein primitives Bei-spiel ist folgendes: Die Sprache aller Bezeichner kann man erhalten, indem man die Spra-che L1 = L(B(B + Z)∗) uber dem Alphabet {B,Z} betrachtet, und dann in Worterdieser Sprache fur jedes vorkommende B einen beliebigen Buchstaben und fur jedes vor-kommende Z eine beliebige Ziffer einsetzt. Wir formalisieren und verallgemeinern dieseKonstruktion.

2.5.2 Definition Sei Σ = {a1, . . . , an} und sei ∆ ein Alphabet. Eine Substitution isteine Funktion f : Σ→ P(∆∗), d. h. f(ai) ist eine Sprache uber ∆, fur 1 ≤ i ≤ n.

Fur w = b1 · · · bm ∈ Σ∗ setzen wir

f(w) := f(b1)f(b2) · · · f(bm)︸ ︷︷ ︸Konkatenation von Sprachen

,

und fur L ⊆ Σ∗ setzen wirf(L) :=

⋃{f(w) | w ∈ L}.

(Im obigen Beispiel ware Σ = {B,Z},∆ = {a, . . . , z, A, . . . , Z, 0, . . . , 9} und f(B) ={a, . . . , z, A, . . . , Z} (eine Sprache!) und f(Z) = {0, . . . , 9}.)

2.5.3 Satz (”Lreg ist abgeschlossen unter Substitution“) Sei f Substitution wie in

2.5.2. Sind f(a1), . . . , f(an) regulare Sprachen und ist L regular, so ist auch f(L) regular.

Beweisidee: Betrachte DFA M mit L = LM und ε-NFA’s Ma mit LMa= f(a), fur a ∈ Σ,

und die entsprechenden graphischen Darstellungen dieser Automaten. Dabei nehmen wiran, dass die ε-NFA’s Ma das Format wie in 2.3.8 haben: ein Anfangszustand und eindavon verschiedener akzeptierender Zustand. Ersetze nun in GM jede Kante (q, q′) mitMarkierung a ∈ Σ

q q’a

durch eine Kopie von Ma, wobei eine ε-Kante von vq zum Startzustand von GMafuhrt

und eine ε-Kante von dem akzeptierenden Zustand von GMazu vq′ . Schematisch:

64

Page 68: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

q’q GMa

M a

ε ε

Der resultierende Graph stellt einen ε-NFA M ′ dar. Man muss sich nur noch uberlegen,dass ein Wort w von M ′ akzeptiert wird genau dann wenn man w = w1 · · ·wr schreibenkann, wo wj ∈ f(aj), 1 ≤ i ≤ r, und a1 · · · ar von M akzeptiert wird. Hierfur greift manwieder auf die Argumentationsweise von Satz 2.3.3, Formel (1.4), zuruck. �

2.5.4 Definition Ist f eine Substitution (siehe 2.5.2) mit |f(a)| = 1 fur alle a ∈ Σ, soheißt f Homomorphismus . (Man schreibt dann f(a) = u anstatt f(a) = {u}.) Ist L eineSprache, f Homomorphismus, so ist naturlich f(L) = {f(b1) · · · f(bm) | b1 · · · bm ∈ L}. Istweiter L′ ⊆ ∆∗, so kann man das Urbild

f−1(L′) = {w ∈ Σ∗ | f(w) ∈ L′}

betrachten (”inverser Homomorphismus“).

2.5.5 Satz (”Lreg ist abgeschlossen unter Homomorphismen und inversen Ho-

momorphismen“)

Sei f : Σ→ ∆∗ ein Homomorphismus. Dann gilt:

(a) Ist L ⊆ Σ∗ regular, so ist auch f(L) regular.

(b) Ist L′ ⊆ ∆∗ regular, so ist auch f−1(L′) regular.

Beweis (a) ist Spezialfall von 2.5.3. Fur (b) betrachte einen DFA

M ′ = (Q′,∆, q′0, F′, δ′) mit L′ = LM ′ . Wir definieren einen DFA M = (Q,Σ, q0, F, δ) wie

folgt:

Q := Q′, q0 := q′0, F := F ′ , und

δ(q, a) := δ′(q, f(a)) , fur jedes q ∈ Q, a ∈ Σ.

Man zeigt jetzt durch Induktion uber n, dass fur a1 · · · an ∈ Σ∗ gilt:

δ(q0, a1 · · · an) = δ′(q0, f(a1) · · · f(an)).

65

Page 69: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Also:

a1 · · · an ∈ LM ⇔ δ(q0, a1 · · · an) ∈ F⇔ δ′(q0, f(a1) · · · f(an)) ∈ F ′⇔ f(a1) · · · f(an) ∈ L′.

Also ist LM = f−1(L′). �

Man kann Teil (a) dieses Satzes benutzen, um die Nichtregularitat von kompliziertenSprachen (wie z. B. die syntaktisch korrekten Pascal-Programme) auf die prototypischerSprachen (wie die Sprache der korrekt geklammerten (-)-Ausdrucke) zuruckzufuhren, in-dem man einen Homomorphismus benutzt, der alle uninteressanten Buchstaben auf εabbildet.

Eine weitere ganz einfache Operation ist die Spiegelung von Wortern und Sprachen.

2.5.6 Definition Σ sei ein Alphabet.

(a) Zu w = a1 · · · an ∈ Σ∗, n ≥ 0, sei wR := an · · · a1.

(b) Zu L ⊆ Σ∗ sei LR := {wR | w ∈ L}.

(Beispiel: Ist L = {anbncn | n ≥ 0}, so ist LR = {cnbnan | n ≥ 0}.

2.5.7 Satz Ist L regular, so ist auch LR regular.

Beweis Wir skizzieren eine von mehreren Beweismoglichkeiten. Sei L ⊆ Σ∗ regular. SeiM = (Q,Σ, q0, F, δ) ein NFA mit L = LM . Betrachte GM . Wir fugen einen neuen Knotenvqf

hinzu, mit Kanten von vq nach vqffur alle q ∈ F , die alle mit ε markiert werden. Der

einzige akzeptierende Knoten im neuen Graphen GM ′ wird vqf. Offenbar ist M ′ ein ε-NFA

mit L = LM ′ , derart dass M genau einen akzeptierenden Zustand hat, der zudem von q0verschieden ist. Aus GM ′ bilde GM ′′ durch Umdrehen aller Kanten (ohne Veranderung derMarkierung); vq0

wird akzeptierend, vqfwird Startknoten. Es ist klar, dass LM ′′ = LR

M ,da in GM ′ genau dann ein Weg von vq0

nach vqfexistiert, der mit a1, a2, . . . , an markiert

ist, wenn in GM ′′ ein Weg von vqfnach vq0

existiert, der mit an, an−1, . . . , a1 markiert ist.�

Beispiel:

Start

00

1

1

0,1MG :

LM = L (0+(0 + 1)∗ + 1)

66

Page 70: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Start

00

1

1

0,1

ε

ε

M’G :

LM ′ = LM

0

1

1

0,1

ε

ε

0

Start

M"G :

LM ′′ = LRM = L (1 + (0 + 1)∗0+)

(Alternativ kann man durch Induktion uber die Definition regularer Ausdrucke beweisen,dass zu jedem regularen Ausdruck r ein rR existiert mit L(r)R = L(rR). Die Details mogeman sich als Ubung uberlegen.)

67

Page 71: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.6 Entscheidbarkeitsfragen fur regulare Sprachen

Hier fragen wir nach Verfahren, die anhand einer endlichen Sprachbeschreibung entschei-den, ob die entsprechende Sprache eine gewisse Eigenschaft hat oder nicht. Dabei bietendie regularen Sprachen im Bezug auf Entscheidbarkeitsfragen eine

”heile Welt“ an. Ins-

besondere sind die folgenden Probleme fur regulare Sprachen entscheidbar:

(a) Ist L = ∅?

(b) Ist |L| <∞?

(c) Ist L = Σ∗?

(d) Ist L1 ⊆ L2?

(e) Ist L1 = L2?

(f) Ist ε ∈ L?

(g) Ist w ∈ L? (Fur gegebenes w ∈ Σ∗.)

Naturlich muss man vorher sagen, in welcher Form die regularen Sprachen gegeben sind.Sprachen sind ja i. a. unendlich, also als Eingaben fur Algorithmen ungeeignet. Wir ver-wenden hier die bislang entwickelten Beschreibungsformen fur regulare Sprachen. Wirwerden also annehmen, dass die regularen Sprachen durch einen DFA, einen NFA, einenε-NFA oder einen regularen Ausdruck gegeben sind. Wir betrachten zunachst Automaten.

2.6.1 Satz Es gibt effiziente (d. h. Polynomialzeit-)Algorithmen, die folgende Pro-bleme losen: Zu einem vorgelegtem Automaten M = (Q, Σ, q0, F , δ) entscheide, ob(a) LM = ∅ (fur NFA oder ε-NFA M),(b) |LM | =∞ (fur NFA oder ε-NFA M),(c) LM = Σ∗ (fur DFA M).

Zu DFA’s M1 und M2 entscheide ob(d) LM1

⊆ LM2,

(e) LM1= LM2

.

Zu ε-NFA M entscheide ob(f) ε ∈ LM ,(g) w ∈ LM , fur gegebenes w ∈ Σ∗.

Beweis Wir formulieren die Algorithmen alle in der graphentheoretischen Sprache, stel-len uns also vor, dass ein Automat M als Graph GM gegeben ist. Beachte, dass dieTabelle (das |Q| × |Σ|-Array mit Eintragen aus P(Q) [fur (ε-)NFA’s] bzw. aus Q [furDFA’s]) fur δ im wesentlichen in seinen Zeilen die Adjazenzlisten fur GM enthalt, ein-schließlich der Kantenmarkierungen. Es ist fair, als Eingabegroße fur diesen Graphen

68

Page 72: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

|M | := |Q| + Σq∈Q,a∈Σ|δ(q, a)| anzusetzen, das ist die Summe aus Knoten- und Kanten-zahl in GM .

(a) Offenbar ist LM 6= ∅ genau dann, wenn es in GM uberhaupt einen Weg (vp0, . . . , vpm

)(mit m ≥ 0) von vq0

= vp0zu einem vpm

mit pm ∈ F gibt (ohne auf die Kantenmar-kierungen zu achten). Dies lasst sich z. B. durch Breitensuche in GM feststellen. DerZeitbedarf hierfur ist O(|M |).(b) Behauptung: |LM | =∞ gilt genau dann wenn es in GM einen Weg von vq0

zu einemvq mit q ∈ F gibt, der einen Kreis enthalt.[Beweis hiervon:

”⇒: Ist |LM | =∞, so existiert x ∈ LM mit m = |x| ≥ |Q|. Die Existenz

eines akzeptierenden Weges (p0, . . . , pm), der einen Knoten zweimal benutzt, also einenKreis enthalt, folgt wie im Beweis von Satz 2.4.1 (Pumping-Lemma).

”⇐“: Gibt es einen Weg von vq0

zu einem vq mit q ∈ F , der einen Kreis enthalt, sobesitzt nach dem Beweis von Satz 2.4.1 (Pumping-Lemma) L eine unendliche Teilmengeder Form {uviw | i ∈ N}, mit |v| ≥ 1, also ist L unendlich.]

Algorithmisch gehen wir so vor, dass wir zunachst die Menge V1 der Knoten ermitteln, vondenen aus ein Knoten vq mit q ∈ F erreichbar ist. Die anderen Knoten konnen naturlichfur das Akzeptieren von Wortern keine Rolle spielen; man kann sie weglassen. Dann prufenwir, ob es in Q1 einen bei vq0

beginnenden Weg mit einem Kreis gibt.

Algorithmus

1. Konstruiere die Umkehrung von GM :

GM :=({vq | q ∈ Q}, {(vq, vq′) | (vq′ , vq) Kante in GM}

).

2. Mittels Breitensuche in←

GM , startend von {vq | q ∈ F}, ermittle die Menge

V1 = {vq′ | ∃ Weg in←

GM von vq nach vq′ fur ein q ∈ F}( = {vq′ | ∃ Weg in GM von vq′ nach vq fur ein q ∈ F} ).

3. Bilde GM,1 := Einschrankung von GM auf V1.Falls Vq0

6∈ V ′, stoppe mit der Antwort”LM ist endlich“.

4. Tiefensuche in GM,1, vom Knoten vq0startend, mit dem Test, ob es jemals

Ruckwartskanten zu”aktiven“ Knoten gibt, erlaubt es festzustellen, ob von vq0

ausein gerichteter Kreis in G′ erreichbar ist. Falls dies so ist, wird

”∞“ ausgegeben,

sonst”endlich“.

Die”Behauptung“ besagt, dass LM unendlich ist genau dann wenn von vq0

aus ein gerich-teter Kreis in GM,1 erreichbar ist. Also ist der Algorithmus korrekt. Die Laufzeit ist durch

den Aufwand fur die Tiefensuche in←

GM bzw. GM1beschrankt; dies ist immer O(|M |).

(Fur Details zur Tiefensuche siehe die Vorlesung”Algorithmen und Datenstrukturen“

69

Page 73: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

oder auch das Buch von Cormen/Leiserson/Rivest/Stein, S. 540ff., insbesondere Lemma22.11.)

Bemerkung: Wenn M ε-Kanten hat, sucht man nach von vq0erreichbaren Kreisen in

GM,1, die mindestens eine mit einem Buchstaben a, also nicht mit ε, beschriftete Kantehaben. Ahnlichen Aufwand hat aber der Ansatz,M in einem NFA M ′ umzuwandeln (sieheSatz 2.3.7) und dann den beschriebenen Algorithmus auf M ′ anzuwenden. Hierbei erhohtsich eventuell die Kantenzahl, aber hochstens auf |Q|2. Die Laufzeit des Algorithmus istdamit O(|Q|2).(c) Da M ein DFA ist, genugt es zu testen, ob alle Wege von vq0

aus zu einem vq mitq ∈ F fuhren. Hierzu benutzt man eine einfache Breitensuche in gM , Laufzeit O(|M |).Bemerkung: Wenn M ein (ε-)NFA ist, genugt es nicht mehr, die Wege von vq0

aus zutesten. (Man konstruiere einen NFA, der nur akzeptierende Zustande hat und dennochnicht ganz Σ∗ akzeptiert.) Hier muss manM zuerst in einen DFA umwandeln. Die Laufzeitkann erheblich sein, da durch die Potenzmengenkonstruktion (Satz 2.2.8) die Zahl derZustande stark ansteigen kann, siehe Beispiel 2.2.10.

(d) Zu DFA’s M1,M2 bilde M ′2 mit LM ′

2= LM2

. Mit der Kreuzproduktkonstruktion

(Satz 2.1.10(c)) bilde M ′ mit LM ′ = LM1∩ LM ′

2= LM1

∩ LM2= LM1

− LM2. Teste (mit

dem Verfahren aus (a)) ob LM ′ = ∅.Die Laufzeit dieses Algorithmus ist linear in der Große von GM ′ , das ist O(|Q1| · |Q2| · |Σ|).(e) Wie in (d) baue mit der Kreuzproduktkonstruktion einen DFA M ′ fur die SpracheLM1⊕ LM2

= (LM1− LM2

) ∪ (LM2− LM1

). Mit dem Verfahren aus (a) teste, ob LM ′ = ∅.Bemerkung: (Fur (d) und (e).) Wenn M1,M2 (ε-)NFA’s sind, muss man sie zunachst inDFA’s umwandeln, wieder um den Preis einer eventuellen großen Erhohung der Zahl derZustande.

(f) Bei NFA M teste, ob der Startzustand akzeptierend ist. Bei ε-NFA M teste, ob es inGM einen ε-Weg (der Lange m ≥ 0) von vq0

zu einem vq mit q ∈ F gibt.

(g) Falls M DFA ist, lasst man (in Zeit O(|w|)) den Automaten M auf w ablaufen. FurNFA’s M benutzt man den Algorithmus aus Satz 2.2.6. Einen ε-NFA M wandelt manzunachst in einen NFA um und verwendet dann diesen Algorithmus.

2.6.2 Satz Es gibt Polynomialzeit-Algorithmen, die die folgenden Probleme losen: Zueinem vorgelegtem regularen Ausdruck r entscheide, ob

(a) L(r) = ∅,(b) |L(r)| =∞,(f) ε ∈ LM ,(g) w ∈ LM , fur gegebenes w ∈ Σ∗.

Fur die folgenden Probleme gibt es Algorithmen, die jedoch auch exponentielle Laufzeithaben konnen: Zu regularen Ausdrucken r bzw. r1 und r2 entscheide ob

70

Page 74: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(c) L(r) = Σ∗,(d) L(r1) ⊆ L(r2),(e) L(r1) = L(r2). (d. h. r1 ∼ r2).

Beweis Bei (a), (b), (f) und (g) wandelt man mit der Methode von Satz 2.3.8 denregularen Ausdruck r in einen aquivalenten NFA Mr um und wendet dann den entspre-chenden Algorithmus aus Satz 2.6.1 an. Nach Bemerkung 2.3.9 ist M nicht viel großer alsr. Bei (c), (d), (e) hingegen muss man aus r bzw. r1 und r2 zuerst einen aquivalenten DFAkonstruieren (Potenzmengenkonstruktion, Satz 2.2.8), um die Algorithmen aus Satz 2.6.1anwenden zu konnen. Dies kann zu DFA’s fuhren, die exponentiell großer sind als derregulare Ausdruck, von dem man ausgegangen ist. �

Bemerkung: Alternativ hierzu kann man auch durch eine konsequente Analyse derStruktur von r feststellen, ob L(r) leer ist oder unendlich ist oder ob L(r) = {ε} ist.Dies ist (eventuell) Gegenstand einer Ubungsaufgabe.

2.7 Die Minimierung deterministischer endlicher Au-

tomaten

In diesem Abschnitt kehren wir zu den DFA’s zuruck. Wir suchen”effizienteste“ DFA’s zu

einer vorgegebenen regularen Sprache L. Was soll das sein? Schließlich macht jeder DFAauf einem Eingabewort der Lange n genau n Schritte. Ein vernunftiges Komplexitatsmaßfur einen DFA M ist aber seine

”Große“, also die Zahl |Q| der Zustande. Wir suchen also

nach DFA’s mit moglichst wenigen Zustanden fur eine gegebene Sprache.

2.7.1 Unerreichbare Zustande

Betrachte den NFA M = (Q,Σ, q0, F, δ), der in Abb. 2.23 dargestellt ist.

bb,

Start 0

1

2

3

a

ab

a

Abbildung 2.23: Ein NFA fur L((a + b)∗(ab + ba))

Der NFA M hat vier Zustande. Die zugehorige Sprache umfasst alle Worter uber {a, b},die mit

”ab“ oder

”ba“ enden. Wenn wir aufM die Potenzmengenkonstruktion (Satz 2.2.8)

71

Page 75: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

anwenden, erhalten wir einen DFA M ′ = (Q′,Σ, q′0, F′, δ′) mit 16 Zustanden. Ein Teil von

M ′ ist in Abb. 2.24 dargestellt. Bei der Darstellung der Elemente von Q′ im Bild lassenwir die Mengenklammern weg, schreiben also z. B. 013 fur {0, 1, 3}.

123

03

/0

0

01

02

023

013

0123012Start

a

a

b a

bb

ab

a

b

a

b

a

b

b

a

Weitere unerreichbare Zustände (Kanten weggelassen):

1 2 3 12 13 23

Abbildung 2.24: Ein DFA, erhalten mit der Potenzmengenkonstruktion (Teil)

Wegen der mit a, b beschrifteten Schleife an Zustand q0 = 0 in M gilt fur jeden vomStartzustand q′0 = {0} in M ′ aus erreichbaren Zustand B, dass 0 ∈ B ist. Die achtZustande, die 0 nicht enthalten (in Abb. 2.24 in der letzten Reihe aufgelistet), spielen alsofur kein Eingabewort eine Rolle.

Es gibt aber auch Zustande B von M ′, die 0 enthalten und trotzdem unerreichbar sind,namlich die Zustande {0, 3}, {0, 1, 2} und {0, 1, 2, 3}.Man vergleiche auch nochmals Beispiel 2.2.9 und das dortige Bild. Dort sind genau dieZustande B ∈ Q′ mit 0 /∈ B nicht von q0 aus erreichbar. Der Zustand {1, 2, 3} in demdortigen DFA ist ein Beispiel dafur, dass auch solche Zustande unerreichbar sein konnen,in die Kanten hineinfuhren.

2.7.1 Definition Sei M = (Q,Σ, q0, F, δ) ein DFA. Ein Zustand q ∈ Q heißt uner-reichbar (manchmal auch: uberflussig), wenn δ(q0, w) 6= q fur alle w ∈ Σ∗ (d. h.(!)wenn es in GM keinen Weg von vq0

nach vq gibt). Ein Zustand q ∈ Q heißt erreichbar,wenn δ(q0, w) = q fur ein w ∈ Σ∗.

Wieso konnen uberhaupt unerreichbare Zustande auftreten?”Von Hand“ konstruierte

DFA’s werden naturlich keine solchen Zustande enthalten. Oft werden aber DFA’s vonAlgorithmen oder Programmen erzeugt, die dann durchaus unerreichbare Zustande ent-halten konnen. Nicht nur bei der Potenzmengenkonstruktion, sondern auch bei der Kreuz-

72

Page 76: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

produktkonstruktion (Satz 2.1.10(c)) kann dies auftreten. Man uberlege sich zum Beispiel,dass das Kreuzprodukt eines DFA M mit sich selbst unerreichbare Zustande hat, wennM nicht vollig trivial ist.

Es gibt einen ganz einfachen Algorithmus, der zu einem DFA M = (Q,Σ, q0, F, δ) dieMenge U der unerreichbaren Zustande identifiziert. Es ist ziemlich naturlich, dass mandafur die Menge der erreichbaren Zustande ermittelt; die unerreichbaren Zustande sinddann der Rest von Q. Man fuhrt einfach in GM eine Breitensuche vom Startknoten vq0

aus durch; dabei werden genau die erreichbaren Zustande entdeckt. Wenn man geeigneteDatenstrukturen benutzt, ist die Laufzeit O(|Q| · |Σ|).Fur den DFA M ′ aus Abb. 2.24 ergibt sich {0, 01, 02, 023, 013} als die Menge der erreich-baren Zustande, unerreichbar sind die anderen 11 Zustande von M ′.

Uberflussige Zustande kann man weglassen, ohne die zu einem DFA gehorende Sprachezu verandern. Dies wird im Folgenden genau begrundet.

2.7.2 Bemerkung Zu einem DFAM = (Q,Σ, q0, F, δ) definieren wirMe = (Qe,Σ, q0, Fe,δe) durch:

Qe := {q ∈ Q | q erreichbar },Fe := Qe ∩ F,δe := δ ↾ Qe × Σ ,

(Einschrankung von δ auf Qe × Σ) .

Wir lassen also aus GM alle unerreichbaren Knoten weg, sowie die Kanten, die in solcheKnoten hineinfuhren oder aus solchen Knoten herausfuhren.

Wir behaupten nun: Me ist DFA ohne unerreichbare Zustande, und LM = LMe.

Beweis : Nach Definition entspricht Qe genau der Menge der Knoten in GM , die von vq0

aus auf einem Weg in GM erreichbar sind. Damit haben GM und GMegenau dieselben

von vq0aus startenden Wege, mit denselben Kantenmarkierungen. Die akzeptierenden

Zustande innerhalb von Qe sind ebenfalls identisch. Daraus folgt LM = LMe. Weiterhin

sind alle in GM von vq0aus erreichbaren Knoten auch in GMe

erreichbar, also hat GMe

keine unerreichbaren Zustande. �

Beispielsweise ergibt sich aus dem DFA M ′ aus Abb. 2.24 durch Weglassen der uner-reichbaren Zustande der in Abb. 2.25 angegebene DFA, in dem alle Zustande erreichbarsind.

73

Page 77: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

a

0

01

02

023

013

Start

a

a

bb

a

b

a

b

b

Abbildung 2.25: Ein DFA ohne unerreichbare Zustande

2.7.2 Aquivalente und nicht-aquivalente Zustande

Dass ein DFA keine unerreichbaren Zustande enthalt, heißt noch nicht, dass er schon dieminimale Zahl von Zustanden fur die akzeptierte Sprache hat.

2.7.3 Beispiel Sei M = ({0,1,2,3,4}, {a, b},0, {1,2}, δ) durch den in Abb. 2.26 dar-gestellten Graphen gegeben.

a

a

a

b

b

bb

b

a

a

Start 0

1

3

42

Abbildung 2.26: Ein DFA mit aquivalenten Zustanden

(Zur Ubung moge man sich uberlegen, welche Sprache LM zu diesem DFA gehort.)

Wir beobachten, durch Inspektion, dass die Zustande 1 und 2 praktisch”dasselbe tun“:

Wenn wir in 1 starten und eine Buchstabenfolge w = b1 · · · bm lesen, so bringt uns jedesgelesene a in den Zustand 1, und jedes b, das einem a folgt, in Zustand 3. Das erste Paaraufeinanderfolgender b’s fuhrt uns in Zustand 0. Wenn wir in 2 starten, spielt sich genaudasselbe ab, nur ubernimmt 4 die Rolle von 3 und 2 die Rolle von 1. Obendrein sind 1und 2 akzeptierend und 3 und 4 verwerfend. Man sieht, dass M beim Lesen eines Wortes

74

Page 78: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

w keinen Unterschied zwischen Start in Zustand 1 und Start in Zustand 2 feststellen kann,solange wir nur fragen, ob wir in einem akzeptierenden oder verwerfenden Zustand sind.

Technisch ausgedruckt: Fur jedes w ∈ {a, b}∗ gilt: δ(1, w) ∈ F ⇔ δ(2, w) ∈ F . Man kannnun auf den Zustand 2 verzichten und alle Kanten, die auf v2 zeigen, auf v1 ”

umhangen“,ohne die Menge der akzeptierten Worter zu verandern:

b

a

ab

b

b ,ba,ba

a

ab

a

1

3

4Start

1

3

0Start 0

Abbildung 2.27: DFA aus Abb. 2.26 nach Entfernen des (zu 1 aquivalenten) Zustandes 2und nach Streichen des unerreichbaren Zustandes 4

Nun ist Zustand 4 unerreichbar geworden, und mit 2.7.2 erhalten wir durch Weglassendieses Zustandes einen Automaten mit drei Zustanden fur LM (der sich nicht weiterverkleinern lasst).

”Aquivalenz“ von Zustanden liefert also einen Ansatz zur Verkleinerung von DFA’s. Wir

entwickeln nun zunachst eine Methode, um fur jedes Zustandspaar festzustellen, ob sie

”aquivalent“ sind oder nicht. Zunachst mussen wir genau formulieren, was wir unter Aqui-

valenz von Zustanden verstehen wollen.

Erinnerung: Aquivalenzrelationen und Partitionen.(Siehe Vorlesung

”Diskrete Strukturen“.)

Sei X eine nichtleere Menge. Eine zweistellige Relation ∼⊆ X ×X (wir schreiben x ∼ yfur (x, y) ∈∼) heißt eine Aquivalenzrelation, wenn gilt:

(i) Reflexivitat : ∀x ∈ X : x ∼ x.

(ii) Symmetrie : ∀x, y ∈ X : x ∼ y ⇒ y ∼ x.

(iii) Transitivitat : ∀x, y, z ∈ X : x ∼ y ∧ y ∼ z ⇒ x ∼ z.

Ist ∼ eine Aquivalenzrelation, so wird dadurch X in”Aquivalenzklassen“ Xi, i ∈ I

zerlegt.3 Das heißt: Die Mengen Xi, i ∈ I, sind paarweise disjunkt und X =⋃

i∈I Xi.(Man sagt: Xi, i ∈ I, bilden eine Partition (

”Aufteilung“) von X.) Und weiter: x ∼ y

gilt genau dann wenn es ein i mit x, y ∈ Xi gibt.

Fur die Aquivalenzklasse von x schreibt man [x] oder [x]∼. Es gilt: x ∼ y ⇔ [x] = [y] undx 6∼ y ⇒ [x] ∩ [y] = ∅.

3I ist eine passende Indexmenge.

75

Page 79: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beispiel : X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10}.Mit x ∼ y :⇔ 3 teilt (x− y) ergeben sich die folgenden Klassen:

[0] = [3] = [6] = [9] = {0, 3, 6, 9},[1] = [4] = [7] = [10] = {1, 4, 7, 10},

[2] = [5] = [8] = {2, 5, 8}.

10

0 1 2

3 4 5

6 7 8

9

Abbildung 2.28: Eine Partition, entsprechend einer Aquivalenzrelation

Man lernt in der Mathematik, dass eine Aquivalenzrelation auf X gleichbedeutend miteiner Partition von X ist: Ist eine Aquivalenzrelation ∼ vorgegeben, bilden die Aquiva-lenzklassen eine Partition von X. Ist eine Partition {Xi | i ∈ I} von X gegeben, erhaltman eine Aquivalenzrelation durch die Festsetzung: x ∼ y falls x, y ∈ Xi fur ein i ∈ I.Wieso benutzt man zwei verschiedene Sprechweisen, wenn es doch eigentlich um dieselbeStruktur geht? Normalerweise kann man sich eine Einteilung von X in disjunkte Klas-sen leichter vorstellen; Aquivalenzrelationen auf X sind dagegen oft beweistechnisch undalgorithmentechnisch leichter zu handhaben – so auch in unserem Fall.

2.7.4 Definition Sei M = (Q,Σ, q0, F, δ) ein DFA. Fur p, q ∈ Q definiere: p ∼ q wennfur alle w ∈ Σ∗ gilt: δ(p, w) ∈ F ⇔ δ(q, w) ∈ F .

(Intuitiv gesprochen: Zustande p und q sind aquivalent, wenn M mit seinen Mitteln,namlich δ auf Worter anzuwenden und Zustande darauf zu testen, ob sie in F oder Fliegen, p und q nicht unterscheiden kann.)

Im DFA aus Abb. 2.26 sind die Zustande 1 und 2 aquivalent, wie oben diskutiert. DieZustande 0 und 2 sind nicht aquivalent, weil δ(0, ε) = 0 /∈ F , aber δ(2, ε) = 2 ∈ F .Weiterhin sind 0 und 4 nicht aquivalent, weil δ(0, b) = 2 ∈ F , aber δ(4, b) = 0 /∈ F .(Man suche weitere nichtaquivalente Paare!)

76

Page 80: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.7.5 Lemma Die in 2.7.4 definierte Relation ∼ ist eine Aquivalenzrelation auf Q.

Beweis Dass ∼ reflexiv, symmetrisch und transitiv ist, ergibt sich sofort aus den ent-sprechenden Eigenschaften von

”⇔“. �

Nun stellt sich die Frage, wie wir feststellen konnen, ob zwei Zustande p und q aqui-valent sind. Wenn man versucht, direkt Definition 2.7.4 zu benutzen, bemerkt man dieSchwierigkeit, in endlicher Zeit die Bedingung

∀w ∈ Σ∗ : δ(p, w) ∈ F ⇔ δ(q, w) ∈ F

zu testen, die von unendlich vielen w’s spricht.

Wir losen dieses Problem, indem wir zur komplementaren Relation, der Nicht-Aquivalenzubergehen. Wann sind p und q nicht aquivalent? Wir notieren eine Basis-Bedingung:

(∗) Wenn p ∈ F und q ∈ F oder q ∈ F und p ∈ F , dann sind p und q nicht aquivalent.

(Beweis : Das Wort ε erfullt

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

was der Definition von ∼ widerspricht.)

Weiterhin notieren wir eine Schlussregel, die es erlaubt, Nicht-Aquivalenz von einem Paarp, q auf ein anderes Paar p′, q′ zu ubertragen.

(∗∗) Wenn p 6∼ q und δ(q′, a) = q und δ(p′, a) = p fur ein a ∈ Σ, dann sind p′ und q′ auchnicht aquivalent.

(Beweis : Wenn p 6∼ q, dann heißt das nach Definition 2.7.4, dass es ein Wort w ∈ Σ∗ gibtderart dass einer der Zustande δ(p, w), δ(q, w) in F liegt, der andere nicht. Nun gilt

δ(p′, aw) = δ(p, w) und δ(q′, aw) = δ(q, w) ;

also liegt einer der Zustande δ(p′, aw), δ(q′, aw) in F , der andere nicht. Nach Definiti-on 2.7.4 bedeutet das aber gerade, dass p′ und q′ nicht aquivalent sind.)

Aus Regeln (i) und (ii) erhalten wir einen”Markierungsalgorithmus“ zum Ermitteln von

Paaren nicht-aquivalenter Zustande. Zu Beginn markieren wir Paare p, q, wenn p ∈ Fund q /∈ F oder umgekehrt. Nachher prufen wir fur unmarkierte Paare p′, q′, ob es eina ∈ Σ gibt derart dass q = δ(q′, a) und p = δ(p′, a) ein markiertes Paar bilden. In diesemFall wird auch p′, q′ markiert. Dieser Schritt wird so lange iteriert, bis er nicht mehrdurchfuhrbar ist. Etwas formaler gefasst ergibt sich folgendes Verfahren.4

4Mit [Q]2 bezeichnen wir die Menge {{p, q} | p, q ∈ Q, p 6= q} der ungeordneten Paare verschiedenerElemente von Q.

77

Page 81: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

2.7.6 Algorithmus”NICHT-AQUIVALENZ“

Input: DFA M = (Q,Σ, q0, F, δ)

var H: subset of [Q]2 (Halde oder Warteschlange:die markierten, noch nicht bearbeiteten Zustandspaare)

N: subset of [Q]2 (die als nicht-aquivalent markierten Zustandspaare)

begin

N := H := {{p, q} | p ∈ F, q /∈ F} ;

while H6= ∅ do

entnehme (beliebiges) Paar {p, q} aus H ;

for all a ∈ Σ do

for all p′, q′ ∈ Q do

if {δ(p′, a), δ(q′, a)} = {p, q} und {p′, q′} 6∈ N then

N := N∪{{p′, q′}} ;

H := H∪{{p′, q′}} ;

”bearbeite {p, q}“

return N ;

end.

Die Ausgabe ist die am Ende in N gespeicherte Menge von Paaren, die wir N∗ nennen.

Wir wenden Algorithmus 2.7.6 auf den DFA aus Abb. 2.26 an. Dies fuhrt zu folgenderBerechnung.

Runde Paar neu in N H

0 − {0, 1}, {0, 2}, {1, 3}, {2, 3}, {1, 4}, {2, 4} {0, 1}, {0, 2}, {1, 3}, {2, 3}, {1, 4}, {2, 4}1 {0, 1} – {0, 2}, {1, 3}, {2, 3}, {1, 4}, {2, 4}2 {0, 2} {0, 4}, {0, 3} {1, 3}, {2, 3}, {1, 4}, {2, 4}, {0, 4}, {0, 3}3 {1, 3} – {2, 3}, {1, 4}, {2, 4}, {0, 4}, {0, 3}4 {2, 3} – {1, 4}, {2, 4}, {0, 4}, {0, 3}5 {1, 4} – {2, 4}, {0, 4}, {0, 3}6 {2, 4} – {0, 4}, {0, 3}7 {0, 4} – {0, 3}8 {0, 3} – ∅

Der folgende Satz besagt, dass der Markierungsalgorithmus immer die nichtaquivalentenPaare liefert, so dass man aus seinem Ergebnis auch die aquivalenten Paare und damitauch die Aquivalenzklassen des DFA M ablesen kann.

2.7.7 Satz Wenn Algorithmus 2.7.6 auf einen DFA M = (Q,Σ, q0, F, δ) angewendetwird, dann werden genau die Paare {p, q} mit p 6∼M q markiert. (Die Ausgabemenge N∗

enthalt genau die Paare aus nicht-aquivalenten Zustanden.)

78

Page 82: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beweis : Wir mussen zeigen, dass ein Paar {p, q} genau dann markiert wird, wenn p undq nicht aquivalent sind.

”⇒“: Einen Durchlauf durch die while-Schleife nennen wir eine

”Runde“. Wir zeigen

durch Induktion uber die Rundennummer, dass jedes markierte Paar {p, q} aus nichtaqui-valenten Zustanden besteht.

I.A.: Wenn {p, q} in der Initialisierungsphase markiert wird, dann gilt p ∈ F ⇔ q /∈ F .Nach Regel (∗) (nach Lemma 2.7.5) sind p, q nicht aquivalent.

Induktionsannahme: Alle bis zur Runde r − 1 markierten Zustandspaare {p, q} sindnichtaquivalent.

Induktionsschritt: Wenn {p′, q′} in Runde r ≥ 1 markiert wird, dann gibt es (nach demAlgorithmus) ein Paar {p, q}, das in einer fruheren Runde markiert wurde, und einenBuchstaben a ∈ Σ mit δ(p′, a) = p und δ(q′, a) = q. Nach I.V. gilt p 6∼ q. Nach Nach Regel(∗∗) (nach Lemma 2.7.5) sind p′, q′ nicht aquivalent. Damit ist die Induktionsbehauptunggezeigt.

”⇐“: Sei p 6∼ q, d. h., es gibt ein Wort w = b1 · · · bm mit δ(p, w) ∈ F ⇔ δ(q, w) /∈ F .

Wir definieren wi = b1 · · · bi, fur 0 ≤ i ≤ m, und zeigen die folgende Behauptung:

(2.5) δ(p, wi) 6∼ δ(q, wi) , fur 0 ≤ i ≤ m.

Die Behauptung wird durch Induktion uber i = m,m − 1, . . . , 0 bewiesen (man beachtedie etwas ungewohnliche Reihenfolge).

I.A.: δ(p, wm) = δ(p, w) und δ(q, wm) = δ(q, w). Von diesen Zustanden ist einer in F , derandere nicht, also sind sie nicht aquivalent.

I.Vor.: Sei i ≥ 1 mit δ(p, wi) 6∼ δ(q, wi).

I.Schritt: δ(p, wi) = δ(δ(p, wi−1), bi) und δ(q, wi) = δ(δ(q, wi−1), bi). Nach I.V. sindδ(p, wi) und δ(q, wi) nicht aquivalent, daraus folgt mit Regel (∗∗) (nach Lemma 2.7.5),dass δ(p, wi−1) und δ(q, wi−1) nicht aquivalent sind.

Nach der Behauptung fur i = 0 sind δ(p, w0) = δ(p, ε) = p und δ(q, w0) = δ(q, ε) = qnicht aquivalent, was zu zeigen war. �

Wir beschreiben noch eine ubersichtlichere Darstellungsweise fur den Markierungsalgo-rithmus fur die nichtaquivalenten Zustande, die fur die Durchfuhrung per Hand geeignetist. Man benutzt eine dreieckige Tabelle mit 1

2|Q|(|Q|−1) Platzen, in der es fur jedes (unge-

ordnete) Paar {p, q} von verschiedenen Zustanden eine Position gibt. Zu Beginn markiertman die Positionen der Paare {p, q} mit p ∈ F und q /∈ F und notiert, dass alle dieseMarkierungen noch nicht bearbeitet sind. Dann iteriert man folgenden Schritt: Wahleeine noch nicht bearbeitete Markierung, z. B. fur das Paar {p, q}. Fur jedes unmarkiertePaar {p′, q′} derart, dass es einen Buchstaben a gibt mit δ(q′, a) = q und δ(p′, a) = p,markiere {p′, q′} und notiere, dass {p′, q′} noch nicht bearbeitet ist.

Beispiel : Fur den DFA aus Abb. 2.26 benotigen wir eine Tabelle der folgenden Form.

79

Page 83: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

1

2

3

4

0 1 2 3

Wir markieren die Paare {p, q} mit p ∈ F und q /∈ F mit (willkurlich angeordneten)Nummern:

1 1

2 2

3 3 4

4 5 6

0 1 2 3

Nun werden die markierten Paare, z. B. in der Reihenfolge ihrer Nummern, durchmustert,und gepruft, ob sie zu neuen Markierungen fuhren. Bei Paar {0, 1} ist das nicht der Fall.Bei Paar {0, 2} sehen wir, dass δ(4, b) = 0 und δ(0, b) = 2. Daher wird nun Paar {0, 4}markiert. Weiter ist δ(3, b) = 0 und δ(0, b) = 2, und auch Paar {0, 3} wird markiert. Beibearbeiteten Paaren kann man z. B. die Markierung durchstreichen; sie werden nie mehrangesehen. Dies liefert folgendes Bild:

1 6 12 6 23 7 3 4

4 8 5 6

0 1 2 3

Abarbeiten der weiteren markierten Paare liefert nichts Neues mehr; wir erhalten alsendgultiges Resultat folgendes Bild:

1 6 12 6 23 6 7 6 3 6 44 6 8 6 5 6 6

0 1 2 3

In der Tabelle bleiben eventuell Felder frei. Diese entsprechen genau den unmarkiertenPaaren {p, q}, also den Paaren aquivalenter Zustande. Aus diesen Paaren lassen sich dieAquivalenzklassen leicht ablesen.

80

Page 84: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Wenn man den Algorithmus von Hand durchfuhrt, braucht man die Tabellenplatze nichtmit Nummern zu versehen, sondern es reicht, sie zu markieren, z. B. die entdeckten, abernoch nicht bearbeiteten Paare, also die Elemente von N∩ H, mit einem Strich

”/“ und die

bearbeiteten Paare (N− H) mit einem Kreuz”ד.

Wir betrachten noch ein weiteres, umfangreicheres Beispiel.

2.7.8 Beispiel Man betrachte den folgenden DFA M = (Q,Σ, q0, F, δ) mitQ = {0, 1, . . . , 8}, Σ = {a, b}, q0 = 0, F = {0, 1, 4, 5, 6, 8}:

Start

b

b b

b

b

b

b b b

a

a

a

a a

a a

aa0 1 2

3 4 5

6 7 8

Wir uberlegen kurz, welche Sprache dieser DFA erkennt. Mit dem Lesen eines”a“ ruckt

man zyklisch eine Spalte weiter, mit dem Lesen eines”b“ zyklisch eine Zeile. Akzeptiert

werden die Worter w, fur die |w|a ≡ |w|b mod 3 oder |w|a ≡ |w|b + 1 mod 3.

(Dieser DFA ergibt sich aus einer Variante der Kreuzproduktkonstruktion (vgl. 2.1.10(c)),angewendet auf zwei DFA’s zum Zahlen der a’s bzw. b’s modulo 3.)

Wir wenden den Markierungsalgorithmus auf diesen DFA an. Nach der Initialisierunghaben wir die folgende Tabelle:

1

2 1 4

3 2 5

4 7 11

5 8 12

6 9 13

7 3 6 15 16 17

8 10 14 18

0 1 2 3 4 5 6 7

81

Page 85: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Nun werden die Markierungen in aufsteigender Reihenfolge abgearbeitet. Zur Ubung sollteman jeden Schritt nachvollziehen.

Nummer Paarerreicht ubera-Kanten von

erreicht uberb-Kanten von

neu markiert

1 {0, 2} {1, 2} {6, 8} 19: {6, 8}2 {0, 3} {2, 5} {0, 6} 20: {0, 6}3 {0, 7} {2, 6} {4, 6} 21: {4, 6}4 {1, 2} {0, 1} {7, 8} 22: {0, 1}5 {1, 3} {0, 5} {0, 7} 23: {0, 5}6 {1, 7} {0, 6} {4, 7} –7 {2, 4} {1, 3} {1, 8} 24: {1, 8}8 {2, 5} {1, 4} {2, 8} 25: {1, 4}9 {2, 6} {1, 8} {3, 8} –10 {2, 8} {1, 7} {5, 8} 26: {5, 8}11 {3, 4} {4, 5} {0, 1} –12 {3, 5} {3, 4} {0, 2} –13 {3, 6} {5, 8} {0, 3} –14 {3, 8} {5, 7} {0, 5} –15 {4, 7} {3, 6} {1, 4} –16 {5, 7} {4, 6} {2, 4} –17 {6, 7} {6, 8} {3, 4} –18 {7, 8} {6, 7} {4, 5} 27: {4, 5}19 {6, 8} {7, 8} {3, 5} –20 {0, 6} {2, 8} {3, 6} –21 {4, 6} {3, 8} {1, 3} –22 {0, 1} {0, 2} {6, 7} –23 {0, 5} {2, 4} {2, 6} –24 {1, 8} {0, 7} {7, 5} –25 {1, 4} {0, 3} {1, 7} –26 {5, 8} {4, 7} {2, 5} –27 {4, 5} {3, 4} {1, 2} –

Tabelle 2.5 zeigt das Ergebnis nach dem Ausfullen. (Wir haben die Markierungsnummernnicht durchgestrichen.)

Die leeren Felder in Tabelle 2.5 geben die Paare nicht-aquivalenter Zustande an. Im Bei-spiel sind dies

{2, 3}, {0, 4}, {1, 5}, {1, 6}, {5, 6}, {2, 7}, {3, 7}, {0, 8}, {4, 8}was den folgenden Aquivalenzklassen entspricht:

{0, 4, 8}, {1, 5, 6}, {2, 3, 7}.(Diese Aquivalenzklassen lassen sich in Fig. 2.26 als Diagonalmengen interpretieren.

82

Page 86: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

1 22

2 1 4

3 2 5

4 25 7 11

5 23 8 12 27

6 20 9 13 21

7 3 6 15 16 17

8 24 10 14 26 19 18

0 1 2 3 4 5 6 7

Tabelle 2.5: Ergebnis des Markierungsalgorithmus

2.7.3 Minimalautomaten

Mit den Ergebnissen des letzten Abschnitts konnen wir die Zustandsmenge Q eines be-liebigen DFA’s in Aquivalenzklassen bezuglich ∼M aufteilen. Wir zeigen nun, dass sichdie Menge dieser Aquivalenzklassen als Zustandsmenge eines DFA fur LM mit minimalerGroße benutzen lasst, wenn man von einem DFA ohne unerreichbare Zustande ausgeht.Diesen neuen DFA (den

”Aquivalenzklassenautomaten“) kann man direkt definieren.

2.7.9 Definition Sei ∼ zu einem DFA M = (Q,Σ, q0, F, δ) wie in 2.7.4 definiert. Nundefiniere einen DFA M = (Q, Σ, q0, F , δ) durch:

Q := {[q] | q ∈ Q} (Menge der Aquivalenzklassen bzgl. ∼) ;

q0 := [q0] ;

F := {[q] | q ∈ F} ;

δ([q], a) := [δ(q, a)], fur [q] ∈ Q, a ∈ Σ.

Fur das Beispiel aus Abb. 2.7.8 hatten wir in Abschnitt 2.7.2 drei Aquivalenzklassenidentifiziert. Damit ergibt sich mit Definition 2.7.9:

Q ={{0, 4, 8}, {1, 5, 6}, {2, 3, 7}

},

Σ = {a, b},q0 = {0, 4, 8},F =

{{0, 4, 8}, {1, 5, 6}

};

die Ubergangsfunktion δ ist durch folgenden Graphen gegeben:

83

Page 87: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Start

a

b

2,3,71,5,60,4,8b b

aa

Man bemerkt, dass in diesem Beispiel kein Konflikt entsteht: Fur jede Klasse [q] ∈ Q ist[q] ⊆ F oder [q] ∩ F = ∅; und es gilt stets q ∼ q′ ⇒ δ(q, a) ∼ δ(q′, a). Im folgenden Satzwird unter anderem gezeigt, dass dies immer so ist.

2.7.10 Satz (Korrektheit der Aquivalenzklassen-Konstruktion) Sei M ein DFA;sei M zu M wie in 2.7.9 definiert. Dann gilt :

(a) Wenn q ∼ q′, dann gilt q ∈ F ⇔ q′ ∈ F .D. h.: fur jedes q ∈ Q ist [q] ⊆ F oder [q] ∩ F = ∅.

(b) δ ist wohldefiniert ;

(c) M ist ein DFA;

(d) LM = LM .

Beweis : (a) Sei q ∼ q′. Nach Def. 2.7.4 gilt q′ = δ(q′, ε) ∈ F genau dann wenn q = δ(q, ε) ∈F .

(b) Wohldefiniertheit bedeutet, dass die Definition von δ, die formal auf einen Re-prasentanten einer Aquivalenzklasse bezogen ist, nur von der Klasse, nicht vom Reprasen-tanten abhangt. Sei dazu a ∈ Σ, q′ ∈ [q] beliebig. Zu zeigen ist: [δ(q, a)] = [δ(q′, a)], d. h.δ(q, a) ∼ δ(q′, a). Tatsachlich gilt fur alle w ∈ Σ∗:

δ(q, aw) ∈ F ⇔ δ(q′, aw) ∈ F,

weil q ∼ q′. Also gilt fur alle w ∈ Σ∗:

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

was δ(q, a) ∼ δ(q′, a) bedeutet.

(c) Alle formalen Anforderungen an einen DFA sind erfullt:Q ist endlich und nichtleer, Σ ist Alphabet, q0 ∈ Q, F ⊆ Q und δ : Q× Σ→ Q.

(d) Hilfsbehauptung (HB):

δ([q], w) = [δ(q, w)], fur alle q ∈ Q, w ∈ Σ∗.

84

Page 88: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

[Beweis von HB durch Induktion uber n = |w|: Ist w = ε, so gilt δ([q], ε) = [q] = [δ(q, ε)].Im Induktionsschritt ist w = ua fur u ∈ Σ∗, a ∈ Σ. Dann gilt:

δ([q], ua) = δ(δ([q], u), a)I.V.= δ([δ(q, u)], a)

Def.δ= [δ(δ(q, u), a)] = [δ(q, ua)];

dies ist die Induktionsbehauptung.]

Damit haben wir fur beliebige w ∈ Σ∗:

w ∈ LM ⇔ δ(q0, w) ∈ F HB⇔ [δ(q0, w)] ∈ FTeil(a)⇔ δ(q0, w) ∈ F ⇔ w ∈ LM .

Aber ist nun der Aquivalenzklassenautomat endlich minimal? Ja, wie der nachste Satzbelegt. Damit ergibt sich der kleinste DFA fur eine Sprache LM wie folgt: Streiche aus Malle unerreichbaren Zustande (Ergebnis M0) und wende dann auf M0 die Aquivalenzklas-senkonstruktion an (Ergebnis M0).

2.7.11 Satz (Minimalitat) Es sei M = (Q,Σ, q0, F, δ) ein DFA ohne unerreichbareZustande, und M zu M sei wie in 2.7.9 definiert. Weiter sei M ′ = (Q′,Σ, q′0, F

′, δ′) einbeliebiger DFA ohne unerreichbare Zustande, mit LM = LM ′.Dann gibt es eine surjektive Funktion

Φ: Q′ → Q ,

so dass gilt :

(2.6) Φ(δ′(q′, a)) = δ(Φ(q′), a), fur a ∈ Σ und q′ ∈ Q′,

sowie

(2.7) q′ ∈ F ′ ⇔ Φ(q′) ∈ F .

Aus der Surjektivitat von Φ folgt insbesondere, dass |Q′| ≥ |Q|, also dass kein DFA furLM eine geringere Anzahl von Zustanden haben kann als M . Insofern konnen wir M einenMinimalautomaten fur LM nennen.

Die Formeln (2.6) und (2.7) besagen, dass M eine”Vergroberung“ auch von M ′ ist, wobei

die Funktion Φ aquivalente Zustande von M ′ auf denselben Zustand in M abbildet.

Beweis von Satz 2.7.11: Es sei q′ ∈ Q′. Weil jeder Zustand in M ′ erreichbar ist, gibt esein Wort w ∈ Σ∗ derart, dass δ′(q′0, w) = q′ ist. Wir definieren:

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

85

Page 89: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Hier gibt es wieder die Frage, ob hierdurch Φ wohldefiniert ist, oder ob die Definitionvon der willkurlichen Wahl von w abhangt. Die folgende Behauptung zeigt, dass hierkein Problem besteht: wenn δ′(q′0, w1) = q′ und δ′(q′0, w2) = q′ gilt, dann ist [δ(q0, w1)] =[δ(q0, w1)].

Behauptung: Wenn δ′(q′0, w1) = q′ und δ′(q′0, w2) = q′, dann ist δ(q0, w1) ∼M δ(q0, w2).

(Beweis der Behauptung: Setze p1 = δ(q0, w1) und p2 = δ(q0, w1). Nun sei w ∈ Σ∗ beliebig.Wir haben:

δ(p1, w) = δ(q0, w1w) und δ(p2, w) = δ(q0, w2w).

Nach Voraussetzung ist δ′(q′0, w1w) = δ′(q′, w) = δ′(q′0, w2w). Das heißt, dass w1w ∈ LM ′ =LM gilt genau dann wenn w2w ∈ LM ′ = LM , in anderen Worten:

δ(p1, w) = δ(q0, w1w) ∈ F genau dann wenn δ(p2, w) = δ(q0, w2w) ∈ F.

Da dies fur jedes beliebige w gilt, ist p1 ∼M p2, wie gewunscht.)

Es sei [q] ein beliebiger Zustand in Q, mit q ∈ Q. Weil M keine unerreichbaren Zustandehat, gibt es ein w mit δ(q0, w) = q. Setze q′ = δ′(q′0, w). Dann gilt:

Φ(q′) = Φ(δ(q′0, w)) = [δ(q0, w)] = [q].

Also ist Φ surjektiv.

Es bleiben die beiden Gleichungen (2.6) und (2.7) zu beweisen, die besagen, dass Φ ein

”Automaten-Homomorphismus“ ist.

Es sei w ein Wort mit δ′(q′0, w) = q′. Dann ist einerseits

Φ(δ′(q′, a)) = Φ(δ′(q′0, wa)) = [δ(q0, wa)]

und andererseits

δ(Φ(q′), a) = δ([δ(q0, w)], a) = [δ(δ(q0, w), a)] = [δ(q0, wa)] .

Das beweist (2.6). Weiterhin gilt

q′ ∈ F ′ ⇔ w ∈ LM ′ = LM = LM ⇔ [Φ(q′)] = [δ(q0, w)] ∈ F .

Anmerkung: Wenn man noch etwas genauer hinsieht, kann man sogar feststellen, dassalle Automaten fur eine regulare Sprache mit der minimalen Zustandszahl

”isomorph“

sind. Im Licht dieser Tatsache ist es gerechtfertigt, den Aquivalenzklassenautomaten Mden Minimalautomaten fur LM zu nennen.

86

Page 90: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Kapitel 3

Grammatiken und dieChomsky-Hierarchie

In den 50er Jahren gab Noam Chomsky (∗1928), ein amerikanischer Linguist, vier Gram-matiktypen als mogliche Modelle fur Grammatiken naturlicher Sprachen an. Die Infor-matiker (und -innen), die sich einerseits mit Formalismen zur Spezifikation kunstlicherSprachen (Programmiersprachen!) und Algorithmen zur Syntaxanalyse in solchen Spra-chen beschaftigten, und andererseits die formalen Sprachen als interessanten Gegenstandmathematischer Untersuchungen ansahen, bemachtigten sich bald Chomskys Definitio-nen, formten um, bewiesen Aquivalenzen zu Sprachklassen, die zu verschiedenen Typenvon Automaten gehoren, und benutzten die Analysen als Basis fur die Konstruktion vonUbersetzern fur Programmiersprachen. Wir wollen in diesem Kapitel diese Grammatik-typen kurz betrachten; wir lassen dabei den Bezug zu den naturlichen Sprachen volligaußer acht und konzentrieren uns auf die Aspekte des Formalismus, die fur Informatik-Anwendungen von Bedeutung sind.1

3.1 Grammatiken

Bisher haben wir Sprachen L spezifiziert durch

• Algorithmen, die w ∈ L von w 6∈ L unterschieden (Automaten)

• regulare Ausdrucke (rekursive Konstruktion von Sprachen).

Grammatiken stellen eine ganz andere Methode dar, Sprachen zu spezifizieren, namlicheinen Kalkul, in dem gemaß gewisser Regeln Worter erzeugt werden (durch einen nicht-deterministischen Erzeugungs- oder Ableitungsprozess); die in diesem Kalkul erzeug-baren Worter bilden dann die Sprache.

1Im Buch”Theoretische Informatik – kurz gefasst“ von U. Schoning ist in Kap. 1 ein

”naturlichspra-

chiges“ Beispiel fur eine formale Grammatik angegeben.

87

Page 91: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Grob gesprochen sehen solche Regelsysteme so aus: Sie bestehen aus einem Alphabet∆, einem

”Startsymbol“ S ∈ ∆, und einer zweistelligen Relation ⇒ uber ∆∗. (α ⇒ α′

wird gelesen als:”α′ ist aus α in einem Schritt ableitbar“. Diese Relation hat nichts mit

logischer Implikation zu tun!) Dann betrachtet man die Iteration∗⇒ von ⇒:

α∗⇒ α′ , falls es eine Folge α0, . . . , αt in ∆∗ gibt mit

α0 = α, αr = α′, und αi−1 ⇒ αi fur 1 ≤ i ≤ t.

(∗⇒ ist die

”reflexive und transitive Hulle“ von ⇒; siehe Beispiel A.2.14 in Anhang A.2.)

Schließlich bezeichnet man{α ∈ ∆∗ | S ∗⇒ α}

als die Menge der im Regelsystem ableitbaren/herleitbaren Worter.

In dieser Allgemeinheit sind Regelsysteme impraktikabel, insbesondere weil ⇒ i. a. eineunendliche Relation ist und man sie daher nicht als endlichen Text schreiben kann. Aucherweist es sich als nutzlich, Hilfszeichen zu haben, die in Zwischenschritten von Ablei-tungen vorkommen durfen, die aber nicht zum Alphabet der letztendlich interessierendenSprache gehoren. Wir verfeinern also unseren Ansatz dadurch, dass wir ⇒ durch einenendlichen Satz

”lokaler Ersetzungsregeln“ spezifizieren und dadurch, dass wir zwei Typen

von Buchstaben verwenden:”Variable“ (das sind die Hilfszeichen) und

”Terminalzei-

chen“ (das sind die Zeichen des”Zielalphabets“). Technisch schreibt man ∆ = V ∪ Σ,

wo V , Σ disjunkte Alphabete sind, S ∈ V ; die interessierende Sprache L ist Sprache uberΣ.

3.1.1 Beispiel (Arithmetische Ausdrucke mit Prioritaten) Wir wollen die Men-ge aller arithmetischen Ausdrucke mit Operatoren +, -, *, /, und mit Klammern ( und )

spezifizieren. Die Operanden sind”Numerale“ (Zahldarstellungen), die nicht weiter spe-

zifiziert werden. Man kann sich vorstellen, dass das genaue Format von Numeralen durcheine regulare Sprache spezifiziert wird, die man dann substituiert.

Als Hilfszeichen benutzen wir 〈term〉, 〈expr〉, 〈factor〉.Die Terminalzeichen, das sind also die Zeichen, aus denen die arithmetischen Ausdruckeaufgebaut sind, sind

+, -, *, /, (, ), num,

wobei num Platzhalter fur ein Numeral, also die Darstellung einer Zahl, ist.

88

Page 92: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Regeln (oder”Produktionen“):

〈factor〉 → num

〈factor〉 → (〈expr〉)〈term〉 → 〈term〉 * 〈factor〉〈term〉 → 〈term〉 / 〈factor〉〈term〉 → 〈factor〉〈expr〉 → 〈expr〉 + 〈term〉〈expr〉 → 〈expr〉 - 〈term〉〈expr〉 → 〈term〉

Begonnen wird mit dem Hilfszeichen S = 〈expr〉. Eine mogliche Folge von Anwendungender Regeln liefert folgendes:

〈expr〉 ⇒ 〈term〉 ⇒ 〈term〉 / 〈factor〉⇒ 〈term〉 / (〈expr〉)⇒ 〈term〉 / (〈expr〉 - 〈term〉)⇒ 〈factor〉 / (〈expr〉 - 〈term〉)⇒ num / (〈expr〉 - 〈term〉)⇒ num / (〈expr〉 + 〈term〉 - 〈term〉)⇒ num / (〈expr〉 + 〈factor〉 - 〈term〉)⇒ num / (〈expr〉 + num - 〈term〉)...

⇒ num / (num + num - num)

Wir sagen, dass wir das resultierende Wort aus Terminalzeichen aus 〈expr〉”abgeleitet“

haben. Bei der Anwendung der Regeln hat man oft eine Auswahl sowohl darin, auf welchesHilfszeichen eine Regel angewendet werden soll als auch darin, welche von mehreren mogli-chen

”rechten Seiten“ eingesetzt werden soll. Der durch ein solches Ersetzungsregelsystem

gegebene Kalkul ist also grundsatzlich nichtdeterministisch (”darf ersetzen“).

Zur Ubung finde man Ableitungen fur die arithmetischen Ausdrucke

(num)+num-num und num*num/num/(num-num).

Nun wenden wir uns der Entwicklung des formalen Rahmens solcher Regelsysteme zu.

3.1.2 Definition Eine Grammatik G ist ein 4-Tupel (V,Σ, S, P ), wobei Σ und Vdisjunkte Alphabete sind, S ∈ V ist und P eine endliche Teilmenge von (V ∪Σ)+×(V ∪Σ)∗

ist.

Die Komponenten der Grammatik werden folgendermaßen bezeichnet:

89

Page 93: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

V : Menge der (syntaktischen)”Variablen“.

(Variable werden bei theoretischen Untersuchungen mit A, B, C, . . ., S, T , . . .bezeichnet, in praktischen Anwendungen mit Wortern wie statement oder expression,oder speziell markierten Strings wie 〈term〉, 〈expr〉, 〈factor〉, usw.)

Σ : Menge der”Terminalzeichen“.

(Die Bezeichnungen fur Terminalzeichen-Alphabete und Buchstaben sind dieselbenwie bei den regularen Sprachen.)

S ∈ V :”Startsymbol“,

”Startvariable“.

P : Menge von”Produktionen“ oder

”Ableitungsregeln“ (l, r), geschrieben l → r, mit

folgendem allgemeinen Format:

l→ r, l ∈ (V ∪ Σ)+ , r ∈ (V ∪ Σ)∗ .

Man liest:”man darf l durch r ersetzen“.

In Beispiel 3.1.1 ist V = {〈expr〉, 〈term〉, 〈factor〉}, Σ = {+, -, *, /, (, ),num}, S = 〈expr〉,und

P = {(〈factor〉,num), (〈factor〉, (〈expr〉)), (〈term〉, 〈term〉 * 〈factor〉),(〈term〉, 〈term〉 / 〈factor〉), (〈term〉, 〈factor〉),(〈expr〉, 〈expr〉 + 〈term〉), (〈expr〉, 〈expr〉 - 〈term〉), (〈expr〉, 〈term〉)}

Der besseren Lesbarkeit halber notiert man die Produktionen nicht als Liste von Paaren,sondern wie in Beispiel 3.1.1 als Tabelle von Eintragen l→ r.

Eine Grammatik G ist ein endlicher Text. Sie spezifiziert einen Kalkul, in dem Worter(uber V ∪Σ) erzeugt werden konnen. Wir beschreiben jetzt, wie dieser Kalkul funktioniert.

3.1.3 Definition Sei G = (V,Σ, S, P ) Grammatik.

(a) (Wir erlauben, inmitten eines Wortes die linke Seite l einer Produktion l→ r durchdie rechte zu ersetzen.)

Wir schreiben ulv ⇒G urv oder kurzer ulv ⇒ urv, falls u, v ∈ (V ∪ Σ)∗ und l → reine Produktion in P ist. (⇒ ist zweistellige Relation uber (V ∪ Σ)∗.)

Sprechweise: urv ist in 1 Schritt aus ulv ableitbar .

(Man nennt ⇒ auch die”Halbgruppenhulle“ von →, weil man → mittels der [asso-

ziativen] Konkatenationsoperation erweitert.)

90

Page 94: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(b) (Wir erlauben, mehrere solche Schritte nacheinander auszufuhren.)∗⇒ ist die reflexive, transitive Hulle von ⇒.

Das heißt: α∗⇒ α′, falls es α0 = α, α1, . . . , αt = α′ gibt, t ≥ 0, so dass αi−1 ⇒ αi fur

1 ≤ i ≤ t. (Spezialfall t = 0: α∗⇒ α gilt immer.)

Sprechweise: α′ ist aus α (in t Schritten) ableitbar. Wenn man die Schrittanzahl

betonen will, kann man auch αt⇒ α′ schreiben.

(c) Was ist aus S ableitbar?

α ∈ (V ∪ Σ)∗ heißt Satzform von G, falls S∗⇒ α.

Eine Folge S = α0 ⇒ α1 ⇒ · · · ⇒ αt = α, t ≥ 0, heißt Ableitung/Herleitungvon α.

(d) Welche Worter uber Σ sind ableitbar?

L(G) := {w ∈ Σ∗ | S ∗⇒ w}

heißt die von G erzeugte (oder beschriebene) Sprache.

Mit Grammatiken in dieser allgemeinen Form kann man”so ziemlich alles“ machen – wir

werden das gleich prazisieren. Hier nur ein einfaches Beispiel fur eine Grammatik, dieZweierpotenzen in Unardarstellung erzeugt.

3.1.4 Beispiel Typische Satzformen unserer Grammatik sind /ca · · · aXa · · · a$, wobeiX eine der zwei Variablen A,B ist, und /ca · · · aCa · · · a. Die Produktionen sind so angelegt,dass in Ableitungen folgendes vor sich geht.

• Aus dem Startsymbol S wird /cAa$.

• A wandert von links nach rechts und verdoppelt jedes ubersprungene a.

• Wenn A beim $ anstoßt, wird A$ in B$ oder in C umgewandelt. (Im zweiten Fallwird das $-Zeichen

”geschluckt“.)

• B lauft von rechts nach links und wird beim Auftreffen auf /c wieder in A umgewan-delt. (Dann kann A erneut von links nach rechts laufen.)

• C lauft nach links, um sich beim Auftreffen auf das /c-Zeichen in”nichts“ ( ε )

aufzulosen.

Also: V = {S, /c, $, A,B,C}, Σ = {a}, und die Produktionsmenge P enthalt folgendePaare:

91

Page 95: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(1) S → /cAa$(2) Aaa→ aaAa(3) Aa$→ aaB$(4) aB → Ba(5) /cB → /cA(6) Aa$→ aaC(7) aC → Ca(8) /cC → ε

Um in einem Ableitungsschritt ulv ⇒ urv anzudeuten, welche Produktion auf welchesTeilwort angewandt wird, unterstreichen wir l und schreiben die Nummer der Produktionauf den Pfeil. Beispiele:

A/caAaBa(4)⇒ A/caABaa

$$AaaB(2)⇒ $$aaAaB

$$AaaB(4)⇒ $$AaBa

Man erkennt: Auch”unsinnige“ Ableitungsschritte sind definiert, und die Ableitungsrela-

tion ist nichtdeterministisch. Die fur uns interessanten Ableitungen sind nur die, die mitS beginnen:

S(1)⇒ /cAa$

(6)⇒ /caaC(7)⇒ /caCa

(7)⇒ /cCaa(8)⇒ aa.

S(1)⇒ /cAa$

(3)⇒ /caaB$(4)⇒ /caBa$

(4)⇒ /cBaa$(5)⇒

⇒ /cAaa$(2)⇒ /caaAa$

(6)⇒ /caaaaC(7)⇒ /caaaCa

(7)⇒ · · · (7)⇒ /cCaaaa(8)⇒ aaaa.

Mit jeder Tour von A einmal von links nach rechts verdoppelt sich die Anzahl der a’s.Man uberlege, wie eine Ableitung fur das Wort aaaaaaaa aussieht. Wenn eine Tour vonA oder B oder C unvollstandig ist, dann enthalt die erreichte Satzform noch /c oder $,besteht also nicht nur aus Terminalzeichen. Man sieht also intuitiv, dass alle Folgen aj, die(aus S) ableitbar sind, die Form a2s

, s ≥ 1, haben, und dass jede dieser Folgen ableitbarist. Also:

L(G) = {w ∈ {a}∗ | S ∗⇒ w} = {a2s | s ≥ 1}.(Der formale Beweis dieser Aussage ist nur muhsam, nicht tief.)

Grammatiken in der in 3.1.3 angegebenen allgemeinen Form heißen auch

Chomsky-0-Grammatiken , Typ-0-Grammatiken oder Semi-Thue-Systeme .2

3.1.5 Definition Mit L0 bezeichnen wir die Klasse aller Sprachen L, fur die es eineTyp-0-Grammatik G mit L = L(G) gibt.

2A. Thue war Mathematiker, der um 1914 Regelsysteme zur Manipulation von Zeichenreihen, soge-nannte Thue-Systeme, untersuchte. Seine Regeln waren symmetrisch (l→ r impliziert r → l), das

”Semi“

(lat. fur”halb“) druckt aus, dass unsere Produktionen gerichtet sind.

92

Page 96: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Auf die Klasse L0 kommen wir spater und in der Vorlesung”Berechenbarkeit und Kom-

plexitatstheorie“ zuruck. Es wird sich herausstellen, dass sie genau die uberhaupt durcheinen beliebigen Kalkul erzeugbaren Sprachen enthalt (die

”rekursiv aufzahlbaren“

Sprachen).

Wir wenden uns nun einem ersten eingeschrankten Grammatiktyp zu. Dabei darf in ei-nem Ableitungsschritt immer nur eine Variable A ∈ V durch ein nichtleeres Wort ersetztwerden. Man hat aber die Moglichkeit, dies auszuschließen, wenn A nicht in einem vorge-schriebenen Teilwort vorkommt (dem

”Kontext“).

3.1.6 Definition (a) Sei G = (V,Σ, S, P ) Grammatik. Eine Produktion l → r heißtkontextsensitiv , wenn sie das folgende Format hat:

αAγ → αβγ, A ∈ V , α, β, γ ∈ (V ∪ Σ)∗ , |β| ≥ 1 .

(”Man darf A durch das nichtleere Wort β ersetzen, falls A im

”Kontext“ α..γ steht.“)

Um Missverstandnisse auszuschließen: Auch A → β mit |β| ≥ 1 ist eine kontextsensitiveProduktion (mit α = γ = ε ). Die eigentlich wesentliche Eigenschaft hier ist die

”Nicht-

Verkurzung“: es gilt stets |l| ≤ |r|.(b) Die Grammatik G = (V,Σ, S, P ) heißt kontextsensitiv , wenn

• entweder alle Produktionen von G kontextsensitiv sind

• oder alle Produktionen von G kontextsensitiv sind außer der folgenden: S → ε, undS nie auf der rechten Seite einer Produktion vorkommt.

Kontextsensitive Grammatiken heißen auch Chomsky-1-Grammatiken oder Typ-1-Grammatiken .

(c) Eine Sprache L heißt kontextsensitiv oder vom Typ 1 oder Chomsky-1-Sprache ,falls L = L(G) fur eine kontextsensitive Grammatik G gilt. L1 ist die Klasse aller kon-textsensitiven Sprachen.

Auch L1 wird spater nochmals diskutiert. Weil jede Typ-1-Grammatik auch Typ-0-Grammatikist, gilt naturlich L1 ⊆ L0.

Beispiele fur kontextsensitive Produktionen:

S → /cAa$Aab→ aaBabbbAa$→ bbaba$bbAa$→ bbSBa$/cB → /cA

Man suche jeweils die Teilworter α, β, γ!

Keine kontextsensitiven Produktionen sind:

93

Page 97: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Aa$→ aaB$aC → Ca/cC → εS → ε

Kontextsensitive Grammatiken sind theoretisch einfach zu handhaben, aber fur die Be-schreibung von Sprachen sehr unhandlich. Leichter geht es mit der allgemeiner aussehen-den Klasse der

”monotonen“ Grammatiken. Wir werden sehen, dass solche Grammatiken

relativ leicht in kontextsensitive umgebaut werden konnen. Damit ergibt sich folgendesStandard-Vorgehen: Spezifiziere eine Sprache L uber eine monotone Grammatik; schließe,dass L kontextsensitiv ist.

3.1.7 Definition (a) Sei G = (V,Σ, S, P ) eine Grammatik. Eine Produktion l → rheißt (wortlangen-)monoton , wenn |l| ≤ |r| ist.Beachte: Dies ist die Eigenschaft

”Nicht-Verkurzung“ von den kontextsensitiven Produk-

tionen. Also: Jede kontextsensitive Produktion ist monoton.

(b) Eine Grammatik G = (V,Σ, S, P ) heißt (wortlangen-)monoton , wenn

• entweder alle Produktionen von G monoton sind

• oder alle Produktionen von G monoton sind außer der folgenden: S → ε, und S nieauf der rechten Seite einer Produktion vorkommt.

Aus den Definitionen folgt sofort, dass jede kontextsensitive Grammatik monoton ist.Die Umkehrung gilt nicht! Zum Beipiel ist die Produktion aC → Ca monoton, abernicht kontextsensitiv. Es gilt aber, dass die monotonen Grammatiken nur kontextsensitiveSprachen beschreiben konnen.

3.1.8 Satz Sei L = L(G) fur eine monotone Grammatik G. Dann gibt es eine kontext-sensitive Grammatik G′ mit L = L(G′). (Insbesondere ist L(G) kontextsensitiv.)

3.1.9 Beispiel Betrachte die Grammatik G = (V,Σ, S, P ) mit V = {S,A,C}, Σ ={a, b, c}, Startsymbol S, und den folgenden Produktionen:

S → ε

S → abc

S → aAbc

A → aACb

A → aCb

Cb → bC

Cc → cc

94

Page 98: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Man sieht, dass alle Produktionen monoton sind außer S → ε, und dass S nicht rechtsvorkommt. Klar ist, dass S ⇒ ε und S ⇒ abc gilt und daher, dass ε, abc ∈ L(G). Weiterhaben wir die folgende Ableitungsfolge:

S ⇒ aAbc⇒ aaCbbc⇒ aabCbc⇒ aabbCc⇒ aabbcc.

Also ist auch aabbcc ∈ L(G). Die Grammatik G und die von ihr beschriebene Sprachewird in der Ubung genauer untersucht. Es stellt sich folgendes heraus:

L(G) = {anbncn | n ≥ 0}.

Mit Satz 3.1.8 konnen wir schließen, dass diese Sprache kontextsensitiv ist, also zur KlasseL1 gehort.

Auch wenn es auf den ersten Blick nicht so aussieht (wegen der Produktion /cC → ε), kannman auch die Grammatik aus Beispiel 3.1.4 zu einer monotonen Grammatik umbauen.Daraus folgt, wieder mit Satz 3.1.8, dass auch {a2i | i ≥ 1} ∈ L1 gilt.

Es fehlt noch der Beweis von Satz 3.1.8. Der Umbau von G = (V,Σ, S, P ) (monoton) inG′ = (V ′,Σ, S, P ′) (kontextsensitiv) erfolgt in zwei Schritten.

1. Schritt:”Separierung“. Hier wird erreicht, dass auf der linken Seite von Produk-

tionen nur noch Variable stehen, keine Terminalzeichen. Das ist ganz leicht. Man erfindetfur jedes a ∈ Σ eine neue Variable, z. B. Da, und ersetzt in jeder Produktion in P jedesVorkommen von a durch Da. Weiterhin fugt man fur jedes a ∈ Σ die eine neue ProduktionDa → a hinzu. Die neue Menge von Produktionen nennen wir P ′′.

Im Beispiel 3.1.9 bekommt man die folgende Menge P ′′:

S → ε

S → DaDbDc

S → DaADbDc

A → DaACDb

A → DaCDb

CDb → DbC

CDc → DcDc

Da → a

Db → b

Dc → c

Die Ableitungen, die sich mit P ′′ ergeben, sind dieselben wie die in G, nur stehen uber-all die Stellvertreter-Variablen an Stelle der Terminalzeichen. Zu beliebigen Zeiten kannman auch Variable Da in das Terminalzeichen a umwandeln. Ein solches Terminalzeichenkann aber nachher nicht mehr in einem Ableitungsschritt benutzt werden, weil in keiner

95

Page 99: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Produktion links ein Terminalzeichen vorkommt. Das bedeutet, dass man immer so tunkann, als ob diese Umwandlung erst ganz zum Schluss passiert.

Beispiel :

S ⇒ DaADbDc ⇒ DaaCDbDbDc ⇒ DaDaDbCDbDc

⇒ DaDaDbDbCDc ⇒ DaDaDbDbDcDc.

Aus dieser Satzform kann man in sechs abschließenden Schritten das Wort aabbcc erhal-ten.

2. Schritt:”Einzelschritte“. Hier werden die monotonen Produktionen aus P ′′, die

nicht ohnehin schon kontexsensitiv sind, in eine Folge kontextsensitiver Produktionenumgewandelt. Wir zeigen dies an einem Beispiel, das sich aber in offensichtlicher Weiseverallgemeinern lasst. Wir betrachten eine Produktion p:

X1X2X3 → Y1Y2Y3Y4Y5,

wobei X1, . . . , Y5 Variable sind. Wir erfinden drei neue Variable Z1, Z2, Z3, die nur furdiese Produktion p Verwendung finden. Die Produktion p wird ersetzt durch die folgendeListe von kontextsensitiven Produktionen:

X1X2X3 → Z1X2X3

Z1X2X3 → Z1Z2X3

Z1Z2X3 → Z1Z2Z3

Z1Z2Z3 → Y1Z2Z3

Y1Z2Z3 → Y1Y2Z3

Y1Y2Z3 → Y1Y2Y3Y4Y5

Diese Produktionen zerfallen in drei Gruppen: erst werden die Xi’s nacheinander in Zi’sumgewandelt, dann die Zi’s bis auf das letzte in Yi’s, und schließlich das letzte Zi ineinen Block von Yi’s. Man kann sich leicht uberlegen, dass diese Produktionsfolge in einerlegalen Ableitung zu nichts anderem benutzt werden kann als um X1X2X3 in Y1Y2Y3Y4Y5

zu transformieren. Das liegt daran, dass die”Zwischenergebnisse“ alle mindestens eine

der Zi-Variablen enthalten, die man nur wieder loswerden kann, wenn man die Folge vonProduktionen exakt in der vorgesehenen Reihenfolge durchfuhrt.

Im allgemeinen Fall hat man eine Produktion X1 · · ·Xn → Y1 · · ·Ym mit m ≥ n, unddasselbe Vorgehen funktioniert.

3.1.9 Beispiel, fortgesetzt: In der Produktionenmenge P ′′ ist nur die Produktion

CDb → DbC

nicht kontextsensitiv. Sie wird durch eine Folge von Produktionen ersetzt. Insgesamt ergibtsich die folgende kontextsensitive Grammatik fur die Sprache L(G) = {anbncn | n ≥ 0}.

96

Page 100: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

G′ = (V ′,Σ, S, P ′) mit V ′ = {S,A,C,Da, Db, Dc, Z1, Z2}; die Menge P ′ der Produktionenist:

S → ε

S → DaDbDc

S → DaADbDc

A → DaACDb

A → DaCDb

CDb → Z1Db

Z1Db → Z1Z2

Z1Z2 → DbZ2

DbZ2 → DbC

CDc → DcDc

Da → a

Db → b

Dc → c

Die nachste Definition ist grundlegend fur den Rest der Vorlesung.

3.1.10 Definition (a) Sei G = (V ; Σ, S, P ) eine Grammatik. Eine Produktion l →r heißt kontextfrei , wenn l ∈ V (und r ∈ (V ∪ Σ)∗ beliebig) ist. Eine kontextfreieProduktion hat also das Format

A→ α, A ∈ V , α ∈ (V ∪ Σ)∗ .

Beachte: Kontextfreie Produktionen, deren rechte Seite nicht ε ist, sind ein Spezialfallvon kontextsensitiven Produktionen. Man kann l = A durch r ersetzen, ganz egal wo undin welchem Wort A vorkommt. Erst hier wird der Grund fur die Bezeichnung

”Variable“

richtig klar: fur jede Variable kann (und muss) etwas anderes eingesetzt werden, damitsich schließlich ein Wort aus Terminalzeichen ergibt.

(b) Eine Grammatik G heißt kontextfrei , wenn alle ihre Produktionen kontextfreisind. Kontextfreie Grammatiken heißen auch Chomsky-2-Grammatiken oder Typ-2-Grammatiken .

(c) Eine Sprache L heißt kontextfrei (oder Typ-2-Sprache oder Chomsky-2-Spra-che), falls L = L(G) fur eine kontextfreie Grammatik G gilt. L2 ist die Klasse allerkontextfreien Sprachen.

Notation: Besonders bei kontextfreien Sprachen ist es ublich, Produktionen mit derselbenVariablen auf der linken Seite zusammenzufassen, wobei das Zeichen | benutzt wird, umdie verschiedenen rechten Seiten zu trennen. Statt

A→ β1 , A→ β2 , . . . , A→ βs

97

Page 101: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

schreibt man alsoA→ β1 | β2 | · · · | βs

oder senkrecht:

A → β1

| β2

| β3

......

| βs

Die Grammatik aus Beispiel 3.1.1 wurde dann also folgendermaßen aussehen:

〈factor〉 → num | (〈expr〉)〈term〉 → 〈term〉 * 〈factor〉

| 〈term〉 / 〈factor〉| 〈factor〉

〈expr〉 → 〈expr〉 + 〈term〉| 〈expr〉 - 〈term〉| 〈term〉

3.1.11 Beispiel (Korrekte Klammerausdrucke) Wir betrachten die GrammatikG = (V,Σ, S, P ) mit V = {S}, Σ = {0, 1}; P enthalt die folgenden Produktionen:(1) S → ε(2) S → SS(3) S → 0S1.

Kurz: S → ε | SS | 0S1.

Eine Ableitung in dieser Grammatik sieht z. B. aus wie folgt:

S ⇒ SS ⇒ SSS ⇒ 0S1SS ⇒ 01SS ⇒ 01S0S1⇒ 01S00S11

⇒ 0100S11⇒ 010011 ∈ Σ∗.

Ersetzt man 0 durch”(“ und 1 durch

”)“, ist dies das Wort ()(()). Tatsachlich kann man

zeigen, dass L(G) gerade die Menge kKA aller korrekten Klammerausdrucke ist, wie siein Anhang A.2 in Definition A.2.4 definiert werden; damit ist kKA kontexfrei.

3.1.12 Beispiel Betrachte G = (V,Σ, S, P ) mit V = {S}, Σ = {0, 1}; P enthalt diefolgenden Produktionen:

98

Page 102: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(1) S → ε(2) S → 0S1.

Kurz: S → ε | 0S1. Eine typische Ableitung in dieser Grammatik sieht aus wie folgt:

S ⇒ 0S1⇒ 00S11⇒ 000S111⇒ 0000S1111⇒ 00001111.

Man sieht recht leicht: L(G) = {0n1n | n ≥ 0}. Wir wissen nach Behauptung 2.4.2(a),dass diese Sprache nicht regular ist.

3.2 Rechtslineare Grammatiken und regulare Spra-

chen

Mit kontextfreien Sprachen beschaftigen wir uns ausfuhrlich in den beiden folgenden Ka-piteln. Wir betrachten zuvor noch einen engeren Grammatiktyp.

3.2.1 Rechtslineare Grammatiken

3.2.1 Definition (a) Sei G = (V,Σ, S, P ) eine Grammatik. Eine Produktion l → rheißt rechtslinear , falls l ∈ V und r = aB fur a ∈ Σ, B ∈ V oder r = ε ist. Einekontextfreie Produktion hat also das Format

A→ aB, A,B ∈ V , a ∈ Σ, oder A→ ε, A ∈ V .

(”Auf der rechten Seite r steht die Variable rechts.“)

Beachte: Jede rechtslineare Produktion ist kontextfrei.

(b) Eine Grammatik G heißt rechtslinear , wenn alle ihre Produktionen rechtslinearsind (kurz: P ⊆ V × (ΣV ∪{ε})). Rechtslineare Grammatiken heißen auch Chomsky-3-Grammatiken oder Typ-3-Grammatiken .

(c) L3 ist die Klasse aller Sprachen L, fur die gilt: L = L(G) fur eine rechtslineareGrammatik G.

Es ist offensichtlich, dass jede rechtslineare Grammatik G auch kontextfrei ist. Damithaben wir L3 ⊆ L2.

3.2.2 Beispiel Die folgende Grammatik ist rechtslinear:

G = ({S,B,C,D}, {1, 2}, S, P ), wo P folgende Produktionen hat:

S → 1B , S → 2C , S → ε,

B → 1B , B → 2D , B → ε,

C → 2D,

99

Page 103: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

D → 2D , D → ε.

Kurzform:

S → 1B | 2C | ε, B → 1B | 2D | ε, C → 2D, D → 2D | ε.Typische Ableitungsfolgen fur diese Grammatik sind etwa:

S ⇒ 1B ⇒ 11B ⇒ 111B ⇒ 1112D ⇒ 11122D ⇒ 111222D ⇒ 111222.

S ⇒ 2C ⇒ 22D ⇒ 222D ⇒ 222.

In Ableitungen bei rechtslinearen Grammatiken”passiert“ immer nur am rechten Ende

der Satzform etwas, weil dort die einzige Variable der Satzform steht.

3.2.2 Aquivalenz zu regularen Sprachen

In diesem Abschnitt zeigen wir, dass die Typ-3-Sprachen nichts anderes sind als die re-gularen Sprachen. Genauer stellt sich heraus, dass rechtslineare Grammatiken eigentlichnur eine andere Schreibweise fur NFA’s sind.

3.2.3 Beispiel Es sei M folgender NFA:

SStart

B

C

D

1

2

2

2

1

2

Man macht sich leicht klar, dass LM = L(ε+ 1+2∗ + 22+) gilt.

Wir betrachten zwei Berechnungswege in M :

B B B D D DSStart

C DS

1 1 1 2 2 2

DStart 2 2 2

Diese Berechnungen von M auf Inputs 111222 und 222 vergleiche man mit den beiden inBeispiel 3.2.2 notierten Ableitungen in G.

100

Page 104: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Die Ahnlichkeit zwischen Berechnungen und Ableitungen ist offensichtlich, und nichtzufallig. Der nachste Satz (und sein Beweis) zeigen, dass NFA’s und rechtslineare Gram-matiken im wesentlichen nur verschiedene Notationen fur dasselbe Konzept darstellen.

3.2.4 Satz Sei L ⊆ Σ∗ Sprache. Dann gilt

L ∈ L3 ⇔ L ist regular.

Wir beschreiben die Transformation zwischen rechtslinearer Grammatik G und NFA Mzunachst anhand von Beispiel 3.2.2. Naturlich haben beide genau dasselbe (Terminalzei-chen-)Alphabet Σ = {0, 1}. Die Menge Q = {S,B,C,D} der Zustande in M entsprichtder Menge V der Variablen in G. Das Startsymbol S von G entspricht dem Startzustandin M . Im Automatengraphen zu M gibt es zum Beispiel die Kanten

BB1

S 1B

Diesen entsprechen die Produktionen

S → 1B und B → 1B.

(Man beachte die graphische Ahnlichkeit!) In dieser Weise kann man jeder Kante imAutomatengraphen eine Produktion der Form A → aB zuordnen. Schließlich sind dieZustande S, B und D in M akzeptierend; dem entsprechen die Produktionen S → ε,B → ε und D → ε, mit denen man Ableitungen abschließen kann.

Man kann sich dann uberlegen, dass es immer moglich ist, eine Ableitung

S ⇒ a1p1 ⇒ a1a2p2 ⇒ a1a2 · · · anpn ⇒ a1a2 · · · an

in der Grammatik zu benutzen, um einen Weg im Automatengraphen vom StartzustandS zu einem akzeptierenden Zustand pn zu finden, der mit a1, . . . , an beschriftet ist – undumgekehrt.

Es folgt der formale Beweis.

Beweis (Satz 3.2.4).

”⇒“: Sei L = LM fur einen NFA M = (Q,Σ, q0, F, δ). Wir setzen G = (V,Σ, S, P ) mitV := Q, (dasselbe Σ,) S := q0 und folgenden Regeln in P :

q → aq′ fur q, q′ ∈ Q = V, a ∈ Σ, q′ ∈ δ(q, a).q → ε fur q ∈ F .

101

Page 105: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Zu zeigen: M akzeptiert w ⇔ w ∈ L(G), fur w ∈ Σ∗. Das sieht man so ein:

M akzeptiert w = a1 · · · an

⇔ ∃ Zustande p0, p1, . . . , pn mit p0 = q0, pn ∈ F und

pi ∈ δ(pi−1, ai), 1 ≤ i ≤ n

⇔ ∃ Variable p0, p1, . . . , pn mit p0 = S und

p0 ⇒ a1p1 ⇒ a1a2p2 ⇒ · · · ⇒ a1 · · · anpn ⇒ a1 · · · an

ist Ableitung in G

⇔ a1 · · · an ∈ L(G).

”⇐“: Gegeben sei eine rechtslineare Grammatik G = (V,Σ, S, P ) mit L = L(G). Wir

definieren einen NFA M = (Q,Σ, q0, F, δ) durch: Q := V , (Σ gleich,) q0 := S, F := {A ∈V | A→ ε ist Produktion}, und δ(A, a) := {B | A→ aB ist Produktion}.Zu zeigen: M akzeptiert w ⇔ w ∈ L(G). Dazu muss man nur beobachten, dass dieDefinition des NFA M genau die Umkehrung der Definition der Grammatik G von obenist. Damit folgt die behauptete Gleichheit der Sprachen aus dem obigen Beweis. �

Wir haben also:L3 ⊆ L2

(denn jede rechtslineare Grammatik ist kontextfrei) und L3 6= L2, denn die Sprache{0n1n | n ≥ 0} ist nicht regular, wohl aber kontextfrei (Beispiel 3.1.12).

Die Chomsky-Hierarchie:

L3 ⊆ L2 ⊆ L1 ⊆ L0

In Worten: Fur Sprachen L gelten die folgenden drei Implikationen:

L regular ⇒ L kontextfrei ⇒ L kontextsensitiv ⇒ L rekursiv aufzahlbar

Wir haben hier schon notiert, dass L2 ⊆ L1 gilt, was nicht offensichtlich ist und erst spaterbewiesen wird. Spater werden wir auch sehen, dass L2 ( L1 ( L0 gilt, die Sprachklassenin der Chomsky-Hierarchie also eine echte Hierarchie bilden.

3.2.3 Linkslineare Grammatiken

Es ist naturlich, sich zu fragen, welche Sprachklasse man erhalt, wenn man nicht rechtsli-neare Produktionen A → aB, sondern

”linkslineare“ A → Ba betrachtet. Es sollte keine

große Uberraschung sein, dass man auch hier wieder die regularen Sprachen bekommt.Dies wollen wir in diesem Abschnitt uberlegen.

102

Page 106: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

3.2.5 Definition

(a) Eine Produktion A → r heißt linkslinear , falls r = ε oder r = Ba fur eineVariable B ∈ V und einen Buchstaben a ∈ Σ.

(b) Eine Grammatik heißt linkslinear, falls alle ihre Produktionen linkslinear sind.

3.2.6 Beispiel G = (V,Σ, S, P ) mit V = {S,A,B}, Σ = {0, 1}, Startsymbol S undP mit den Produktionen S → A0, A→ A0 | A→ B1, B → ε.

Eine typische Ableitungsfolge in dieser Grammatik sieht so aus:

S ⇒ A0⇒ A00⇒ A000⇒ B1000⇒ 1000.

Man sieht leicht, dass L(G) = L(10+) gilt.

3.2.7 Behauptung Es sei G = (V,Σ, S, P ) eine linkslineare Grammatik und L = L(G)die von G erzeugte Sprache. Dann gilt:

(a) Es gibt eine rechtslineare Grammatik G′ = (V,Σ, S, P ′) mit LR = L(G′).

(b) Es gibt einen NFA M fur LR; es gibt einen NFA M ′ fur L = (LR)R mit |V | + 1Zustanden. (Insbesondere ist L regular.)

(c) Es gibt eine rechtslineare Grammatik G′′ = (V ′′,Σ, S ′′, P ′′) fur L mit |V ′′| = |V |+1.

Wir wollen die Punkte (a) bis (c) parallel zum Beweis an folgendem Beispiel durchgehen:

G = (V,Σ, C, P ) mit

V = {A,B,C}Σ = {0, 1}Startsymbol: S = C

P enthalt die Produktionen C → B0 | B1 , B → A0 , A→ ε | A0 | A1 .

(G erzeugt die Worter aus {0, 1}∗, deren vorletztes Zeichen eine Null ist. Dies impliziert,dass diese Worter mindestens die Lange 2 haben mussen.)

(a) Konstruktion von GR mit L(GR) = LR:

G GR

A→ Ba A→ aBA→ ε A→ εS = S

Am Beispiel: GR hat folgende Produktionen:C → 0B | 1B , B → 0A , A→ ε | 0A | 1A.

103

Page 107: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Es ist leicht zu sehen, dass L(GR) = L(G)R ist.

(GR erzeugt die Worter aus {0, 1}∗, deren zweites Zeichen eine Null ist.)

(b) NFA-Konstruktion:

Nach Satz 2.2.3 existiert ein NFA MR mit L(GR) = LMR .

Aus MR konstruieren wir den”Umkehr-NFA“ M ′ mit L(M ′) = (LMR)R, gemaß

Satz 2.5.7. Wir wissen, dass M ′ so gewahlt werden kann, dass die Zustandszahlhochstens um 1 steigt, also hochstens |V |+ 1 Zustande erzeugt werden.

Am Beispiel:

M R:

C B A0,1 0

M’:

0,1

Start

C B A0,1 0 0,1

Start

LM ′ = (LMR)R = L(GR)R = (L(G)R)R = L(G).

(c) Konstruktion von G′′ mit L(G′′) = L:

Aus M ′ lasst sich nun nach Satz 2.2.3 eine rechtslineare Grammatik G′′ derartgewinnen, dass L(G′′) = LM ′ = L(G) ist. Die dort angegebene Konstruktion liefertfur unser Beispiel die folgende Grammatik G′′ = (V ′′,Σ, S ′′, P ′′):

V ′′ = {A,B,C}S ′′ = A

P ′′ enthalt: A→ 0A | 1A | 0B , B → 0C | 1C , C → ε

Fazit: Ist G eine linkslineare Grammatik, so ist L(G) regular.

Genauer gilt: Zu jeder linkslinearen Grammatik G = (V,Σ, S, P ) existiert eine aquivalenterechtslineare Grammatik G′ = (V ′,Σ, S, P ′) mit |V ′| ≤ |V |+ 1 und V ⊆ V ′.

Warnung: Mischen der beiden Produktionstypen”rechtslinear“ und

”linkslinear“ fuhrt

zu”linearen Grammatiken“, die aus der Klasse L3 der regularen Sprachen hinausfuhren.

Zum Beispiel betrachte man die Grammatik G = (V,Σ, S, P ) mit V = {S,B}, Σ = {a, b}und P mit den Produktionen S → aB | ε, B → Sb. P enthalt nur linkslineare undrechtslineare Produktionen, aber L(G) = {anbn | n ≥ 0} 6∈ L3.

104

Page 108: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Anhang A

A.1 Zahldarstellungen und Abzahlungen

Wir betrachten verschiedene Zahldarstellungen. Diese Untersuchungen liefern Beispielefur Induktionsbeweise und sie liefern sehr naturliche Abzahlungen fur die Mengen Σ∗,wobei Σ ein beliebiges Alphabet ist. Der Inhalt dieses Kapitels ist nicht prufungsrelevant,allerdings wird er in der Vorlesung als bekannt vorausgesetzt.

Zur Erinnerung:

N = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, . . . }.

Eine Aufzahlung einer Menge X ist eine bijektive Funktion f : N → X. Wenn f eineAufzahlung von X ist, gilt

X = {f(0), f(1), f(2), f(3), . . . }.

Eine Menge X heißt abzahlbar (unendlich), wenn sie eine Aufzahlung hat.

Ein Hauptresultat dieses Abschnittes ist, dass fur jedes Alphabet Σ die Menge Σ∗ abzahl-bar unendlich ist, wobei die Aufzahlung sogar eine recht einfache Funktion ist.

A.1.1 Die b-are Zahldarstellung

In diesem Abschnitt diskutieren wir die mathematischen Grundlagen fur die Verwendungder Zahldarstellungen zu verschiedenen Basiszahlen. Allgemein ublich und vertraut istdie Dezimaldarstellung , das ist die Notation von Zahlen mit Ziffern 0, 1, 2, . . ., 9. Inder Informatik von zentraler Bedeutung ist die Binardarstellung , d. h. die Darstellungvon Zahlen mit den Ziffern 0 und 1. Haufig verwendet wird auch die Oktaldarstellung(Ziffern 0, 1, 2, 3, 4, 5, 6, 7) und die Hexadezimaldarstellung (Ziffern 0, 1, 2, 3, 4, 5,6, 7, 8, 9, A, B, C, D, E, F; dabei stehen A, . . . , F fur 10, . . . , 15.) Weil man sich manchmal

214

Page 109: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

die Binardarstellung von Zahlen in Bytes oder Maschinenworter zerlegt denkt, sind auchDarstellungen zur Basis 28 = 256, 216 = 65536 oder 232 interessant.

Beispielsweise kann man die Zahl 467 ∈ N in Binardarstellung als 111010011, in Oktaldar-stellung als 723 und in Hexadezimaldarstellung als 1D3 schreiben. Die Dezimaldarstellungist naturlich 467. (Auch wenn es etwas pedantisch erscheint, ist es gunstig, fur diesen Ab-schnitt die Zahl n ∈ N, die wir naturlich als Dezimalzahl (wie 467) notieren, von demWort (wie 467) uber dem Alphabet {0, 1, 2, . . . , 9} zu unterscheiden, das diese Zahldarstellt.) Wir benutzen als Alphabete Mengen Σb = {0, 1, . . . , b−1} fur b ≥ 2; fur b ≤ 16schreiben wir die Ziffern in der Schreibmaschinentype 0, 1, 2, . . . . Fur Zahlsysteme mitmehr als 16 Ziffern muss man andere Konventionen benutzen. Am einfachsten ist es, dieZiffern mit gewohnlicher (dezimaler) Notation zu schreiben und die Worter als k-Tupelmit Klammern und Kommas. Zum Beispiel hat dann die Zahl 300670126 zur Basis b = 100die Darstellung (3, 0, 67, 1, 26).

A.1.1 Definition Fur b ≥ 2 und ak−1 · · · a1a0 ∈ Σ+b = {0, 1, . . . , b− 1}+ sei

(A.1) (ak−1 · · · a1a0)b :=∑

0≤i<k

aibi

die durch ak−1 · · · a1a0 dargestellte naturliche Zahl.

Formal gesehen ist ( · )b eine Abbildung von Σ+b nach N. Falls notig, kann man auch

(ε)b := 0 definieren und damit die Abbildung ( · )b auf Σ∗ erweitern; das ist aber eherunublich.

Wir diskutieren kurz, wie man aus dem Wort ak−1 · · · a1a0 ∈ {0, 1, . . . , b − 1}+ die zu-gehorige Zahl berechnen kann. Anstelle von Formel (A.1) benutzt man das Horner-Schema

(A.2)∑

0≤i<k

aibi = (((· · · ((ak−1 · b+ ak−2) · b+ ak−3) · b+ · · · ) + a2) · b+ a1) · b+ a0.

Dies fuhrt zu folgendem iterativen Algorithmus fur die Berechnung von (ak−1 · · · a1a0)b:

x := ak−1 ;

for i := k − 2 downto 0 do

x := x * b + ai ;

Die Ausgabe ist der Inhalt x von x.

Wir zeigen an einem Beispiel, wie einfach etwa die Berechnung von (ak−1 · · · a1a0)2 durchiteriertes Verdoppeln und Addieren von 1 wird: ak−1 · · · a1a0 sei 000101101011100. EineMitschrift der Inhalte i und x der Variablen i und x aus dem Programm sieht folgender-maßen aus:

215

Page 110: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

i ai x14 0 013 0 012 0 011 1 110 0 29 1 58 1 117 0 22

i ai x6 1 455 0 904 1 1813 1 3632 1 7271 0 14540 0 2908

Es ist offensichtlich, dass fuhrende Nullen auf den Wert einer Zahldarstellung keinenEinfluss haben; zum Beispiel ist (000467)10 = (467)10 = 467.

A.1.2 Definition Wenn ak−1 · · · a1a0 ∈ {0, 1, . . . , b − 1}+ mit k = 1 (nur eine Ziffer)oder ak−1 6= 0 (keine fuhrende Null), und n = (ak−1 · · · a1a0)b, so heißt ak−1 · · · a1a0 eineb-are Darstellung von n.

Es ware nun denkbar, dass manche Zahlen keine b-are Darstellung besitzen, andere u. U.mehrere. Dass dies nicht so ist, macht das Konzept der b-aren Darstellung erst praktischverwendbar.

A.1.3 Satz Sei b ≥ 2. Dann gibt es fur jede Zahl n ∈ N genau eine b-are Darstellung.

Beweis Wir bezeichnen die Aussage”n besitzt genau eine b-are Darstellung“ mit E(n)

und zeigen ∀n : E(n) durch verallgemeinerte Induktion nach n. – Sei also n ∈ N.

1. Fall: 0 ≤ n < b. Dann ist a0 = n eine b-are Darstellung von n, mit k = 1. Istcl−1 · · · c1c0 eine beliebige b-are Darstellung von n, so kann nicht l ≥ 2 sein (sonst waren ≥ cl−1b

l−1 ≥ bl−1 ≥ b, ein Widerspruch). Also ist l = 1, und es folgt c0 = n = a0.

2. Fall: n ≥ b.Dann konnen wir nach der Methode der ganzzahligen Division mit Rest schreiben

n = q · b+ r fur ein q ∈ N und ein r mit 0 ≤ r < b,

fur eindeutig bestimmte q = ⌊n/b⌋ und r = n − qb. Dabei ist n > q = ⌊n/b⌋ ≥ 1, weiln ≥ b ≥ 2 ist. Wir konnen also die Induktionsvoraussetzung E(q) anwenden. Diese besagt,dass q eine eindeutig bestimmte b-are Darstellung cl−1 · · · c1c0 besitzt. Weil q ≥ 1 ist, giltalso

q =∑

0≤i<l

cibi, mit cl−1 6= 0.

Wir setzen a0 := r und ai+1 := ci fur 0 ≤ i < l, und k := l + 1. Dann gilt offenbar

n = r + b ·∑

0≤i<l

cibi =

0≤i<k

aibi,

216

Page 111: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

und ak−1 6= 0, also ist ak−1 · · · a1a0 eine b-are Darstellung von n. – Ist weiter dm−1 · · · d1d0

eine beliebige b-are Darstellung von n, so folgt aus n =∑

0≤i<m dibi = b·(∑1≤i<m dib

i−1)+d0, dass d0 = r = a0 und q =

∑1≤i<m dib

i−1 ist, mit dm−1 6= 0. Letzteres heißt, dassdm−1 · · · d1 eine b-are Darstellung von q ist. Nun ist aber (nach Induktionsvoraussetzung)cl−1 · · · c1c0 die einzige b-are Darstellung von q. Daraus folgt m = l + 1 = k und di =ci−1 = ai, fur 1 ≤ i < k. Also ist ak−1 · · · a1a0 die einzige b-are Darstellung von n. �

A.1.4 Bemerkung Man beachte, dass der Beweis eine (sogar praktisch leicht anwend-bare und sehr effiziente) Methode zur Berechnung der Ziffern der b-aren Darstellung vonn liefert. Genaugenommen beruht der Beweis eben auf der Beobachtung, dass man eineb-are Darstellung fur ein gegebenes n berechnen kann, ohne dass bei dieser BerechnungWahlmoglichkeiten bestehen. Diese Methode ist, iterativ formuliert, durch das folgendeProgrammstuck gegeben:

i := 0 ;

q := n;repeat

Teile ganzzahlig q durch b:r:= Rest und q:= Quotient ;

ai := r ;

i := i+1

until (q = 0)

Den Inhalt der Variablen i am Ende der Berechnung nennen wir k. Die Ausgabe istak−1 · · · a1a0 als b-are Darstellung von n.

A.1.5 Beispiel Bei n = 467 und b = 8 ergeben sich nacheinander die folgenden Paare(Quotient q, Rest r):

(⌊467/8⌋, 3) = (58, 3) , (⌊58/8⌋, 2) = (7, 2) , (⌊7/8⌋, 7) = (0, 7),

und damit die Oktaldarstellung 723 fur 467.

Angesichts der in Satz A.1.3 gemachten Feststellung ist es gerechtfertigt, von der b-arenDarstellung einer Zahl n zu sprechen. Aus der Sicht der formalen Sprachen ergibt sichfolgendes Resultat:

A.1.6 Korollar Die Abbildung

b-ar : N ∋ n 7→ ak−1 · · · a1a0 ∈ {0, 1, . . . , b− 1}+,wo ak−1 · · · a1a0 die b-are Darstellung von n ist,

ist injektiv. Ihr Bild ist

b-ar(N) = {0} ∪ {1, 2, . . . , b− 1}{0, 1, . . . , b− 1}∗.Fur jedes n ∈ N gilt (b-ar(n))b = n.

217

Page 112: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Das Bild der Abbildung b-ar ist eine echte Teilmenge von {0, 1, . . . , b− 1}+, da die mehrals einziffrigen Worter mit fuhrenden Nullen fehlen. Diese Funktion ist also nicht geeignet,eine Aufzahlung von {0, 1, . . . , b − 1}+ zu liefern. Dies gelingt erst mit der im folgendenAbschnitt beschriebenen alternativen Abbildung.

A.1.2 Die b-adische Zahldarstellung

Weit weniger gebrauchlich als die b-are Darstellung, aber strukturell interessant und ele-gant ist die b-adische Darstellung von naturlichen Zahlen. Diese liefert eine naturlicheBijektion zwischen N und Σ∗, fur jedes endliche Alphabet Σ.

Wir bemerken zuerst, dass wir uns ein endliches Alphabet Σ mit |Σ| = b ≥ 1 immerals die Menge ∆b := {1, 2, . . . , b} ⊆ N vorstellen konnen. Wir werden im folgenden auchimmer nur von solchen Alphabeten sprechen. Wie vorher werden wir fur die Darstellungder kleinen Alphabete ∆b fur 1 ≤ b ≤ 10 die Ziffern 1, 2, . . . , 9, A benutzen (A steht furdie 10).

A.1.7 Definition Fur b ≥ 1, k ≥ 0 und ak−1 · · · a1a0 ∈ ∆∗b = {1, 2, 3, . . . , b}∗ sei

[ak−1 · · · a1a0]b :=∑

0≤i<k

aibi

die durch ak−1 · · · a1a0 dargestellte naturliche Zahl.

A.1.8 Beispiel In Tabelle A.1 geben wir b-adische Darstellungen fur eine Reihe vonnaturlichen Zahlen an, fur b = 10, 5, 4, 3, 2, und 1.

Definition A.1.7 hat auf den ersten Blick große Ahnlichkeit mit der b-aren Darstellung.Man beachte aber, dass b = 1 nun erlaubt ist und dass die Ziffer 0 nicht vorkommt.

Die Abbildung [ · ]b bildet ∆∗b nach N ab. Man beachte, dass hier der Fall k = 0, alsoak−1 · · · a1a0 = ε ausdrucklich eingeschlossen ist. Es ist [ε]b = 0 (fur alle b).

Der Algorithmus zur Berechnung der Zahl [ak−1 · · · a1a0]b ist fast derselbe wie bei(ak−1 · · · a1a0)b. Nur muss hier der Sonderfall k = 0 berucksichtigt werden.

x := 0 ;

for i := k − 1 downto 0 do

x := x * b + ai ;

Die Ausgabe ist der Inhalt x von x.

Im Fall b = 1 hat die Multiplikation mit b keine Wirkung, und die einzige mogliche Zifferist die 1; damit ergibt sich hier eine sehr einfache Beziehung:

[1k]1 = k, fur alle k ∈ N.

218

Page 113: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

n b = 10 b = 5 b = 4 b = 3 b = 2 b = 10 ε ε ε ε ε ε1 1 1 1 1 1 1

2 2 2 2 2 2 11

3 3 3 3 3 11 111

4 4 4 4 11 12 1111

5 5 5 11 12 21 11111

6 6 11 12 13 22 111111

7 7 12 13 21 111 1111111

8 8 13 14 22 112 11111111

9 9 14 21 23 121 111111111

10 A 15 22 31 122 1111111111

11 11 21 23 32 211 111

12 12 22 24 33 212 112

13 13 23 31 111 221 113

14 14 24 32 112 222 114

15 15 25 33 113 1111 115

16 16 31 34 121 1112 116

17 17 32 41 122 1121 117

18 18 33 42 123 1122 118

19 19 34 43 131 1211 119

20 1A 35 44 132 1212 120

21 21 41 111 133 1221 121

126 126 451 1332 11123 22222 1126

127 127 452 1333 11131 111111 1127

200 19A 125 2414 13332 2112112 1200

1000 99A 13345 44214 323231 222212112 11000

Tabelle A.1: b-adische Darstellung einiger naturlicher Zahlen

219

Page 114: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

D. h. die 1-adische (oder monadische) Darstellung entspricht einfach der Reprasentationeiner naturlichen Zahl k durch eine Strichliste 11 · · · 11

︸ ︷︷ ︸k Einsen

.

A.1.9 Definition Wenn b ≥ 1 und ak−1 · · · a1a0 ∈ ∆∗b und n = [ak−1 · · · a1a0]b, dannheißt ak−1 · · · a1a0 eine b-adische Darstellung von n.

Man versuche, anhand von Tabelle A.1 die Gesetzmaßigkeiten zu entdecken, die das Wei-terzahlen von n auf n + 1 in diesen Darstellungen bestimmen! Zudem beobachte man,dass allem Anschein nach die Worter in ∆∗b in der

”kanonischen Reihenfolge“ auf-

gezahlt werden, namlich zunachst der Lange nach geordnet und innerhalb der Gruppengleicher Lange lexikographisch geordnet. Wie bei der b-aren Darstellung zeigt man fur dieb-adische Darstellung Existenz und Eindeutigkeit. Der Beweis hat auch dieselbe Struktur.

A.1.10 Satz Sei b ≥ 1. Dann gibt es fur jede Zahl n ∈ N genau eine b-adische Dar-stellung.

Beweis Wir bezeichnen die Aussage”n besitzt genau eine b-adische Darstellung“ mit

E(n) und zeigen ∀n : E(n) durch verallgemeinerte Induktion nach n. – Sei also n ∈ N.

1. Fall: n = 0. Dann ist ε eine b-adische Darstellung von n, mit k = 0. Kein Wortcl−1 · · · c1c0 ∈ ∆∗b mit l ≥ 1 kann b-adische Darstellung von 0 sein, weil

∑0≤i<l cib

i ≥ c0 > 0ist.

2. Fall: n ≥ 1.Dann konnen wir durch leichte Modifikation der ganzzahligen Division mit Rest schreiben

n = q · b+ r fur ein q ∈ N und ein r mit 1 ≤ r ≤ b,

fur eindeutig bestimmte q ∈ N und 1 ≤ r ≤ b. (Wenn die gewohnliche ganzzahlige Divisionn = q′ · b+ r′ fur q′ ∈ N und ein r′ mit 0 ≤ r′ < b liefert, so setzen wir (q, r) := (q − 1, b)falls r = 0 und (q, r) := (q′, r′) sonst.) Man sieht leicht ein, dass q = ⌊(n− 1)/b⌋ < n undr = n− qb gilt.

Wir konnen also die Induktionsvoraussetzung E(q) anwenden. Diese besagt, dass q eineeindeutig bestimmte b-adische Darstellung cl−1 · · · c1c0 ∈ ∆∗b besitzt:

q =∑

0≤i<l

cibi.

Wir setzen a0 := r und ai+1 := ci fur 0 ≤ i < l, und k := l + 1. Dann gilt offenbar

n = r + b ·∑

0≤i<l

cibi =

0≤i<k

aibi,

also ist ak−1 · · · a1a0 eine b-adische Darstellung von n. – Ist weiter dm−1 · · · d1d0 ∈ ∆∗b einebeliebige b-adische Darstellung von n, so folgt aus n =

∑0≤i<m dib

i = b ·(∑1≤i<m dibi−1)+

220

Page 115: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

d0, dass d0 = r = a0 und q =∑

1≤i<m dibi−1 ist. Letzteres heißt, dass dm−1 · · · d1 eine b-

adische Darstellung von q ist. Nun ist aber cl−1 · · · c1c0 die einzige b-adische Darstellungvon q. Daraus folgt m = l+ 1 = k und di = ci−1 = ai, fur 1 ≤ i < k. Also ist ak−1 · · · a1a0

die einzige b-adische Darstellung von n. �

A.1.11 Bemerkung Analog zur b-aren Darstellung liefert dieser Beweis eine effizienteMethode zur Berechnung der Ziffern der b-adischen Darstellung von n:

i := 0;

q := n;while (q > 0) do

Teile ganzzahlig q durch b :r:= Rest und q:= Quotient ;

if r = 0

then q := q-1; r:= b ;

ai := r ;

i := i+1

Der Inhalt von i am Ende der Berechnung sei k. Die Ausgabe ist ak−1 · · · a1a0 als b-adischeDarstellung von n.

Angesichts der in Satz A.1.10 gemachten Feststellung ist es gerechtfertigt, von der b-adischen Darstellung einer Zahl n zu sprechen. Aus der Sicht der formalen Sprachenergibt sich folgendes Resultat, das insbesondere besagt, dass fur jedes endliche AlphabetΣ die Menge Σ∗ abzahlbar ist:

A.1.12 Korollar Fur jedes b ≥ 1 ist die Abbildung

b-adic : N ∋ n 7→ ak−1 · · · a1a0 ∈ {1, 2, . . . , b}∗,wo ak−1 · · · a1a0 die b-adische Darstellung von n ist,

eine Bijektion. Ihre Umkehrung ist die Abbildung [ · ]b. �

Wir haben gesehen, dass die Menge der endlichen Folgen uber einem endlichen AlphabetΣ abzahlbar unendlich ist. Wie sieht es mit der Menge Seq(N) der endlichen Folgennaturlicher Zahlen aus? Interessanterweise ergibt die Sicht auf die Zahlen in b-adischerDarstellung eine sehr einfache Bijektion zwischen N und Seq(N).

Der Einfachheit halber betrachten wir die 2-adische Darstellung. Ein beliebiges Wort wuber {1, 2} hat das Format

w = 1 · · · 1︸ ︷︷ ︸i1 Einsen

2 1 · · · 1︸ ︷︷ ︸i2 Einsen

2 · · · 1 2 1 · · · 1︸ ︷︷ ︸ik Einsen

,

221

Page 116: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

wobei die Anzahl k ≥ 0 und die Lange i1, . . . , ik der Blocke aus Einsen eindeutig gegebenist. Wir definieren fur dieses w:

h(w) = (i1, . . . , ik).

Die Funktion h ist eine Bijektion von {1, 2}∗ auf Seq(N)−{( )}. (Die Worter w, die nur ausEinsen bestehen, werden auf die Folgen mit einer Komponente abgebildet. Insbesonderewird das leere Wort auf h(ε) = (0) abgebildet. Wir definieren daher:

f(n) :=

{( ) fur n = 0

h(2-adic(n− 1)) fur n ≥ 1

Nach Korollar A.1.12 ist klar, dass diese Funktion f die Zahl 0 auf die leere Folge und dieMenge N+ bijektiv auf Seq(N)− {( )} abbildet. Daher ist f eine Aufzahlung von Seq(N).

Zur Ubung ermittle man die Folgen f(n) fur n = 1, 3, 6, 10, 15, 21, 28.

A.2 Induktive Definitionen

Wir diskutieren in diesem Abschnitt eine fur alle Bereiche der Informatik wichtige Me-thode fur die Konstruktion von Objekten und Strukturen. Diese Methode kennen Sie ausder Vorlesung

”Logische Strukturen der Informatik“; in unserer Vorlesung spielt sie ei-

ne wichtige Rolle; auch im weiteren Verlauf des Studiums und in vielen auch praktischwichtigen Konstruktionen der Informatik wird sie gebraucht. Die rein mathematischenUberlegungen im letzten Teil dieses Abschnittes gehoren nicht zum Prufungsstoff. Wer je-doch den Mechanismus verstehen will, der hinter den in der Informatik allgegenwartigeninduktiven Konstruktionen und den zugehorigen Induktionsbeweisen steckt, sollte denhier prasentierten Stoff als Anlass zum Nachdenken nutzen. Die Beispiele sollte manauf jeden Fall durcharbeiten. Man muss in der Lage sein, einfache induktiveDefinitionen selbst zu entwerfen.

A.2.1 Beispiel: Aussagenlogische Formeln

Wir beginnen mit einem Beispiel, das ein Konzept aus der Vorlesung”Logische Syste-

me der Informatik“ anknupft, aber unabhangig von dieser Veranstaltung nachvollzogenwerden kann.

Aussagenlogische Formeln sind Gebilde wie

(A ∨B)

(A→ (B ∨ (¬C)))

((¬A)→ (A→ B))

((A ∧B)↔ (¬((¬A) ∨ (¬B))))

222

Page 117: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Dabei stehen die Zeichen A, B, C fur (nicht weiter spezifizierte) Aussagen; die Zeichen ¬(”nicht“), ∨

”oder“, ∧

”und“,→ (

”wenn . . . dann . . .“),↔

”genau dann wenn“ sind

”aussa-

genlogische Verknupfungen“. Wir wollen zunachst genau definieren, was aussagenlogischeFormeln sind (und was nicht). Damit wir immer genugend Aussagezeichen (

”Aussageva-

riable“) zur Verfugung haben, wahlen wir (etwas willkurlich) einen unendlichen Vorrat:

A = {Ai | i ∈ N}

ist die Menge der aussagenlogischen Variablen . (Mitunter benutzt man auch dieVariablenmenge {Xi | i ∈ N}.) Statt

”aussagenlogische Variable“ sagen wir auch kurz

”Variable“. (Diese Zeichen nennt man ubrigens auch deswegen

”Variable“, weil fur sie

spater etwas eingesetzt werden soll, namlich Wahrheitswerte”true“ oder

”false“.)

A.2.1 Definition (Aussagenlogische Formeln – alF)

(i) Jede Variable Ai, i ∈ N, ist eine aussagenlogische Formel (alF).

(ii) (α) Wenn φ eine alF ist, dann auch (¬φ).

(β) Wenn φ und ψ alF sind, dann auch folgendes:

(φ ∧ ψ),

(φ ∨ ψ),

(φ→ ψ),

(φ↔ ψ).

(iii) Nur die von (i) und (ii) erfassten Gegenstande sind aussagenlogische Formeln.

Durch Anwenden der Regeln erhalten wir, dass beispielsweise die folgenden Gebilde For-meln sind:

1. A0, A1, A2, A3, A10, A17, A1001, . . . ;

2. (¬A0), (¬A1), (¬A17), . . . (wegen 1. und (ii)(α));

3. (A0 ∨ (¬A0)), (A0 → (¬A3)), ((¬A0)↔ A3), (A0 ∧ A1), . . .(wegen 1., 2., und (ii)(β));

4. (¬(A0 → (¬A3))), (¬(A0 ∧ A1)), ((A0 ∨ (¬A0)) ∧ (A0 → (¬A3))), . . .(wegen 1., 2., 3. und (ii)(β));

5. ((¬(A0 → (¬A3))) ∧ (¬(A0 ∧ A1))), . . . (wegen 4. und (ii)(β))

usw.

Keine Formeln sind hingegen

223

Page 118: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

A0A0, (A0 ← A0), (¬¬A0), (A0 → A0A1), (A0 ∧ A1 ∧ A2), . . .

Um letzteres zu begrunden, musste man (iii) in geeigneter Weise einsetzen. Intuitiv ist eswohl klar, eine formal einwandfreie Begrundung liegt zunachst nicht auf der Hand.

Wie schon erwahnt, ist die Haupteigenschaft von aussagenlogischen Formeln, dass manfur die Variablen Wahrheitswerte einsetzen kann (

”0“:

”false“ und

”1“:

”true“) und dass

dann damit ganzen Formeln Wahrheitswerte zugeordnet werden. Hierfur benutzt man dasKonzept der

”Belegung“.

A.2.2 Definition Eine Belegung b ist eine Funktion b : A → {0, 1}.(Fur jedes Ai ∈ A ist b(Ai) ein Wert

”0“ oder

”1“.)

Wenn eine Formel φ und eine Belegung b vorliegt, so erhalt auch φ einen”Wahrheitswert“

valb(φ). Ist beispielsweise b(A0) = 0 und b(A1) = 1, wird man (¬A0) den Wert 1 und(A0∨ (¬A1)) den Wert 0 geben. Das Zeichen

”↔“ wird als “aquivalent“ interpretiert, also

werden bei dieser Belegung b die Formeln (A0 ↔ (¬A1)) und ((¬A0) ↔ A1) den Wert 1erhalten, die Formel (A0 ↔ A1) hingegen den Wert 0.

Allgemein definieren wir das Konzept Wert der aussagenlogischen Formel φ unter derBelegung b durch

”Induktion uber den Aufbau von φ“:

A.2.3 Definition Fur beliebiges b : A → {0, 1} und alF φ definieren wir valb(φ) wiefolgt:

(i) valb(Ai) = b(Ai), fur i ∈ N;

(ii) (α) Ist φ = (¬ψ), so ist

valb(φ) =

{1 falls valb(ψ) = 00 falls valb(ψ) = 1

(Man sieht: hier wird die Negation modelliert.)

(β) Ist φ = (ψ ∧ ϑ), so ist

valb(φ) =

{1 falls valb(ψ) = valb(ϑ) = 10 sonst.

(Hier wird die Idee modelliert, dass φ wahr ist, wenn ψ wahr ist und ϑ wahrist.)

(γ) Ist φ = (ψ ∨ ϑ), so ist

valb(φ) =

{0 falls valb(ψ) = valb(ϑ) = 01 sonst.

(Hier wird die Idee modelliert, dass φ wahr ist, wenn ψ wahr ist oder ϑ wahrist.)

(δ) Ist φ = (ψ → ϑ), so ist

valb(φ) =

{1 falls valb(ψ) = 0 oder valb(ϑ) = 10 sonst.

224

Page 119: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(Dies entspricht der klassischen Interpretation der Implikation: ψ → ϑ ist falschgenau dann wenn ψ wahr und ϑ falsch ist.)

(ε) Ist φ = (ψ ↔ ϑ), so ist

valb(φ) =

{1 falls valb(ψ) = valb(ϑ)0 falls valb(ψ) 6= valb(ϑ)

(Dies entspricht der Aquivalenz : ψ ↔ϑ ist wahr genau dann wenn ψ und ϑ beide wahr oder beide falsch sind.)

Beispiele: Die Belegung b sei wie folgt gewahlt: b(Ai) = 1, falls i gerade ist, und b(Ai) = 0,falls i ungerade ist. Dann gilt:

valb((A0 ∨ A1)

)= max{b(A0), b(A1)} = 1

valb(((A1 ∨ A1) ∨ A3)

)= 0

valb((¬A1)

)= 1

valb((A0 ↔ A2) ∨ (A1 ↔ A4)

)= 1, weil valb(A0) = valb(A2).

Um systematisch die”Semantik“ einer Formel φ zu erfassen, benutzt man in der Logik

oft Wahrheitstafeln, in denen jeder moglichen Belegung (spezifiziert fur die Variablen, diein φ vorkommen) und jeder Teilformel ψ von φ der Wert valb(ψ) zugeordnet wird.

Beispiel:b(A0) b(A1) b(A2) valb((A0 ∧ A1)) valb((A1 ∨ A2)) valb(((A0 ∧ A1)↔ (A1 ∨ A2)))

0 0 0 0 0 10 0 1 0 1 00 1 0 0 1 00 1 1 0 1 01 0 0 0 0 11 0 1 0 1 01 1 0 1 1 11 1 1 1 1 1

Im Prinzip kann man fur jede alF φ (und ihre Komponentenformeln) eine solche Wahr-heitstafel aufstellen.

A.2.2 Beispiel: Korrekte Klammerausdrucke

In diesem Abschnitt wollen wir uns mit der Sprache der”korrekten Klammeraus-

drucke“ (kKA) befassen. Diese Sprache isoliert ein Merkmal aus vielen in der Informa-tik wichtigen Sprachen: die Moglichkeit, geklammerte Ausdrucke beliebig tief ineinanderzu schachteln. Geklammerte Ausdrucke kommen in der Mathematik vor; in Programmengibt es geklammerte arithmetische Ausdrucke und, ebenso wichtig, Strukturen aus inein-ander geschachtelten Blocken (in Pascal durch begin-end-Konstruktionen, in C, C++und Java durch die {-}-Struktur gegeben). Wir stellen uns vor, dass wir nur eine Sortevon Klammern, namlich ( und ), haben, und lassen aus den betreffenden Ausdrucken oderTexten alles weg, was nicht Klammer ist. Welche Ausdrucke bleiben ubrig?

225

Page 120: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Folgende Worter sind korrekte Klammerausdrucke:

(), ()(()), ((())), ()()(()()),

folgende nicht:), )(), (())), (())(, (()))(.

Im Lauf der Zeit merkt man, dass die intuitive Notation mit Klammern etwas unhandlichist. Wir schreiben im folgenden

0 fur ( und 1 fur ).

Unsere Beispiele fur kKA sind dann 01, 010011, 000111, 0101001011; die Gegenbeispielesind 1, 101, 00111, 00110, 001110.

A.2.4 Definition (Korrekte Klammerausdrucke)

Wir definieren die Menge der korrekten Klammerausdrucke (kKA, eine Sprache uber Σ ={0, 1}) wie folgt:

(i) ε ist in kKA;

(ii) Falls w1, w2 in kKA sind, dann ist auch 0w11w2 in kKA;

(iii) Sonst ist nichts in kKA.

Wir beweisen Aussagen uber korrekte Klammerausdrucke per Induktion uber die Defini-tion:

A.2.5 Satz Fur jeden korrekten Klammerausdruck w ∈ kKA gilt |w|0 = |w|1.

Beweis I.A.: Offenbar ist |ε|0 = 0 = |ε|1.I.V.: w1, w2 ∈ kKA erfullen die Behauptung.

I.S.: Betrachte w = 0w11w2. Dann gilt

|w|0 = 1 + |w1|0 + |w2|0 I.V.= 1 + |w1|1 + |w2|1 = |w|1,

wie gewunscht. �

Der nachste Satz druckt eine intuitiv einleuchtende Tatsache aus: Wenn man einen kor-rekten Klammerausdruck von links nach rechts liest, dann hat man zu jedem Zeitpunktmindestens so viele offnende Klammern wie schließende gesehen.

A.2.6 Satz Fur jeden korrekten Klammerausdruck w ∈ kKA gilt: Wenn u ein Prafixvon w ist, so ist |u|0 ≥ |u|1.

226

Page 121: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Beweis Wir fuhren Induktion uber den Aufbau von korrekten Klammerausdrucken.

I.A.: Offenbar ist |ε|0 = 0 ≥ 0 = |ε|1.I.V.: w1, w2 ∈ kKA erfullen die Behauptung.

I.S.: Betrachte w = 0w11w2 und ein beliebiges Prafix u von w. Es gibt mehrere Falle.

1. Fall: u = ε. – Dann gilt |u|0 = 0 ≥ 0 = |u|1.2. Fall: u = 0u1 fur ein Prafix u1 von w1. – Dann gilt mit Satz A.2.5:

|u|0 = 1 + |u1|0I.V.

≥ 0 + |u1|1 = |u|1.

3. Fall: u = 0w11. – Dann gilt |u|0 = 1 + |w1|0 = 1 + |w1|1 = |u|1.4. Fall: u = 0w11u2 fur ein Prafix u2 von w2. – Dann gilt mit Satz A.2.5:

|u|0 = 1 + |w1|0 + |u2|0I.V.

≥ 1 + |w1|1 + |u2|1 = |u|1.

5. Fall: u = w. – Dann gilt |u|0 = 1 + |w1|0 + |w2|0 = 1 + |w1|1 + |w2|1 = |u|1.�

Die in Satz A.2.5 und Satz A.2.6 gemachten Aussagen machen es uns leicht nachzuweisen,dass eine 0-1-Folge kein korrekter Klammerausdruck ist. In den Beispielen 1, 101, 00111,00110 von oben ist die Anzahl der Nullen und Einsen unterschiedlich; im Beispiel 001110hat das Prafix 00111 drei Einsen und zwei Nullen, was der Bedingung in Satz A.2.6widerspricht.

Die Bedingungen in den beiden Satzen zusammen sind auch hinreichend: Wenn ein Aus-druck die Prafixeigenschaft von Satz A.2.6 erfullt und insgesamt gleich viele offnende undschließende Klammern hat, dann liegt ein korrekter Klammerausdruck vor.

A.2.7 Satz Ist w ∈ {0, 1}∗ derart dass (i) |w|0 = |w|1 und so dass (ii) |u|0 ≥ |u|1 furjedes Prafix u von w, dann ist w ∈ kKA.

Beweis Wir benutzen verallgemeinerte Induktion uber i = |w|.I.A.: i = 0, d. h. w = ǫ. Dieses Wort ist in kKA.

I.V.: i ≥ 1 und fur alle Worter w′ mit |w′| = i′ < i, die (i), (ii) erfullen, gilt w′ ∈ kKA.

I.S.: Betrachte w ∈ {0, 1}∗ mit i = |w|, so dass (i), (ii) gelten. Betrachte das kurzestePrafix u 6= ε von w mit |u|0 = |u|1. (Wegen (i) ist w selbst ein solches Prafix, also gibtes welche. Die Intuition hinter der Wahl von u ist, in w von links beginnend die Stelle zusuchen, wo die schließende Klammer steht, die der ersten offnenden Klammer entspricht.)Wegen (ii) muss w, also auch u, mit 0 beginnen; aus der Wahl von u (

”kurzestes“) folgt

sofort, dass u mit dem Buchstaben 1 enden muss. Mit u = 0u′1 konnen wir schreiben:

w = 0u′1v,

227

Page 122: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

fur ein v ∈ {0, 1}∗. Man kann sich nun leicht folgendes uberlegen: u′ enthalt ebenso vieleNullen wie Einsen, und in jedem Prafix von u′ gibt es mindestens so viele Nullen wieEinsen – das folgt wieder daraus, dass u minimale Lange hat. Noch leichter sieht man,dass v die analogen Eigenschaften hat. Wir wenden die I.V. auf die Worter u′ und van (die beide kurzer als w sind) und erhalten, dass u′ und v zu kKA gehoren. Nach derinduktiven Definition A.2.4 von kKA ist also w = 0u′1v ∈ kKA. �

A.2.3 Induktive Definitionen: Formaler Rahmen

In dem in den Abschnitten A.2.1 und A.2.2 vorgestellten Beispielen finden sich die fol-genden Muster, die bei der Verwendung von induktiven Definitionen (bzw. rekursivenKonstruktionen) immer wieder auftauchen. Fur die Definition der Menge (alF oder kKA)selbst:

(i) Basisobjekte;

(ii) Vorschriften, wie aus gegebenen Objekten neue, zusammengesetzte Objekte zu ge-winnen sind;

(iii) die Einschrankung: nur die durch (i) und (ii) gelieferten Objekte sind gemeint.

Weiterhin haben wir an den Beispielen die Technik”Definition von Funktionen uber

den Aufbau von induktiv definierten Objekten“ (wie valb) kennengelernt sowie die Me-thode

”Beweis durch Induktion uber den Aufbau von induktiv definierten Objek-

ten“.

Wir wollen nun einen formalen Rahmen fur die obigen Konstruktionen diskutieren,der insbesondere die benutzten Definitions- und Beweismethoden rechtfertigt.

Dieser Abschnitt ist nicht prufungsrelevant. Allerdings muss man in der Lage sein,in konkreten Situationen induktive Definitionen zu bauen und Definitionen und Beweise

”uber den Aufbau“ durchzufuhren.

Was brauchen wir fur eine induktive Definition einer Menge M von Objekten wie aussa-genlogischen Formeln oder Klammerausdrucken?

(i) Basisobjekte , mit denen man anfangen kann.

(ii) Konstruktionsregeln , die sagen, unter welchen Umstanden man aus schon vor-liegenden Objekten neue Objekte bauen kann und wie diese aussehen.

(iii) Eine Ausschlussregel : Nur die durch (i) und (ii) erzeugten Objekte gehoren zuM .

228

Page 123: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Aus technischen Grunden ist es nutzlich, sich eine”universelle“ Grundmenge A vorzuge-

ben, innerhalb derer sich die konstruierten Objekte befinden.

Formal: A soll die Grundmenge sein, B ⊆ A die Menge der Basisobjekte; die Regelmengeist als Menge von Tupeln

((a1, . . . , al), b) , l ≥ 1

mit a1, . . . , al ∈ A gegeben. (Interpretation:”aus a1, . . . , al kann man b bauen“.)

In mathematischer Notation fasst man die Tupel, die Regeln entsprechen, als Relation

R ⊆ Seq+(A)× Aauf, wo Seq+(A) = {(a1, . . . , al) | l ≥ 1, a1, . . . , al ∈ A} die Menge der nichtleerenendlichen Folgen in A ist.

Die in den obigen Beispielen verwendeten induktiven Definitionen haben nun das folgendeMuster:

(i) B ⊆M .

(ii) Wenn a1, . . . , al ∈M und ((a1, . . . , al), b) ∈ R, dann ist auch b ∈M .

(iii) Nur die durch die Anwendung von (i) und (ii) erfassten Objekte sind in M .

Wie sollen wir uns die durch so etwas definierte Menge M vorstellen? Am einfachstenist es, sich die Objekte in M

”nach und nach“ gemaß den Regeln (i) und (ii) erzeugt

vorzustellen. Dazu teilen wir die konstruierten Objekte in”Schichten“ ein. Schicht 0 sind

die Basisobjekte; in Schicht i sind alle Objekte aus Schicht i−1 und zusatzlich diejenigen,die man mit einer Anwendung einer Regel in R aus Objekten der Schicht i−1 bauen kann.Formal kann man die Schichten so definieren:

i = 0 : I0R(B) := B;

i ≥ 1 : I iR(B) := I i−1

R (B) ∪ {b ∈ A | ∃a1, . . . , al ∈ I i−1R (B) mit ((a1, . . . , al), b) ∈ R}.

Als einfaches Beispiel betrachten wir die Klammersprache aus Abschnitt A.2.2. Als Awahlen wir {0, 1}∗. Die Menge der Basisobjekte gemaß Regel (i) ist B := {ε} ⊆ A. DieRegeln (ii) zur Erzeugung neuer Klammerausdrucke sind durch die Relation

R = {((w1, w2), 0w11w2) | w1, w2 ∈ A}gegeben. (Man sieht an diesem Beispiel, dass R auch vollig unsinnige konkrete Regelnenthalt, die beim Aufbau von M gar nicht benutzt werden. Beispielsweise liegt die Regel((010, 00), 0010100) in R. Dann ergibt sich:

I0R(B) = B = {ε}I1R(B) = {ε} ∪ {01}, weil 0 ◦ ε ◦ 1 ◦ ε = 01

I2R(B) = {ε, 01} ∪ {01, 0011, 0101, 001101}I3R(B) = I2

R(B) ∪ {0001110101, 0001110011, . . . }

229

Page 124: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

(Die Menge I3R(B) hat schon 26 Elemente.)

Es ist intuitiv einleuchtend, dass wegen der Regeln (i) und (ii) alle Elemente von I iR(B) zu

M gehoren mussen, fur alle i ≥ 0. Regel (iii) verlangt, dass wir nicht mehr Elemente alsunbedingt notig in M einbeziehen. Es ist daher naturlich, in die erzeugte Menge genaudie Objekte zu packen, die in einem der I i

R(B) liegen und daher dazugehoren mussen.Dies fuhrt zu folgender Definition.

IR(B) :=⋃

i≥0

I iR(B).

(Der Uberstrich symbolisiert eine”Abschlussoperation“: IR(B) entsteht durch Ab-

schluss von B unter den durch R gegebenen Konstruktionsregeln.)

Wir wollen zeigen, dass IR(B) unter allen Mengen, die (i) und (ii) erfullen, die kleinsteist. Hierzu definieren wir:

A.2.8 Definition C ⊆ A heißt R-abgeschlossen , wenn fur alle ((a1, . . . , al), b) ∈ Rgilt:

a1, . . . , al ∈ C ⇒ b ∈ C.

A.2.9 Satz

(a) Die Menge IR(B) erfullt B ⊆ IR(B) und ist R-abgeschlossen.

(b) Wenn B ⊆ C und C R-abgeschlossen ist, dann gilt IR(B) ⊆ C.

Beweis (a) Wir haben B = I0R(B) und I0

R(B) ⊆ IR(B) nach Definition.(b) Behauptung : I i

R(B) ⊆ C, fur alle i ≥ 0.Beweis durch vollstandige Induktion uber i ≥ 0:I.A.: I0

R(B) = B ⊆ C nach Annahme.I.V.: I i−1

R (B) ⊆ C.I.S.: Betrachte ein Element b von

I iR(B) = I i−1

R (B) ∪ {b ∈ A | ∃a1, . . . , al ∈ I i−1R (B) mit ((a1, . . . , al), b) ∈ R}.

Wenn b ∈ I i−1R (B), ist b ∈ C nach I.V. Wenn ((a1, . . . , al), b) ∈ R ist, fur a1, . . . , al ∈

I i−1R (B) ⊆ C, dann ist auch b ∈ C, weil C R-abgeschlossen ist. Also ist jedes Element vonI iR(B) in C, wie gewunscht.

Aus der Behauptung folgt sofort:

IR(B) =⋃

i≥0

I iR(B) ⊆ C.

230

Page 125: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Wir wollen Satz A.2.9 benutzen, um Induktionsbeweise im Zusammenhang mit induktivenDefinitionen zu rechtfertigen.

A.2.10 Fakt (Beweisprinzip”Induktion uber den Aufbau“ oder

”strukturelle

Induktion“) Es sei eine Menge A, eine Menge R ⊆ Seq(A)×A und ein B ⊆ A gegeben.E(a) sei eine Eigenschaft1, die fur Elemente von A wahr oder falsch sein kann. Falls nungilt:

(i) E(a) fur alle a ∈ B.

(ii) wenn ((a1, . . . , al), b) ∈ R und E(a1), . . . , E(al) gilt, so gilt auch E(b).

dann gilt E(a) fur alle a ∈ IR(B).

Beweis SetzeC := {a ∈ A | E(a) gilt}.

Wegen (i) gilt B ⊆ C; wegen (ii) gilt, dass C R-abgeschlossen ist. Daraus folgt mitSatz A.2.9, dass IR(B) ⊆ C ist – das heißt aber gerade, dass fur alle a ∈ IR(B) EigenschaftE(a) gilt. �

A.2.11 Beispiel Bei Klammerausdrucken konnte E(w) die folgende Aussage sein: furalle Prafixe v von w gilt: |v|0 ≥ |v|1.

Fakt A.2.10 liefert eine Rechtfertigung fur Induktionsbeweise in der in den Abschnit-ten A.2.1 und A.2.2 diskutierten Art. Fur eine gegebene Eigenschaft E(a) zeige man nur(i) und (ii); damit ist bewiesen, dass E(a) fur alle a ∈ IR(B) gilt.

Schließlich diskutieren wir noch kurz die Moglichkeit, auf Mengen IR(B)”durch Induktion

uber den Aufbau“ Funktionen zu definieren, wie es in den Anwendungen in selbstverstand-licher Weise gemacht wird.

A.2.12 Fakt Es seien A, B, R wie vorher. Die Relation R habe die zusatzliche Eigen-schaft, dass fur b ∈ IR(B) gilt:

b ∈ B oder ((a1, . . . , ar), b) ∈ R fur genau ein Tupel (a1, . . . , ar) ∈ Seq(IR(B)).

Dann kann man auf folgende Weise eine Funktion f mit Definitionsbereich IR(B) definie-ren:

(i) definiere f(a) fur alle a ∈ B;

(ii) fur b ∈ IR(B) − B spezifiziere, wie man f(b) aus a1, . . . , ar, b, f(a1), . . . , f(ar)berechnet, wenn ((a1, . . . , ar), b) ∈ Seq(IR(B))× IR(B).

1

”E“ ist ein geschwungenes

”E“ und hat mit

”ε“ (epsilon) nichts zu tun.

231

Page 126: Automaten und Formale Sprachen Skript zur Vorlesung WS ... · Text oder eine endliche Struktur zu beschreiben. Als Beispiel fur eine solche endliche¨ Beschreibung sei die bekannte

Den (nicht schwierigen, aber trockenen) Beweis fur Fakt A.2.12 uberlassen wir der Ma-thematik. Wir betrachten lieber noch Beispiele.

A.2.13 Beispiel Fur Klammerausdrucke w definieren wir induktiv die Schachtelungs-tiefe d(w).(Beispiel: d(01) = 1, d(0001011011) = 3. Deutlicher wird die Idee, wenn man die Worterin der Schreibweise () und ((()())()) ansieht.)

Dies geht einfach, wie folgt:

(i) d(ε) = 0;

(ii) d(0w11w2) = max{1 + d(w1), d(w2)}.

Nun kann man (zur Ubung) Aussagen per Induktion beweisen, wie z. B. die folgende:

d(w) = max{|v|0 − |v|1 | v Prafix von w}.

A.2.14 Beispiel (Reflexive und transitive Hulle einer binaren Relation) Essei X eine Menge, S ⊆ X × X eine binare Relation. Wir definieren die reflexive undtransitive Hulle von S als

S∗ := IR(B),

wo die Grundmenge A := X ×X, die Konstruktionsrelation R := {((x, y), (y, z))|(x, y) ∈A, (y, z) ∈ S}, und die Startmenge B := {(x, x) | x ∈ X} ist. (Zur Ubung uberlege man,welche Tupel in I i

R(B) liegen.)

232