THEORETISCHE INFORMATIK I
|
|
|
- Mina Schmitt
- vor 9 Jahren
- Abrufe
Transkript
1 THEORETICHE INFORMATIK I Vorlesungsskript Jiří Adámek Institut für Theoretische Informatik Technische Universität Braunschweig Juni 23
2
3 Inhaltsverzeichnis Endliche Automaten. Mathematische Grundbegriffe Definition der endlichen Automaten Nichtdeterministische Automaten Reguläre prachen Ableitungen Äquivalente Zustände Konstruktion eines Quotient-DEA Minimierung von Automaten Nerode-Äquivalenz Beweise der Regularität Moore- und Mealy-Automaten Kontextfreie prachen und Kellerautomaten Die Idee einer formalen Grammatik Kontextfreie Grammatik Anwendungen von kontextfreien Grammatiken Ableitungsbäume Kontextfreie und reguläre prachen Eigenschaften kontextfreier prachen Nullierbare Variablen Chomsky-Normalform Algorithmen für formale prachen Kellerautomaten Kellerautomaten und kontextfreie prachen Turingmaschinen Definition einer Turingmaschine Modifikationen von Turingmaschinen TM mit mehreren finalen Zuständen TM mit zusätzlichem Gedächtnis i
4 ii INHALTVERZEICHNI TM mit erweitertem Bandalphabet TM mit mehrspurigem Band TM mit mehreren Bändern Nichtdeterministische Turingmaschinen Rekursiv aufzählbare prachen Rekursive prachen Church-Turing-These, rekursive Funktionen und Grammatiken 4. Berechenbare Funktionen Primitive Rekursion µ-rekursive Funktionen Grammatiken und Turingmaschinen Universelle Turingmaschine Das Halteproblem Ein Rechner als Turing-Maschine Unentscheidbare Probleme Das Akzeptanzproblem Akzeptanz des leeren Wortes Ist eine TM ein Algorithmus? Das Problem von hello world Programmen atz von Rice Minimierung von Turingmaschinen Komplexität von Algorithmen Beispiele effizienter Algorithmen Komplexitätsklasse P Berechnungsprobleme und Reduzierbarkeit Robustheit der Klasse P TM mit zusätzlichem Gedächtnis TM mit mehrspurigem Band Mehr-Band TM RAM Geometrische Algorithmen und reelle RAM Komplexitätsklasse N P N P-Vollständigkeit Weitere N P-vollständige Probleme Komplexitätsklasse con P Komplexität von Optimierungsproblemen Approximation von Optimierungsproblemen Raumkomplexität
5 Kapitel Endliche Automaten kapea In diesem Kapitel wird das einfachste Maschinenmodell eingeführt, das wir in diesem kript untersuchen werden: die endlichen Automaten. Wie bei den realistischeren Modellen (Kellerautomaten, Turingmaschinen, usw.), die in den folgenden Kapiteln behandelt werden, gibt es auch zwei Typen von endlichen Automaten: die, die formale prachen akzeptieren und die, die Funktionen berechnen. Eine formale prache ist nichts anderes als eine Menge von Wörtern, die über einem Alphabet Σ gebildet werden, z. B. über dem binären Alphabet Σ = {, }. ie repräsentieren für uns alle Entscheidungsprobleme. Beispiel: Hat ein gegebener Graph G eine Clique von 4 Elementen? Das ist ein Entscheidungsproblem: die Antwort auf jede Eingabe, die einen Graphen codiert, ist JA oder NEIN. Es gibt verschiedene Codierungsmöglichkeiten für Graphen über dem Alphabet {, } (z. B. als Liste aller Knoten und Kanten oder als Adjazenzmatrix zwischen Knoten und Kanten), aber für jede feste Codierung c läßt sich die Antwort auf die obige Frage auf folgende Weise ersetzen: L sei die formale prache aller Codes der Graphen mit Antwort JA, also L = { c(g) G ist ein Graph mit einer Clique von 4 Elementen }. Wir fragen dann, ob ein gegebenes Wort zu der prache L gehört. Diese einfache Formulierung ermöglicht es, dass wir uns weiterhin mit formalen prachen anstatt Entscheidungsproblemen beschäftigen können. o müssen wir nicht mehr die verschiedenen Codierungen der Eingaben diskutieren, sondern können annehmen, dass vorher eine geeignete Codierung vereinbart wurde. Nicht alle Probleme sind Entscheidungsprobleme, oft ist ein Ergebnis zu berechnen, anstatt eine Frage mit JA oder NEIN zu beantworten. Beispiel: Gegeben ist ein Graph G, finde eine Clique mit 4 Elementen. Was hier erwartet wird, ist eine Funktion f, die jedem binären Wort w = c(g), wobei G ein Graph mit einer Clique von 4 Elementen ist, ein Wort f(w), das eine Codierung einer konkreten Clique ist, zuordnet. Auch die Berechnungsprobleme haben viel mit den formalen prachen zu tun z. B. ist der Definitionsbereich unserer Funktion f genau die oben erwähnte formale prache L. Wir werden also Maschinen untersuchen, die entweder formale prachen erkennen oder Funktionen zwischen formalen prachen berechnen. Wir beginnen mit den sehr simplen, aber für einige Anwendungen noch hinreichenden, endlichen Automa-
6 2 KAPITEL. ENDLICHE AUTOMATEN ten. Ihre Theorie ist klarer als die der komplizierteren Maschinen, die wir später einführen. Vorher geben wir noch kurz einige Grundbegriffe an, die im ganzen kript eine wichtige Rolle spielen.. Mathematische Grundbegriffe (a) Mengen Eine Menge kann durch eine Aufzählung ihrer Elemente gegeben werden, z. B.: ˆ A = {2} nur ein Element, 2, ˆ B = (leere Menge) kein Element, ˆ C = {a, b, c, 2} oder durch eine erzeugende Eigenschaft P in der Form {x; x hat Eigenschaft P }, z. B.: ˆ A = {x; x ist eine gerade Primzahl}, ˆ = {x; x x}. Für unendliche Mengen gibt es nur die zweite Variante. Wichtiges Beispiel: ˆ N bezeichnet die Menge aller natürlichen Zahlen. In diesem kript ist eine natürliche Zahl, also ˆ N = {,, 2,...}. Eine Teilmenge einer Menge A ist eine Menge B mit der Eigenschaft, dass x B x A. Notation: B A. Wir benutzen die übliche Notation für die Mengenoperationen: A B A B A B A B Vereinigung, Durchschnitt, Komplement, A B = {x; x A und x B}, Kartesisches Produkt, A B = {(x, y); x A und y B}.
7 .. MATHEMATICHE GRUNDBEGRIFFE 3 (b) Relationen und Funktionen Eine Relation zwischen zwei Mengen A und B ist eine Menge R von Paaren (a, b), wobei a A und b B gilt. Wir sagen, dass a in Relation R zu b steht und schreiben arb. Formal ist eine Relation R dasselbe wie eine Teilmenge von A B. Im Fall A = B nennen wir R eine Relation auf der Menge A. Diese heißt reflexiv, falls ara für alle a A gilt, und transitiv, falls aus arb und brc folgt arc (a, b, c A) Für jede Relation R auf der Menge A bezeichnen wir mit R die kleinste reflexive und transitive Relation, die R enthält, die sogenannte reflexive transitive Hülle von R. Also gilt für zwei Elemente a, b aus A: ar b genau wenn a = b oder es gibt a = c, c 2,..., c n = b in A mit c i Rc i+ für i =,..., n Eine Funktion f A B ist eine Relation f A B mit der Eigenschaft, dass es für jedes Element a A genau ein Element b B gibt, mit dem a in Relation steht; das bezeichnen wir wie üblich mit f(a) = b. A heißt der Urbildbereich oder Definitionsbereich und B der Wertebereich der Funktion f. Ein schwächerer Begriff ist der einer partiellen Funktion f A B: das ist eine Relation, die für jedes Element a A höchstens ein Element b B hat, das in Relation zu a steht. Funktionen nennen wir manchmal auch totale Funktionen, wenn wir betonen wollen, dass wir sie von den partiellen Funktionen unterscheiden. Beispiel. Die Nachfolgerfunktion ist eine (totale) Funktion suc: N N. Die Vorgängerfunktion ist dagegen eine partielle Funktion pred: N N, die durch pred(n) = n für alle n definiert ist (und pred() ist nicht definiert). Funktionen zweier Variablen lassen sich als (übliche) Funktionen formalisieren, deren Definitionsbereich ein kartesisches Produkt ist. Also ist f A B C eine Funktion, die Variablen aus A und B nimmt und ihnen Werte in C zuordnet.
8 4 KAPITEL. ENDLICHE AUTOMATEN (c) Wörter Eine nichtleere endliche Menge heißt auch Alphabet und ihre Elemente werden auch Buchstaben genannt. Beispiel: das binäre Alphabet ist die Menge mit zwei Buchstaben, und. Falls Σ ein Alphabet ist und n eine natürliche Zahl, so wird ein geordnetes n-tupel von Elementen aus Σ als Wort der Länge n über dem Alphabet Σ bezeichnet. Wir schreiben die Wörter, etwas informell, ohne Kommas oder Klammern einfach als ˆ a für a Σ (Wörter der Länge ) ˆ ab für a, b Σ (Wörter der Länge 2) usw. Der Fall n = entspricht dem leeren Wort, das mit ˆ ε bezeichnet wird. Für die Länge eines Wortes w schreiben wir z. B. ε =, ab = 2 usw. w, Die Menge aller (endlichen!) Wörter über dem Alphabet Σ bezeichnen wir mit Σ. Beispiel: für das binäre Alphabet Σ = {, } gilt Σ = {ɛ,,,,,,,,... }. Die Konkatenation zweier Wörter u = a a 2... a n und v = b b 2... b m ist das Wort uv = a a 2... a n b b 2... b m (ohne Lücke geschrieben, denn Lücke kann selbst ein ymbol in Σ sein). Vereinbarung. Weiter nehmen wir immer an, daß jedes Alphabet, das hier betrachtet wird, die beiden ymbole ε (leeres Wort) und # (Blankzeichen) nicht als Elemente enthält. Das vermeidet Unklarheiten des Typs, ob εε die Konkatenation zweier leerer Wörter ist (also εε = ε), oder ein Wort der Länge 2 die zweite Variante schließen wir hier aus. Darüberhinaus nehmen wir an, dass für zwei Elemente a b des Alphabets, b kein Wort mit Präfix a ist. Also ist beispielsweise {,, 3} kein Alphabet während {,, 24} eines ist. (d) Formale prachen Eine formale prache ist eine Menge von Wörtern. Genauer: eine formale prache über dem Alphabet Σ ist das gleiche wie eine Teilmenge L der Menge Σ, L Σ. Beispiel: Σ selbst ist eine formale prache, aber auch ist eine. Die Menge L aller binären Codierungen der Graphen, die eine Clique mit 4 Elementen haben, ist eine formale prache L {, }.
9 .2. DEFINITION DER ENDLICHEN AUTOMATEN 5 (e) Graphen Ein gerichteter Graph ist eine Menge V (von Knoten) zusammen mit einer Relation E auf V, d.h. E V V. Die Paare (a, b) E heißen Kanten des Graphen. Beispiel: b a c bezeichnet den gerichteten Graphen mit den Knoten a, b, c und den Kanten (a, b), (b, c), (c, b) und (c, c). Falls die Kanten oder Knoten mit ymbolen eines Alphabets M bezeichnet werden, sprechen wir von markierten Graphen. Konkreter ist ein kantenmarkierter Graph ein Tripel (V, E, f), wobei (V, E) ein gerichteter Graph und f E M eine Funktion ist. Beispiel: bezeichnet den obigen Graphen mit der Markierung a b c f V {, } mit dem Wert für (a, b) und (b, c) und dem Wert für (b, c) und (c, c). sectdea.2 Definition der endlichen Automaten Reale Rechner bestehen aus einem Prozessor, der sich in einem von endlich vielen Zuständen befindet, einem peicher und einer Ein-/Ausgabe-Einheit. Falls der peicher beliebig erweitert werden kann, betrachten wir ihn als potentiell unendlich. Wenn aber keine Erweiterung möglich ist, können wir die Zustände des peichers auch als globale Zustände des Rechners betrachten. Dann hat der Rechner also nur endlich viele Zustände. Wir befassen uns jetzt mit einem solchen Rechner, der noch dazu ˆ die Eingabe mit einem read-only Kopf bearbeitet, der sich systematisch von links nach rechts bewegt und ˆ das Ausgabealphabet {JA, NEIN} hat, so dass wir einfach zwei Typen von Zuständen unterscheiden: die finalen Zustände (Antwort JA) und die nicht finalen (Antwort NEIN). Mathematisch läßt sich solch eine einfache Maschine dadurch beschreiben, dass wir für jedes Paar (q, s) q - Zustand, s - Eingabesymbol den nächsten Zustand δ(q, s) bestimmen. ei also Q die Menge aller Zustände und Σ das Eingabealphabet. Dann beschreibt die Übergangsfunktion δ Q Σ Q
10 6 KAPITEL. ENDLICHE AUTOMATEN die Arbeitsweise der Maschine. Wir gehen davon aus, dass die Bearbeitung der Eingabe immer in demselben (initialen) Zustand beginnt. Das führt zur folgenden Definition: Definition. Ein deterministischer endlicher Automat (DEA) ist ein Fünftupel A = (Q, Σ, δ, q, F ), wobei Q Σ δ Q Σ Q q Q eine endliche Zustandsmenge, ein Eingabealphabet, die Übergangsfunktion, der Initialzustand und F Q die Menge aller akzeptierender (oder finaler) Zustände ist Notation. tatt δ(q, s) = q schreibt man auch q s q oder Wir benutzen auch kennzeichnen: (q, s) q., um den Initialzustand und die finalen Zustände zu q Initialzustand q Finaler Zustand bspdea Beispiel. ei A = ({q, q, q 2 }, {, }, δ, q, {q 2 }) der Automat, dessen Übergangsfunktion δ wie folgt definiert ist: (q, ) q (q, ) q (q, ) q 2 (q, ) q (q 2, ) q (q 2, ) q Diesen Automaten kann man durch den folgenden markierten Graphen repräsentieren: q q 2 q
11 .2. DEFINITION DER ENDLICHEN AUTOMATEN 7 Das Wort wird akzeptiert, denn der Initialzustand q wird dadurch in einen finalen Zustand überführt. Das Wort wird nicht akzeptiert. q q q q q2 F. Definition.. Eine Konfiguration eines DEA A = (Q, Σ, δ, q, F ) ist ein Paar (q, w), wobei q ein Zustand und w ein Wort über Σ ist (der momentane Zustand und der noch nicht gelesene Teil des Eingabewortes). Konfigurationen (q, w) heißen Initialkonfigurationen und Konfigurationen (q, ε) heißen Finalkonfigurationen. 2. Für jede Konfiguration (q, w) mit w = s s 2... s n heißt die Konfiguration (q, w ) mit q = δ(q, s ) und w = s 2... s n die Folgekonfiguration, und wir bezeichnen dies mit dem ymbol (q, w) (q, w ). bspdea Kürzer: (q, s s 2... s n ) (δ(q, s ), s 2... s n ). Beispiel (Fortsetzung) Der Automat aus Beispiel berechnet das Wort durch die folgende Reihe von Konfigurationen: (q, ) (q, ) (q, ) (q, ) (q 2, ε) Bemerkung. Das kartesische Produkt Q Σ ist also die Menge aller möglichen Konfigurationen und (Folgekonfiguration) ist eine Relation auf dieser Menge. Wir bezeichnen durch die reflexive und transitive Hülle dieser Relation. Für zwei Konfigurationen (q, w) und (q, w ) aus Q Σ gilt demzufolge (q, w) (q, w ), wenn eine Berechnung, die in der Konfiguration (q, w) anfängt, endet in der Konfiguration (q, w ). Dies gilt genau dann, wenn entweder (q, w) = (q, w ) ist oder Konfigurationen (q, w ),..., (q n, w n ) existieren, so dass (q, w) = (q, w ), (q, w ) = (q n, w n ) und (q, w ) (q 2, w 2 )... (q n, w n ) gilt. Die Liste der Konfigurationen heißt Berechnung von (q, w ) aus (q, w). (q i, w i ), i =,..., n Definition. Ein DEA A = (Q, Σ, δ, q, F ) akzeptiert ein Wort w über Σ, falls die Initialkonfiguration (q, w) zu einer Berechnung mit Endkonfiguration (q, ε) führt, wobei q ein finaler Zustand ist. Das heißt, falls es einen Zustand q F gibt mit (q, w) (q, ε). Die prache aller Wörter, die A akzeptiert, wird mit L(A) bezeichnet und heißt die von A akzeptierte prache. Kurz: L(A) = {w Σ ; es gibt q F mit (q, w) (q, ε)}
12 8 KAPITEL. ENDLICHE AUTOMATEN Beispiel 2. Ist eine Zahl gerade? Dies ist die prache aller Wörter in Σ = {,,..., 9}, die folgende Eigenschaften erfüllen: (a) die letzte Ziffer ist, 2, 4, 6, 8 (b) wenn die erste Ziffer ist, dann ist die Wortlänge q,,...,9,,...,9 q 2 q 2,4,6,8 q 3,3,5,7,9 2,4,6,8 q 4,3,5,7,9 Das Wort 23 wird wie folgt berechnet (q, 23) (q 4, 23) (q 3, 3) (q 4, ε) und nicht akzeptiert, weil der letzte Zustand in Q-F liegt. B:fuenf B:sechs Beispiel 3. Die prache aller Primzahlen wird von keinem endlichen Automaten akzeptiert. (Beweis später, siehe Beispiel?? in Abschnitt.) Beispiel 4. Die prache L {, } aller Wörter mit einer geraden Anzahl von en und einer geraden Anzahl von en wird von dem Automaten q q 2 q q 3 akzeptiert. Definition. Eine prache heißt regulär, falls es einen DEA gibt, der sie akzeptiert. bspregtriv bspnichtreg Beispiel 5. Σ, und die Menge aller geraden Zahlen sind regulär. Beispiel 6 (Eine nicht reguläre prache). Über dem Alphabet { } definieren wir L = { 2, 2, 2 2,... }. Wir zeigen, dass jeder Automat A mit L L(A) auch Wörter außerhalb L akzeptiert, also L L(A). ei n die Anzahl der Zustände von A. Da n 2 von A akzeptiert wird, gibt es einen Weg durch A, der nach n 2 chritten in einem finalen Zustand endet: q initial q = δ(q, ) q 2 = δ(q, ) q n 2 = δ(q n2, ) final.
13 .2. DEFINITION DER ENDLICHEN AUTOMATEN 9 Die Zustände q i, i =,..., n, sind nicht alle verschieden, da A nur n Zustände hat und hier n+ Indizes auftreten. Daher existieren i und k mit < k n und q i = q i+k : q q... q i q i+k+... q n 2 q i+k q i+... Weil A das Wort n 2 = i + k + (n 2 i k) akzeptiert, folgt, dass auch n 2 + k = i + 2k + (n 2 i k) von A akzeptiert wird. (In beiden Fällen wird derselbe Weg durch A zurückgelegt, im zweiten Fall wird der Zyklus q i,..., q i+k, q i zweimal durchlaufen.) Es gilt aber: n 2 < n 2 + k, da k >, und (n + ) 2 > n 2 + n n + k, da k n. Also liegt n 2 + k zwischen n 2 und (n + ) 2 und kann kein Wort der prache L sein. Beobachtung. ei A ein DEA mit Eingabealphabet Σ. beobonetepabl. Für jedes Wort u über Σ gilt: aus (q, w) (q, w ) folgt (q, wu) (q, w u). In der Tat, für w = s s 2... s n haben wir ei u = t... t m, dann gilt also q = δ(q, s ) und w = s 2... s n. q = δ(q, s ) und w u = s 2... s n t... t m. Das sagt genau, dass (q, wu) (q, w u), weil wu = s... s n t... t m. 2. Es gilt ebenfalls für jedes Wort u, dass aus (q, w) (q, w ) folgt (q, wu) (q, w u). Dies ist nur eine wiederholte Anwendung von. Notation. Die Übergangsfunktion δ Q Σ Q können wir von Buchstaben aus Σ auf Worte aus Σ erweitern: wir definieren δ Q Σ Q einem Paar (q, w) durch Induktionin der Länge n des Wortes w wie folgt: n = : δ (q, ε) = q (keine Eingabe keine Bewegung) n + : hier w = vs und v hat länge n, deswegen ist δ (q, v) = q schon definiert. Wir setzen δ (q, vs) = δ( q, s) Diese Funktion δ weist jeder Konfiguration (q, w) den Endzustand der Berechnung des Eingabewertes w zu. Jetzt können wir die prache L(A) noch kürzer definieren: es besteht aus allen Worten w mit δ (q, w) F.
14 KAPITEL. ENDLICHE AUTOMATEN sectnea.3 Nichtdeterministische Automaten Nichtdeterministische Automaten sind wie endliche Automaten definiert, nur hat die Übergangsfunktion δ(q, s) mehrere Möglichkeiten. Kurz: δ ist keine Funktion, sondern eine Relation zwischen Q Σ und Q: Beispiel. Lexikale Analyse von Positionen. Nehmen wir alle binären Wörter, die auf Position 2 von rechts eine haben. Dafür haben wir den Automat, q q, q 2 Der ist aber nicht deterministisch: aus q kann Eingabe zu q oder q führen usw. Analog für Der Automat L (n) = alle binären Wörter mit auf Position n von rechts., q q, q 2,..., q n hat n + Zustände und akzeptiert die erwünschte prache. Es gibt auch DEA s dafür, aber diese sind sehr kompliziert und sehr groß: L (n) braucht mindestens 2 n Zustände, siehe Beispiel 2 in.8. Beispiel 2. Textsuche. Eine häufig benötigte Aufgabe im Internet ist die Untersuchung von Dokumenten auf gewisse Wörter (sogenannte chlüsselwörter). Dies wird mit NEAs durchgeführt. Nehmen wir an, dass nur ein chlüsselwort a... a k im Alphabet Σ (= ACII-Zeichen, zum Beispiel) gegeben wird. Hier ist unser Automat: Σ a a 2... Bei mehreren chlüsselwörtern ist der NEA analog. Konkret für chlüsselwörter: web und ebay: Σ w e b a k e b a y Definition. Ein nichtdeterministischer endlicher Automat (NEA) ist ein Quintupel A = (Q, Σ, δ, q, F ), wobei Q, Σ und F Q endliche Mengen sind, δ (Q Σ) Q eine Relation ist und q Q. bspnea Beispiel 3. q q q 2
15 .3. NICHTDETERMINITICHE AUTOMATEN Das ist der nichtdeterministische Automat mit Σ = {, }, Zuständen q (initial), q und q 2 (final) und den angedeuteten Übergängen. Bemerkung.. Wir verwenden dieselbe Notation wie im deterministischen Fall. peziell schreiben wir q s q oder (q, s) q statt (q, s)δq. Hier können jedoch zwei verschiedene Übergangsregeln (q, s) q dieselbe linke eite haben (und umgekehrt muß für ein Paar (q, s) keine Regel mit dieser linken eite vorhanden sein). 2. Auch Konfigurationen sind, wie im deterministischen Fall, als Paare (q, w) in Q Σ definiert. Für jede Konfiguration (q, w) mit w = s s 2... s n gibt es im allgemeinen mehrere Folgekonfigurationen: alle Konfigurationen (q, w ), wobei (q, s ) q und w = s 2... s n. Wir benutzen wieder das ymbol, also (q, s s 2... s n ) (q, s 2... s n ) für alle q Q mit (q, s ) q. Die reflexive und transitive Hülle dieser Relation wird wieder mit bezeichnet. 3. Wichtige Frage: wann wird ein Wort akzeptiert? Jedes Eingabewort w hat natürlich verschiedene Berechnungen. Falls wenigstens eine Berechnung in einem finalen Zustand endet, sagen wir, dass der NEA das Wort w akzeptiert: Definition. Für einen NEA A wird ein Wort w über Σ akzeptiert, falls es einen finalen Zustand q mit (q, w) (q, ε) gibt. Die Menge L(A) aller akzeptierten Wörter heißt die von A akzeptierte prache. bspneaakzeptiert Beispiel (Fortsetzung) Der nichtdeterministische Automat aus Beispiel 3 akzeptiert die prache L aller Wörter, die entweder. genau eine enthalten, oder 2. die Form i j k mit i, j >, k > haben. Kann diese prache von einem deterministischen Automaten mit nur drei Zuständen akzeptiert werden? NEIN (Beweis später, siehe.9, Beispiel 4) Mit 2 3 = 8 Zuständen geht es: Notation. Für jede Menge Q bezeichnet PQ (die Potenzmenge von Q) die Menge aller Untermengen von Q. Beispiel: P{, } = {, {}, {}, {, }}. Konstruktion. ei A ein NEA. Wir können einen DEA A mit derselben prache konstruieren: L(A) = L(A ). Die Idee ist, dass jede Gruppe M von Zuständen von A (das heißt, jede Untermenge M Q) als ein einziger Zustand des neuen Automaten betrachtet wird. Dann ergibt die nichtdeterministische Übergangsrelation δ die folgende deterministische Übergangsfunktion δ : für jeden Zustand von A, das heißt jede Menge M Q und jedes Eingabesymbol s Σ, bezeichnen wir durch δ (M, s)
16 2 KAPITEL. ENDLICHE AUTOMATEN die Menge aller Zustände q, für die gilt (q, s) q (in δ), wobei q in M liegt. Kürzer: defdeltastrich () δ (M, s) = {q Q; es gibt q M mit (q, s)δq}. Also ist A der folgende deterministische Automat A = (P Q, Σ, δ, {q }, F ), wobei δ durch () (für alle M 2 Q und s Σ) definiert ist, {q } der Initialzustand ist und F genau die Zustände von A enthält, in denen wenigstens ein Finalzustand von A liegt: F = {M; M Q und M F }. Beispiel (Fortsetzung) Der DEA, der Beispiel darstellt, hat 8 = 2 3 Zustände: {q, q, q 2 } {q } {q, q } {q, q 2 } {q } q 2 {q, q 2 }, satzpotenzkonstr atz. Die Automaten A und A akzeptieren dieselbe prache. potenzkonstrbew (2) Beweis. Für jedes Wort s... s n über Σ bezeichnen wir durch M, M,..., M n die Zustände der Berechnung des Wortes im Automat A M = {q } und M i+ = δ (M i, s i+ ). Wir beweisen, dass ein Zustand q von A genau dann in M n liegt, wenn eine Berechnung von s... s n durch A existiert, die in q endet. Damit wird bewiesen, dass, falls s... s n in L(A ) liegt (falls also M n F einen finalen Zustand von A enthält), eine Berechnung durch A existiert, die in einem finalen Zustand endet also akzeptiert auch A das Wort s... s n. Umgekehrt gibt es, falls A das Wort akzeptiert, eine Berechnung, die in einem finalen Zustand endet. Dieser Zustand ist, aufgrund von (2), ein Element von M n das beweist, dass M n F, also akzeptiert A das Wort s... s n. Der Beweis von (2) erfolgt durch Induktion über die Länge n des gegebenen Wortes: n = Hier ist M n = {q } und eine Berechnung von ε durch A endet immer in q. n n + Da M n+ = δ (M n, s n+ ), sagt uns (), dass M n+ einen Zustand q genau dann enthält, wenn es einen Zustand q in M n gibt mit (q, s n+ )δq. Bei der Induktionsvoraussetzung sind diese Zustände q genau die, die in A durch eine Berechnung von s... s n erreicht werden können. Hier folgt (2) also aus der Beobachtung, dass die Berechnung von s... s n s n+ einen Zustand q genau dann erreicht, wenn es einen Zustand q gibt, der durch die Berechnung von s... s n erreicht werden kann und (q, s n+ )δq erfüllt. Bemerkung 2. Bei vielen Anwendungen ist es möglich, einen viel kleineren DEA zu konstruieren indem wir uns auf die Zuständem die vom Initialzustand durch ein Eingabewort erreichbar sind, beschränken.
17 .3. NICHTDETERMINITICHE AUTOMATEN 3 Definition. Ein Zustand q eines DEA A = (Q, Σ, δ, q, F ) ist erreichbar, falls es ein Wort w in Σ mit (q, w) (q, ε) gibt. Der folgende DEA A r = (Q r, Σ, δ r, q, F Q r ) wobei Q r die Menge aller erreichbaren Zustände von A ist und δ r die Restriktion von δ ist, heißt der erreichbare Teil von A. Falls A = A r ist, also jeder Zustand von A erreichbar ist, heißt A ein erreichbarer Automat. bemerreichbarabg Bemerkung 3. Falls q erreichbar ist, ist auch der Zustand q = δ(q, s) (für jedes s Σ) erreichbar, denn aus (q, w) (q, ε) folgt (q, ws) (q, s) (q, ε). Wir erhalten also eine Funktion δ r Q r Σ Q r als Restriktion von δ Q Σ Q. bemerreichbareqiv Bemerkung 4. Es gilt: A und A r sind äquivalent, d.h. sie akzeptieren dieselbe prache. Es ist nämlich leicht zu sehen, dass (q, w) (q, ε) in A genau dann gilt, wenn es auch in A r gilt. Beispiel (Fortsetzung) Die obere Konstruktion des DEA mit 8 Zuständen ist nicht erreichbar: die Zustände {q, q } und {q, q, q 2 } können weggelassen werden. Beispiel 4. Im Automat A q q q 3 q 2, ist der Zustand q 3 nicht erreichbar. Alle anderen Zustände sind aber erreichbar, deswegen ist A r der folgende Automat q q q 2,
18 4 KAPITEL. ENDLICHE AUTOMATEN Beispiel 5. Für den NEA q 3 q q 4 q q 2 q 5 q 6 konstruieren wir einen äquivalenten DEA als den erreichbaren Teil der obigen Konstruktion: {q } {q, q 2 }, {q 3, q 6 } Dieser hat also 5 (und nicht 2 7 = 28) Zustände.,, {q 4, q 5 } Bemerkung 5. Für manche Anwendungen ist es geschickt, auch spontane Übergänge, d.h. Übergänge ohne Eingabe, zu erlauben. Dazu benutzen wir ε als ein pezialsymbol, das keine Eingabe bezeichnet. Jetzt können wir den spontanen Übergang von q nach q im selben til wie die anderen Übergänge (q, s) q bezeichnen, nämlich als q ε q oder (q, ε) q. Genauer: die Übergangsrelation δ (Q Σ) Q wird jetzt durch eine Relation δ (Q (Σ {ε})) Q ersetzt. Die spontanen Übergänge heißen auch ε-übergänge und die entsprechenden Maschinen ε-neas: Definition. Ein nichtdeterministischer endlicher Automat mit spontanen Übergängen (ε-nea) ist ein Quintupel A = (Q, Σ, δ, q, F ), wobei Q, Σ und F Q endliche Mengen sind, δ (Q (Σ {ε})) Q eine Relation ist und q Q. Bemerkung 6. Für jeden ε-nea definieren wir, wie zuvor, eine Konfiguration als ein Paar (q, w) in Q Σ. Die Folgekonfigurationen einer Konfiguration (q, w) sind und. wie bisher: alle Konfigurationen (q, s 2... s n ), wobei w = s s 2... s n und (q, s ) q, 2. alle Konfigurationen (q, w), wobei (q, ε) q also alle Konfigurationen, die durch spontane Übergänge den Zustand ändern, ohne das restliche Eingabewort zu beeinflussen.
19 .3. NICHTDETERMINITICHE AUTOMATEN 5 Kurz: ist die kleinste Relation auf die Menge Q Σ aller Konfigurationen mit und (q, s s 2... s n ) (q, s 2... s n ) falls (q, s ) q (q, s s 2... s n ) (q, s s 2... s n ) falls (q, ε) q Die Bedeutung von ist wie oben, ein Wort w über Σ wird akzeptiert, falls es einen finalen Zustand q gibt mit (q, w) (q, ε). NEAus Beispiel 6. Der folgende NEA q ε ε q q 2 akzeptiert das leere Wort, denn es gibt die folgende Berechnung (q, ε) (q 2, ε) (q, ε). Auch wird aufgrund der Berechnung (q, ) (q, ) (q 2, ε) (q, ε) akzeptiert. Bemerkung 7. peziell gilt (q, s) (q, ε) für s Σ und q, q Q genau dann wenn es eine Berechnung mit genau einem nichtspontanen Übergang wie folgt gibt: q ε q ε q 2... ε q i s q i+ ε q i+2... ε q Definition. Zwei Automaten A und A (DEA, NEA, oder ε-neas) heißen äquivalent, falls sie dieselbe prache akzeptieren, das heißt, L(A) = L(A ). Konstruktion. Für jeden NEA A = (Q, Σ, δ, q, F ) konstruieren wir einen äquivalenten ε-nea: wir lassen Q und q unverändert und definieren A = (Q, Σ, δ, q, F ) wie folgt: und (q, s) δq genau wenn in A gilt (q, s) (q, ε) F falls A das leere Wort nicht akzeptiert F = F {q } falls A das leere Wort akzeptiert Für den NEA aus Beispiel 6 bekommen wir damit den folgenden NEA: q, q 2 q
20 6 KAPITEL. ENDLICHE AUTOMATEN Wir beweisen jetzt, dass für jedes Wort w über Σ gilt: A akzeptiert w genau dann, wenn A es akzeptiert. (a) ei w ein Wort, dass A akzeptiert. Falls w = ε, folgt aus der Definition von F, dass q final in A ist, also akzeptiert auch A das leere Wort. Falls w = s s 2... s n, n >, bedeutet das, dass es einen finalen Zustand q F gibt und eine Berechnung in A der Form BerInA (3) q ε... ε s ε... ε s n ε ε... q Bezeichnen wir mit q i den Zustand, den A nach der Eingabe s i erreicht (i =,..., n), dann gilt in A: (q, s ) q (q, s 2 ) q 2 (q n, s n ) q n, sogar (q n, s n ) q Also haben wir eine Berechnung in A BerInAs (4) q s q s 2... s n q und da q F, ist das Wort s s 2... s n von A akzeptiert. (b) ei w ein Wort, das A akzeptiert. Falls w = ε, bedeutet das, dass q F. Also entweder q F (dann akzeptiert A natürlich ε) oder q F F und A akzeptiert ε aufgrund der Definition von F. Falls w = s s 2... s n, n >, haben wir eine Berechnung (4) in A mit q F. Daraus folgt, dass wir in A eine Berechnung (3) haben. Falls q F, akzeptiert also A das Wort w = s s 2... s n. Falls q F F, gilt: q = q, und A akzeptiert ε. Das letzte bedeutet, dass es einen Finalzustand q F gibt mit der folgenden Berechnung: q ε ε... ε q Diese Berechnung kann, da q = q, an die von (3) angeknüpft werden, und wir sehen, dass (q, s... s n, ) (q, ε). Daraus folgt, dass A das Wort s s 2... s n akzeptiert. sectreg.4 Reguläre prachen Wir wollen jetzt die regulären prachen (siehe Abschnitt.2) charakterisieren. Notation. Wir verwenden die folgenden Operationen für prachen L Σ :. Vereinigung L L 2 ist die prache aller Wörter, die in L oder L 2 liegen. 2. Konkatenation L L 2 (oder nur L L 2 ) ist die prache aller Wörter w w 2 mit w L, w 2 L 2. Falls L = L 2 = L, schreiben wir L 2 statt L L (analog L 3 usw.).
21 .4. REGULÄRE PRACHEN 7 3. Iteration (oder Kleenescher tern) L = {ε} L (L L) (L L L)... ist die prache aller Wörter w w 2... w n mit w,..., w n L (n N) (inklusive ε für den Fall n = ); wir benutzen auch L + für die prache aller Wörter w w 2... w n mit w,..., w n L und n. 4. Komplement L = Σ L. Beispiel. Für L = {} und L 2 = {, } gilt L L 2 = {,, } L L 2 = {, } L = {ε,,,... }. satzregabgpluscat atz. Falls L und L 2 reguläre prachen sind, sind auch die prachen L L 2 und L L 2 regulär. Beweis. Für L i (i =, 2) gibt es nach Definition einen DEA A i = (Q i, Σ, δ i, q i, F i ), der L i akzeptiert. Wir können ohne Beschränkung der Allgemeinheit annehmen, dass die Zustandsmengen Q und Q 2 disjunkt sind.. Regularität von L L 2 : die folgende parallele Komposition von A und A 2 : q ε q F ε q 2 F 2 akzeptiert die prache L(A ) L(A 2 ) = L + L 2. Formal ist dies der NEA A = (Q Q 2 {q }, Σ, δ, q, F F 2 ), wobei q Q Q 2 und δ durch die folgenden Übergangsregeln definiert wird: E:fuenf () (q, s) δ i (q, s) für alle q Q i, i =, 2, s Σ und (q, #) q, (q, #) q Regularität von L L 2 : die folgende serielle Komposition von A und A 2 : ε ε q F q 2 F 2 ε akzeptiert die prache L(A ) L(A 2 ) = L L 2. Formal ist dies der NEA A = (Q Q 2, Σ, δ, q, F 2 ), wobei δ durch () und (q, #) q 2 für alle q F definiert wird.
22 8 KAPITEL. ENDLICHE AUTOMATEN kor:finiteregular satzregabgtar Folgerung. Jede endliche prache ist regulär. Beweis. Für L = {w,..., w n } gilt: L ist die Vereinigung der prachen L i = {w i }, und L i ist die Konkatenation der prachen L ij = {s j }, falls w i = s... s k oder L i = {ε}. Die prache {s j } bzw. {ε} sind regulär (konstruieren ie einen Automaten, der nur s j bzw. nur ε akzeptiert). Daher ist L regulär. atz 2. Falls L eine reguläre prache ist, sind auch L und L + regulär. Beweis. Der folgende Feedback eines L akzeptierenden Automaten A = (Q, Σ, δ, q, F ): q F ε akzeptiert die prache L +. Formal definieren wir den NEA A = (Q, Σ, δ, q, F ), wobei δ die ursprüngliche Übergangsfunktion mit den zusätzlichen spontanen Übergängen (q, ε) q für alle q F lps ist. Es gilt L(A ) = L(A) + = L +. Der Fall L = L + {ε} folgt aus atz und Korollar. Beispiel 2. Die prache L aller Wörter in {, }, in denen jeder Buchstabe wiederholt wird, d. h. L = ({} {}), wird von dem folgenden Automaten akzeptiert: für haben wir analog für {}. Die parallele Komposition dieser Automaten: ε ε akzeptiert die prache {} {}. Jetzt machen wir den Feedback mit q final: ε ε ε ε Dieser Automat akzeptiert die prache L.
23 .4. REGULÄRE PRACHEN 9 Notation. Die triviale prache {s} wird einfach mit s bezeichnet. Also ist z. B. die prache, die nur das Wort enthält. Die prache aus Beispiel 2 hat also jetzt die Notation L = ( + ). Definition. Ein regulärer Ausdruck über einem Alphabet Σ = {s,..., s n } ist ein Ausdruck mit den Operationen +,,, die auf Buchstaben s,..., s n und auf die ymbole ε und angewendet werden. Genauer: die regulären Ausdrücke r werden durch BNF wie folgt definiert: r = s... s n ε (r + r) (rr) (r ) Jeder reguläre Ausdruck repräsentiert eine prache: s i ε L + L 2 L L 2 L repräsentiert {s i }, die prache, die nur das Wort s i enthält repräsentiert {ε}, die prache, die nur das leere Wort enthält repräsentiert (kein Wort) repräsentiert die Vereinigung repräsentiert die Konkatenation repräsentiert die Iteration (L) repräsentiert dasselbe wie L. Beispiel 3. Die prache aller Wörter, die entweder mit beginnen oder enden, wird durch ( + ) + ( + ) repräsentiert. Beispiel 4. Für jede endliche prache L = {s s 2... s n, t t 2... t m,..., u u 2... u k } gibt es einen regulären Ausdruck, der L repräsentiert: s s 2... s n + t t 2... t m + + u u 2... u k. Folgerung 2. Jede prache, die durch einen regulären Ausdruck repräsentiert wird, ist regulär. Beweis. Die trivialen Fälle s i, ε und repräsentieren reguläre prachen siehe Beispiel 5 in Abschnitt.2. Für kompliziertere reguläre Ausdrücke wissen wir schon aus den ätzen und 2, dass die Operationen +,, die Regularität erhalten. atz 3 (Kleenescher atz). Eine prache ist genau dann regulär, wenn sie durch einen regulären Ausdruck repräsentiert werden kann. Beweis. Aufgrund der vorigen Folgerung müssen wir nur beweisen, dass sich für jeden Automaten A ein regulärer Ausdruck finden läßt, der L(A) repräsentiert. eien q (initial), q,..., q n alle Zustände von A. Wir bezeichnen mit L ij die prache aller Wörter, die q i nach q j überführen, also w L ij (q i, w) (q j, ε). Wenn wir einen regulären Ausdruck für jede prache L ij finden, sind wir fertig, da falls q ji, q j2,... q jm alle finalen Zustände sind, gilt L(A) = L j L j2 L jm. Um einen regulären Ausdruck für L ij zu finden, führen wir noch eine Verfeinerung dieser prache ein: wir bezeichnen mit L k ij (k =,..., n + )
24 2 KAPITEL. ENDLICHE AUTOMATEN die prache aller Wörter w L ij, die für den Übergang von q i nach q j keinen der Zustände q k,..., q n als innere Zustände brauchen. Genauer: setzen wir, für jedes Wort w = s,..., s m in L ij, q () = δ(q i, s ) q (2) = δ(q (), s 2 ) q (m) = δ(q (m ), s m ) Dann gilt q (m) = q j, und die Zustände q (),..., q (m ) sind innere Zustände des Überganges von q i zu q j. Dann definieren wir L k ij wie folgt: w L k ij alle Zustände q (),..., q (m ) liegen in der Menge {q,..., q k } Es ist klar, dass L ij = L n+ ij. Es genügt also zu zeigen, dass jede prache L k ij (für beliebige i, j und k) durch einen regulären Ausdruck repräsentiert werden kann. Das beweisen wir durch Induktion über k: k = Ein Wort w liegt genau dann in L ij, wenn alle Zustände q(),..., q (m ) in der leeren Menge liegen, d. h., sie existieren nicht. Das bedeutet, dass entweder w = ε und q i = q j, oder w = s und δ(q i, s) = q j. Ein regulärer Ausdruck für L ij existiert, da diese prache endlich ist. k k + Für jedes Wort w in L k+ ij bezeichnen wir mit s die Zahl aller Indizes r =, 2,..., m mit q (r) = q k. Falls s = ist, liegt w in L k ij. Falls s >, können wir das Wort so in s Wörter w = w w 2... w s zerlegen, dass die Berechnung des ersten Teils w den Zustand q i zum ersten Mal nach q k überführt (also liegt w in L k ik ), die Berechnung von w 2 von der ersten zur zweiten Begegnung mit q k führt (also liegt w 2 in L k kk ), analog w 3,..., w s und w s überführt den Zustand q k beim letzten Auftreten nach q j (also liegt w s in L k kj ). Es folgt, dass entweder w L k ij oder w L k ik (L k kk) L k kj. Umgekehrt ist es leicht zu sehen, dass alle Wörter aus L k ik (Lk kk ) L k kj in L k+ ij liegen. Es gilt also reklijk (*) L k+ ij = L k ij L k ik (L k kk) L k kj. Das ergibt einen regulären Ausdruck für L k+ ij Ausdrücken für L k ij (Induktionsvoraussetzung). aufgrund von regulären Beispiel 5. Wir beschreiben einen regulären Ausdruck für die prache, die der folgende Automat akzeptiert: q a b b q a Wir suchen L(A) = L 2.
25 .5. ABLEITUNGEN 2 Erst berechnen wir L ij L = ε + b L = a L = b L = ε + a Dann L ij = L ij + L i (L ) L oj L = L + L (L ) L = ε + b + (ε + b)(ε + b) (ε + b) = ε + b) L = L + L (L ) L = a + (ε + b)(ε + b) a = a + (ε + b) + a = b a L = L + L (L ) L = b + b(ε + b) (ε + b) = b L = L + L (L ) L = ε + a + b(ε + b) a = ε + b a Zuletzt L 2 : L 2 = L + L (L ) L = b a + b a(ε + b a) (ε + b a) = b a(ε + (ε + b a) + ) = b a(ε + b a) = (a + b) a sectabl.5 Ableitungen Hier charakterisieren wir reguläre prachen als genau die, die nur endliche Ableitungen haben. Dies ermöglicht uns ein einfaches Beispiel einer nicht regulären prache zu zeigen. Die Ableitungen können für eine Konstruktion von DEAs benutzt werden. Im nächsten Abschnitt zeigen wir, dass diese Konstruktion optimal ist. Definition. Gegeben sei eine prache L Σ und ein Wort w Σ. Die Ableitung w L ist die prache aller Wörter u mit wu L. Bemerkung. L selbst ist eine Ableitung: man setze w = ε. Beispiel. () Die prache L {, } aller Wörter von gerader Länge hat die Ableitung L von allen Wörtern ungerader Länge. Es ist leicht zu sehen, dass alle Ableitungen von L gleich L oder L sind. (2) Die prache L = { n n ; n N} hat die Ableitungen die alle voneinander verschieden sind. Lemma. (wv) L = v (w L). = { n n ; n } = { n 2 n ; n 2} Beweis. Die rechte eite besteht aus genau den Wörtern u mit vu w L, d.h. mit wvu L.
26 22 KAPITEL. ENDLICHE AUTOMATEN Konstruktion. Wenn eine prache L nur endlich viele Ableitungen besitzt, definieren wir den Brzozowsky DEA für L wie folgt: (a) Zustände sind alle Ableitungen von L. (b) Der Initialzustand ist L. (c) Eine Ableitung w L ist akzeptierend g.d.w. w L. (d) Die Übergänge sind für jedes a Σ durch K a a K definiert. (D.h., wenn K = w L, dann ist der Folgezustand a (w K) = (aw) K.) Die prache aller Wörter gerader Länge hat den Br- Beispiel (Fortsetzung) zozowsky DEA L,, L Beobachtung. Der Brzozowsky DEA akzeptiert L. In der tat, jedes Wort w Σ mit w = a a... a n hat die folgende Berechnung (siehe Lemma oben): L a a L a 2 a a 2 L a 3... a n w L Das Wort wird akzeptiert d.d.w. der zustand w akzeptiert ist, d.h., w L atz. Eine prache ist regulär, g.d.w. sie nur endlich viele Ableitungen besitzt. Beweis. Wenn L endlich viele Ableitungen besitzt, ist sie durch einen Brzozowsky DEA akzeptiert und deswegen regulär. Umgekehrt, wenn L Σ regulär ist, gibt es einen DEA, A, der mit n Zuständen L akzeptiert. Wir beweisen, dass L höchstens n Ableitungen besitzt. Für jedes Wort w Σ bezeichnen wir durch q w den Zustand von A, den wir vom Initialzustand durch die Eingabe w erreichen. Es genügt zu beweisen, dass zwei Wörter w und v die selbe Ableitung ergeben, wenn sie q w = q v erfüllen: q w = q v w L = v L In der Tat, ein Wort u liegt in w L genau dann, wenn die Berechnung q... q w... q wu w u in einem akzeptierenden Zustand q wu endet. Das bedeutet, dass der DEA, den wir aus A bekommen, wenn der Initialzustand zu q w geändert wird, w akzeptiert. Das selbe gilt für u v L. Deswegen folgt w L = v L aus q w = q v. Beispiel 2 (Fortsetzung) Die prache { n n ; n N} ist nicht regulär, denn sie hat unendlich viele Ableitungen.
27 .6. ÄQUIVALENTE ZUTÄNDE 23.6 Äquivalente Zustände Wir zeigen, wie zu jedem erreichbaren DEA ein minimaler DEA für die selbe prache konstruiert werden kann. Dieser minimale Automat ist durch die Anzahl seiner Zustände völlig bestimmt. Wir haben durch L(A) die prache, die ein DEA akzeptiert, indem er im Initialzustand q anfängt, bezeichnet: ein Wort w Σ liegt in L(A) g.d.w. δ (q, w) ein akzeptierender Zustand ist (siehe Notation in.2). Nehmen wir an, dass wir statt q einen anderen Zustand q Q gewählt haben. Dann bezeichnen wir durch A(q) den so geänderten Automat. eine prache L(A(q)) besteht aus allen Wörtern w mit dem Zustand δ (q, w) akzeptierend. Definition. Zwei Zustände q und r eines DEAs heißen äquivalent wenn sie die selbe prache akzeptieren, d.h., LA(q) = LA(r) Notation. q A r (oder nur q r wenn A klar ist). Beispiel. Im DEA a q a q b b q 2 a,b b q 3 a sind q und q 3 äquivalent. In der Tat, beide Zustände akzeptieren a(a + b) Die Zustände q und q sind nicht äquivalent: q akzeptiert a, q nicht. atz. Wenn die Zustände q und r äquivalent sind und nach Eingabe a Σ bekommen wir die zustände q und r, sind auch diese äquivalent. Kurz: q r δ(q, a) δ(r, a) Beweis. Der Zustand q akzeptiert ein Wort w: w q a q... q g.d.w. die Berechnung in einem akzeptierenden Zustand q = δ (q, w) endet. Das Wort aw wird im Zustand q mit demselben Ergebnis berechnet: δ (q, aw) = δ (q, w) = q. Deswegen gilt: L(A(q)) = al(a(q )). Analog L(A(r)) = al(a(r )) Da L(A(q )) = L(A(r )), folgt daraus L(A(q)) = L(A(r)).
28 24 KAPITEL. ENDLICHE AUTOMATEN Algorithmus 2. für die Äquivalenz. Wir formen eine tabelle in der jedes zugeordnete Paar von Zuständen q i q j einmal vorkommt q q q 2 q n q q... q n Dann kreuzen wir nicht-äquivalente Paare an. Dies geschieht rekursiv bis kein neues nicht-äquivalentes Paar vorkommt, dann ist durch die ungekreuzten Paare charakterisiert. Erster chritt Kreuze jedes Paar von Zuständen an, wobei ein akzeptierend und der andere nicht-akzeptierend ist. Rekursiver chritt Nimm ein ungekreuztes paar (q i, q j ) und versuche eine Eingabe a Σ zu finden, für die das Paar δ(q i, a) und δ(q j, a) angekreuzt wird. Dann kreuze (q i, q j ) an. Beispiel 2. Im Oberen DEA ergibt chritt q q 2 q 3 q q q 2 Im chritt 2 ergibt Eingabe a neue nicht-äquivalenzen : q / q und q / q 3 : Hier endet der Algorithmus und ergibt und sonst nur q i q j. Beispiel 3. Der DEA q q 2 q 3 q q q 2 q q 3 A E B F C G D H ergibt
29 .7. KONTRUKTION EINE QUOTIENT-DEA 25 B C D E F G H A B C D E F G Nur A E, H B und F D bleiben übrig. atz 3. Der Algorithmus ist korrekt: nach endlich vielen chritten endet er und dann gilt: ein Paar von zuständen ist äquivalent g.d.w. er nicht angekreuzt ist. Beweis. Ein Automat von n Zuständen hat nur ( n ) verschiedene Paare und nach 2 so vielen chritten endet der Algorithmus. Wir beweisen, dass (a) jedes angekreuzte Paar (q i, q j ) erfüllt q i / q j und (b) jedes nicht angekreuzte erfüllt q i q j. (a) Induktion in der Zahl k des chrittes, wo das Paar angekreuzt wurde. Induktionsanfang: k =. Wenn q i akzeptierend ist und q j nicht, ist es klar, dass q i / q j gilt. Induktionsschritt: in chritt k wird (q i, q j ) nur dann angekreuzt, wenn es ein in chritt k angekreuztes Paar (q i, q j ) gibt mit q i = δ(q i, a) und q j = δ(q j, a) für eine Eingabe a Σ. Nach Induktionsvorraussetzung gilt q i / q j. Aus atz folgt q i / q j. (b) Diese Aussage können wir so formulieren: wenn q i / q j, dann wird (q i, q j ) angekreuzt. nehmen wir ein Wort w, das Zeuge von q i / q j ist. D.h., δ (q i, w) ist akzeptierend und δ (q j, w) nicht (oder umgekehrt). Wir beweisen, dass das Paar angekreuzt wird, per Induktion in der Länge von k und w. Induktionsanfang: k =. D.h., w = ε und wir sehen, dass q i akzeptierend ist und ε j nicht. Das Paar wird im ersten chritt angekreuzt. Induktionsschritt: w = av mit v = k. etzen wir q i = δ (q i, a) und q j = δ (q j, a). Dann gilt: δ (q i, v) = δ (q i, w) ist akzeptierend und δ (q j, v) = δ (q j, w) nicht: v q i a q i... q j a q j... v Da v = k, besagt die Induktionsvorraussetzung, dass (q i, q j ) angekreuzt wurde. Wenn dies im chritt l passiert, wird (q i, q j ) im chnitt l + angekreuzt..7 Konstruktion eines Quotient-DEA Gegeben sei ein DEA. Wir berechnen die Äquivalenzrelation und bekommen einen neuen DEA Ā.
30 26 KAPITEL. ENDLICHE AUTOMATEN Zustände: Äquivalenzklassen [q] von Zuständen von A, d.h. [q] Q ist die menge aller zu q äquivalenten Zustände. Übergänge: [q] Initialzustand: [q ] a [r] g.d.w. q Akzeptierende Zustände: [q] mit q F. a s in A mit r s. Beispiel 3 (Fortsetzung): G D, F A, E B, H C atz. Der Quotient-DEA Ā akzeptiert die selbe prache wie A. Beweis. Erstens, die Definition der Übergänge ist korrekt auf Grund von atz : wenn die Klasse [q] durch einen anderen Zustand q dargestellt wird, d.h., q q, dann haben wir einen Übergang q a s in A von dem wir wissen, dass s s. Mit anderen Worten [r] = [s] = [s ]. Und wenn q ein akzeptierender zustand in A ist, sind alle zustände in [q] akzeptierend. Wir beweisen für jedes Wort w = a... a n, dass w von A akzeptiert wird, g.d.w. Ā es akzeptiert. ei a q a q 2 a n... q n die Berechnung von w in A. Dann folgt aus der Definition von Ā, dass w die folgende Berechnung hat: a a [q ] 2 a [q ] n... [q n ] Dann akzeptiert A das Wort g.d.w. q n akzeptierend in A ist, dies ist dazu äquivalent, dass [q n ] ein akzeptierender Zustand von Ā ist, d.h., Ā das Wort akzeptiert. sectmin.8 Minimierung von Automaten Definition. Ein DEA heißt minimal wenn er (a) erreichbar ist und (b) paarweise nicht-äquivalente Zustände hat. Bemerkung. Bedingung (a) sagt, dass der DEA nicht durch wegwerfen von Zuständen minimiert werden kann. Bedingung (b) sagt, dass keine Minimierung durch Identifikation von Zuständen möglich ist. Zusammen bedeuten sie, wie wir unten beweisen, dass die Anzahl der zustände minimal ist.
31 .8. MINIMIERUNG VON AUTOMATEN 27 Beispiel. Der Brzozowsky DEA ist minimal. In der Tat, jeder zustand w L wobei w = a... a n ist vom Initialzustand q erreichbar: siehe Beobachtung in.5. Und für beliebige Zustände w L v L gibt es ein Wort u mit wu L und vu / L (oder umgekehrt) und dann führt die Eingabe u den Zustand zum akzeptierenden Zustand (wu) L, während sie den Zustand v L zum nicht-akzeptierenden Zustand (vu) L führt. Deswegen sind die Zustände w L und v L nicht äquivalent. Bemerkung 2. Die folgenden DEAs q s, r q, q 2 q sind, bis auf Umbenennung der Zustände, gleich. Im allgemeinen, gegeben DEAs A = (Q, Σ, δ, q, F ) und A = (Q, Σ, δ, q, F ) mit dem selben Eingangsalphabet Σ, sagen wir, dass sie bis auf Umbenennung der Zustände gleich sind, wenn es eine Bijektion (d.h. invertierbare Funktion) b Q Q zwischen den Zuständen gibt, sodass (a) für jeden Übergang wobei q = b(q) und r = b(r), (b) b(q ) = q und q a r in A gibt es den Übergang q a r in A, (c) q ist ein akzeptierender Zustand in A g.d.w. b(g) ein akzeptierender Zustand in A ist. atz. Jeder minimale DEA ist bis auf Umbenennung der Zustände gleich dem Brzozowsky DEA. Beweis. Gegeben sei ein minimaler DEA A = (Q, Σ, δ, q, F ) mit prache L = L(A). Für jedes Wort w Σ bezeichnen wir durch q w den Zustand, den A bei Eingabe w erreicht. Wenn wir den Initialzustand von A zu q w ändern, bekommen wir einen DEA A(qw), der w L akzeptiert: ein Wort u wird vom neuen DEA akzeptiert q... q w... q w u g.d.w. der Zustand q final ist, d.h., wenn wu L. Deswegen wenn q w = q v für zwei Worte gilt, sehen wir, dass w L = v L. Umgekehrt, wenn w L = v L, sind die Zustände q w und q v gleich, denn A ist minimal und q w q v. In der Tat, A(q w ) akzeptiert w L, die selbe prache wie A(q, v). Deswegen haben wir eine Funktion b, die jedem Zustand w L des Brzozowsky DEA den Zustand von A zuordnet. Ein Übergang b(w L)q w w L a (wa) L
32 28 KAPITEL. ENDLICHE AUTOMATEN in Brzozowsky s DEA entspricht einem Übergang q w a q wobei w = w wa in A. Der Initialzustand L wird zu b(l) = q ε = q überführt: q ist durch das leere Wort erreichbar. Und ein Zustand w L ist akzeptierend g.d.w. w L, und dies bedeutet genau, dass q w akzeptierend in A ist. Folgerung 3. (Minimal = Zustand-minimal). ei A ein minimaler DEA, der L akzeptiert und n Zustände hat. Jeder L akzeptierender DEA hat wenigstens n Zustände. Und wenn er genau n Zustände hat, ist er gleich A bis auf Umbenennung der Zustände. Beweis. In der Tat, nach dem vorigen atz ist n die Anzahl aller Ableitungen. ei A ein DEA, der L akzeptiert. Der Zustand q w der ein A mit Eingabe w akzeptiert erfüllt: A (qw) akzeptiert w L. Deswegen aus w L v L folgt, dass A wenigstens n Zustände hat. Wenn A genau n Zustände hat, folgt daraus, dass er Zustand-minimal ist. Deswegen ist er erreichbar (denn der erreichbare Teil kann nicht kleiner sein) und hat nichtäquivalente Zustände (denn der Quotient kann nicht kleiner sein). Dann ist A minimal. Deswegen sind A, A und Brzozowsky DEA alle gleich bis Umbenennung der Zustände. Beispiel 2. Die prache L (n) = (a + b) b(a + b) n für die wir in.3, Beispiel?? einen NEA mit n+ Zustände gesehen haben, braucht wenigstens 2 n Zustände wenn DEAs benutzt werden. Dies folgt daraus, dass die Ableitungen w L wobei w alle 2 n Wörter der Länge n sind, paarweise verschieden sind. In der Tat, gegeben zwei solche Wörter w v, unterscheiden sie sich auf telle i =,..., n. agen wir w i = a und v i = b. Das Wort wa i hat b auf telle n von links, d.h., es liegt in L (n), so dass a i v L. Aber wa i liegt in L (n) nicht, a i / w L. Deswegen w L v L. Beispiel 3. Nichtdeterministische Automaten haben nicht die Eigenschaft, dass der minimale Automat durch seine Anzahl von Zuständen eindeutig bestimmt wird. Z.B. die NEA,, und, akzeptieren beide die prache aller Wörter mit dem letzten ymbol. Und sie sind sicher minimal. Aber ihre Übergangsstrukturen sind ganz unterschiedlich. sectnerode.9 Nerode-Äquivalenz Den Minimierungsprozeß aus Abschnitt.8 können wir auch auf unendliche Automaten mit Zuständen q w für w Σ (siehe Beispiel?? in.8) anwenden: hier sind Zustände q w und q w2 äquivalent, falls für jedes Wort w gilt: q ww ist genau dann final, wenn q w2w final ist; d. h., w w liegt genau dann in L, wenn w 2 w in L liegt. Das ist die Intuition, die zu folgender Definition führt:
33 .9. NERODE-ÄQUIVALENZ 29 Definition. ei L Σ eine formale prache. Die Nerode-Äquivalenzrelation von L ist die Äquivalenzrelation auf der Menge Σ, in der zwei Wörter w und w 2 genau dann äquivalent sind, wenn für jedes Wort w Σ gilt w w L w 2 w L. Bemerkung. Falls w w 2 ist, gilt entweder, dass w, w 2 beide in L liegen, oder beide nicht in L liegen. (In der Definition setze man w = ε.) Beispiel. Für die prache L = ( + ) {, } gilt:. Die Wörter aus L sind alle äquivalent zu ε, denn aus w L folgt w w L genau dann, wenn w L. 2. Alle Wörter der Form w, mit w L, sind äquivalent zu, denn es gilt w w L genau dann, wenn w L. Analog sind alle Wörter der Form w, mit w L, sind äquivalent zu. 3. Die Wörter, die mit oder beginnen sind alle äquivalent, denn für zwei solche Wörter w, w 2 gilt w w L und w 2 w L. Allgemeiner: alle Wörter ausser (), (2) sind äquivalent. Die Menge {, } / aller Äquivalenzklassen hat also vier Elemente: [ε] = L [] = L [] = L [] = alle anderen Wörter. Falls die Nerode-Äquivalenzrelation endlich viele Klassen hat, ist L regulär. Wir zeigen, wie man einen (minimalen) Automaten für L konstruiert: Minimale Realisierung einer prache L Σ, deren Nerode-Äquivalenzrelation n Klassen hat. Die minimale Realisierung der prache L ist der DEA A L = (Σ /, Σ, δ, [ε], F ), dessen Zustände die Äquivalenzklassen [w] von Wörtern w aus Σ sind, die Übergangsregeln sind uebergangsregeln (*) ([w], s) [ws] für w Σ, s Σ und ein Zustand [w] ist genau dann final, wenn w L. Beispiel 2. Für L = (+) hat der oben konstruierte Automat A L die Zustände [ε], [], [], [], wobei [ε] sowohl initial als auch final ist. Die Übergangsregeln sind durch bestimmt, z. B. ([], ) [ε] und ([], ) [],
34 3 KAPITEL. ENDLICHE AUTOMATEN denn ε und. Hier ist die minimale Realisierung von L: [] [ε] [] [], Bis auf eine Umbenennung der Zustände ist das derselbe Automat wie der in Abschnitt.8, Beispiel??. Lemma. Die oben definierte minimale Realisierung A L akzeptiert in der Tat die gegebene prache L und ist minimal. Beweis.. Wir beweisen, dass A L die prache L akzeptiert. Es gilt: ([v], w) ([vw], ε) für alle Wörter v, w in Σ. Das beweisen wir durch Induktion über die Länge n des Wortes w = s... s n : n = ([v], ε) ([vε], ε) denn vε = v. n n + Aus ([v], s... s n ) ([vs... s n ], ε) (Induktionsvoraussetzung) folgt nach der Definition von und δ (siehe (*) oben) ([v], s... s n s n+ ) ([vs... s n ], s n+ ) ([vs... s n s n+ ], ε). Angewendet auf den Initialzustand [ε] ergibt dies also L(A) = L. 2. A L ist bestimmt erreichbar, da w L(A) [εw] F w L, ([ε], w) ([w], ε). Falls zwei Zustände [w ], [w 2 ] äquivalent sind, d. h., falls für jedes Wort w gilt [w w] F [w 2 w] F, sind w und w 2 offensichtlich Nerode-äquivalent, also gilt [w ] = [w 2 ]. Deswegen ist A L minimal. atz. Eine prache ist genau dann regulär, wenn die Nerode-Äquivalenzrelation endlich viele Äquivalenzklassen hat. Beweis. Die obige minimale Realisation beweist, dass die Bedingung hinreichend ist. Um zu beweisen, dass sie auch notwendig ist, sei L Σ regulär, d.h. es gibt einen DEA A = (Q, Σ, δ, q, F ) mit L = L(A). Falls A n Zustände hat, zeigen wir, dass die Nerode-Äquivalenzrelation höchstens n Klassen hat. Dazu genügt es zu beweisen, dass zwei Wörter w, w 2 über Σ Nerode-äquivalent sind, falls die Zustände q i mit (q, w i ) q i für i =, 2 gleich sind: es folgt dann, dass verschiedene Äquivalenzklassen zu verschiedenen Zuständen von A führen. ei q = q 2. Nach Beobachtung im Abschnitt.2 gilt für jedes Wort w über Σ : (q, w i w) (q i, w) Also gilt w w L genau dann, wenn w 2 w L.
35 .. BEWEIE DER REGULARITÄT 3 Beispiel 3. Die prache L (n) aller binären Wörter mit einer auf der telle n von rechts (siehe Beispiel?? in.3) kann durch keinen DEA mit weniger als 2 n Zuständen akzeptiert werden. Wir beweisen nämlich, dass alle 2 n Wörter der Länge n paarweise nicht Nerode-äquivalent sind. In der Tat, falls w v zwei Wörter der Länge n sind, gibt es eine telle i (=,..., n) in der sich w und v unterscheiden, sagen wir, w hat eine auf telle i und v eine. Das Wort w i hat eine auf telle (i ) + (n i + ) = n von rechts und gehört deshalb zu L (n), während v i eine an der telle n von rechts hat und darum nicht zu L (n) gehört. Das beweist, dass v / w. bspneamin4 Beispiel 4. Die prache L = aus Beispiel.3 in Abschnitt.3 hat wenigstens 4 Äquivalenzklassen: die Wörter ε,,, und sind paarweise nichtäquivalent. Deswegen kann L von keinem DEA mit 3 Zuständen akzeptiert werden. sectregbew. Beweise der Regularität Wenn wir beweisen wollen, dass eine prache regulär ist, können wir verschiedene Methoden kombinieren:. reguläre Ausdrücke beschreiben reguläre prachen, 2. endliche Automaten (auch nichtdeterministische) akzeptieren reguläre prachen, 3. die Anzahl von Ableitungen ist endlich Zusammensetzung 4. Zusammensetzung aus einfacheren regulären prachen. Zu 4 wissen wir, dass die Operationen +,, aus regulären prachen wieder reguläre prachen erzeugen. Wir zeigen jetzt zwei weitere Eigenschaften dieses Typs: satzregabgkompl atz. Falls L Σ eine reguläre prache ist, ist auch ihr Komplement L = Σ L regulär. Beweis. ei M ein DEA, der L akzeptiert. ei M derselbe Automat, bei dem nur die Mengen F (aller finalen Zustände) und Q F (aller nicht finalen Zustände) vertauscht sind: M = (Q, Σ, δ, q, F ) M = (Q, Σ, δ, q, Q F ). Dann akzeptiert M ein Wort genau dann, wenn M das Wort nicht akzeptiert, also L(M) = Σ L(M). Korollar. Der Durchschnitt zweier regulärer prachen ist regulär. Beweis. Dies folgt aus den bekannten de Morganschen Regeln: Falls L, L 2 Σ regulär sind, so sind auch Σ L und Σ L 2 regulär, deswegen ist L = (Σ L ) + (Σ L 2 ) = Σ (L L 2 )
36 32 KAPITEL. ENDLICHE AUTOMATEN regulär und aus atz folgt dann, dass auch regulär ist. L L 2 Korollar 2. Für jede reguläre prache L Σ ist auch die prache L + regulär. Beweis. Falls ε L, ist L + = L regulär, nach atz 2 in Abschnitt.4 L + = L (Σ {ε}) und da L regulär ist (siehe.4) und Σ {ε}, als Komplement der regulären prache {ε}, regulär ist, ist auch L + regulär. Beispiel. ei L die prache aller Wörter über dem Alphabet Σ = {,,..., 9}, die dezimale Codierungen von Zahlen, die durch sechs teilbar sind, darstellen. Also: L = {w Σ ; w ist eine durch sechs teilbare Zahl}. Um zu zeigen, dass L regulär ist, beobachten wir, dass ausser kein Wort in L mit dem Buchstaben beginnt, also ist L eine Untermenge der regulären prache L = + ( )( ) aller Wörter, die eine Zahl codieren. Ferner stellen wir fest, dass eine Zahl genau dann durch sechs teilbar ist, wenn sie gerade und durch drei teilbar ist. Also gilt L = L L 2 L 3, wobei L 2 die prache aller Wörter, die mit einer geraden Zahl enden, ist: L 2 = ( ) ( ), und L 3 die prache aller Wörter ist, bei denen die umme aller Ziffern durch 3 teilbar ist. Es bleibt zu zeigen, dass L 3 regulär ist. Wir untersuchen die Nerode- Äquivalenz von L 3 : falls Wörter w, w 2 über {,,..., 9} zwei Zahlen repräsentieren, die modulo 3 kongruent sind, sind sie Nerode-äquivalent, denn w u ist genau dann durch 3 teilbar, wenn w 2 u durch 3 teilbar ist. Jedes Wort ist also Nerode-äquivalent zu ε,, 2 oder 3. Die Nerode-Äquivalenz hat 4 Klassen, deswegen ist L 3 regulär. Beispiel27 Beispiel 2. Ist die prache L {a, b} aller Wörter, deren Länge ungerade ist und die eine gerade Zahl an a s beinhalten, regulär? Wir sprechen also von der prache L = L L 2, wobei L die prache aller Wörter ungerader Länge und L 2 die prache der Wörter mit gerader Anzahl von a s ist. Es gilt: die Menge L aller Wörter gerader Länge ist regulär: L = (aa + ab + ba + bb). Also ist L auch regulär. Die prache L 2 ist regulär, denn sie wird von dem folgenden Automaten akzeptiert: b a Bemerkung. In Beispiel 6 aus.2 haben wir eine prache gezeigt, die nicht regulär ist. Jetzt wollen wir ein Kriterium formulieren, das uns oft erlaubt, die Nichtregularität zu beweisen. a b
37 .. BEWEIE DER REGULARITÄT 33 atz 2 (Pumping-Lemma für reguläre prachen). Falls L Σ eine reguläre prache ist, dann besitzt sie eine Konstante n, so dass für jedes Wort w aus L der Länge w n eine Zerlegung w = xyz mit x, y, z Σ existiert, für die gilt. y ε und xy n und 2. das aufgepumpte Wort xy k z liegt in L für jedes k =,, 2,... Beweis. ei M ein DEA, der L akzeptiert, und sei n die Anzahl seiner Zustände. Für jedes Wort w L, das mindestens n Buchstaben hat, müssen sich in der Berechnung von w Zustände wiederholen. Das heißt, falls w = s s 2... s p (p n) bezeichnen wir mit q,..., q p die Zustände von M in der Berechnung von w: q ist der initiale Zustand und q = δ(q, s ),..., q p = δ(q p, s p ). Dann können die Zustände q,..., q p nicht alle voneinander verschieden sein, da wir nur n Zustände zur Verfügung haben und p + > n. Wir betrachten die erste Wiederholung eines Zustandes in der Folge q,..., q p, d. h. es seien k und i die kleinstmöglichen Indices mit q i = q i+k, für i =,..., n und k. q q... q i q i+k+... q p q i+k q i+... Wir setzen x = s s 2... s i y = s i+ s i+2... s i+k z = s i+k+ s i+k+2... s n Da k, gilt y ε. Da k und i die erste Wiederholung darstellen, also so klein wie möglich gewählt wurden, gilt ferner k +i n und somit xy n. Die Berechnung von w = xyz endet im Zustand q p, der final sein muß, weil w akzeptiert wird. Aber auch die Berechnung von xyyz endet im Zustand q p : nachdem xy berechnet worden ist, befindet sich der Automat M im Zustand q i+k = q i, und von diesem Zustand führt ihn das Wort yz nach q p. Deswegen wird auch xyyz akzeptiert. Analoges gilt für xy r z, falls r >. Und xz wird auch akzeptiert: hierbei wird der Kreis q i,..., q i+k ausgelassen.
38 34 KAPITEL. ENDLICHE AUTOMATEN Beispiel 3. Ist die prache L = {,,,... } = { n n ; n =, 2, 3,... } regulär? Nein, denn sonst hätten wir ein Wort xyz, y ε, so dass xy m z L für alle m. Aber aus xyz L, y ε, folgt xyyz L. Falls nämlich y nur aus en besteht, hat xyyz mehr en als en, analog falls y nur aus en besteht. Aber falls y en sowie en beinhaltet, hat xyyz eine vor einer, also wieder xyyz L. Bemerkung 2. Das Pumping-Lemma wird oft für Beweise, dass eine prache L nicht regulär ist, benutzt. Dazu müssen wir die Aussagen des Pumping-Lemma negieren (wobei die Negation von es existiert X ist für alle... nicht X und umgekehrt). D.h., für jede Zahl n müssen wir ein Wort w in L finden mit Länge w n so dass das folgende gilt: für jede Zerlegung w = xyz mit y ε und xy n existiert ein k mit xy k z / L. Beispiel 4. Ist die prache L = { n k m ; n, k, m =,, 2,... } regulär? Bestimmt! ie ist doch repräsentiert durch. Bemerkung 3. Was können wir über eine prache L sagen, wenn es uns nicht gelingt durch Pumping-Lemma zu beweisen, dass L nicht regulär ist? Können wir dann behaupten, dass L regulär ist? NEIN! Pumping Lemma ist keine Äquivalenz, nur eine Eigenschaft aller regulären prachen. Das illustriert das nächste Beispiel 5. Die prache L aller Wörter a i b j c k wobei i, j, k =,, 2, 3... und es gilt wenn i = dann j = k ist nicht regulär. Trotzdem hat jedes Wort w ε von L eine Zerlegung w = xyz mit so dass alle Wörter xy k z in L liegen. y ε und xy 2 (a) Die Zerlegung. Wähle x = ε und y = aa. Das klappt für alle a i b j c k mit i 2. Für i = wähle y = a und für i = wähle y = b (wenn j ) oder y = c (sonst). (b) Die Nichtregularität von L. Die prache L aller Wörter ab j c j ist nicht regulär: dies ist analog zum Beispiel 3. Es gilt L = L ab c. Das beweist, dass L nicht regulär ist, denn der Durchschnitt regulärer prachen ist regulär. sectmooremealy. Moore- und Mealy-Automaten Endliche Automaten können auch für die Berechnung von Funktionen (statt des Akzeptierens von prachen) verwendet werden. Anstelle der Menge F der finalen Zustände brauchen wir hier eine Abbildung λ, die den Zuständen Ausgaben zuordnet. Die Ausgabe hängt entweder nur vom Zustand ab (Moore-Automaten) oder vom Zustand und von der Eingabe (Mealy-Automaten).
39 .. MOORE- UND MEALY-AUTOMATEN 35 Definition. Ein Moore-Automat ist ein echs-tupel A = (Q, Σ, δ, q, Γ, λ), wobei Q, Σ, δ Q Σ Q und q Q dieselbe Bedeutung wie für DEA haben, Γ eine endliche Menge (von Ausgabesymbolen) ist und λ Q Γ eine Abbildung (Ausgabefunktion) ist. Notation: falls λ(q) = y. q/y Der Automat berechnet die Funktion β Σ Γ +, die jedem Eingabewort w = s s n das entsprechende Ausgabewort β(w) = y y y n der Berechnung von w q /y s q /y s 2... s n q n /y n zuordnet. Also falls die q i induktiv durch q i = δ(q i, s i ) definiert werden, gilt y i = λ(q i ), i =,..., n. Es gilt speziell, dass β(ε) = λ(q ). bsp:moore Beispiel. Wir konstruieren einen Moore-Automaten, der zu jedem binären Wort w das Wort zuordnet, dass mit einem a beginnt und dann jede durch b und jede durch c ersetzt: q /a q /b q 2 /c Definition. Ein Mealy-Automat ist ein echs-tupel A = (Q, Σ, δ, q, Γ, λ), wobei Q, Σ, δ Q Σ Q und q Q dieselbe Bedeutung wie für DEA haben, Γ eine endliche Menge ist und λ Q Σ Γ eine Ausgabefunktion. Notation: q s/y q falls δ(q, s) = q und λ(q, s) = y. Der Automat berechnet die Funktion β Σ Γ, die jedem nichtleeren Eingabewort w = s s n das entsprechende Ausgabewort β(w) = y y n der Berechnung von w s q /y s q 2/y 2 s... n/y n q n zuordnet, und β(ε) = ε. bsp:mealy Beispiel 2. Ein Mealy-Automat, der für binäre Zahlen die Kongruenzklasse modulo 8 berechnet (d. h., eine Binärzahl wird Wort über {, } mit dem niederwertigsten Bit zuerst eingegeben; die Ausgaben sind die drei ersten Bits des Wortes gefolgt von en) ist der folgende: / / / q q q 2 q 3 / / / / /
40 36 KAPITEL. ENDLICHE AUTOMATEN Bemerkung. Moore- und Mealy-Automaten realisieren fast dieselbe Ausgabefunktionen. Genauer: (i) Zu jedem Moore-Automaten A gibt es einen Mealy-Automaten B mit wobei c = λ A (q ). Wir ersetzen β A (w) = cβ B (w), q/i s q /j durch q s/j q Beispiel: der Automat in Beispiel ergibt: q /b /c q 2 /c /b /c /b q (ii) Zu jedem Mealy-Automaten A gibt es einen Moore-Automaten B mit β B (w) = cβ A (w) für ein c Γ. Wir formen die neue Zustandsmenge: Q Γ. Wir wählen c Γ. Dann ersetzen wir q s/i q durch q, j s q, i für alle j Γ, wobei λ A ( q, j ) = j gilt, und als Initialzustand q, c gewählt wird. Beispiel: Der Automat aus Beispiel 2 ergibt mit c = den folgenden Automaten: q, q, q, q, q 2, q 2,, q 3,, q 3,
41 Kapitel 2 Kontextfreie prachen und Kellerautomaten 2. Die Idee einer formalen Grammatik ectbspaltzweieinseins bspaltzweieinseins Wir haben gesehen, wie endliche Automaten eine prache akzeptieren. In vielen Gebieten der oftware-entwicklung ist es aber wichtiger, prachen zu erzeugen, als zu akzeptieren. Dafür sind die regulären Ausdrücke besser als die endlichen Automaten geeignet. Das illustrieren wir informell durch einige Beispiele, bevor wir die formale Definition präsentieren. Beispiel. Betrachten wir die prache L, die durch den regulären Ausdruck a(a + b )b definiert wird. Dieser Ausdruck erzeugt die Wörter der prache L, indem er sagt:. Der erste Buchstabe ist a. 2. Dann folgt der Rumpf T des Wortes: eine Reihe lauter a s oder b s. 3. Am Ende kommt ein b. Diese Erzeugungsidee kann wie folgt formalisiert werden: sei ein tartsymbol oder das ymbol, das wir abstrakt tring (= Wort) nennen. Wir können., 2., 3. kompakt durch die folgenden drei Ersetzungsregeln ausdrücken. Zuerst hat jedes Wort die Form at b, wobei T der Rumpf aus a + b ist:. at b. Das ymbol soll kann sein gelesen werden; hier also (tring) kann a(rumpf)b sein. Jetzt müssen wir den Rumpf durch geeignete Regeln erzeugen. Zuerst führen wir eine Variable A für tring aus a s ein; diese wird durch die folgenden Regeln 2. A ε aa ( A kann entweder ε oder von der Form aa sein ) bestimmt. Analog für 3. B ε bb und letztlich ectbspaltzweieinszwei 4. T A B ( der Rumpf kann entweder A oder B sein ). 37
42 38 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN bspaltzweieinszwei sectbspaltzweieinsdrei Beispiel 2. Die prache aller Wörter n n (n =, 2, 3,... ) lässt sich durch die folgenden Regeln erzeugen. In dieser prache gilt: ein Wort kann (nur) oder von der Form (Wort) sein. bspaltzweieinsdrei Beispiel 3. Die prache aller Palindrome, d.h. aller Wörter im Alphabet Σ = {a, b,..., z}, die rückwärts genauso gelesen werden wie vorwärts, lässt sich durch die folgenden Regeln ε aa bb... zz a b... z erzeugen. Diese Beispiele illustrieren informell die Idee einer formalen Grammatik: a. Man unterscheidet zwischen den eigentlichen oder terminalen ymbolen, in denen die erzeugten Wörter geschrieben werden (z.b. a, b in Beispiel in Abschnitt 2.) und Hilfssymbolen oder Variablen (z.b., T, A, B in Beispiel in Abschnitt 2.). b. Die Grammatik besteht aus Ersetzungsregeln (kurz Regeln, auch Produktionen genannt) der Form A w, die uns erlauben, in jedem Wort den Buchstaben A durch das Wort w zu ersetzen. c. Wir interessieren uns lediglich für die Wörter über dem terminalen Alphabet, die aus dem tartsymbol ableitbar (durch eine oder mehrere Anwendungen der Regeln) sind. Notation. Ersetzungsregeln A w,..., A w n mit derselben linken eite werden kompakter als A w w 2... w n beschrieben. 2.2 Kontextfreie Grammatik Definition. Eine kontextfreie Grammatik G ist ein Quadrupel G = (Σ, V,, P), wobei Σ ein Alphabet (aller terminalen ymbole) ist, V ein Alphabet (aller Variablen oder nichtterminalen ymbole) ist, das zu Σ disjunkt ist, V das tartsymbol ist und P eine endliche Untermenge von V (Σ V ) ist, deren Elemente Produktionen (oder Regeln) heißen und in der Form A a a 2... a n mit A V und a... a n (Σ V ) dargestellt werden. Bemerkung. Die Anwendung der Produktion A a a 2... a n auf ein Wort w bedeutet, dass im Wort w der Buchstabe A durch das Wort u = a a 2... a n ersetzt wird. (Das ist nur möglich, falls w den Buchstaben A enthält. Falls w den Buchstaben an verschiedenen tellen enthält, sind verschiedene Ergebnisse einer Anwendung der Produktion auf w möglich.) Formal: ei w = w Aw ein Wort, wobei w, w (Σ V ) Wörter sind. Das Ergebnis der Anwendung der Produktion A u auf w ist das Wort w uw. Falls n =, die Produktion also die Form A ε hat, ist das Ergebnis der Anwendung auf w = w Aw das Wort w w. Da ε die Rolle der Bezeichnung des leeren Wortes hat, brauchen wir die folgende Voraussetzung: Weder Σ noch V enthält das ymbol ε.
43 2.2. KONTEXTFREIE GRAMMATIK 39 Notation.. Mit bezeichnen wir die Anwendung einer einzelnen Produktion; also schreiben wir für Wörter w, v (Σ V ) w v, falls es eine Produktion A u der Grammatik und Wörter w, w (Σ V ) gibt, so dass w = w Aw und v = w uw. 2. Mit bezeichnen wir die reflexive und transitive Hülle der Relation. Das heißt: w v [zu lesen: v ist aus w ableitbar] bedeutet, dass w = v oder w v, oder es gibt Wörter w,..., w n mit w w w 2... w n v. Bemerkung 2. Das Wort w = w Aw heißt der Kontext, in dem sich der Buchstabe A befindet. Die obige Definition der Anwendung sagt uns, dass eine Produktion A u ohne Berücksichtigung des Kontextes von A angewendet wird deshalb spricht man von kontextfreien Grammatiken. Definition. Für jede kontextfreie Grammatik G heißt die Menge aller Wörter über dem Terminalalphabet Σ, die aus dem tartsymbol ableitbar sind, die von G erzeugte prache L(G). Kürzer: L(G) = {w Σ ; w}. Beispiel. Palindrome. Hier nehmen wir die prache L {, } aller Worte w deren Umkehrung w R das gleiche Wort ist: w = w R. Z.B. ε, und sind Palindrome. Jedes andere Palindrom hat die Form oder (wobei ein Palindrom ist). Das können wir durch folgende Liste von Regeln (oder Produktionen ausdrücken: ε P P Hier ist P eine Variable, die Palindrome darstellt. Beispiel 2. Arithmetische Ausdrücke. Wir wollen Ausdrücke, die die Operationen + und auf Bezeichner (oder Identifier, kurz I) anwenden. Als Bezeichner benutzen wir Wörter über {a, b,, } die mit a oder b anfangen. hier brauchen wir zwei Variablen: E für Ausdruck (expression) und I für Bezeichner (identifier) mit den
44 4 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN Regeln E I E E + E E E E I a I b I Ia I Ib I I I I Aufpassen, dies genügt nicht z.b. für (a + a) (b + b), wir brauchen noch E (E) Notation. Alle Regeln mit der selben Variablen auf der linken eite werden zusammengefasst und durch getrennt. Die obere Liste hat dann die Form sectbspaltzweizweieins bspaltzweizweieins E I E E E + E (E) I a b Ia Ib I I Beispiel 3. Die prache L = { n n ; n =, 2, 3,... } wird von der folgenden Grammatik G erzeugt wird: G = ({, }, {},, P), wobei P die folgenden Produktionen sind: Das beweisen wir jetzt formal. Beweis. (von L = L(G)). Wir zeigen zuerst, dass jedes Wort n n ableitbar ist, das heißt, dass L L(G) gilt: wir wenden (n )-mal die Produktion A an und bekommen... n n. Jetzt wird die Produktion angewendet: n n n n. 2. Demnächst zeigen wir, dass L(G) L gilt. Wir beweisen eine etwas allgemeinere Aussage (die auch Wörter mit Variablen betrifft). Jedes Wort w {,, }, das aus ableitbar ist, hat die Form w = n n oder w = n n. Das beweisen wir durch Induktion über der Länge k der Ableitung w: k = w = ist hier von der zweiten Form (mit n = ). k k + Falls w das vorletzte Wort der Ableitung von w ist, so gilt: w w, und für w haben wir eine Ableitung der Länge k. Nach der Induktionsvoraussetzung gilt also entweder w = n n (das ist aber nicht möglich, denn es gilt w w und auf n n kann man keine Produktion anwenden) oder w = n n. Die beiden Produktionen unserer Grammatik ergeben dann w = n+ n+ oder w = n+ n+.
45 2.2. KONTEXTFREIE GRAMMATIK 4 ectbspaltzweizweizwei bspaltzweizweizwei Beispiel 4. Hier wollen wir ein Beispiel, das in die Richtung natürlicher prachen geht, vorführen. Wir verwenden die folgenden Variablen: tartsymbol (oder atz ) (B) ubstantiv (ADJ) Adjektiv (VRB) Verb (PHR) Phrase mit den folgenden Produktionen:. Ein atz hat die Form (Phrase)(Verb)(Phrase): (PHR)(VRB)(PHR) 2. Phrase ist ein ubstantiv mit oder ohne einem Adjektiv: (PHR) (B) (ADJ)(B) ectbspaltzweizweidrei bspaltzweizweidrei 3. Produktionen für Terminalsymbole: (B) Apfel Karl (ADJ) groß grün (VRB) isst Genauer: wir betrachten die Grammatik G = (Σ, V,, P ), wobei Σ = { Apfel, Karl, groß, grün, isst }, V = {, (B), (ADJ), (VRB), (PHR)} und P aus den oben genannten Produktionen. bis 3. besteht. Einige Beispiele der ätze, die die Grammatik erzeugt: Karl isst Apfel groß Karl isst grün Apfel. Da unsere Grammatik kontextfrei ist, erhalten wir leider auch ätze, die dem intuitiven Kontext nicht entsprechen, wie z.b. grün Karl isst grün Karl. Beispiel 5. Reguläre Ausdrücke. Erinnern wir uns an die Definition eines regulären Ausdrucks r, sagen wir, über {, }: r = ε r + r r r r* (r) Das ist fast eine kontextfreie Grammatik für reguläre Ausdrücke mit tartsymbol r. Wir müssen aber die folgenden Details modifizieren:. Die ersten vier regulären Ausdrücke werden selbstverständlich Terminalsymbole unserer Grammatik. Da aber ε kein Terminalsymbol sein darf, schreiben wir statt dessen epsilon. Also: die prache, die nur das leere Wort beinhaltet, ist mit epsilon repräsentiert. 2. tatt r schreiben wir r (zwei Buchstaben). 3. Wir erlaubten, r r als rr zu schreiben, jetzt bestehen wir auf r r. Das heißt, wir arbeiten mit der Grammatik G = (Σ, {r}, r, P ), wobei die Terminalsymbole die folgenden sind: Σ = {,, epsilon,, (, ), +,, }, die einzige Variable r das tartsymbol ist und P die folgende Menge von Produktionen ist: r epsilon r + r r r r (r)
46 42 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN Es ist klar, dass (mit den obigen Modifikationen) die prache L(G) nur reguläre Ausdrücke über {, } enthält. Umgekehrt gilt, dass jeder reguläre Ausdruck ein Wort in L(G) ist, denn die Menge aller regulären Ausdrücke ist (laut Definition) die kleinste Menge, in der,, epsilon und enthalten sind, und dass für Elemente r, r 2 dieser Menge auch r +r 2, r r 2, r und (r) Elemente sind und L(G) erfüllt dies alles. Zum Beispiel ist die prache aller Wörter, die mit anfangen und, falls noch etwas kommt, die Form n haben, durch den regulären Ausdruck (* + ε) repräsentiert, oder, modifiziert: ( +epsilon). Dafür haben wir die folgende Ableitung: r r r r (r) r (r + r) r (r r + r) r (r r r + r) r (r r r + r) r r (r r r + r) r (r r r + r) (r r r + r) ( r r + r) ( r + r) ( + r) ( + epsilon) Bemerkung 3. Für jede kontextfreie Grammatik gilt:. Aus u u folgt vuw vu w (für beliebige Wörter u, u, v und w über Σ V ). In der Tat haben wir u = u Au und u = u zu, wobei A z eine Produktion unserer Grammatik ist. Es gilt vuw = (vu )A(u 2 w) und vu w = (vu )z(u 2 w), und das beweist, dass dieselbe Produktion vuw vu w ergibt. 2. Aus u u folgt vuw vu w. Dies ist eine wiederholte Anwendung des ersten Falls. 3. Aus u u und u 2 u 2 folgt u u 2 u u 2. In der Tat gilt u u 2 u u 2 (wir können 2. mit v = ε und w = u 2 anwenden) und u u 2 u u 2 (wir können 2. mit v = u und w = ε anwenden). 2.3 Anwendungen von kontextfreien Grammatiken. Parser. Grammatiken werden zur Beschreibung von Programmiersprachen angewendet. Wo eine reguläre prache vorhanden ist, z.b., bei Beschreibung der Bezeichners als lex-eingabe, können DEAs angewendet werden. Beispiel. Bezeichner, die alphanumerisch sind und mit einem Buchstaben anfangen müssen. In Programmiersprache C: [A Z, a z][a Z, a z, 9]
47 2.3. ANWENDUNGEN VON KONTEXTFREIEN GRAMMATIKEN 43 dies entspricht dem DEA state A Z,a z A z,a z, 9 stateerror Aber viele Aspekte der Programmiersprachen sind zu komplex für eine reguläre prache. Z.B. die richtige Klammerung, wobei die truktur der rechten Klammern korrekt zu der den linken Klammern passt. chon die prache L = {(), (()), ((())),...} aller solcher Ausdrücke OHNE andere ymbole ist nicht regulär! (Erinnern wir uns an den Beweis für a n b n, n N.) Aber sie ist kontextfrei: Beispiel 2. Die Grammatik mit Produktionen erzeugt die obere prache. (T ) T (T ) ε Befehl YACC in unix-ystemen erzeugt die yntaxbäume aus einer kontextfreien Grammatik. Die Notation von Produktionen, die Aktionen heißen, ist ähnlich, nur wird durch ersetzt. Eine Aktion wird ausgeführt, sobald ein Knoten des yntaxbaumes erzeugt wird, der dieser Aktion entspricht. Terminalsymbole werden durch halbe Ausführungszeichen bezeichnet. Beispiel 3. Quellcode Exp Id Id Exp + Exp Exp Exp ( Exp ) b a I a I b I I HTML Dokumente Hier ein Beispiel, dass Text als eine Kette von Zeichen Char definiert (inkl. leeres Zeichen). Und Dokument Doc als entweder leer oder folgen von Elementen. Wobei Element ist entweder Text oder zusammengehörige Tags, die ein Dokument einschließen (<EM> und </EM>) oder nur einleiten (<P>). Die letzte Möglichkeit von Tag ist <OL>List</OL> wobei List eine Liste von Listitem ist, die die Form LIDoc haben: Char a A... z Z
48 44 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN Text ε Char Text Doc ε Element Doc Element Text <EM> Doc </EM> <P> Doc <OL> List </OL> List ε Listitem List Listitem <LI> Doc 2.4 Ableitungsbäume Eine Möglichkeit, um Ableitungen anschaulicher zu machen, ist das Benutzen des Ableitungsbaumes (parsing tree), wobei dir Produktion A a... a n durch den Baum A sectbspaltzweidreieins a a 2... a n a n repräsentiert wird. Bevor wir diese Idee formalisieren, zeigen wir zwei Beispiele informell. bspaltzweidreieins Beispiel. In der Grammatik für die prache n n (Beispiel 2 in Abschnitt 2.) wird die Ableitung von wie folgt repräsentiert: sectbspaltzweidreizwei bspaltzweidreizwei Hier sehen wir, dass der Baum mit ymbolen aus Σ V markiert wird, die Blätter terminale ymbole und die inneren Knoten Variablen tragen. Für jeden inneren Knoten formen alle Markierungen der öhne entweder oder, was den beiden Produktionen und entspricht. Beispiel 2. Die prache aa(aa + bb) aller Wörter, in denen jeder Buchstabe wiederholt wird und die mit aa beginnen, hat die Grammatik G = ({a, b}, {, T },, P ) mit den Produktionen P :
49 2.4. ABLEITUNGBÄUME 45 aat T ε aat bbt. Hier ist ein Ableitungsbaum für die Ableitung von aaaabb: a a T a a T b b T ε Daran sehen wir, dass das ymbol ε (das aufgrund der Produktion T ε aufgetaucht ist) einfach ignoriert werden soll. Bemerkung. Wir wollen kurz an die Begriffe geordneter und ungeordneter Baum erinnern. Ein gerichteter Graph wird Baum genannt, falls er einen Knoten w (genannt Wurzel) hat, so dass für jeden weiteren Knoten genau ein gerichteter Pfad von der Wurzel zu diesem Knoten existiert. (Ein Pfad zwischen x und y ist eine Liste von Knoten x = z, z,..., z n = y, so dass (z i, z i ) für i =,..., n eine Kante ist.) ei ein solcher Pfad für einen Knoten x wie folgt gegeben: w = z, z,..., z n = x. Dann heißt der Knoten z n der Vater von x. Umgekehrt heißt x ohn des Vaters z n. Jeder Knoten außer w hat also genau einen Vater. Knoten, die keine öhne haben, heißen Blätter. Ein geordneter Baum besteht aus folgenden zwei Komponenten:. einem Baum B und 2. einer linearen Ordnung aller öhne von x, für jeden Knoten x, der kein Blatt ist. Falls y und z zwei öhne von x sind, sagen wir, dass y links von z steht, falls in der Ordnung aller öhne y vor z steht. Ein markierter geordneter Baum, kurz: Baum, mit der (gegebenen) Markierungsmenge M, ist ein geordneter Baum zusammen mit einer Funktion von der Menge aller Knoten nach M. Bäume können kürzer rekursiv definiert werden:. Die Wurzel allein mit einer Marke a M ist ein Baum: a 2. Falls Bäume B,..., B n (n ) und eine Marke a M für die Wurzel gegeben sind, so ist auch a B B 2 B n... ein Baum.
50 46 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN 3. Jeden Baum kann man durch endlich viele Anwendungen von. und 2. repräsentieren. Die Tiefe eines Baumes ist die maximale Länge eines Pfades (von der Wurzel zum entferntesten Blatt). Definition. ei G = (Σ, V,, P ) eine kontextfreie Grammatik. Ein Ableitungsbaum ist ein Baum B mit Markierungen von Knoten in der Markierungsmenge Σ V {ε} so dass gilt: Jeder innere Knoten wird mit einer Variablen A markiert, und falls alle seine öhne von links nach rechts mit a,..., a n markiert werden, ist A a... a n eine Produktion in P. Bemerkung 2. Es gilt: ˆ Für jeden Ableitungsbaum B lesen wir die Markierungen aller Blätter von links nach rechts, nur Blätter mit Markierung ε werden ignoriert. Das ergibt ein Wort in (Σ V ), das wir mit w B bezeichnen und dass die Front des Baumes B heisst. sectbspaltzweidreidrei bspaltzweidreidrei ˆ Falls alle Blätter von B mit ε markiert sind, gilt w B = ε. Beispiel 3. In der Grammatik G aus Beispiel 2 in Abschnitt 2.4 sind die folgenden Bäume Beispiele für Ableitungsbäume: a a T a a T b b T ε a a T a a T b b T Bemerkung 3. Wir wollen jetzt zeigen, dass für jede kontextfreie Grammatik G gilt: Ein Wort w liegt in L(G) w hat einen Ableitungsbaum mit Wurzel und w Σ. Wir müssen betonen, dass es im allgemeinen mehrere Ableitungsbäume für ein Wort w L(G) gibt, z.b. hat das Wort abc in einer Grammatik mit den Produktionen ε
51 2.4. ABLEITUNGBÄUME 47 a ab c bc die folgenden Ableitungsbäume: c a a b b c Konstruktion eines Ableitungsbaumes: ei w ein Wort über Σ, das aus ableitbar ist. Wir konstruieren einen Ableitungsbaum B mit w = w B wie folgt. Gegeben eine Ableitung w w 2... w n w n = w. Wir konstruieren Bäume B,..., B n, so dass die Blätter von B i das Wort w i formen; der Baum B n ist dann ein Ableitungsbaum für w. ˆ Baum B : ei w = a... a p, dann ist a... a p eine Produktion unserer Grammatik. Wir setzen: B : a a 2... a p Falls n =, das heißt w, ist dies ein Ableitungsbaum für w. ˆ Baum B 2 : ei A b... b q eine Produktion unserer Grammatik, deren Anwendung die Ableitung w w 2 ergibt: w = a... a i Aa i+... a p (das heißt A = a i ) und w 2 = a... a i b... b q a i+... a p Wir setzen B 2 : a... a i a i a i+... a p ctatzaltzweidreieins Und so weiter. b b 2... b q satzaltzweidreieins atz. Für jede kontextfreie Grammatik G ist L(G) genau die prache aller Wörter über Σ, die einen Ableitungsbaum mit Wurzel haben. Beweis. Aus der obigen Konstruktion folgt, dass jedes Wort in L(G) einen Ableitungsbaum mit Wurzel hat. Umgekehrt beweisen wir jetzt, dass für jeden Ableitungsbaum B mit Wurzel X gilt X w B. Falls B keine Variablen in den Blättern hat, folgt w B Σ. Falls nun außerdem X = gilt, haben wir also w B L(G). Wir benutzen Induktion über die Tiefe k des Baumes B. k = Hier besteht der Baum B aus der Wurzel allein, also gilt w B = X und deswegen X w B. k k + eien a,..., a n die Markierungen aller öhne der Wurzel (von links nach rechts).
52 48 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN X a a 2... a n sectbspaltzweidreivier bspaltzweidreivier B B 2 B n Mit B i bezeichnen wir den Baum aller Nachfolger des i-ten ohns, für i =,..., n. Dann ist B i ein Baum mit Wurzel a i der Tiefe k. Die Induktionsvoraussetzung ergibt also a i w Bi für i =,..., n. Aus der ersten Bemerkung in 2.2 sehen wir, dass dann a a 2... a n w B a 2... a n w B w B2 a 3... a n w B w B2... w Bn. Ferner ist X a... a n eine Produktion unserer Grammatik, weswegen gilt X a... a n w B w B2... w Bn. Aus der Konstruktion der Bäume B,..., B n sehen wir, dass das Wort w B gleich dem Wort w B w B2... w Bn ist. Das beweist also X w. Beispiel 4. Die yntax von vielen Programmiersprachen kann man durch eine kontextfreie Grammatik erzeugen. Das zeigen wir anhand einer sehr einfachen prache, deren Befehle COM nur eine der folgenden Formen. bis 3. haben:. COM = VAR := AEXP (Zuweisung), wobei VAR eine Variable (sagen wir, hier nur x oder y) und AEXP ein algebraischer Ausdruck ist. 2. COM = COM; COM (Verkettung) oder 3. COM = if BEXP then COM else COM, wobei BEXP ein Boolescher Ausdruck ist. Für AEXP erlauben wir nur Variablen x, y, Konstanten,, 2 und Operationen +,. Für Boolesche Ausdrücke sind nur Konstanten true, false oder eine Gleichung zweier algebraischer Ausdrücke mit den üblichen Operationen and, not erlaubt. Unsere Grammatik G hat also die folgenden terminalen ymbole: Σ = {x, y,,, 2, +,, true, false, =,, ;, and, not, if, then, else} und die folgenden nichtterminalen ymbole: V = {COM, AEXP, BEXP} mit dem tartsymbol COM. Die Produktionen sind: COM x = AEXP y = AEXP COM; COM if BEXP then COM else COM AEXP x y 2 + AEXP AEXP AEXP AEXP BEXP true false AEXP = AEXP and BEXP BEXP not BEXP Zum Beispiel das Programm x = ; if x = y then y = + xy else y = hat den Ableitungsbaum
53 2.5. KONTEXTFREIE UND REGULÄRE PRACHEN 49 COM COM ; COM x = AEXP if BEXP then COM else COM AEXP = AEXP y = AEXP y = AEXP x y + AEXP AEXP ctatzaltzweidreizwei satzaltzweidreizwei atz 2. Für eine kontextfreie Grammatik G bezeichnen wir die maximale Länge der rechten eite einer Produktion mit k. Dann hat jedes Wort in L(G) mit einem Ableitungsbaum der Tiefe i höchstens die Länge k i. x y Beweis. Für jeden Ableitungsbaum B beweisen wir, dass das Wort w B, das die Blätter von B bilden (wenn ε wie üblich ignoriert wird), höchstens die Länge k i hat. Der Beweis ist durch Induktion über die Tiefe i des Baumes B durchzuführen. Induktionsanfang i = : Ein Baum der Tiefe besteht nur aus der Wurzel und somit gilt: w B hat eine Länge = k. Induktionsschritt: Jeder Baum der Tiefe i + > hat die Form A B B 2... B n wobei B,..., B n (n ) Bäume sind, deren Tiefe höchstens i ist. Nach der Induktionsvoraussetzung gilt: die Länge des Wortes w Bj für j =,..., n ist höchstens k j. eien a,..., a n die Markierungen aller öhne von A (d.h. aller Wurzeln von B,..., B n ).. Falls a,..., a n in Σ V liegen, gilt w B = w B w B2... w Bn (Konkatenation), und die Länge von w B ist also höchstens k i +k i + +k i = nk i. Da A a,..., a n eine Produktion in P ist, gilt (nach Definition von k) n k, also nk i k i+. 2. Falls sich ε unter den a k s befindet, gilt n = und w B = ε: A ε Die Länge von w B ist k i Kontextfreie und reguläre prachen ectbspaltzweiviereins bspaltzweiviereins Definition. Eine prache heißt kontextfrei, falls sie von einer kontextfreien Grammatik erzeugt werden kann, d.h. falls sie die Form L(G), G ist eine kontextfreie Grammatik hat. Beispiel. Kontextfreie prachen:
54 5 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN a. Die prache aller regulären Ausdrücke ist kontextfrei siehe Beispiel 5 in Abschnitt 2.2. b. Die (nichtreguläre) prache L = { n n ; n =, 2, 3,... } ist kontextfrei siehe Beispiel 3 in Abschnitt 2.2. c. Die prache L = {a n b n c n ; n =, 2, 3,... } ist nicht kontextfrei, wie wir in Abschnitt 2.5 beweisen werden. d. Im Gegensatz zu c. ist die prache L = {a n b n c k ; n, k =, 2, 3,... } kontextfrei. ie wird von der folgenden Grammatik G = ({a, b, c}, {, T },, P ) mit den Produktionen c T c T ab at b erzeugt. In der Tat: (a) Jedes Wort a n b n c k (n, k ) ist ableitbar: c c c k-mal T c a T b a T b a T b a T b (n )-mal sectatzaltzweiviereins satzaltzweiviereins a b (b) Jedes ableitbare Wort aus {a, b, c} hat die Form a n b n c k. Allgemeiner: jedes von ableitbare Wort aus {a, b, c, T } hat entweder die Form a n b n c k oder a n T b n c k. Das folgt aus der Form der Ableitungsbäume und kann leicht durch Induktion über die Tiefe des Baumes bewiesen werden. atz. Jede reguläre prache ist kontextfrei. Bemerkung. Für jede reguläre prache werden wir in der Tat eine Grammatik finden, deren Produktionen die Form A ε oder A bb (A, B V, b Σ) haben. Beweis. Für jede reguläre prache L gibt es einen endlichen Automaten M = (Q, Σ, δ, q, F ), der L akzeptiert. Wir definieren eine Grammatik G, deren Variablen die Zustände
55 2.5. KONTEXTFREIE UND REGULÄRE PRACHEN 5 von M sind, wie folgt: G = (Σ, Q, q, P) mit den folgenden Produktionen P: A ε für jeden finalen Zustand A und A sb für jeden Übergang A s B Wir beweisen, dass L = L(G) gilt.. Zuerst zeigen wir, dass jedes akzeptierte Wort w = s... s n in der Grammatik G ableitbar ist; also folgt L L(G). Aus den Zuständen der Berechnung von s... s n : s s 2 s q q... n q n erhalten wir den Ableitungsbaum für w: q s q s 2 q 2 s 3 q n s n q n ohne Variablen in den Blättern. ε 2. Jetzt zeigen wir, dass jedes ableitbare Wort w = s... s n von M akzeptiert wird, d.h. L(G) L: ein Ableitungsbaum ohne Variablen in den Blättern muss nämlich die obige Form haben, dann folgt aus q i = δ(q i, s i ), dass δ (q, w) = q n F. ectkoraltzweiviereins koraltzweiviereins Definition. Eine reguläre Grammatik ist eine kontextfreie Grammatik, deren Produktionen die Form A b b 2... b n oder A b b 2... b n B haben, wobei A, B Variablen sind und b... b n ein (möglicherweise leeres) Wort aus terminalen ymbolen ist. Korollar. Jede reguläre prache kann durch eine reguläre Grammatik erzeugt werden. Bemerkung 2. Wir haben im atz in Abschnitt 2.5 scheinbar etwas mehr bewiesen: nicht nur, dass reguläre prachen mit Hilfe der Produktionen A b... b n oder A b... b n B erzeugbar sind, sondern auch, dass uns die einfacheren Produktionen A ε oder A bb genügen. Dies ist allerdings nicht allgemeiner, denn jede reguläre Grammatik G kann so modifiziert werden, dass nur diese einfachere Form der Produktionen vorkommt. Genauer, eine einfachere Grammatik G mit L(G) = L(G ) kann wie folgt konstruiert werden:. Jede Produktion A b b 2... b n mit n kann man durch die folgenden Produktionen ersetzen:
56 52 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN A b B B b 2 B 2 B n 2 b n B n B n b n B n B n ε (wobei B,..., B n neue Variablen sind, die sich paarweise unterscheiden). In der Tat, die Produktion A wird dann durch b b 2... b n A b B b 2 B n b n B n ε ersetzt. (Und kein anderer Ableitungsbaum kann mit den neuen Variablen konstruiert werden.) Also gilt L(G) = L(G ). 2. Analog ersetzt man A b b 2... b n B durch A b B b 2 B n b n B sectbspaltzweivierzwei bspaltzweivierzwei 3. Es bleiben also Produktionen der Form A ε, A bb oder A B. Aus dem folgenden atz folgt, dass die letzte Form auch ersetzbar ist. Beispiel 2. Die folgende Grammatik G = ({, }, {, A, B},, P ) mit den Produktionen P : A A B B B A ε ist regulär. ie kann durch die Grammatik G = ({, }, {, A, B, C, D},, R ) ersetzt werden, deren Produktionen R die folgenden sind:
57 2.5. KONTEXTFREIE UND REGULÄRE PRACHEN 53 ctatzaltzweivierzwei satzaltzweivierzwei C A B C A B D B D ε A ε atz 2. Jede reguläre Grammatik erzeugt eine reguläre prache. Beweis. Wie aus der obigen Bemerkung folgt, genügt es zu zeigen, dass jede reguläre Grammatik G = (Σ, V,, P ), deren Produktionen eine der Formen A ε, A bb, oder A B haben, eine reguläre prache erzeugt. Wir konstruieren einen NEA wie folgt: M = (V, Σ, δ,, F ), also sind Zustände die Variablen von G, mit als Initialzustand. Die finale Zustände sind gerade die Variablen, bei denen A ε eine Produktion in P ist. Die Übergänge sind durch die Produktionenn der Grammatik bestimmt: A B im Automaten M A sb ist eine Produktion und A # B im Automaten M A B ist eine Produktion. Dann gilt: L(G) = L(M), also akzeptiert M ein Wort w genau dann, wenn w. In der Tat, falls M das Wort w = s... s n akzeptiert, haben wir eine Berechnung () # A #... s A i #... s n A in #... # A k im Automaten M, und wir haben einen Ableitungsbaum ohne Variablen in den Blättern, der diese Berechnung kopiert: (2) A A i s A i A i2 s 2 A i2 A in s n A in A k ectkoraltzweivierzwei koraltzweivierzwei ε Umgekehrt wird jedes Wort w mit einem Ableitungsbaum B ohne Variablen in den Blättern von M akzeptiert: der Ableitungsbaum kann nämlich nur die Form (2) wie oben haben, und daraus können wir eine Berechnung () des Wortes durch M ableiten. Korollar 2. Eine prache ist genau dann regulär, wenn sie von einer regulären Grammatik erzeugt werden kann.
58 54 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN sectbspaltzweivierdrei bspaltzweivierdrei sectbspaltzweiviervier bspaltzweiviervier Beispiel 3. Die Grammatik G aus Beispiel 2 in Abschnitt 2.5 ergibt den folgenden nichtdeterministischen Automaten, der L(G ) akzeptiert: B D C A8 Beispiel 4. Die folgende Grammatik G = ({, }, {, T },, P ) mit den Produktionen T ist nicht regulär. ie erzeugt jedoch eine reguläre prache: L(G) = +. Bemerkung 3. Jeder innere Knoten p eines yntaxbaumes mit Markierung X ergibt einen Unterbaum (mit Wurzel-Markierung X) der selbst ein yntaxbaum ist: Y p X u v Das Ergebnis des ursprünglichen Baumes ist uvw wobei (a) v ist das Ergebnis des Unterbaumes w (b) u ist die Markierung der Blätter links von p und w ist die Markierung der Knoten rechts von p. Das Wort kontextfrei hat mit der oberen truktur der Wörter zu tun: ein Wort v erscheint im Wort uvw im Kontext, der vom Präfix u und uffix w besteht. Da alle Produktionen die Form X..., X variabel, haben, ist die Anwendung vom Kontext eines Wortes abhängig. I Kontrast, die Regel xa ba erlaubt X durch b nur im Kontext (uffix fängt mit a an) zu ersetzen. sectatzaltzweifuenfeins satzaltzweifuenfeins 2.6 Eigenschaften kontextfreier prachen atz. Für zwei kontextfreie prachen L und L 2 sind auch die prachen L L 2 und L L 2 kontextfrei.
59 2.6. EIGENCHAFTEN KONTEXTFREIER PRACHEN 55 Beweis. Wir haben eine Grammatik G i = (Σ i, V i, i, R i ) für die prache L i (i =, 2), und ohne Beschränkung der Allgemeinheit können wir voraussetzen, dass V V 2 =.. Erzeugung der prache L L 2 : sei G die Grammatik mit terminalen ymbolen Σ Σ 2, Variablen V V 2 {}, wobei V V 2 das tartsymbol von G ist und den Produktionen 2 (*) zusammen mit allen Produktionen in R und R 2. Dann gilt L(G) = L L 2. In der Tat hat jeder Ableitungsbaum B der Grammatik G die Form oder 2 B B 2 wobei B i ein Ableitungsbaum der Grammatik G i für i =, 2 ist. Es gilt w B = W Bi L i. Also liegt ein Wort genau dann in L(G), wenn es entweder in L oder in L 2 liegt. 2. Erzeugung der prache L L 2 : ei G dieselbe Grammatik wie in., nur wird (*) durch die einzige Produktion 2 ersetzt. Die Ableitungsbäume von G haben die Form 2 B B 2 tatzaltzweifuenfzwei satzaltzweifuenfzwei wobei B i ein Ableitungsbaum der Grammatik G i für i =, 2 ist. Es gilt w B = w B w B2. Also liegt ein Wort genau dann in L(G), wenn es die Form w w 2, wobei w i L i für i =, 2 gilt, hat. atz 2. Falls L eine kontextfreie prache ist, ist L auch kontextfrei. Beweis. ei G = (Σ, V,, P ) eine Grammatik für L. Wir erweitern sie zu einer Grammatik G = (Σ, V {},, P ), wobei eine neue Variable ist, indem wir neue Produktionen, und ε hinzufügen. Dann gilt: L(G) = L. In der Tat:. L L(G): Für jedes Wort w = w w 2... w n L, wobei die w i in L liegen, haben wir Ableitungsbäume B i für w i in der Grammatik G, aus denen der folgende Ableitungsbaum für w hergestellt wird:
60 56 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN... B B 2 ε B n Der Ableitungsbaum für ε ist klar. 2. L(G) L : Für jedes Wort w L(G) haben wir einen Ableitungsbaum B mit Wurzel in der Grammatik G mit w = w B. Durch Induktion über die Tiefe i des Baumes B zeigen wir, dass w L : i = Hier ist B der Baum ε und w B = ε L. i i + Der Ableitungsbaum B hat eine der folgenden Formen: entweder B wobei B ein Ableitungsbaum in der Grammatik G ist, dann gilt oder w B L L, B B 2 sectkoraltzweifuenfeins koraltzweifuenfeins wobei B, B 2 Ableitungsbäume der Grammatik G sind, dann gilt w = w B w B2. Die Bäume B, B 2 haben eine Tiefe i, also ergibt die Induktionsvoraussetzung w B, w B2 L. Daraus folgt w L. Korollar. Die Klasse aller kontextfreien prachen enthält alle regulären prachen und ist unter den Operationen, und abgeschlossen. Bemerkung. Leider ist diese Klasse nicht unter Durchschnitt abgeschlossen. Um das zu zeigen, müssen wir Mittel zur Verfügung haben, um zu beweisen, dass eine prache nicht kontextfrei ist. Für reguläre prachen war das Pumping-Lemma
61 2.6. EIGENCHAFTEN KONTEXTFREIER PRACHEN 57 tatzaltzweifuenfdrei solch ein Mittel (siehe.8). Auch für kontextfreie prachen gilt ein, hier ein bisschen komplizierterer, atz desselben tils. Bevor wir ihn aber beweisen, wollen wir noch eine Eigenschaft der kontextfreien prachen erwähnen: satzaltzweifuenfdrei atz 3. (ohne Beweis) Falls L eine kontextfreie prache und L 2 eine reguläre prache ist, so ist L L 2 kontextfrei. Bemerkung 2. In einem Ableitungsbaum B können wir einen beliebigen Knoten p auswählen und durch B den Baum aller Nachfolger von p bezeichnen: B p Dann ist B ein A-Baum. Falls x das Wort aller Blätter von B ist, die vor den Blättern von B stehen, und y das Wort aller Blätter nach den Blättern von B : x p B y w B gilt w B = xw B y.
62 58 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN sectbspaltzweifuenfnull bspaltzweifuenfnull Beispiel. In dem Baum B: X Y X X wählen wir den Knoten y mit der Markierung Y. Dann ist B : Y X X Hier ist x =, w B = und y = ε. ei A die Variable, die den Knoten p markiert. Dann ist B ein verallgemeinerter Ableitungsbaum mit A an der Wurzel. Falls B ein beliebiger verallgemeinerter Ableitungsbaum mit derselben Markierung der Wurzel ist, können wir B durch B ersetzen und bekommen einen neuen Ableitungsbaum x A B y w B der das Wort xw B y erzeugt. In dem oberen Beispiel sei B : Y Z dann ergibt die Ersetzung von B durch B im Ableitungsbaum X Y Z Diese Überlegungen werden im Beweis des folgenden Pumping-Lemmas verwendet: Pumping-Lemma für kontextfreie prachen: Für jede kontextfreie prache L existiert eine Zahl n, so dass jedes Wort w in L mit der Länge w n eine Zerlegung w = uvxyz, mit u, v, x, y, z Σ und den folgenden Eigenschaften hat:. v ε oder y ε, 2. vxy n,
63 2.6. EIGENCHAFTEN KONTEXTFREIER PRACHEN uv r xy r z liegt in L für alle r =,, 2,.... Beweis. Wir haben eine Grammatik G mit L = L(G) und bezeichnen mit i = die Anzahl aller Variablen von G und mit k = die maximale Länge der rechten eite einer Produktion von G. Wir beweisen, dass die Zahl n = k i+ die gewünschte Konstante ist. ei w ein Wort aus L, das eine Länge größer gleich n hat. Wir wählen einen Ableitungsbaum B für w mit der kleinsten Anzahl an Knoten. Nach atz 2 in Abschnitt 2.4 wissen wir, dass B die Tiefe größer als i haben muss. Es existiert also in B ein Pfad der Länge i + in B. Jeder seiner i + Knoten, die keine Blätter sind, wird also mit einer Variablen markiert. Das ergibt i + Markierungen, obwohl es nur i Variablen gibt. Es müssen sich also Markierungen wiederholen. Wir können also zwei Knoten p und q aus B wählen, so dass. q ein Nachfolger von p ist, 2. p und q dieselbe Markierung A haben und 3. p die größte Tiefe unter Knoten mit. und 2. besitzt. Wir bezeichnen den Unterbaum von B, den alle Nachfolger von p bilden, als B. Man beachte, dass die Tiefe von B höchstens i + ist, weil der längste Pfad in B diese Länge hat (gäbe es einen längeren Pfad könnte man ein p mit größerer Tiefe in B wählen!). Dann hat B die folgende Form: B u p q z w B Das Wort w = w B hat also die Form w = uw z, wobei w = w B das Wort aller Blätter von B, u das Wort aller Blätter von B, die links von B stehen und z das Wort aller Blätter von B, die rechts von B stehen ist. Eine analoge ituation gilt für B selbst: sei B der Unterbaum aller Nachfolger von q. Dann hat B die folgende Form: p B q v y x B Das Wort w hat also die Form w = vxy, wobei w B = x. Hier gilt v ε oder y ε, denn falls v = y = ε, d.h., falls jeder Vorgänger von q im Baum B nur einen ohn hat, können wir einen kleineren Ableitungsbaum für w finden (aber B ist der kleinste!): Es genügt, in B den Unterbaum B durch B zu ersetzen.
64 6 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN Da der Baum B höchstens die Tiefe i + hat, gilt nach atz 2 in Abschnitt 2.4 außerdem vxy = w k i+ = n. Der Baum B sieht jetzt wie folgt aus: B u v p q y B z x B Da die Knoten p und q dieselbe Markierung tragen, können wir einen neuen Ableitungsbaum erstellen, indem wir B durch eine Kopie des Baumes B ersetzen: B u v v p p q y y B B z x B Da B keine Variablen in den Blättern hat, gilt dasselbe für den letzten Baum. Das zeigt, dass das Wort uvvxyyz zu L(G) = L gehört. Diesen Prozess können wir wiederholen: im letzten Baum ersetzen wir B durch B und erhalten uv 3 xy 3 z L, usw. Letztendlich können wir direkt B im Baum B durch B ersetzen und bekommen einen Ableitungsbaum für uxz. Beispiel 2. Die prache L = {a k ; k =,, 4, 9...} aller Wörter über {a} von quadratischer Länge ist nicht kontextfrei. In der Tat, gegeben sei n wie im Pumping-Lemma, setzen wir w = a n2 und beweisen, dass keine Zuerlegung w = avxyz die Eigenschaften besitzen kann. ei p = y + v (p > da y ε oder v ε). Aus vxy n folgt p n. Das Wort xv 2 xy 2 z L hat die Länge n 2 +p und dies muss ein Quadrat sein. Das ist ein Widerspruch, denn n 2 < n 2 + p < (n + ) 2 sectbspaltzweifuenfeins bspaltzweifuenfeins Die erste Ungleichung folgt aus p > und die zweite besagt, dass p < 2n +, was aus p n folgt. Beispiel 3. Die prache L = {a k b k c k ; k =, 2, 3,... }
65 2.7. NULLIERBARE VARIABLEN 6 ist nicht kontextfrei. Wir zeigen, dass keine Konstante n das Pumping-Lemma für L erfüllt. Wir wählen w = a n b n c n. Falls das Pumping-Lemma für L gilt, haben wir also eine Zerlegung a n b n c n = uvxyz, so dass v ε oder y ε und uv 2 xy 2 z L. Wir zeigen, dass das nicht möglich ist.. Falls y nur aus einem Buchstaben besteht, muss v zwei Buchstaben (also a und b) enthalten, denn sonst wären die drei Buchstaben nicht in gleicher Anzahl in uv 2 xy 2 z enthalten. Dann findet man aber in uv 2 xy 2 z ein b vor einem a, also gilt uv 2 xy 2 z L. 2. Falls v nur aus einem Buchstaben besteht, können wir für y analog zu. argumentieren. ctbspaltzweifuenfzwei bspaltzweifuenfzwei ctkoraltzweifuenfdrei koraltzweifuenfdrei 3. Falls v sowie y mehrere Buchstaben enthalten, findet man in uv 2 xy 2 z wieder ein b vor einem a. Beispiel 4. Zwei kontextfreie prachen, deren Durchschnitt nicht kontextfrei ist. ei L = {a n b n c k ; n, k =, 2, 3,... } die kontextfreie prache aus Beispiel.d in Abschnitt 2.5, Analog zeigt man, dass die prache L 2 = {a k b n c n ; n, k =, 2, 3,... } kontextfrei ist. Aber L L 2 = {a n b n c n ; n =, 2, 3,... } ist nicht kontextfrei, wie wir oben gesehen haben. Korollar 2. Kontextfreie prachen sind nicht unter der Komplementbildung abgeschlossen, d.h., es gibt kontextfreie prachen L Σ, so dass L = Σ L nicht kontextfrei ist. In der Tat folgt aus der DeMorganschen Regel L L 2 = L + L 2, dass eine Klasse von prachen, die unter + und Komplementbildung abgeschlossen ist, auch unter Durchschnitt abgeschlossen sein muss. tnullierbarevariablen sectdfnullierbar dfnullierbar 2.7 Nullierbare Variablen In diesem Abschnitt zeigen wir, wie man Produktionen des Typs A ε loswerden kann. Erst zeigen wir einen einfachen Algorithmus, der entscheidet, ob eine Grammatik das leere Wort erzeugt. Definition. In einer kontextfreien Grammatik heißt eine Variable A nullierbar, falls aus ihr ε abgeleitet werden kann, d.h. falls A ε. Beobachtung. Für eine kontextfreie Grammatik G gilt: ε liegt in L(G) genau dann, wenn das tartsymbol nullierbar ist. Berechnung der Menge V Rekursion: aller nullierbaren Variablen erfolgt durch die folgende
66 62 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN Anfang: V = Rekursiver chritt: V = V {A V ; es gibt eine Produktion A B B 2... B n mit B, B 2,..., B n V }. Also liegen nach dem ersten Durchgang in V alle Variablen A, für die es eine Produktion A ε gibt. Nach dem zweiten chritt alle Variablen, für die es eine Produktion A B B 2... B n mit Produktionen B ε,..., B n ε gibt, usw. Nach dem letzten Durchgang hat V die folgende Eigenschaft: Für jede Produktion A B B 2... B n mit B, B 2,..., B n V gilt A V. rammatikohneanachepsilon Es ist leich zu sehen, dass jede durch diese rekursive Prozedur in V gelegte Variable nullierbar ist. Umgekehrt, sei A nullierbar, und sei n die Länge der Ableitung von ε aus A. Dann liegt A nach dem n-ten Durchgang der Prozedur oben in V. Dies ist klar für n = ; für größere n benutzen wir Induktion: ei A B... B n die erste Produktion, die die Ableitung A ε benutzt. Dann haben wir kürzere Ableitungen für B,..., B n, d.h. diese Variablen liegen in V nach der Induktionsvoraussetzung. Die obige Eigenschaft von V beweist A V. rammatikohneanachepsilon atz. Jede kontextfreie prache L, die ε nicht enthält, hat eine kontextfreie Grammatik ohne Produktionen A ε. In der Tat zeigen wir einen Algorithmus, der für jede kontextfreie Grammatik G, für die ε / L(G) gilt, eine kontextfreie Grammatik G erzeugt mit L(G) = L(G) so dass G keine Produktionen A ε hat. Beweis. ei G die Grammatik, die aus G dadurch entsteht, dass neue Produktionen hinzugefügt werden: für jede Produktion B w w 2... w i Aw i+... w n, wobei A nullierbar ist, fügen wir die Produktion B w w 2... w i w i+... w n hinzu. Diese Prozedur wird solange wiederholt, bis keine neue Produktionen entstehen. Das ändert bestimmt nicht die akzeptierte prache, d.h. L(G) = L(G ). Jetzt bezeichnen wir durch G die Grammatik, die wir erhalten, wenn wir aus G alle Produktionen der Form A ε entfernen. Es ist klar, dass L(G) L(G ). Zeigen wir L(G ) = L(G). Damit ist der atz bewiesen. Für jedes Wort w in L(G ) wählen wir den kleinsten Ableitungsbaum B. Wir beweisen, dass kein Blatt von B mit ε markiert ist. Dann ist B ein Ableitungsbaum der Grammatik G, also w L(G). Falls aber ein Blatt t mit ε markiert wäre, könnten wir einen kleineren Ableitungsbaum finden: sei t der Vater von t und t sein Großvater (aufpassen: t hat einen Großvater, d.h. t ist nicht die Wurzel. Dann hätte B die Form ε Dann wäre aber w = ε, was der Voraussetzung ε / L(G ) wiederspräche.) ei X die Markierung des Großvaters t und w,..., w n die Markierungen seiner öhne. Einer davon, der i-te, ist wohl t. Da sein ohn t mit ε markiert ist, wird t mit einer nullierbaren Variablen A markiert: BAUM B
67 2.8. CHOMKY-NORMALFORM 63 X t w... w i A w i+... w n t ε Aufgrung der Konstruktion von G ist dann auch B w... w i w i+... w n eine Produktion, die den folgenden kleineren Ableitungsbaum B ergibt: BAUM B X w... w i w i+... w n Das ist der gesuchte Widerspruch. Bemerkung. Für Grammatiken G, die das leere Wort erzeugen (also mit nullierbar), gibt es einen ähnlichen atz: Wir können eine Grammatik G mit L(G) = L(G) erzeugen, die die Produktion ε, aber keine andere Produktion der Form A ε (A ) enthält. Der Beweis ist fast derselbe. sec:cnf ctdfchomskynormalform dfchomskynormalform ctbspaltzweiechseins bspaltzweiechseins 2.8 Chomsky-Normalform Wir zeigen jetzt, dass jede kontextfreie Grammatik so modifiziert werden kann, dass sie (ohne die erzeugte prache zu ändern) nur Produktionen der Form ε, A a oder A BC hat, wobei A, B, C nichtterminale ymbole sind und a ein Terminalsymbol ist. Der erste Typ, ε, ist nur für die Erzeugung des leeren Wortes nötig. Wir werden uns erst auf kontextfreie prachen ohne ε konzentrieren und daher nur Produktionen A a oder A BC benutzen. Falls ε in der prache liegt, schreiben wir dann immer noch ε am Ende als eine der Produktionen. Definition. Chomsky-Normalform Eine kontextfreie Grammatik ist in Chomsky-Normalform, falls sie nur Produktionen der Form A BC (A, B, C Variablen) A a (A Variable, a Terminalsymbol) oder ε hat. Beispiel. Die prache () wird von G = ({, }, {, A},, P ) mit den Produktionen P :
68 64 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN A A A ε erzeugt. Das ist keine Normalform-Grammatik, jedoch kann man eine Normalform- Grammatik, die diese prache erzeugt, finden, wie wir noch zeigen werden. Zuerst wollen wir aber einen wichtigen Begriff der Graphentheorie einführen: Bemerkung. TOPOLOGICHE ORTIEREN Gegeben sei ein gerichteter Graph G = (V, E), eine ortierung seiner Knoten ist eine bijektive Abbildung ord V {, 2,..., n}. ie heißt topologisch, falls für jede Kante (v, w) in E gilt ord(v) < ord(w). Z.B. hat von den folgenden Graphen G und G 2 G G 2 der Graph G 2 keine topologische ortierung, da er ein Dreieck enthält es ist klar, dass nur azyklische Graphen topologische sortiert werden können. Der Graph G hat die folgenden topologischen ortierungen: Jeder azyklische Graph hat eine topologische ortierung: man findet einen Knoten x ohne Vorgänger (x kann gefunden werden, wenn wir mit einem beliebigen Knoten starten und uns solange wie möglich in Gegenrichtung der Pfeile bewegen kein Knoten wird wiederholt besucht, also steht am Ende ein Knoten ohne Vorgänger). Man setzt ord(x) = und entfernt x aus dem Graphen. Jetzt wird der Prozess mit der Bewertung ord = 2 wiederholt, usw. Genauer: wir haben den folgenden Algorithmus für topologisches ortieren. Wir bezeichnen mit i = Anzahl aller schon sortierten Knoten und W = Menge aller noch nicht sortierten Knoten. Initialisierung: i = und W = V Rekursiver chritt: while ein Knoten x W ohne Vorgänger in W existiert do i = i + ; ord(x) = i; W = W {x} od Ende: Falls n = i, ist der Graph azyklisch und ord ist seine topologische ortierung. Falls n > i, ist der Graph nicht azyklisch. Normalisierungsalgorithmus: Für jede kontextfreie Grammatik G mit ε L(G) konstruieren wir eine Grammatik in Chomsky-Normalform, die dieselbe prache erzeugt. Wir illustrieren die einzelnen chritte jeweils anhand der Grammatik aus Beispiel in Abschnitt 2.8. chritt : Alle Produktionen bekommen die Form A w, wobei w entweder ein Wort aus Variablen oder ein einziges Terminalsymbol ist. Man ersetzt jedes Termi-
69 2.8. CHOMKY-NORMALFORM 65 nalsymbol a durch eine neue Variable D a und fügt die Produktion D a a zu P hinzu. Beispiel chritt : Die obige Grammatik (Beispiel in Abschnitt 2.8) wird durch die Grammatik G = ({, }, {, A, D, D },, R ) mit den Produktionen R ersetzt: D A A D D A ε D D chritt 2: Alle Produktionen A w, bei denen w länger als zwei ist, werden durch Produktionen des Typs A BC ersetzt. tatt A B B 2... B m schreibt man A B C C B 2 C 2 C 2 B 3 C 3 C m 3 B m 2 C m 2 C m 2 B m B m wobei C,..., C m 2 neue Variablen sind. Beispiel chritt 2: In der obigen Grammatik G ersetzen wir A D D A durch A D C C D A. chritt 3: Die Produktionen A ε werden entfernt, siehe Abschnitt 2.7. Beispiel chritt 3: Für die Grammatik aus chritt 2, also die Grammatik mit D A A D C ε den Produktionen C D A D D gilt V = {A}, so dass die Modifikation die Produktionen D A D A D C C D A D D D hat. chritt 4: Alle Produktionen A B (A, B Variablen) werden ersetzt. ei H der gerichtete Graph, dessen Knoten die Variablen und dessen Kanten genau die unerwünschten Produktionen A B unserer Grammatik sind.. Die Produktionen A A werden ignoriert und alle Kreise des Graphen H entfernt. ei A n... A A 2 A 3 ein Kreis der Länge n. Wir entfernen A 2,..., A n aus der Liste aller Variablen und ersetzen A i durch A in jeder Produktion der Grammatik (für i = 2,..., n). Diesen Prozess wiederholen wir solange, bis kein Kreis übrigbleibt. Falls eine der Variablen des Kreises ist, wählen wir immer = A. 2. In der modifizierten Grammatik ist der Graph H azyklisch, und wir können seine Knoten, d.h. alle (übriggebliebenen) Variablen, topologisch sortieren:
70 66 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN V = {A, A 2,..., A m }. Wir entfernen alle Produktionen A i A j systematisch nach dem Index i = m, m,..., mit dem folgenden rekursiven Prozess: i = m Keine Produktion A m A j existiert. i i Nachdem alle Produktionen A m A j, A m A j,..., A i A j entfernt wurden, ersetzen wir jede Produktion A i A j durch A i w für alle Wörter w, für die A j w eine Produktion ist. Beispiel chritt 4: Die nach chritt 3 erhaltene Grammatik definiert den Graphen D C Er ist azyklisch und kann z. B. wie folgt topologisch sortiert werden: 2 3 D C Wir ersetzen also D durch und C D durch C : D A A D C C D A D D Bemerkung 2. Dieser 4-chritt-Algorithmus berechnet die Chomsky-Normalform für alle kontextfreien Grammatiken, die ε nicht enthalten. Für allgemeine kontextfreie Grammatiken G stellen wir zuerst fest, ob nullierbar ist. Falls ja, werden die 4 chritte oben um den folgenden chritt ergänzt: chritt 5: Die Produktion ε wird hinzugefügt. Beispiel 2. Für die folgende Grammatik G = ({a, b}, {, A, B},, P ) mit den Produktionen A aa A B bb B a b ε finden wir die Chomsky-Normalform. chritt : neue Variablen D a, D b und Produktionen A D a A A B D b B B D a D b ε D a a D b b chritt 2: entfällt. chritt 3: Die Menge V wird in drei rekursiven chritten berechnet:
71 2.8. CHOMKY-NORMALFORM 67 ctbspaltzweiechszwei bspaltzweiechszwei V =, {B}, {A, B}, {, A, B}. Also: ε L(G). Neue Produktionen: A D a A D a A B D b B D b B D a D b D a D b D a a D b b chritt 4: Der Graph aller Variablen sieht wie folgt aus: A D a B D b Wir entfernen den Kreis A B, indem wir die Variablen A und B löschen und die Produktionen modifizieren (statt A und B wird verwendet): D a D a D b D b D a D b D a D b D a a D b b Die Produktion wird ignoriert. Die anderen formen den folgenden Graphen: D a D b Die Produktion D a wird also durch a, D b durch b ersetzt: D a a D b b D a a D b b chritt 5: Da nullierbar ist, müssen wir noch ε einfügen. Wir bekommen die Chomsky-Normalform: D a a D b b ε D a a D b b Beispiel 3. Wir wollen die Grammatik G = ({, }, {A, B, C, X, Y, Z,, T },, P ) mit den Produktionen A B C T A BT T X T Y T Z B CT C AT T ε X T A AT Y Z T Y Z in die Chomsky-Normalform bringen. Die einzelnen chritte werden folgendermaßen durchgeführt. chritt : neue Variablen D und D werden eingeführt und die letzten beiden Zeilen werden durch die folgenden Produktionen ersetzt:
72 68 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN Y D D Z T Y D D D D Z D D chritt 2: neue Variable E wird eingeführt und die Produktion (aus chritt ) Z D D Z wird durch Z D E E D Z ersetzt. chritt 3: V = {T }, also wird die Produktion T ε der ursprünglichen Grammatik entfernt, und T darf auf den rechten eiten verschwinden. Nach diesem chritt haben wir also die folgenden Produktionen: A B C T A BT B T X X T Y Y T Z Z B CT C C AT A X T A AT A Y D D Z T Y Y D D D E D D E D Z Die Regel wird nun entfernt. (Andere überflüssige Regeln, z.b., T, entfernen wir hier nicht, um den allgemeinen Algorithmus zu illustrieren.) chritt 4: Der Graph H sieht für die letzte Grammatik wie folgt aus: X A B D D Z Y C E T Wir entfernen die Kreise (einfach weglassen), A X A (X wird gestrichen und durch A ersetzt) und A B C A (B, C werden gestrichen und durch A ersetzt): A T A AT A T A T Y Y T Z Z Y D D Z T Y Y D D D E D D E D Z Der neue Graph H hat nur einen Zyklus: A A. Den dürfen wir einfach weglassen und erhalten einen azyklischen Graphen, der z.b. wie folgt topologisch sortiert werden kann: A D D Z 3 Y 4 E 7 T 8 Wir entfernen erst die Produktion Z Y und ersetzen sie durch Z D D, also
73 2.9. ALGORITHMEN FÜR FORMALE PRACHEN 69 haben wir jetzt für Z die folgenden Produktionen: Z T Y D D D E D D. Daraufhin werden die Produktionen A Z und A Y entfernt und durch die folgenden zusätzlichen Produktionen A T Y D D D E D D ersetzt. Insgesamt haben wir damit für A die Produktionen A AT T A T Y D D T Z D D D E. Als letztes ersetzen wir A durch die zusätzlichen Produktionen AT T A T Y D D T Z D D D E. omit erhalten wir die Chomsky-Form unserer Grammatik AT T A T Y D D T Z D D D E T A AT T A T Y D D T Z D D D E Y D D Z T Y D D D E D D D D E D Z sectalgoformprachen 2.9 Algorithmen für formale prachen. Reguläre prachen Gibt es einen Algorithmus, der für eine beliebige reguläre prache L und ein beliebiges Wort w entscheidet, ob w in L liegt? Das heißt: der Algorithmus hat zwei Eingaben: L (geeignet codiert) und w. Und die Ausgabe ist JA/NEIN. Nehmen wir an, dass die Codierung der regulären prachen L durch eine Beschreibung eines DEA, der L akzeptiert, dargestellt wird. Es gibt den folgenden Algorithmus, der für jeden DEA M und jedes Wort w = s... s n entscheidet, ob M das Wort w akzeptiert: Für n = ist die Antwort JA, genau wenn der Initialzustand q final ist. Für n wird die Maschine M mit dem Eingabewort w simuliert. Unser Algorithmus berechnet also q = δ(q, s ) q 2 = δ(q, s 2 ) q n = δ(q n, s n ), und die Antwort ist genau dann JA, wenn q n final ist. 2. Kontextfreie prachen Die Frage, ob für eine beliebige kontextfreie prache L ein gegebenes Wort w zu L gehört kann von einem effizienten Algorithmus entschieden werden, der Cocke- Younger-Kasami (CYK) Algorithmus heißt. Wir nehmen an, dass die Codierung von kontextfreien prachen durch eine Grammatik in Chomsky-Normalform geschieht. Die Entscheidung, ob ein gegebenes Wort w (Eingabe) in L liegt, ist trivial für w = ε: Die Antwort ist JA genau dann, wenn ε eine Produktion von G ist. Für nichtleere Wörter benutzen wir die Technik der dynamischen Programmierung. Zuerst verallgemeinern wir die Anfrage, ob w in L liegt, d.h., ob w gilt, wie folgt: gegeben Variable A V und nichtleeres Wort w Σ entscheide, ob A w. Die Idee ist, dass wir für jedes Wort w = s... s n den Teil s i s i+... s i+j der Länge j, der in s i beginnt, mit w i,j bezeichnen und wir die Frage
74 7 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN gilt A w i,j? für alle i =,..., n und j =,..., n i entscheiden. Da w = w,n, wird dies unsere Aufgabe lösen. Wir entscheiden A w i,j mit Induktion über j. Der Fall j = bedeutet, dass das Terminalsymbol s i von A ableitbar ist. Da unsere Grammatik die Chomsky-Normalform hat, ist die Antwort JA, genau wenn A s i eine Produktion ist. ei j > und sei A w i,k für alle i und k j entschieden. In der Ableitung A w i,j bezeichnen wir mit A BC die erste angewendete Produktion: A B C sectbspaltzweiieben bspaltzweiieben s i s i+... s i+k s i+k... s i+j Dann gilt: (*) B w i,k und C w i+k,j k für ein k =,..., j. Umgekehrt folgt aus (*), dass A w i,j gilt. Um den CYK-Algorithmus genau zu beschreiben, bezeichnen wir V i,j = {A V ; A w i,j } für alle i =,..., n und j =,..., n i +. CYK-Algorithmus Eingabe: Eine kontextfreie Grammatik G = (Σ, V,, P ) in Chomsky-Normalform und ein Wort w = s s 2... s n über Σ. Erster chritt: Für alle i =,..., n setzt man V i, = {A V ; A s i ist eine Produktion} Rekursiver chritt: Für alle i =,..., n und j = 2,..., n setzt man V i,j = {A V ; es gibt k =,..., j und B V i,k, C V i+k,j k so, dass A BC eine Produktion ist} Ausgabe: JA, falls in V,n liegt, NEIN sonst. Beispiel. ei G = ({a, b}, {, A, B, C}, R, ) die Grammatik mit den folgenden Produktionen: AB BC A BA a B CC b C AB a Für das Wort baaba wird der CYK-Algorithmus die folgenden Mengen V i,j berechnen: i j B A, C A, C B A, C 2, A B, C, A 3 B B 4, A, C 5, A, C Da in V,5 liegt, gehört baaba zur prache L(G).
75 2.. KELLERAUTOMATEN 7 2. Kellerautomaten Es gibt kontextfreie prachen, die nicht regulär sind, also von keinem endlichen Automaten akzeptiert werden können. Wir brauchen also stärkere Maschinen für kontextfreie prachen. Nehmen wir das Beispiel der prache L aller Palindrome (Beispiel 3 in Abschnitt 2.): um zu verifizieren, dass die Eingabe a a 2... a n, die ein read-only Kopf liest, ein Palindrom ist, müssen wir uns im Laufe der Bearbeitung wenigstens an die erste Hälfte des Eingabewortes erinnern (um sie mit der anderen Hälfte vergleichen zu können). Das schafft ein endlicher Automat nicht, denn dazu brauchen wir einen potenziell unendlichen peicher. Falls wir jetzt aber zu dem Automaten einen externen peicher hinzufügen, in dem die Eingabe gespeichert werden kann, ist es möglich, prachen wie die aller Palindrome zu akzeptieren. Der externe peicher wird die Form eines Kellers (oder tack, also last-in-first-out peichers) haben. Das bedeutet, dass in jedem chritt das erste ymbol aus dem Keller gelesen und weggeworfen wird (pop-operation) und ein oder mehrere neue ymbole gespeichert werden (push-operation). Wir zeigen, dass jede kontextfreie prache von einem endlichen Automaten mit externem Keller akzeptiert werden kann und umgekehrt, solche Automaten akzeptieren gerade die kontextfreien prachen. Leider müssen wir hier von Anfang an mit nichtdeterministischen Automaten arbeiten, denn in diesem Berechnungsmodell gilt nicht, dass jeder nichtdeterministische Automat von einem deterministischen Automaten ersetzt werden kann. Wir arbeiten hier mit zwei Alphabeten: Σ das Alphabet der Eingabesymbole K das Alphabet der Kellersymbole. Der Inhalt des Kellers wird von n Zeichen k,..., k n geformt. Dies wird als ein Wort k k 2... k n K beschrieben (wegen ε K kann der Keller auch leer sein). Die Übergangsfunktion δ hat hier, statt zwei Variablen q (Zustand) und s (Eingabe), drei Variablen: die dritte, k K, ist der erste Buchstabe des Kellerwortes. Aufgrund des Tripels (q, s, k) Q Σ K wird entschieden werden, welcher der neue Zustand q Q wird und welches Wort w K im Keller gespeichert werden soll; das schreiben wir in der Form s,k/w q q Also soll δ eine Untermenge von (Q Σ K) (Q K ) sein. Aber da wir auch spontane Übergänge (ohne Eingabe, vergleiche mit Automaten, Absatz.3) erlauben wollen, also Produktionen der Form (q, #, k) (q, w), ist δ eine Untermenge von (Q (Σ {#}) K) (Q K ). Beispiel. Die prache n n (n =, 2, 3,...) wird von dem Kellerautomat akzeptiert, der (a) im Initialzustand q immer Eingabe in den Keller speichert, wenn er k oder sieht:,k /k,/ q q (b) Eingabe dazu führt, dass eine aus dem keller entfernt wird und der Zustand zu q geändert wird: q,/ε q und q,/ε q und
76 72 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN (c) Beim Kellertop k wird spontan k entfernt: q #k /ε q Hier der ganze Kellerautomat:,k /k,/ q,/ε,/ε #,k /ε q Definition. Ein Kellerautomat (englisch: pushdown automaton) P ist ein 7-Tupel P = (Q, Σ, K, δ, q, k, F ) wobei Q eine endliche Menge, die Zustandsmenge, ist, Σ und K zwei Alphabete (Eingabe- und Kelleralphabet) sind, δ eine endliche Untermenge von (Q (Σ {#}) K) (Q K ) ist, deren Elemente mit (q, s, k) (q, w) bezeichnet werden und Übergangsregeln heißen, q Q der Initialzustand ist, F Q die Menge aller Finalzustände ist und k K das tartsymbol ist. Bemerkung. Wie arbeitet ein Kellerautomat? Am Anfang hat er den Zustand q und im Keller steht der Buchstabe k. Jetzt werden die folgenden chritte durchgeführt: Erster chritt: ist entweder spontan, d.h., der Zustand q geht in den Zustand q über und der Kellerinhalt wird von k zu w verändert, falls (q, #, k ) (q, w ) eine der Übergangsregeln ist. Oder der erste chritt ist nicht spontan: q geht nach q über und der Kellerinhalt ändert sich zu w, falls (q, s, k ) (q, w ) mit s Σ eine der Übergangsregeln ist. Im zweiten Fall wird s von der Eingabe entfernt, und s 2 wird als nächstes Eingabesymbol gelesen. Zweiter chritt: dieser tritt nur dann ein, wenn der Keller nach dem ersten chritt nicht leer ist. ei k das top-element des Kellers. Wir gehen von dem Zustand q zu q 2 über und ändern den Kellerinhalt von w zu w 2 entweder spontan: (q, #, k ) (q 2, w 2 ) oder nicht spontan: (q, s i, k ) (q 2, w 2 ), wobei i = oder i = 2 (je nachdem, ob s im chritt entfernt wurde oder nicht). Im zweiten Fall wird s i von der Eingabe entfernt, usw. Formal: Definition. Eine Konfiguration eines Kellerautomaten ist ein Tripel (q, s... s n, k... k m ) in Q Σ K das den momentanen Zustand q, die (restliche) momentane Eingabe s... s n Σ und den momentanen Kellerinhalt k... k m K beschreibt. Die Folgekonfigurationen einer Konfiguration (q, s... s n, k k 2... k m ) sind alle Konfigurationen (q, s 2... s n, wk 2... k m ), wobei (q, s, k ) (q, w) eine Regel ist,
77 2.. KELLERAUTOMATEN 73 sowie alle Konfigurationen (q, s... s n, wk 2... k m ), wobei (q, #, k ) (q, w) eine Regel ist. Wir schreiben C C falls C eine Folgekonfiguration der Konfiguration C ist. Wie oben, bezeichnet die transitive und reflexive Hülle von. Definition. (a) Konfigurationen (q, s... s n, k ) heißen initial. Hier ist s... s n die (ganze) eingehend. (b) Konfiguration (q, ε, ε) wobei q F heißen akzeptierend. D.h. der Keller ist leer (deswegen keine weitere chritte möglich), es gibt keinen Rest der Eingabe und der Zustand ist akzeptierend. ectbspaltzweiachteins bspaltzweiachteins (c) Ein Wort w = s... s n Σ wird von dem Kellerautomaten P akzeptiert, falls wenigstens eine akzeptierende Berechnung von w möglich ist. D.h., von der Initialkonfiguration (q, w, k ) eine akzeptierende Konfiguration erreicht werden kann: (q, w, k ) (q, ε, ε) für ein q F. Die prache aller von P akzeptierten Wörter ist durch L(P ) bezeichnet. Kurz L(P ) = {w; w Σ und es gibt q F mit (q, w, k ) (q, ε, ε)}. Beispiel (Fortsetzung) Der Kellerautomat akzeptiert alle Wörter n n. Zum Beispiel die Berechnung von ist (q,, k ) (q,, k ) (q,, k ) (q,, k ) (q, ε, k ) (q, ε, ε) Umgekehrt, jedes akzeptierende Wort hat die Form n n. In der tat, wenn (q, w, k ) (q, ε, ε) gilt, muss die vorletzte Konfiguration dieser Berechnung (q, ε, k ) sein. Die Anzahl n von chritten der Berechnung in denen q als Zustand bleibt entspricht dem Anfang n von w. Dann kommt ε (und wird nicht verlassen werden). Da die vorletzte Konfiguration keine im peicher hat, müssen genau n chritte passieren, d.h., w = n n. Beispiel 2. Palindrome über {a, b} von gerader Länge. D.h., L besteht aus ww R mit w {a, b}. Der Automat bleibt im Zustand q und speichert einfach die Eingabe q a,x/ax b,x/bx q wobei x = a, b oder k In der zweiten Hälfte vergleicht er Eingabe und Kellertop und wenn sie gleich sind, schmeißt er den Kellertop weg q a/a/ε b,b/ε q
78 74 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN Wenn er am Ende k sieht, schmeißt er es spontan weg: q Jedes Wort ww R wird akzeptiert. Beispiel a,x/ax b,x/bx a,a/ε b,b/ε #,k /ε sectbspaltzweiachtdrei bspaltzweiachtdrei sectbspaltzweiachtvier bspaltzweiachtvier (q, abba, k ) (q, bba, ak ) (q, ba, bak ) (q, a, ak ) (q, ε, k ) (q, ε, ε) Beispiel 3. Jeder endliche, nichtdeterministische Automat M kann als Kellerautomat, der nie auf den Keller zugreift, aufgefasst werden. Genauer: es genügt, die Übergangsregeln (q, s) q von M in die Form (q, s, k ) (q, k ) zu übersetzen und die spontanen Übergänge (q, #, k ) (q, ε) für alle finalen Zustände hinzuzufügen. Bemerkung 2. In den vorigen Beispielen hatten wir schon eine kontextfreie Grammatik, und wir konstruierten einen zusätzlichen Kellerautomaten. Es gibt aber viele Beispiele, bei denen es auf den ersten Blick nicht klar ist, was für eine Grammatik hier zu definieren wäre, aber die Konstruktion eines Kellerautomaten ist intuitiv klar. Beispiel 4. Die prache L aller Wörter in {a, b} mit derselben Anzahl von a s und b s. Der Kellerautomat P speichert am Anfang das gelesene ymbol a oder b zum tartsymbol k hinzu und ändert den Zustand zu q : (q, a, k ) (q, ak ) (q, b, k ) (q, bk ). Danach speichert P entweder eine Reihe von a s (falls bisher mehr a s als b s gelesen wurden), und in diesem Fall führt jedes gelesene b zur Pop-Operation eines a:. (q, a, a) (q, aa) 2. (q, b, a) (q, ε) oder umgekehrt, P speichert eine Reihe von b s (falls mehr b s als a s gelesen wurden): 3. (q, b, b) (q, bb) 4. (q, a, b) (q, ε) Falls im Kellertop k steht, kann P spontan in den Haltezustand q 2 F übergehen: (q, #, k ) (q 2, ε). Genauer: der folgende Kellerautomat akzeptiert L: a,a/aa b,a/ε b,b/bb a,b/ε a,k /ak b,k q /bk q #,k /ε q 2
79 2.. KELLERAUTOMATEN UND KONTEXTFREIE PRACHEN Kellerautomaten und kontextfreie prachen Wir zeigen jetzt, dass jede kontextfreie prache von einem Kellerautomaten akzeptiert werden kann. Umgekehrt gilt, dass jede von einem Kellerautomaten akzeptierte prache kontextfrei ist. Also gilt zwischen kontextfreien prachen und Kellerautomaten dieselbe Beziehung wie zwischen regulären prachen und endlichen (nichtdeterministischen) Automaten. Konstruktion eines Kellerautomaten Für jede kontextfreie Grammatik G = (Σ, V,, P ) definieren wir einen Kellerautomaten P G mit einem einzigen Zustand q (der initial sowie final ist), dem Eingabealphabet Σ und dem Kelleralphabet Σ V, wobei das Kellerstartsymbol ist. Die Übergangsregeln sind wie folgt:. (q, x, x) (q, ε) für alle x Σ, (also wird eine pop-operation in dem Falle durchgeführt, dass die Eingabe mit dem Top-Element des Kellers übereinstimmt) und 2. (q, #, A) (q, w) für alle Ableitungsregeln A w der Grammatik G (also erfolgt eine spontane Ersetzung des Top-Elements des Kellers durch ein Wort nach den Produktionen der Grammatik). Also P G = ({q}, Σ, Σ V, δ, q,, {q}), wobei δ von den Übergangsregeln. und 2. geformt wird. Beispiel. Die Grammatik für Palindrome über Σ = {a, b}: ergibt den Kellerautomaten ε a b aa bb,#ε,#/a,#/bb a,a/ε b,b/ε q Jedes Wort aus L(g) wird akzeptiert: wir formen einen yntaxbaum und durchsuchen ihn mit Tiefensuche und bekommen eine Berechnung: Beispiel abbba a a (q, abbba, ) (q, abbba, aa) (q, bbba, a) (q, bbba, bba) (q, bba, ba) (q, bba, bba) (q, ba, ba) (q, a, a) (q, ε, ε) b b b
80 76 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN Bemerkung. Ein Baum wird Tiefensuche durchsucht, falls wir alle Knoten wie folgt besuchen:. Der erste besuchte Knoten ist die Wurzel. 2. Falls der besuchte Knoten kein Blatt ist, ist der nächste besuchte Knoten sein erster ohn. 3. Falls der besuchte Knoten x ein Blatt ist und noch nicht alle Knoten besucht wurden, gehen wir von x in Richtung Wurzel, bis wir den ersten Knoten y antreffen, der einen noch nicht besuchten ohn hat. Wir besuchen als nächstes den ersten noch nicht besuchten ohn von y. Der Baum B wird wie angedeutet depth-first durchsucht: BAUM B TIEFENUCHE sectatzaltzweineuneins satzaltzweineuneins 9 atz. Für jede kontextfreie Grammatik G akzeptiert der oben konstruierte Kellerautomat P G die prache L(G). Beweis.. Jedes Wort w in L(G) wird von P G akzeptiert. Falls nämlich B ein Ableitungsbaum für w ist, können wir eine Berechnung, die w akzeptiert, wie folgt beschreiben: Der Ableitungsbaum wird depth-first durchsucht. Jeder chritt dieser Durchsuchung entspricht einem chritt der Berechnung, wobei im Kellertop immer die Markierung des momentanen Knotens gespeichert wird. In jedem Knoten, der kein Blatt ist und der einer Produktion A a... a n entspricht, ändert sich die Konfiguration von P G spontan, entsprechend der Übergangsregel (q, #, A) (q, a... a n ). Zum Beispiel, am Anfang a a 2... a n w ändert P G die Konfiguration wie folgt (q, w, ) (q, w, a a 2... a n ), und die Durchsuchung des Ableitungsbaumes geht zum ganz links stehenden ohn der Wurzel über. (Im Top des Kellers steht also die Markierung des momentanen Knotens!) In jedem Blatt markiert mit a benutzen wir die Übergangsregel (q, a, a) (q, ε). Nachdem der ganze Baum durchsucht wurde, erhalten wir die akzeptierende Konfiguration (q, ε, ε).
81 2.. KELLERAUTOMATEN UND KONTEXTFREIE PRACHEN Umgekehrt, falls w akzeptiert wird, konstruieren wir einen Ableitungsbaum für w. Die Konstruktion folgt eine akzeptierende Berechnung von w. Der Baum wird chritt für chritt depth-first konstruiert; in jedem Berechnungsschritt erzeugen wir einen neuen Knoten des Baumes und markieren ihn mit dem Top-Element des Kellers. Der erste chritt muss also darin bestehen, dass die Wurzel erzeugt und mit markiert wird. Weitere chritte: (a) Falls die Berechnung aufgrund der spontanen Übergangsregel (q, #, A) (q, a... a n ) weiter geht, erzeugen wir n neue öhne des momentan besuchten Knotens und markieren sie mit a,..., a n. Da der Baum depthfirst untersucht wird, gehen wir zum ganz links stehenden ohn über (der, wie gewünscht, mit dem Top-Element a des Kellers markiert wird). (b) Falls die Übergangsregel (q, a, a) (q, ε) benutzt wurde, bleibt der momentan besuchte Knoten ein Blatt, und wir gehen (depth-first) zum nächsten Knoten über. Bemerkung 2. In dem letzten Beweis konstruierten wir einen Kellerautomaten, der nur einen Zustand hat. Das ist im Vergleich mit endlichen Automaten (und deren Zustandsminimierung) überraschend. Eigentlich gilt aber: Jeder Kellerautomat P kann durch einen Kellerautomaten P mit nur einem Zustand simuliert werden. ctatzaltzweineunzwei satzaltzweineunzwei (Die Idee der imulation ist, dass der Automat P die folgenden Kellersymbole (q, k, q ) Q Γ Q hat und, falls P im Zustand q das Topsymbol k im Keller liest und den Zustand zu q ändert, entspricht dies dem ymbol (q, k, q ) im Top des Kellers von P.) Wir führen hier den Beweis dieses imulationssatzes nicht durch. atz 2. Eine prache ist genau dann kontextfrei, wenn sie von einem Kellerautomaten akzeptiert wird. Beweis. Jede kontextfreie prache wird, nach atz in Abschnitt 2., von einem Kellerautomaten akzeptiert. Umgekehrt beweisen wir für jeden Kellerautomaten P, dass die prache L(P ) kontextfrei ist. Wir nehmen an, dass P nur einen Zustand hat (siehe vorige Bemerkung). Die Übergangsregeln von P werden als Produktionen einer Grammatik G wie folgt übersetzt:. statt (q, x, k) (q, k... k n ) schreibt man k xk... k n und 2. statt (q, #, k) (q, k... k n ) schreibt man k k... k n. Genauer: wir formen die kontextfreie Grammatik G = (Σ, Γ, k, P ), deren Variablen die Kellersymbole von P sind und deren Produktionen die obige Form. und 2. haben. Der Beweis, dass L(G) = L(P ) folgt analog zum Beweis von atz in Abschnitt 2.: Falls ein Wort w von G erzeugt wird, d.h., falls wir einen Ableitungsbaum für w haben, können wir den Ableitungsbaum depth-first durchsuchen, und wir bekommen eine akzeptierende Berechnung für den Kellerautomaten P : die beginnt mit
82 78 KAPITEL 2. KONTEXTFREIE PRACHEN UND KELLERAUTOMATEN der Initialkonfiguration (q, w, k ) und geht mit den Übergangsregeln weiter, die den benutzten Produktionen im Ableitungsbaum genau entsprechen. Umgekehrt, falls ein Wort w von P akzeptiert wird, konstruieren wir einen Ableitungsbaum für w dadurch, dass wir depth-first neue Knoten erzeugen, die den Übergangsregeln der Berechnung entsprechen. Bemerkung 3. Automaten P G, wie oben konstruiert (genauer: deterministische Kellerautomaten, die P G modifizieren), werden im Compilerbau bei der Top-Down- yntaxanalyse von Programmen benutzt.
THEORETISCHE INFORMATIK
THEORETISCHE INFORMATIK Vorlesungsskript Jiří Adámek @ Institut für Theoretische Informatik Technische Universität Braunschweig Dezember 28 Inhaltsverzeichnis Endliche Automaten. Mathematische Grundbegriffe......................
THEORETISCHE INFORMATIK
THEORETISCHE INFORMATIK Vorlesungsskript Jiří Adámek Institut für Theoretische Informatik Technische Universität Braunschweig Januar 2014 Inhaltsverzeichnis 1 Endliche Automaten 1 1.1 Mathematische Grundbegriffe.......................
THEORETISCHE INFORMATIK
THEORETISCHE INFORMATIK Vorlesungsskript Jiří Adámek Institut für Theoretische Informatik Technische Universität Braunschweig April 2006 Inhaltsverzeichnis 1 Endliche Automaten 1 1.1 Mathematische Grundbegriffe......................
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 18. Januar 2018 INSTITUT FÜR THEORETISCHE 0 18.01.2018 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität
5.2 Endliche Automaten
114 5.2 Endliche Automaten Endliche Automaten sind Turingmaschinen, die nur endlichen Speicher besitzen. Wie wir bereits im Zusammenhang mit Turingmaschinen gesehen haben, kann endlicher Speicher durch
Automaten und formale Sprachen Klausurvorbereitung
Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen
Entscheidungsprobleme
Entscheidungsprobleme übliche Formulierung gegeben: Eingabe x aus einer Grundmenge U Frage: Hat x eine bestimmte Eigenschaft P? Beispiel: gegeben: Frage: n N Ist n eine Primzahl? Formalisierung: Grundmenge
Formale Sprachen und endliche Automaten
Formale Sprachen und endliche Automaten Formale Sprachen Definition: 1 (Alphabet) Ein Alphabet Σ ist eine endliche, nichtleere Menge von Zeichen oder Symbolen. Ein Wort über dem Alphabet Σ ist eine endliche
Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004
Lösung zur Klausur Grundlagen der Theoretischen Informatik im WiSe 2003/2004 1. Geben Sie einen deterministischen endlichen Automaten an, der die Sprache aller Wörter über dem Alphabet {0, 1} akzeptiert,
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Übung am 3..2 INSTITUT FÜR THEORETISCHE KIT 7..2 Universität des Andrea Landes Schumm Baden-Württemberg - Theoretische und Grundlagen der Informatik INSTITUT FÜR
Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012 Hier Aufkleber mit Name und Matrikelnr. anbringen
Rekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
Einführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische
Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier
Automaten und Formale Sprachen SoSe 2007 in Trier Henning Fernau Universität Trier [email protected] 1 Automaten und Formale Sprachen Gesamtübersicht Organisatorisches Einführung Endliche Automaten und
Die mathematische Seite
Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion
Klausur zur Vorlesung Informatik III Wintersemester 2007/2008
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Klausur zur Vorlesung Informatik III Wintersemester 2007/2008 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer:
FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme
FORMALE SYSTEME 8. Vorlesung: Minimale Automaten Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 6. November 2017 Rückblick Markus Krötzsch, 6. November 2017 Formale Systeme Folie 2 von 26
Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.
Thorsten Timmer SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke Turing Maschine SS 2005 p. 1/35 Inhalt Einführung Formale Definition Berechenbare Sprachen und Funktionen Berechnung ganzzahliger
Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:
5.2 Linear beschränkte Automaten Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt: (q, c, d) δ(q, ) = c =. Ein Leerzeichen wird also nie durch ein anderes
Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,
Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen
Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13
Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 2003/04 ILKD Prof. Dr. D. Wagner 14. April 2004 2. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004 Hier Aufkleber
Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 7 Vorlesung Theoretische Grundlagen der Informatik im W 16/17 Ausgabe 17. Januar 2017 Abgabe 31. Januar 2017, 11:00 Uhr (im
Falls H die Eingabe verwirft, so wissen wir, dass M bei Eingabe w nicht hält. M hält im verwerfenden Haltezustand. Beweis:
1 Unentscheidbarkeit 2 Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Wintersemester 2014/15 #include char *s="include
Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014
Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe
Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier
Automaten und Formale Sprachen SoSe 2007 in Trier Henning Fernau Universität Trier [email protected] 1 Automaten und Formale Sprachen Gesamtübersicht Organisatorisches Einführung Endliche
1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005
Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 2004/05 ILKD Prof. Dr. D. Wagner 24. Februar 2005 1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005 Aufkleber Beachten
Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken
1 / 15 Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken Prof. Dr. Hans Kleine Büning FG Wissensbasierte Systeme WS 08/09 2 / 15 Deterministischer endlicher Automat (DEA) Definition 1:
Einführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 3 14. Mai 2010 Einführung in die Theoretische
Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat
Formale Grundlagen der Informatik 1 Kapitel 5 Über reguläre Sprachen hinaus und (Teil 2) Frank Heitmann [email protected] 21. April 2015 Der Kellerautomat - Formal Definition (Kellerautomat
2 2 Reguläre Sprachen. 2.2 Endliche Automaten. Übersicht
Formale Systeme, Automaten, Prozesse Übersicht 2 2. Reguläre Ausdrücke 2.3 Nichtdeterministische endliche Automaten 2.4 Die Potenzmengenkonstruktion 2.5 NFAs mit ɛ-übergängen 2.6 Minimale DFAs und der
Reguläre Sprachen und endliche Automaten
Reguläre Sprachen und endliche Automaten 1 Motivation: Syntaxüberprüfung Definition: Fließkommazahlen in Java A floating-point literal has the following parts: a whole-number part, a decimal point (represented
Die Nerode-Relation und der Index einer Sprache L
Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p
Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen
Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 18.4. 2012 176 Automatentheorie und formale Sprachen VL 5 Reguläre und nichtreguläre Sprachen Kathrin Hoffmann 18. Aptil 2012 Hoffmann (HAW
c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}
2 Endliche Automaten Fragen 1. Was ergibt sich bei {a, bc} {de, fg}? a) {abc, defg} b) {abcde, abcfg} c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} 2. Was ergibt sich bei {abc, a} {bc, λ}?
Grundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 29.04.2015 Viorica Sofronie-Stokkermans e-mail: [email protected] 1 Bis jetzt 1. Motivation 2. Terminologie 3. Endliche Automaten und reguläre
Die Unentscheidbarkeit extensionaler Eigenschaften von Turingmaschinen: der Satz von Rice
Die Unentscheidbarkeit extensionaler Eigenschaften von Turingmaschinen: der Satz von Rice Holger Arnold Dieser Text befasst sich mit der Frage, unter welchen Bedingungen das Problem, zu bestimmen, ob die
Automaten und Coinduktion
Philipps-Univestität Marburg Fachbereich Mathematik und Informatik Seminar: Konzepte von Programmiersprachen Abgabedatum 02.12.03 Betreuer: Prof. Dr. H. P. Gumm Referentin: Olga Andriyenko Automaten und
Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen
Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 15 + 16 vom 17.12.2012 und 20.12.2012 Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen
2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:
Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter
Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP
Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07 Vortrag am 17.11.2006 Nichtdeterministische Turingmaschinen und NP Yves Radunz Inhaltsverzeichnis 1 Wiederholung 3 1.1 Allgemeines........................................
11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P
11 Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen, Entscheidbarkeit, P 239/ 333 Einführung in die NP-Vollständigkeitstheorie
1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff
Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im
2.2 Reguläre Sprachen Endliche Automaten
2.2.1 Endliche Automaten E I N G A B E Lesekopf endliche Kontrolle Signal für Endzustand Ein endlicher Automat liest ein Wort zeichenweise und akzeptiert oder verwirft. endlicher Automat Sprache der akzeptierten
FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch
FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch TU Dresden, 17. Oktober 2016 Rückblick Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 2 von 31 Wiederholung Mit Grammatiken können
1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!
Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 23/4 ILKD Prof. Dr. D. Wagner 2. Februar 24. Klausur zur Vorlesung Informatik III Wintersemester 23/24 Mit Lösung! Beachten Sie:
2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015
2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie
Theorie der Informatik
Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen Malte Helmert Gabriele Röger Universität Basel 7. April 2014 Kontextsensitive und allgemeine Grammatiken Wiederholung: (kontextsensitive)
Endliche Automaten. Endliche Automaten J. Blömer 1/23
Endliche Automaten Endliche Automaten sind ein Kalkül zur Spezifikation von realen oder abstrakten Maschinen regieren auf äußere Ereignisse (=Eingaben) ändern ihren inneren Zustand produzieren gegebenenfalls
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 20. November 2014 INSTITUT FÜR THEORETISCHE 0 KIT 20.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der
1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,
Theorie der Informatik 9. März 24 7. Reguläre Sprachen I Theorie der Informatik 7. Reguläre Sprachen I Malte Helmert Gabriele Röger Universität Basel 9. März 24 7. Reguläre Grammatiken 7.2 DFAs 7.3 NFAs
Formale Systeme. Büchi-Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK
Formale Systeme Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz
11.1 Kontextsensitive und allgemeine Grammatiken
Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert
Automaten und Formale Sprachen SoSe 2013 in Trier
Automaten und Formale Sprachen SoSe 2013 in Trier Henning Fernau Universität Trier [email protected] 2. Juni 2013 1 Automaten und Formale Sprachen Gesamtübersicht Organisatorisches Einführung Endliche
Einführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2 Lösungsblatt 23. Mai 2 Einführung in die Theoretische Informatik Hinweis:
1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Rolf Socher ISBN 3-446-22987-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22987-6 sowie im Buchhandel Einführung.. 13 2 Endliche
Grundlagen der theoretischen Informatik
Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 04.06.2013 An den Transitionen sieht man zunächst, dass nur die folgenden Zustandsübergänge
Kontextfreie Sprachen
Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung
1.Klausur Diskrete Mathematik Seite 1 von 22
1.Klausur Diskrete Mathematik Seite 1 von 22 1. Welche der folgenden Aussagen zum Halteproblem ist falsch? A. Für jeden nichtdeterministischen Automaten N kann entschieden werden, ob N die Eingabe akzeptiert,
2. Übungsblatt 6.0 VU Theoretische Informatik und Logik
2. Übungsblatt 6.0 VU Theoretische Informatik und Logik 25. September 2013 Aufgabe 1 Geben Sie jeweils eine kontextfreie Grammatik an, welche die folgenden Sprachen erzeugt, sowie einen Ableitungsbaum
Entscheidungsprobleme
Entscheidungsprobleme übliche Formulierung gegeben: Eingabe x aus einer Grundmenge M Frage: Hat x eine bestimmte Eigenschaft P? Beispiel: gegeben: Frage: n N Ist n eine Primzahl? Formalisierung: Grundmenge
Das Pumping-Lemma Formulierung
Das Pumping-Lemma Formulierung Sei L reguläre Sprache. Dann gibt es ein n N mit: jedes Wort w L mit w n kann zerlegt werden in w = xyz, so dass gilt: 1. xy n 2. y 1 3. für alle k 0 ist xy k z L. 59 / 162
Algorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:
Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter
Theoretische Informatik II
Theoretische Informatik II Einheit 4.2 Modelle für Typ-0 & Typ-1 Sprachen 1. Nichtdeterministische Turingmaschinen 2. Äquivalenz zu Typ-0 Sprachen 3. Linear beschränkte Automaten und Typ-1 Sprachen Maschinenmodelle
Kontextfreie Sprachen
Kontextfreie Sprachen besitzen große Bedeutung im Compilerbau Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch
Beispiel: NTM. M = ({q 0,q 1,q 2 }, {0, 1}, {0, 1, #},δ, q 0, #, {q 2 }) q 2
Beispiel: NTM M = ({q 0,q 1,q 2 }, {0, 1}, {0, 1, #},δ, q 0, #, {q 2 }) 0,1,R 0,0,R q0 1,0,R q1 #,#,R q2 0,0,L Zustand 0 1 # q 0 {(1, R, q 0 )} {(0, R, q 1 )} q 1 {(0, R, q 1 ),(0, L, q 0 )} {(1, R, q
Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie
Gliederung der Vorlesung. Grundbegriffe. Formale Sprachen/Automatentheorie.. Grammatiken.2..3. Kontext-freie Sprachen 2. Berechnungstheorie 2.. Berechenbarkeitsmodelle 2.2. Die Churchsche These 2.3. Unentscheidbarkeit
Endliche Automaten. Endliche Automaten 1 / 102
Endliche Automaten Endliche Automaten 1 / 102 Endliche Automaten Endliche Automaten erlauben eine Beschreibung von Handlungsabläufen: Wie ändert sich ein Systemzustand in Abhängigkeit von veränderten Umgebungsbedingungen?
THEORETISCHE INFORMATIK II
THEORETISCHE INFORMATIK II Vorlesungsskript Jiří Adámek Institut für Theoretische Informatik Technische Universität Braunschweig Juni 2013 Inhaltsverzeichnis 1 Endliche Automaten 1 1.1 Mathematische Grundbegriffe.......................
Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009
Theoretische Informatik Rainer Schrader nichtdeterministische Turingmaschinen Zentrum für Angewandte Informatik Köln 29. April 2009 1 / 33 2 / 33 Turingmaschinen das Konzept des Nichtdeterminismus nahm
Kurz-Skript zur Theoretischen Informatik I
Kurz-Skript zur Theoretischen Informatik I Inhaltsverzeichnis 1 Grundlagen 2 2 Reguläre Ausdrücke 4 3 Endliche Automaten 5 3.1 Vollständige endliche Automaten................................... 6 3.2 ε
Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64
Grenzen regulärer Sprachen? Formale Grundlagen der Informatik 1 Kapitel 4 Über reguläre Sprachen hinaus und Pumping Lemma Frank Heitmann [email protected] Wir haben mittlerweile einiges
Theoretische Informatik 1
Theoretische Informatik 1 Die Komplexitätsklasse P David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Äquivalenz von RM und TM Äquivalenz, Sätze Simulation DTM
Grundlagen der Informatik II
Grundlagen der Informatik II Tutorium 2 Professor Dr. Hartmut Schmeck Miniaufgabe * bevor es losgeht * Finden Sie die drei Fehler in der Automaten- Definition. δ: A = E, S, δ, γ, s 0, F, E = 0,1, S = s
8. Turingmaschinen und kontextsensitive Sprachen
8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten
Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben
Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten
Musterlösung Informatik-III-Klausur
Musterlösung Informatik-III-Klausur Aufgabe 1 (1+4+3+4 Punkte) (a) 01010 wird nicht akzeptiert: s q 0 q 1 q 2 f q 2 10101 wird akzeptiert: s q 2 q 2 f q 2 f (b) ε: {s, q 0, q 1, q 2 }, {f} 0: {s, q 0,
Einführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik 0 KIT 17.05.2010 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am
Grundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Wintersemester 2007 / 2008 Prof. Dr. Heribert Vollmer Institut für Theoretische Informatik 29.10.2007 Reguläre Sprachen Ein (deterministischer) endlicher Automat
THIA - Übungsblatt 2.
THIA - Übungsblatt 2. Aufgabe 12 (Eine einfache Sprache). Endliche Ziffernfolgen, die mit einer 0 beginnen, auf die mindestens eine weitere Ziffer folgt, wobei nur die Ziffern 0,..., 7 vorkommen, sollen
Unentscheidbarkeitssätze der Logik
Unentscheidbarkeitssätze der Logik Elmar Eder () Unentscheidbarkeitssätze der Logik 1 / 30 Die Zahlentheorie ist nicht formalisierbar Satz (Kurt Gödel) Zu jedem korrekten formalen System der Zahlentheorie
äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:
3. Reguläre Sprachen Bisher wurden Automaten behandelt und Äquivalenzen zwischen den verschiedenen Automaten gezeigt. DEAs erkennen formale Sprachen. Gibt es formale Sprachen, die nicht erkannt werden?
Kapitel 5. Entscheidbarkeit und Berechenbarkeit. 5.1 Entscheidbarkeit
Kapitel 5 Entscheidbareit und Berechenbareit Wir wenden uns nun grundsätzlichen Fragen zu, nämlich den Fragen nach der prinzipiellen Lösbareit von Problemen. Dazu stellen wir auch einen Zusammenhang zwischen
Theoretische Informatik 1
heoretische Informatik 1 uringmaschinen David Kappel Institut für Grundlagen der Informationsverarbeitung echnische Universität Graz 11.03.2016 Übersicht uring Maschinen Algorithmusbegriff konkretisiert
Theoretische Informatik für Wirtschaftsinformatik und Lehramt
Theoretische Informatik für Wirtschaftsinformatik und Lehramt Eigenschaften regulärer Sprachen Priv.-Doz. Dr. Stefan Milius [email protected] Theoretische Informatik Friedrich-Alexander Universität
Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.
Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden
Endliche Automaten. Endliche Automaten 1 / 115
Endliche Automaten Endliche Automaten 1 / 115 Endliche Automaten Endliche Automaten erlauben eine Beschreibung von Handlungsabläufen: Wie ändert sich ein Systemzustand in Abhängigkeit von veränderten Umgebungsbedingungen?
Theoretische Informatik I
Theoretische Informatik I Rückblick Theoretische Informatik I 1. Mathematische Methoden 2. Reguläre Sprachen 3. Kontextfreie Sprachen Themen der Theoretischen Informatik I & II Mathematische Methodik in
Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.
Turing-Maschinen Nachdem wir endliche Automaten und (die mächtigeren) Kellerautomaten kennengelernt haben, werden wir nun ein letztes, noch mächtigeres Automatenmodell kennenlernen: Die Turing-Maschine
WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven
WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.
Theoretische Informatik 1
heoretische Informatik 1 eil 2 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung U Graz SS 2009 Übersicht 1 uring Maschinen uring-berechenbarkeit 2 Kostenmaße Komplexität 3 Mehrband-M
Automaten und Formale Sprachen ε-automaten und Minimierung
Automaten und Formale Sprachen ε-automaten und Minimierung Ralf Möller Hamburg Univ. of Technology Literatur Gottfried Vossen, Kurt-Ulrich Witt: Grundkurs Theoretische Informatik, Vieweg Verlag 2 Danksagung
Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)
Technische Universität Berlin, Berlin, 28.07.2016 Name:... Matr.-Nr.:... Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016) Einlesezeit: Bearbeitungszeit: Max.
