Informatik IV Theoretische Informatik Kapitel 2 Sommersemester 29 Dozent: Prof. Dr. J. Rothe J. Rothe (HHU Düsseldorf) Informatik IV / 7
Endliche Automaten Beispiel Abbildung: TCP J. Rothe (HHU Düsseldorf) Informatik IV 2 / 7
Endliche Automaten Beispiel 2 Abbildung: DHCP J. Rothe (HHU Düsseldorf) Informatik IV 3 / 7
Endliche Automaten Endliche Automaten Definition Ein deterministischer endlicher Automat (kurz DFA für deterministic finite automaton ) ist ein Quintupel M = (Σ, Z, δ, z, F), wobei Σ ein Alphabet ist, Z eine endliche Menge von Zuständen mit Σ Z =, δ : Z Σ Z die Überführungsfunktion, z Z der Startzustand und F Z die Menge der Endzustände (Finalzustände). Bemerkung: Wir erlauben auch partiell definierte Überführungsfunktionen. Durch Hinzunahme eines weiteren Zustandes kann man solche Funktionen leicht total definieren. J. Rothe (HHU Düsseldorf) Informatik IV 4 / 7
Endliche Automaten Endliche Automaten Beispiel: Ein Beispiel für einen DFA ist M = (Σ, Z, δ, z, F) mit Σ = {, } Z = {z, z, z 2, z 3 } F = {z 2 } δ : δ z z z 2 z 3 z z 3 z 2 z 3 z 3 z 2 z 2 z 3 J. Rothe (HHU Düsseldorf) Informatik IV 5 / 7
Endliche Automaten Arbeitsweise eines DFAs Ein DFA M = (Σ, Z, δ, z, F) akzeptiert bzw. verwirft eine Eingabe x wie folgt: M beginnt beim Anfangszustand z und führt insgesamt x Schritte aus. Der Lesekopf wandert dabei v.l.n.r. über das Eingabewort x, Symbol für Symbol, und ändert dabei seinen Zustand jeweils gemäß der Überführungsfunktion δ: Ist M im Zustand z Z und liest das Symbol a Σ und gilt δ(z, a) = z, so ändert M seinen Zustand in z. Ist der letzte erreichte Zustand (nachdem x abgearbeitet ist) ein Endzustand, so akzeptiert M die Eingabe x; andernfalls lehnt M sie ab. J. Rothe (HHU Düsseldorf) Informatik IV 6 / 7
Endliche Automaten Arbeitsweise eines DFAs x = a Eingabewort Lesekopf M Zustand z Programm: Überführungsfunktion δ Abbildung: Arbeitsweise eines endlichen Automaten J. Rothe (HHU Düsseldorf) Informatik IV 7 / 7
Endliche Automaten Zustandsgraph eines DFAs Ein DFA M = (Σ, Z, δ, z, F) lässt sich anschaulich durch seinen Zustandsgraphen darstellen, dessen Knoten die Zustände von M und dessen Kanten Zustandsübergänge gemäß der Überführungsfunktion δ repräsentieren. Gilt δ(z, a) = z für ein Symbol a Σ und für zwei Zustände z, z Z, so hat dieser Graph eine gerichtete Kante von z nach z, die mit a beschriftet ist. Der Startzustand wird durch einen Pfeil auf z dargestellt. Endzustände sind durch einen Doppelkreis markiert. J. Rothe (HHU Düsseldorf) Informatik IV 8 / 7
Endliche Automaten Zustandsgraph eines DFAs Beispiel:, z z z 2 z 3, Abbildung: Zustandsgraph eines deterministischen endlichen Automaten J. Rothe (HHU Düsseldorf) Informatik IV 9 / 7
Endliche Automaten Sprache eines DFAs Definition Sei M = (Σ, Z, δ, z, F) ein DFA. Die erweiterte Überführungsfunktion δ : Z Σ Z von M ist induktiv definiert: δ(z, λ) = z δ(z, ax) = δ(δ(z, a), x) für alle z Z, a Σ und x Σ. Die vom DFA M akzeptierte Sprache ist definiert durch L(M) = {w Σ δ(z, w) F}. J. Rothe (HHU Düsseldorf) Informatik IV / 7
Endliche Automaten Sprache eines DFAs Bemerkung: Für a Σ gilt δ(z, a) = δ(z, a), und für x = a a 2 a n in Σ gilt: δ(z, x) = δ( δ(δ(z, a ), a 2 ), a n ). J. Rothe (HHU Düsseldorf) Informatik IV / 7
Endliche Automaten Sprache eines DFAs Beispiel: Wie arbeitet der DFA aus der vorigen Abbildung:, z z z2 z3, bei Eingabe von? δ(z, ) = δ(δ(δ(δ(z, ), ), ), ) = δ(δ(δ(z, ), ), ) = δ(δ(z 2, ), ) = δ(z 2, ) = z 2 F. J. Rothe (HHU Düsseldorf) Informatik IV 2 / 7
Endliche Automaten Sprache eines DFAs Beispiel: Wie arbeitet der DFA aus der vorigen Abbildung:, z z z2 z3, bei Eingabe von? δ(z, ) = δ(δ(δ(δ(z, ), ), ), ) = δ(δ(δ(z, ), ), ) = δ(δ(z 3, ), ) = δ(z 3, ) = z 3 F. J. Rothe (HHU Düsseldorf) Informatik IV 3 / 7
Endliche Automaten Sprache eines DFAs Beispiel: Es sei Σ ein Alphabet. L DFA M mit L(M) = L Σ (Σ, {z }, {δ(z, a) = z, a Σ}, z, {z }) Σ z {a}, a Σ (Σ, {z, z }, {δ(z, a) = z }, z, {z }) a z z J. Rothe (HHU Düsseldorf) Informatik IV 4 / 7
Endliche Automaten Sprache eines DFAs Beispiel: L DFA M mit L(M) = L {λ} (Σ, {z },, z, {z }) z (Σ, {z },, z, ) z J. Rothe (HHU Düsseldorf) Informatik IV 5 / 7
Endliche Automaten DFAs und reguläre Grammatiken Theorem Jede von einem DFA akzeptierte Sprache ist regulär (d.h. vom Typ 3). Beweis: Seien A Σ eine Sprache und M = (Σ, Z, δ, z, F) ein DFA mit L(M) = A. Definiere eine reguläre Grammatik G = (Σ, N, S, P): N = Z, S = z, P besteht aus genau den folgenden Regeln: Gilt δ(z, a) = z, so ist z az in P. Ist dabei z F, so ist zusätzlich z a in P. Ist λ A (d.h., z F ), so ist auch z λ in P, und die bisher konstruierte Grammatik wird gemäß der Sonderregel für λ modifiziert. J. Rothe (HHU Düsseldorf) Informatik IV 6 / 7
Endliche Automaten DFAs und reguläre Grammatiken Offenbar gilt λ A λ L(G). Für alle x = a a 2 a n Σ mit n gilt: x A es gibt eine Zustandsfolge z, z,..., z n, so dass z Startzustand und z n F ist, und δ(z i, a i ) = z i für jedes i, i n es gibt eine Folge von Nichtterminalen z, z,..., z n mit S = z a z a a 2 z 2 x L(G). a a 2 a n z n a a 2 a n a n Somit ist A = L(G). J. Rothe (HHU Düsseldorf) Informatik IV 7 / 7
Endliche Automaten DFAs und reguläre Grammatiken Beispiel: Reguläre Grammatik G = (Σ, N, S, P) für diesen DFA:, Σ = {, } N = {z, z, z 2, z 3 } S = z z z z 2 P = { z z z 3 z z 3 z 2 z 2 z 2 z 2 z 3 z 3 z 3 } z 3, J. Rothe (HHU Düsseldorf) Informatik IV 8 / 7
Endliche Automaten Nichtdeterministischer endlicher Automat Definition Ein nichtdeterministischer endlicher Automat (kurz NFA) ist ein Quintupel M = (Σ, Z, δ, S, F), wobei Σ ein Alphabet ist, Z eine endliche Menge von Zuständen mit Σ Z =, δ : Z Σ P(Z ) die Überführungsfunktion (hier: P(Z ) ist die Potenzmenge von Z, also die Menge aller Teilmengen von Z ), S Z die Menge der Startzustände und F Z die Menge der Endzustände (Finalzustände). J. Rothe (HHU Düsseldorf) Informatik IV 9 / 7
Endliche Automaten Nichtdeterministischer endlicher Automat Beispiel: Der folgende Automat M ist nichtdeterministisch (da δ(z, ) = {z, z } = 2 > ).,,,, z z z 2 z 3 Abbildung: Ein nichtdeterministischer endlicher Automat J. Rothe (HHU Düsseldorf) Informatik IV 2 / 7
Endliche Automaten Sprache eines NFAs Definition Die erweiterte Überführungsfunktion δ : P(Z ) Σ P(Z ) von M ist induktiv definiert: δ(z, λ) = Z δ(z, ax) = für alle Z Z, a Σ und x Σ. z Z δ(δ(z, a), x) Die vom NFA M akzeptierte Sprache ist definiert durch L(M) = {w Σ δ(s, w) F }. J. Rothe (HHU Düsseldorf) Informatik IV 2 / 7
Endliche Automaten Sprache eines NFAs,, Beispiel: NFA M bei Eingabe von :,, z z z 2 z 3 δ({z }, ) = δ(δ(z, ), ) = δ({z }, ) = δ(δ(z, ), ) = δ({z, z }, ) = δ(δ(z, ), ) δ(δ(z, ), ) = δ({z, z }, ) δ({z 2 }, ) = ( δ(δ(z, ), λ) δ(δ(z, ), λ)) δ(δ(z 2, ), λ) = ( δ({z, z }, λ) δ({z 2 }, λ)) δ({z 3 }, λ) = {z, z } {z 2 } {z 3 }. J. Rothe (HHU Düsseldorf) Informatik IV 22 / 7
Endliche Automaten Sprache eines NFAs,, Beispiel: NFA M bei Eingabe von :,, z z z 2 z 3 = δ({z }, ) {z 2 } = ({z, z } {z 2 } {z 3 }) {z 2 } = L(M). J. Rothe (HHU Düsseldorf) Informatik IV 23 / 7
Endliche Automaten Sprache eines NFAs,, Beispiel: NFA M,, z z z 2 z 3 δ({z }, ) = δ(δ(z, ), ) bei Eingabe von : = δ({z }, ) = δ(δ(z, ), λ) = δ({z, z }, λ) = {z, z }. = δ({z }, ) {z 2 } = {z, z } {z 2 } = = L(M). L(M) = {w {, } w = uv mit u {, } und v {, }}. J. Rothe (HHU Düsseldorf) Informatik IV 24 / 7
Endliche Automaten DFA versus NFA, Satz von Rabin und Scott Theorem (Rabin und Scott) Jede von einem NFA akzeptierte Sprache kann auch von einem DFA akzeptiert werden. Beweis: Sei M = (Σ, Z, δ, S, E) ein NFA. Konstruiere einen zu M äquivalenten DFA M = (Σ, P(Z ), δ, z, F) wie folgt: Zustandsmenge von M : die Potenzmenge P(Z ) von Z, δ (Z, a) = z Z δ(z, a) = δ(z, a) für alle Z Z und a Σ, z = S, F = {Z Z Z E }. J. Rothe (HHU Düsseldorf) Informatik IV 25 / 7
Endliche Automaten DFA versus NFA, Satz von Rabin und Scott Offenbar sind M und M äquivalent, denn für alle x = a a 2 a n in Σ gilt: x L(M) δ(s, x) E es gibt eine Folge von Teilmengen Z, Z 2,..., Z n Z mit δ (S, a ) = Z, δ (Z, a 2 ) = Z 2,..., δ (Z n, a n ) = Z n und Z n E Z n = δ (z, x) F x L(M ). Somit ist L(M ) = L(M). J. Rothe (HHU Düsseldorf) Informatik IV 26 / 7
Endliche Automaten DFA versus NFA, Satz von Rabin und Scott Beispiel: Wir modifizieren den NFA aus dem obigen Beispiel etwas und betrachten den folgenden um einen Zustand kleineren NFA M = (Σ, Z, δ, S, E):,,, z z z 2 Abbildung: Ein nichtdeterministischer endlicher Automat Dieser NFA akzeptiert die Sprache aller Wörter über {, }, die an letzter Stelle eine haben. J. Rothe (HHU Düsseldorf) Informatik IV 27 / 7
Endliche Automaten DFA versus NFA, Satz von Rabin und Scott Beispiel: Wir konstruieren nun einen zu M äquivalenten DFA M = (Σ, Z, δ, S, F) gemäß dem Satz von Rabin und Scott: Σ = {, }, Z = {{z, z, z 2 }, {z, z }, {z, z 2 }, {z, z 2 }, {z }, {z }, {z 2 }, }, S = {z }, F = {{z, z, z 2 }, {z, z }, {z, z 2 }, {z }}, δ {z } {z }{z 2 } {z, z } {z, z 2 } {z, z 2 }{z, z, z 2 } {z } {z 2 }{z 2 } {z, z 2 } {z, z 2 } {z 2 } {z, z 2 } {z, z }{z 2 }{z 2 }{z, z, z 2 }{z, z, z 2 } {z 2 } {z, z, z 2 } Die Zustände, {z }, {z 2 }, {z, z 2 } können vom Startzustand {z } nicht erreicht werden und werden zur Vereinfachung weggelassen. J. Rothe (HHU Düsseldorf) Informatik IV 28 / 7
Endliche Automaten DFA versus NFA, Satz von Rabin und Scott Beispiel: Wir betrachten für n die Sprache L n = {x {, } der n-te Buchstabe von hinten in x ist } = {x {, } x = uv mit u {, } und v {, } n }. Es gilt: Es gibt einen NFA für L n mit n + 2 Zuständen. (Beweis: Einfache Modifikation der NFAs für L 2 und L in den vorigen Abbildungen.) 2 Jeder DFA für L n hat mindestens 2 n Zustände. (Beweis: siehe Satz von Myhill und Nerode später.) J. Rothe (HHU Düsseldorf) Informatik IV 29 / 7
Endliche Automaten L 2 : DFA versus NFA, Satz von Rabin und Scott, start z z, z2 start z zz z2zz z2z J. Rothe (HHU Düsseldorf) Informatik IV 3 / 7
Endliche Automaten L 3 : DFA versus NFA, Satz von Rabin und Scott, start z z, z2, z3 z2z z3zz zz zz2z z3zz2z z3z2z z3z start z J. Rothe (HHU Düsseldorf) Informatik IV 3 / 7
Endliche Automaten L 4 : DFA versus NFA, Satz von Rabin und Scott, start z z, z2, z3, z4 z2zz zz4 zz z2zz3z z2zz4z3 zz4z3z z2zz4z3z z2zz4z z2zz3 zz4z3 zz4z z2z zz3z z2zz4 zz3 start z J. Rothe (HHU Düsseldorf) Informatik IV 32 / 7
start zz z z2zz z2z3zz z2z3zz4 z5z3zz4z z2z5zz4 z5z3zz z2zz4 z5z3z zz4 z5zz z2z z3z zz4z z2z5z z3zz z2zz4z z2z5z3zz z2z3zz4z z2z5z3zz4z z2z5z3zz4 z5z3zz4 z5zz4z z2z5zz z2z3z z3zz4z z2z5zz4z z2z5z3z z3zz4 z5zz4 z5z Endliche Automaten L 5 : DFA versus NFA, Satz von Rabin und Scott, start z z, z2, z3, z4, z5 J. Rothe (HHU Düsseldorf) Informatik IV 33 / 7
start z zz z2z z3z z4zz z5zz2z z3z2zz6 z4z3zz z4z5zz2z z5z3z2zz6 z4z3zz6 z4z5zz z5z2zz6 z3zz6 z4z z3zzz6 z5zz z2zz6 z3zz z4zz2z z5z3z2z z4z3zzz6 z4z5z2z z5z3zz6 z4zzz6 z5z2z z4z2z z5z3zz z4zz2zz6 z5z3zz2z z4z3z2zz6 z5zz6 z4z5z3z z4z5zz6 z5zzz6 zzz6 zz2z z3z2z z4z3z z4z5z zz2zz6 z3zz2z z4z3z2z z4z5z3zz z4z5zz2zz6 z5z3zz2zz6 z4z3zz2zz6 z4z5z3z2z z4z5z3zz2z z4z5z3zz2zz6 z4z5z3z2zz6 z4z5z3zz6 z4z5zzz6 z5zz2zz6 z3zz2zz6 z4z3zz2z z4z5z3zzz6 z4z5z2zz6 z5z3zzz6 z4z2zz6 z5z3z z4zz6 z5z zz6 Endliche Automaten L 6 : DFA versus NFA, Satz von Rabin und Scott, start z z, z2, z3, z4, z5, z6 J. Rothe (HHU Düsseldorf) Informatik IV 34 / 7
Endliche Automaten L 8 : DFA versus NFA, Satz von Rabin und Scott z, z z2, z3, z4, z5, z6, z7, z8, start z zz z2z z2zz z3z z3zz z3z2zz z3z2z z3z2zz4 z3z2zzz4 z3zzz4 z3zz4 z3zz5zz4 z3z5zz4 z3z2zz5zz4 z3z2z5zz4 z6z2z5zz4 z6z2zz5zz4 z6zz5zz4 z6z5zz4 z6z3z7z5z z6z3z7zz5z z6z3z2z7zz5z z6z3z2z7z5z z6z7z8zz4 z6z7zz8zz4 z6z2z7zz8zz4 z6z2z7z8zz4 z3z2z7z8z5z z3z2z7zz8z5z z3z7zz8z5z z3z7z8z5z z6z2z8zz4 z6z2zz8zz4 z6z8zz4 z6zz8zz4 z3z7z5z z3z7zz5z z3z2z7z5z z3z2z7zz5z z7zz5z z7z5z z2z7zz5z z2z7z5z z6z3z2zz8z z6z3z2z8z z6z3zz8z z6z3z8z z3z2z7zz4 z3z2z7zzz4 z3z7zz4 z3z7zzz4 z8z5zz4 zz8z5zz4 z2zz8z5zz4 z2z8z5zz4 z6z5z z6zz5z z6z2z5z z6z2zz5z z6z7z z6z7zz z6z2z7z z6z2z7zz z7z8z z7zz8z z2z7z8z z2z7zz8z z3z8z z3zz8z z3z2zz8z z3z2z8z z2z5zz4 z2zz5zz4 z5zz4 zz5zz4 z6z3z5z z6z3zz5z z6z3z2z5z z6z3z2zz5z z6z3z7zzz4 z6z3z7zz4 z6z3z2z7zz4 z6z3z2z7zzz4 z3z7z8z5zz4 z3z7zz8z5zz4 z3z2z7zz8z5zz4 z3z2z7z8z5zz4 z6z8z5zz4 z6zz8z5zz4 z6z2zz8z5zz4 z6z2z8z5zz4 z7z8z5z z7zz8z5z z2z7z8z5z z2z7zz8z5z z6z8z z6zz8z z6z2z8z z6z2zz8z z7zz z7z z2z7z z2z7zz z2z8z z2zz8z zz8z z8z zz4 zzz4 z2zz4 z2zzz4 zz5z z5z z2zz5z z2z5z z6z3z2z z6z3z2zz z6z3zz z6z3z z6z7zzz4 z6z7zz4 z6z2z7zzz4 z6z2z7zz4 z3z7z z3z7zz z3z2z7zz z3z2z7z z3z2z8zz4 z3z2zz8zz4 z3z8zz4 z3zz8zz4 z6z2z7z5z z6z2z7zz5z z6z7z5z z6z7zz5z z6z3z7z8z z6z3z7zz8z z6z3z2z7z8z z6z3z2z7zz8z z7zz8zz4 z7z8zz4 z2z7zz8zz4 z2z7z8zz4 z2z8z5z z2zz8z5z z8z5z zz8z5z z6zz z6z z6z2zz z6z2z z3z5z z3zz5z z3z2zz5z z3z2z5z z6zzz4 z6zz4 z6z2zz4 z6z2zzz4 z6z3z2z5zz4 z6z3z2zz5zz4 z6z3z5zz4 z6z3zz5zz4 z6z7zz5zz4 z6z7z5zz4 z6z2z7zz5zz4 z6z2z7z5zz4 z6z3z2z7z8z5z z6z3z2z7zz8z5z z6z3z7zz8z5z z6z3z7z8z5z z6z3zz8zz4 z6z3z8zz4 z6z3z2zz8zz4 z6z3z2z8zz4 z3z2z7z5zz4 z3z2z7zz5zz4 z3z7zz5zz4 z3z7z5zz4 z6z7zz8z z6z7z8z z6z2z7z8z z6z2z7zz8z z3z7zz8z z3z7z8z z3z2z7z8z z3z2z7zz8z z2z8zz4 z2zz8zz4 z8zz4 zz8zz4 z6z3zz8z5zz4 z6z3z8z5zz4 z6z3z2z8z5zz4 z6z3z2zz8z5zz4 z6z2z7zz8z5z z6z2z7z8z5z z6z7z8z5z z6z7zz8z5z z3z7z8zz4 z3z7zz8zz4 z3z2z7z8zz4 z3z2z7zz8zz4 z3z8z5zz4 z3zz8z5zz4 z3z2zz8z5zz4 z3z2z8z5zz4 z6z3z2zzz4 z6z3z2zz4 z6z3zz4 z6z3zzz4 z6z3z7zz5zz4 z6z3z7z5zz4 z6z3z2z7zz5zz4 z6z3z2z7z5zz4 z6z3z2z7zz8z5zz4 z6z3z2z7z8z5zz4 z6z3z7z8z5zz4 z6z3z7zz8z5zz4 z6z7zz8z5zz4 z6z7z8z5zz4 z6z2z7z8z5zz4 z6z2z7zz8z5zz4 z2z7zz4 z2z7zzz4 z7zzz4 z7zz4 z3zz8z5z z3z8z5z z3z2zz8z5z z3z2z8z5z z6z3z7zz z6z3z7z z6z3z2z7zz z6z3z2z7z z6z3z7zz8zz4 z6z3z7z8zz4 z6z3z2z7zz8zz4 z6z3z2z7z8zz4 z2z7zz8z5zz4 z2z7z8z5zz4 z7zz8z5zz4 z7z8z5zz4 z6z2z8z5z z6z2zz8z5z z6z8z5z z6zz8z5z z2z7z5zz4 z2z7zz5zz4 z7zz5zz4 z7z5zz4 z6z3zz8z5z z6z3z8z5z z6z3z2z8z5z z6z3z2zz8z5z start J. Rothe (HHU Düsseldorf) Informatik IV 35 / 7
Endliche Automaten Reguläre Grammatiken und NFAs Theorem Für jede reguläre Grammatik G gibt es einen NFA M mit L(M) = L(G). Beweis: Sei G = (Σ, N, S, P) eine gegebene reguläre Grammatik. Konstruiere einen NFA M = (Σ, Z, δ, S, F) so: Z = N {X}, wobei X N Σ ein neues Symbol ist, {S, X} falls S λ in P F = {X} falls S λ nicht in P, S = {S} und für alle A N und a Σ sei ( δ(a, a) = A ab P {B} ) A a P {X}. J. Rothe (HHU Düsseldorf) Informatik IV 36 / 7
Endliche Automaten Reguläre Grammatiken und NFAs Es gilt: λ L(G) λ L(M). Außerdem gilt für alle n und x = a a 2 a n in Σ : x L(G) es gibt eine Folge A, A 2,..., A n N mit S a A a a 2 A 2 a a 2 a n A n a a 2 a n a n es gibt eine Folge A, A 2,..., A n Z mit A δ(s, a ), A 2 δ(a, a 2 ),..., A n δ(a n 2, a n ), X δ(a n, a n ) δ(s, x) F = δ({s}, x) F x L(M). Somit ist L(G) = L(M). J. Rothe (HHU Düsseldorf) Informatik IV 37 / 7
Endliche Automaten Reguläre Grammatiken und NFAs Beispiel: Es sei G = (Σ, N, S, P) die folgende reguläre Grammatik: Σ = {, }, N = {S}, P = {S S S }. Nach dem obigen Beweis konstruieren wir den NFA M = (Σ, Z, δ, S, F) mit Σ = {, }, Z = {S, X}, F = {X}, S = {S}, δ : δ(s, ) = {S}, δ(s, ) = {S, X}. J. Rothe (HHU Düsseldorf) Informatik IV 38 / 7
Endliche Automaten Reguläre Grammatiken, DFAs und NFAs Folgerung: REG = {L(M) M ist DFA} = {L(M) M ist NFA}. Bemerkung: Zu jeder regulären Sprache gibt es unendlich viele DFAs bzw. NFAs, die sie akzeptieren. Ziel erreicht: NFA DFA reguläre Grammatik J. Rothe (HHU Düsseldorf) Informatik IV 39 / 7
Reguläre Ausdrücke Reguläre Ausdrücke Definition Sei Σ ein Alphabet. Die Menge der regulären Ausdrücke (über Σ) ist definiert durch: und λ sind reguläre Ausdrücke. Jedes a Σ ist ein regulärer Ausdruck. Sind α und β reguläre Ausdrücke, so sind auch αβ, (α + β) und (α) reguläre Ausdrücke. Nichts sonst ist ein regulärer Ausdruck. J. Rothe (HHU Düsseldorf) Informatik IV 4 / 7
Reguläre Ausdrücke Sprache regulärer Ausdrücke Definition Sei Σ ein Alphabet. Jedem regulären Ausdruck γ ist in eindeutiger Weise eine Sprache L(γ) Σ zugeordnet (wir sagen: γ beschreibt L(γ) ), die so definiert ist: falls γ = {λ} falls γ = λ {a} falls γ = a für ein a Σ L(γ) = L(α)L(β) falls γ = αβ L(α) L(β) falls γ = (α + β) L(α) falls γ = (α). J. Rothe (HHU Düsseldorf) Informatik IV 4 / 7
Reguläre Ausdrücke Sprache regulärer Ausdrücke Definition Zwei reguläre Ausdrücke α und α 2 heißen äquivalent (kurz α α 2 ), falls L(α ) = L(α 2 ). Beispiel: Es sei Σ = {a, b}. Der reguläre Ausdruck α = (λ + a(a + b) ) beschreibt die Sprache L(α ) = {λ} {ax x {a, b} }, d.h. das leere Wort und alle Wörter über Σ, die mit a beginnen. 2 Der reguläre Ausdruck α 2 = ((a + b) ab) beschreibt die Sprache L(α 2 ) = {xab x {a, b} }, d.h. alle Wörter über Σ, die mit ab enden. J. Rothe (HHU Düsseldorf) Informatik IV 42 / 7
Reguläre Ausdrücke Sprache regulärer Ausdrücke Bemerkung: Wegen = {λ} hätte man den regulären Ausdruck λ in der Definition oben auch weglassen können. Formal korrekt hätte man die Menge der regulären Ausdrücke unabhängig vom Alphabet (wie Grammatiken und DFAs) definieren müssen, etwa so: RegAusdruck(Σ) = {α α ist regulärer Ausdruck über Σ} RegAusdruck = RegAusdruck(Σ). Σ ist Alphabet Wir nehmen jedoch an, dass implizit immer ein Alphabet fixiert ist. J. Rothe (HHU Düsseldorf) Informatik IV 43 / 7
Reguläre Ausdrücke Sprache regulärer Ausdrücke Bemerkung: Jede endliche Sprache A Σ wird durch einen regulären Ausdruck beschrieben. Ist etwa A = {a, a 2,..., a k }, so ist A = L(α) mit α = ( ((a + a 2 ) + a 3 ) + + a k ). Somit ist jede endliche Sprache regulär. Jeder reguläre Ausdruck α beschreibt genau eine Sprache, nämlich L(α), aber für jede reguläre Sprache A = L(α) gibt es zum Beispiel wegen L((α + α)) = L(α) L(α) = L(α) unendlich viele reguläre Ausdrücke, die A beschreiben. J. Rothe (HHU Düsseldorf) Informatik IV 44 / 7
Reguläre Ausdrücke Satz von Kleene Theorem (Kleene) REG = {L(α) α ist regulärer Ausdruck}. Beweisidee: REG {L(α) α ist regulärer Ausdruck}: Ausdruck in NFA umwandeln 2 REG {L(α) α ist regulärer Ausdruck}: DFA in regulären Ausdruck umwandeln NFA DFA reguläre Grammatik REG regulärer Ausdruck J. Rothe (HHU Düsseldorf) Informatik IV 45 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) Theorem (Kleene) REG = {L(α) α ist regulärer Ausdruck}. Beweis: ( ) Sei A = L(α) für einen regulären Ausdruck α. Wir zeigen durch Induktion über den Aufbau von α, dass A REG durch Angabe eines NFAs M mit L(M) = A. Induktionsanfang: α = oder α = λ oder α = a Σ. Der folgende NFA M leistet je nach Fall das Gewünschte: (Σ, {z },, {z }, ) falls α = M = (Σ, {z },, {z }, {z }) falls α = λ (Σ, {z, z }, {δ(z, a) = {z }}, {z }, {z }) falls α = a Σ. J. Rothe (HHU Düsseldorf) Informatik IV 46 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ):, λ, a Σ z z z z a J. Rothe (HHU Düsseldorf) Informatik IV 47 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ): Induktionsschritt Induktionsschritt: α {α α 2, (α + α 2 ), (α ) }, für reguläre Ausdrücke α und α 2. Nach Induktionsvoraussetzung existieren NFAs M und M 2 mit L(M i ) = L(α i ), für i {, 2}. Sei für i {, 2}: M i = (Σ, Z i, δ i, S i, F i ), wobei o.b.d.a. Z Z 2 = gelte; andernfalls werden Zustände entsprechend umbenannt. J. Rothe (HHU Düsseldorf) Informatik IV 48 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ): M und M 2 M für regulären Ausdruck α M 2 für regulären Ausdruck α 2 s f r g s k f n r m g p S F S 2 F 2 J. Rothe (HHU Düsseldorf) Informatik IV 49 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) Fall : α = α α 2. Definiere M = (Σ, Z, δ, S, F) als die Hintereinanderschaltung von M und M 2 durch: S falls λ L(α ) = L(M ) Z = Z Z 2 ; S = S S 2 falls λ L(α ) = L(M ); F 2 falls λ L(α 2 ) = L(M 2 ) F = F F 2 falls λ L(α 2 ) = L(M 2 ); δ (z, a) falls z Z und δ (z, a) F = δ(z, a) = δ (z, a) S 2 falls z Z und δ (z, a) F δ 2 (z, a) falls z Z 2 für alle a Σ und z Z. J. Rothe (HHU Düsseldorf) Informatik IV 5 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) Fall 2: α = (α + α 2 ). Der Vereinigungsautomat M = (Σ, Z Z 2, δ δ 2, S S 2, F F 2 ) von M und M 2 leistet das Gewünschte. J. Rothe (HHU Düsseldorf) Informatik IV 5 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) Fall 3: α = (α ). Der Rückkopplungsautomat M = (Σ, Z, δ, S, F ) von M leistet das Gewünschte, der folgendermaßen definiert ist: Zunächst fügen wir λ hinzu, falls nötig: M falls λ L(M ) M = (Σ, Ẑ, δ, Ŝ, F) falls λ L(M ) mit Ẑ = Z {ẑ}, Ŝ = S {ẑ}, F = F {ẑ}, wobei ẑ Z. Offenbar ist L( M) = L(M ) {λ}. J. Rothe (HHU Düsseldorf) Informatik IV 52 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) Weiter zu Fall 3: α = (α ). Rückkopplung: Definiere M = (Σ, Z, δ, S, F ), wobei Z, S und F die Menge der Zustände, Anfangszustände und Endzustände von M sind, und für alle a Σ und z Z : δ (z, a) falls δ (z, a) F = δ(z, a) = δ (z, a) S falls δ (z, a) F. Offenbar gilt L(M) = L(M ) = L((α ) ) = L(α). Somit ist REG {L(α) α ist regulärer Ausdruck} gezeigt. J. Rothe (HHU Düsseldorf) Informatik IV 53 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) ( ) Sei A REG, und sei M ein DFA mit L(M) = A, wobei M = (Σ, Z, δ, z, E) mit Z = {z, z 2,..., z n }. Konstruiere einen regulären Ausdruck α mit L(α) = A. Definiere dazu Sprachen Ri,j k mit i, j {, 2,..., n} und k {,,..., n}, die sich durch reguläre Ausdrücke beschreiben lassen: δ(zi, x) = z j und keiner der dabei durchlaufenen Ri,j k = x Σ Zustände (außer z i und z j selbst) hat einen Index größer als k.. R k i,j = Wörter, die man mit z i als Anfangs- und z j als Endzustand und mit Hilfe der Zustände z,..., z k generieren kann. J. Rothe (HHU Düsseldorf) Informatik IV 54 / 7
Reguläre Ausdrücke Satz von Kleene: R k i,j R k i,j = Wörter, die man mit i als Anfangs- und j als Endzustand und mit Hilfe der Zustände,..., k generieren kann. b a b 2 5 b 3 b 4 R,3 = {} b a b 2 5 b 3 b 4 R 2,3 = {ab} J. Rothe (HHU Düsseldorf) Informatik IV 55 / 7
Reguläre Ausdrücke Satz von Kleene: R k i,j R k i,j = Wörter, die man mit i als Anfangs- und j als Endzustand und mit Hilfe der Zustände,..., k generieren kann. b a b 2 5 b 3 b 4 R 2,3 = {ab} b a b 2 5 b 3 b 4 R 5,3 = {ab, bbab, bbbbab, } J. Rothe (HHU Düsseldorf) Informatik IV 56 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) Wir zeigen durch Induktion über k: Für jedes k {,,..., n} lässt sich jede Sprache Ri,j k durch einen regulären Ausdruck beschreiben. Induktionsanfang: k =. Ist i j, so ist Ri,j = {a Σ δ(zi, a) = z j }. Ist i = j, so ist Ri,i = {λ} {a Σ δ(z i, a) = z i }. In beiden Fällen ist Ri,j endlich und daher durch einen regulären Ausdruck beschreibbar. J. Rothe (HHU Düsseldorf) Informatik IV 57 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) Induktionsschritt: k k +. Es gilt R k+ i,j = R k i,j R k i,k+ (Rk k+,k+ ) R k k+,j, denn: Entweder braucht man den Zustand z k+ gar nicht, um von z i nach z j zu kommen, oder z k+ wird dabei einmal oder mehrmals in Schleifen durchlaufen: k + k zi zj k k zk+ k J. Rothe (HHU Düsseldorf) Informatik IV 58 / 7
Reguläre Ausdrücke Satz von Kleene: Beweis von ( ) Nach Induktionsvoraussetzung gibt es reguläre Ausdrücke α k i,j für die Mengen Ri,j k. Somit ist ( ) α k+ i,j = αi,j k + αi,k+ k (αk k+,k+ ) αk+,j k ein regulärer Ausdruck für R k+ i,j. Ende der Induktion. Ferner gilt: A = L(M) = z i E R n,i. Ist also E = {z i, z i2,..., z im }, so ist ) α = (α n + α n + + α n,i,i2,im ein regulärer Ausdruck für A. J. Rothe (HHU Düsseldorf) Informatik IV 59 / 7
Reguläre Ausdrücke Satz von Kleene: RA k i,j RA k i,j ist ein regulärer Ausdruck für R k i,j RA i,j = außer RA i,i = λ, RA,2 = a, RA,5 = RA 2,3 = RA 3,4 = RA 5, = b, RA i,j RA i,j außer für: RA 5,2 = RA 5,2 + RA 5, (RA, ) RA,2 RA 5,2 = + b(λ) a ba RA 5,5 = RA 5,5 + RA 5, (RA, ) RA,5 RA 5,5 = λ+ b(λ) b λ + bb a b 2 b 3 b b 5 4 J. Rothe (HHU Düsseldorf) Informatik IV 6 / 7
Reguläre Ausdrücke Satz von Kleene: RA k i,j RA 2 i,j RA i,j außer für: RA 2,3 = + a(λ) b ab RA 2 5,3 = + ba(λ) b bab RA 3 i,j RA 2 i,j außer für: RA 3 2,4 = + b(λ) b bb RA 3,4 = + ab(λ) b abb RA 3 5,4 = + bab(λ) b babb RA 5 i,j RA 4 i,j RA 3 i,j außer z. B. für: RA 5,2 = RA4,2 + RA4,5 (RA4 5,5 ) RA 4 5,2 = a + b(λ + bb) ba (bb) a RA 5,4 = abb + b(λ + bb) babb (bb) abb a b 2 b 3 b b 5 4 J. Rothe (HHU Düsseldorf) Informatik IV 6 / 7
Reguläre Ausdrücke Satz von Kleene: RA k i,j RA 5,2 = b(λ + bb) ba (bb) a RA 5,4 = abb + b(λ + bb) babb (bb) abb regulärer Ausdruck für den DFA: RA 5,2 + RA5,2 (bb) a + (bb) abb (bb) a(λ + bb) a b 2 b 3 b b 5 4 J. Rothe (HHU Düsseldorf) Informatik IV 62 / 7
Reguläre Ausdrücke Satz von Kleene: RA k i,j Ohne Vereinfachung (z. B. λ+ λ) ist der Ausdruck deutlich komplizierter: a+ +((λ+ )(*(λ)(a+ ))+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)(λ+ +( (*(λ)(a+ ))+ )))+ )+(( +((λ+ )(*(λ) )+ )+((a+ + ((λ+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)( +( (*(λ)(a+ ))+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(λ+ +( (*(λ)(a+ ))+ )))+ )))+ )+(( +((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +((λ+ ) (*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ )) (*(λ)( +( (*(λ) )+ )))+ )))+ ))(*(λ)( +( (*(λ)(a+ ))+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(λ+ +( (*(λ)(a+ ))+ )))+ )+(( + ( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)( +( (*(λ)(a+ ))+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(λ+ +( (*(λ)(a )(*(λ)(b+ ))+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ)(b+ ))+ )))+ )+(( +((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)( +( (*(λ)(b+ ))+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ)(b+ ))+ )))+ )))+ )+(( + ((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )))+ ))(*(λ)( +( (*(λ)(b+ ))+ ( (*(λ)(b+ ))+ )))+ )+(( +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)( +( (*(λ)(b+ ))+ )+ (( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ)(b+ ))+ )))+ )))+ )))+ ))(*(λ)( +((b+ )(*(λ)(a+ ))+ )+(( +((b+ )(*(λ)(a+ ))+ ))(*(λ)(λ+ + J. Rothe (HHU Düsseldorf) Informatik IV 63 / 7
Reguläre Ausdrücke Satz von Kleene: RA k i,j Ohne Vereinfachung ist der Ausdruck deutlich komplizierter (Teil 2): ( (*(λ)(a+ ))+ )))+ )+(( +((b+ )(*(λ) )+ )+(( +((b+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)( +( (*(λ)(a+ ))+ )+ (( +( (*(λ)(a+ ))+ ))(*(λ)(λ+ +( (*(λ)(a+ ))+ )))+ )))+ )+(( +((b+ )(*(λ) )+ )+(( +((b+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +((b+ )(*(λ) )+ )+(( +((b+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+(( + ( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )))+ ))(*(λ)( +( (*(λ)(a+ ))+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(λ+ +( (*(λ)(a+ ))+ )))+ )+(( +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)( +( (*(λ)(a+ ))+ )+(( +( (*(λ) (a+ ))+ ))(*(λ)(λ+ +( (*(λ)(a+ ))+ )))+ )))+ )))+ )))+ )+( +((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+ (( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )))+ )+(( +((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+ (( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )))+ ))(*(λ)(λ+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )))+ )))+ )+((b+ +((λ+ )(*(λ)(b+ ))+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ)(b+ ))+ )))+ )+ J. Rothe (HHU Düsseldorf) Informatik IV 64 / 7
Reguläre Ausdrücke Satz von Kleene: RA k i,j Ohne Vereinfachung ist der Ausdruck deutlich komplizierter (Teil 3/3): ))(*(λ)( +( (*(λ)(b+ ))+ )))+ )))+ )+(( +((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( + ((λ+ )(*(λ) )+ )+((a+ +((λ+ )(*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ) ( +( (*(λ) )+ )))+ )))+ ))(*(λ)( +( (*(λ)(b+ ))+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ)(b+ ))+ )))+ )+(( +( (*(λ) )+ )+ (( +( (*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)( +( (*(λ)(b+ ))+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ)(b+ ))+ )))+ )))+ )))+ ))(*(λ)( +((b+ )(*(λ) )+ )+(( +((b+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +((b+ )(*(λ) )+ )+(( +((b+ )(*(λ) (a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )))+ )+(( +((b+ )(*(λ) )+ )+(( +((b+ )(*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +((b+ )(*(λ) )+ )+(( +((b+ )(*(λ)(a+ ))+ ))(*(λ)(b+ + ( (*(λ) )+ )))+ ))(*(λ)(b+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )))+ ))(*(λ)(λ+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )+(( +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)(b+ +( (*(λ) )+ )))+ )) (*(λ)(b+ +( (*(λ) )+ )+(( +( (*(λ)(a+ ))+ ))(*(λ)( +( (*(λ) )+ )))+ )))+ )))+ )))+ )+ ) J. Rothe (HHU Düsseldorf) Informatik IV 65 / 7
Reguläre Ausdrücke Satz von Kleene: RA k i,j a 2 b a b 2 b c RA 2,2 = a + a((ba) (λ + ba)) a + a(ba) a(ba) RA 2,2 = b + (λ+a)(a )b + (b+(λ+a)(a )b) ((λ+c+b(a )b) ) (λ+c+b(a )b) a b(c+b(a b)) J. Rothe (HHU Düsseldorf) Informatik IV 66 / 7
Gleichungssysteme Gleichungssysteme Ziel: Bestimmung der von einem NFA (bzw. DFA) akzeptierten Sprache durch Lösung eines linearen Gleichungssystems. Gegeben: NFA M = (Σ, Z, δ, S, F) mit Z = {z, z 2,..., z n }. Gesucht: L(M). Methode: Bilde ein Gleichungssystem mit n Variablen und n Gleichungen wie folgt: Jedes z i Z, i n, ist Variable auf der linken Seite einer Gleichung. 2 Gilt z j δ(z i, a) für z i, z j Z und a Σ, so ist az j Summand auf der rechten Seite der Gleichung z i =. 3 Gilt z i F, so ist Summand auf der rechten Seite der Gleichung z i =. J. Rothe (HHU Düsseldorf) Informatik IV 67 / 7
Gleichungssysteme Gleichungssysteme Methode: Die z i werden als reguläre Sprachen (bzw. Ausdrücke) interpretiert und gemäß dem folgenden Lemma und Satz ausgerechnet. Es gilt dann: L(M) = z i S bzw. L(M) = L(α) für den regulären Ausdruck α = z i. z i S z i J. Rothe (HHU Düsseldorf) Informatik IV 68 / 7
Gleichungssysteme Gleichungssysteme Lemma Sind A, B Σ reguläre Sprachen mit λ A, so gibt es genau eine reguläre Sprache X, die Lösung der folgenden Gleichung ist: X = AX B. () Beweis: Siehe Tafel. Bemerkung: Gilt λ A in (), so ist die reguläre Menge X = A B ebenfalls Lösung von (). Allerdings muss diese dann nicht mehr eindeutig sein, da y = vw AY auch für v = λ gelten kann und der Widerspruch aus dem Beweis dann nicht auftreten muss. J. Rothe (HHU Düsseldorf) Informatik IV 69 / 7
Gleichungssysteme Gleichungssysteme Aus obiger Methode ergibt sich ein Gleichungssystem der Form: z = A z A 2 z 2 A n z n B z 2 = A 2 z A 22 z 2 A 2n z n B 2. (2) z n = A n z A n2 z 2 A nn z n B n Theorem Gilt A ij, B k REG und λ A ij für alle i, j, k {, 2,..., n} im obigen Gleichungssystem (2), dann hat es eine eindeutig bestimmte Lösung durch reguläre Mengen z i, i n. J. Rothe (HHU Düsseldorf) Informatik IV 7 / 7
Gleichungssysteme Gleichungssysteme Beweis: Gegeben sei ein Gleichungssystem der Form (2). Löse es sukzessive durch Anwendung der folgenden Schritte: Gibt es Gleichungen z i =, deren linke Seite z i nicht auf der rechten Seite vorkommt, so eliminiere diese Gleichung z i = und die Variable z i in jeder anderen Gleichung durch Einsetzen der rechten Seite von z i =. Vereinfache nach dem Distributivgesetz UX VX = (U V )X. J. Rothe (HHU Düsseldorf) Informatik IV 7 / 7
Gleichungssysteme Gleichungssysteme Das entstandene System hat wieder die Form (2), wobei nun jede linke Seite z i auch rechts vorkommt. Das heißt, jede verbliebene Gleichung hat die Form (): z i = Az i B, wobei A und B sich aus den Koeffizienten A ij, B k REG und den Variablen z j, i j, in (2) gemäß dem obigen Umformungsprozess ergeben. Nach dem obigen Lemma hat eine solche Gleichung die eindeutige Lösung A B, die eine reguläre Sprache ist. J. Rothe (HHU Düsseldorf) Informatik IV 72 / 7
Gleichungssysteme Gleichungssysteme Ersetze der Reihe nach alle noch vorhandenen Variablen durch die entsprechenden Lösungen. Stets entsteht dabei ein System von der Form (2) mit einer Variablen weniger, und in keiner der Koeffizientenmengen kommt λ vor. Der Satz ist bewiesen. J. Rothe (HHU Düsseldorf) Informatik IV 73 / 7
Das Pumping-Lemma Pumping-Lemma Eine reguläre Sprache kann von einem DFA oder NFA akzeptiert werden. Was folgt daraus für längere Wörter der Sprache? a b 2 b 3 b b 5 4 Was kann man hier für Wörter mit mindestens 5 Buchstaben aussagen? L = {a, abb, bba, bbabb, bbbba, bbbbabb, bbbbbba, bbbbbbabb,...} bbabb L, bbbbabb L, bbbbbbabb L,... J. Rothe (HHU Düsseldorf) Informatik IV 74 / 7
Das Pumping-Lemma Pumping-Lemma Ziel: Nachweis der Nichtregularität von Sprachen. Theorem (Pumping-Lemma für reguläre Sprachen) Sei L REG. Dann existiert eine (von L abhängige) Zahl n, so dass sich alle Wörter x L mit x n zerlegen lassen in x = uvw, wobei gilt: uv n, 2 v, 3 ( i ) [uv i w L]. J. Rothe (HHU Düsseldorf) Informatik IV 75 / 7
Das Pumping-Lemma Pumping-Lemma Ziel: Nachweis der Nichtregularität von Sprachen. Theorem (Pumping-Lemma für reguläre Sprachen) Sei L REG. Dann existiert eine (von L abhängige) Zahl n, so dass sich alle Wörter x L mit x n zerlegen lassen in x = bmw, wobei gilt: bm n, 2 m, 3 ( i ) [bm i w L]. J. Rothe (HHU Düsseldorf) Informatik IV 76 / 7
Das Pumping-Lemma Pumping-Lemma Ziel: Nachweis der Nichtregularität von Sprachen. Theorem (Pumping-Lemma für reguläre Sprachen) Sei L REG. Dann existiert eine (von L abhängige) Zahl n, so dass sich alle Wörter x L mit x n zerlegen lassen in x = uvw, wobei gilt: uv n, 2 v, 3 ( i ) [uv i w L]. J. Rothe (HHU Düsseldorf) Informatik IV 77 / 7
Das Pumping-Lemma Pumping-Lemma: Beweis Beweis: Sei L REG, und sei M ein DFA für L. Wähle als n die Zahl der Zustände von M. Sei x L beliebig mit x n. Beim Abarbeiten von x durchläuft M genau x + n + Zustände einschließlich des Startzustands. Folglich gibt es einen Zustand z, der zweimal durchlaufen wird. Das heißt, M hat bei Eingabe x eine Schleife durchlaufen. J. Rothe (HHU Düsseldorf) Informatik IV 78 / 7
Das Pumping-Lemma Pumping-Lemma: Beweis Wähle nun die Zerlegung x = uvw so, dass nach Lesen von u und von uv derselbe Zustand z erreicht ist und die Bedingungen () und (2) erfüllt sind. Es ist klar, dass das geht. v z z z e u w Abbildung: Beweis des Pumping-Lemmas für reguläre Sprachen J. Rothe (HHU Düsseldorf) Informatik IV 79 / 7
Das Pumping-Lemma Pumping-Lemma: Beweis M erreicht somit denselben Endzustand z e bei Eingabe von uv w = uw uv w = uvw = x uv 2 w. uv i w. (siehe Abbildung auf der vorherigen Folie). Somit sind alle diese Wörter in L, und auch Eigenschaft (3) ist bewiesen. J. Rothe (HHU Düsseldorf) Informatik IV 8 / 7
Das Pumping-Lemma Pumping-Lemma Bemerkung: Man beachte, dass das Pumping-Lemma keine Charakterisierung von REG liefert, sondern lediglich eine Implikation: L REG ( n ) ( x L, x n) ( u, v, w Σ ) [x = uvw () (2) (3)]. Alle Sprachen Sprachen nach PL nicht regulär Abbildung: Anwendbarkeit des Pumping-Lemmas (PL) J. Rothe (HHU Düsseldorf) Informatik IV 8 / 7
Das Pumping-Lemma Pumping-Lemma: Anwendungen Behauptung: L = {a m b m m } ist nicht regulär. Beweis: Der Beweis wird indirekt geführt. Angenommen, L REG. Sei n die Zahl, die nach dem Pumping-Lemma für L existiert. Betrachte das Wort x = a n b n mit x = 2n > n. J. Rothe (HHU Düsseldorf) Informatik IV 82 / 7
Das Pumping-Lemma Pumping-Lemma: Anwendungen Da x L, lässt sich x so in x = uvw = a n b n zerlegen, dass gilt: uv n, d.h., uv = a m für m n; 2 v, d.h., v = a k mit k ; 3 ( i ) [uv i w L]. Insbesondere gilt für i = : uv w = uw = a n k b n L, was ein Widerspruch zur Definition von L ist. Also ist die Annahme falsch und L nicht regulär. J. Rothe (HHU Düsseldorf) Informatik IV 83 / 7
Das Pumping-Lemma Pumping-Lemma: Anwendungen Behauptung: L = { m m ist Quadratzahl} ist nicht regulär. Beweis: Der Beweis wird wieder indirekt geführt. Angenommen, L REG. Sei n die Zahl, die nach dem Pumping-Lemma für L existiert. Betrachte das Wort x = n2 mit x = n 2 n. J. Rothe (HHU Düsseldorf) Informatik IV 84 / 7
Das Pumping-Lemma Pumping-Lemma: Anwendungen Da x L, lässt sich x so in x = uvw = n2 zerlegen, dass die Bedingungen (), (2) und (3) aus dem Pumping-Lemma gelten. Aus den Bedingungen () und (2) folgt: v uv n. Aus Bedingung (3) folgt für i = 2, dass uv 2 w ein Wort in L ist. Andererseits gilt: n 2 = x = uvw < uv 2 w n 2 + n < n 2 + 2n + = (n + ) 2. Folglich ist die Länge des Wortes uv 2 w L keine Quadratzahl, was ein Widerspruch zur Definition von L ist. Also ist die Annahme falsch und L nicht regulär. J. Rothe (HHU Düsseldorf) Informatik IV 85 / 7
Das Pumping-Lemma Pumping-Lemma: für eine nichtreguläre Sprache Beispiel: Definiere die Sprache L = {x {, } x = k mit k oder x = j k 2 mit j und k }. Wir versuchen wieder (wie sich hier zeigt: vergeblich!) einen Widerspruchsbeweis für L REG und nehmen also L REG an. Sei x L beliebig mit x n, wobei n die Pumping-Lemma-Zahl für L ist. Nach dem Pumping-Lemma gibt es eine Zerlegung x = uvw, die die Bedingungen (), (2) und (3) erfüllt. J. Rothe (HHU Düsseldorf) Informatik IV 86 / 7
Das Pumping-Lemma Pumping-Lemma: für eine nichtreguläre Sprache Beispiel: Fall : x = k. Für x = k = uvw liefern diese drei Bedingungen (insbesondere uv i w = k L für alle i ) jedoch keinen Widerspruch. Fall 2: x = j k 2. Auch für x = j k 2 = uvw ergibt sich kein Widerspruch aus den drei Bedingungen; insbesondere könnte die Zerlegung x = uvw mit u = λ und v = (da j ) gewählt worden sein, so dass uv i w = j+i k 2 L für alle i tatsächlich gilt. Auch wenn das Pumping-Lemma hier nicht den gewünschten Widerspruch liefert, kann man mit einer Verallgemeinerung des Pumping-Lemmas tatsächlich zeigen, dass L nicht regulär ist. J. Rothe (HHU Düsseldorf) Informatik IV 87 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode Was sind minimale Automaten für die folgenden Sprachen? L = {ac, bc} L 2 = {aca, bbca} L 3 = {abc, abcbc, abcbcbc,...} J. Rothe (HHU Düsseldorf) Informatik IV 88 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode Man kann einer Sprache L Σ wie folgt eine Äquivalenzrelation R L auf Σ zuordnen. Definition (Myhill-Nerode-Relation) Sei L Σ gegeben. Für x, y Σ gelte x R L y genau dann, wenn ( z Σ ) [xz L yz L]. Insbesondere gilt für Wörter x, y Σ mit x R L y: x L y L, nämlich für z = λ. J. Rothe (HHU Düsseldorf) Informatik IV 89 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode Für welche x, y Σ gilt ( z Σ ) (xz L i yz L i ) in den folgenden Sprachen? L = {ac, bc} L 2 = {aca, bbca} L 3 = {abc, abcbc, abcbcbc,...} a R L b, ac R L bc, c R L bb R L aca R L... a R L2 bb, ac R L2 bbc, aca R L2 bbca abc R L3 abcbc R L3 abcbcbc..., ab R L3 abcb R L3 abcbcb..., aber nicht a R L3 abc J. Rothe (HHU Düsseldorf) Informatik IV 9 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode Die binäre Relation R L auf Σ mit ( z Σ ) [xz L yz L]. ist in der Tat eine Äquivalenzrelation auf Σ : Reflexivität: x R L x Symmetrie: x R L y y R L x Transitivität: (x R L y y R L z) x R L z J. Rothe (HHU Düsseldorf) Informatik IV 9 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode Definition Wie jede Äquivalenzrelation induziert R L eine Zerlegung (d.h. eine disjunkte und vollständige Überdeckung) von Σ in Äquivalenzklassen: [x] = {y Σ x R L y}, die repräsentantenunabhängig ist. Die Anzahl der verschiedenen Äquivalenzklassen wird bezeichnet mit Index(R L ) = {[x] x Σ }. J. Rothe (HHU Düsseldorf) Informatik IV 92 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode Theorem (Myhill und Nerode) Es sei L eine Sprache über einem beliebigen Alphabet Σ. L REG Index(R L ) <. J. Rothe (HHU Düsseldorf) Informatik IV 93 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Beweis Beweis: ( ) Sei L REG, und sei M = (Σ, Z, δ, z, E) ein DFA mit L(M) = L. Definiere eine Äquivalenzrelation R M auf Σ wie folgt: x R M y gelte genau dann, wenn δ(z, x) = δ(z, y), d.h., M ist nach dem Lesen von x im selben Zustand wie nach dem Lesen von y. Es gilt: Index(R M ) = Anzahl der von z aus erreichbaren Zustände. (3) J. Rothe (HHU Düsseldorf) Informatik IV 94 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Beweis Wir zeigen nun: ( x, y Σ ) [x R M y x R L y], (4) d.h., R M R L (also ist R M eine Verfeinerung von R L ). Sei x R M y, d.h., δ(z, x) = δ(z, y). Sei z Σ beliebig. Dann gilt: xz L δ(z, xz) E δ( δ(z, x), z) E δ( δ(z, y), z) E δ(z, yz) E yz L. Folglich gilt x R L y und somit (4). Aus (3) und (4) folgt: Index(R L ) Index(R M ) Z <. J. Rothe (HHU Düsseldorf) Informatik IV 95 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Beweis ( ) Sei Index(R L ) = k < für ein k N. Dann lässt sich Σ in k Äquivalenzklassen bezüglich R L zerlegen: [x ] [x 2 ] [x k ] = Σ, wobei x, x 2,..., x k Σ. Der Äquivalenzklassen-Automat für L ist der DFA M = (Σ, Z, δ, z, F), der definiert ist durch: Z = {[x ], [x 2 ],..., [x k ]}, δ([x], a) = [xa] für jedes [x] Z und a Σ, z = [λ], F = {[x] x L}. J. Rothe (HHU Düsseldorf) Informatik IV 96 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Beweis Lemma Für alle x [x] und a Σ gilt [x a] = [xa]. Insbesondere gilt δ([λ], x) = [x] für jedes x Σ. Es folgt: x L(M) δ(z, x) F δ([λ], x) F x L. [x] F (nach Lemma) Also ist L REG. J. Rothe (HHU Düsseldorf) Informatik IV 97 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Anwendungen Beispiel: [Satz von Myhill und Nerode: Nachweis der Nichtregularität] Wir zeigen mit dem Satz von Myhill und Nerode, dass nicht regulär ist. L = {a m b m m } Zu den Äquivalenzklassen von L bzgl. R L gehören: [ab] = {x Σ ab R L x} = {ab, a 2 b 2, a 3 b 3,...} = L [a 2 b] = {a 2 b, a 3 b 2, a 4 b 3,...} [a 3 b] = {a 3 b, a 4 b 2, a 5 b 3,...}. [a k b] = {a k b, a k+ b 2, a k+2 b 3,...}. J. Rothe (HHU Düsseldorf) Informatik IV 98 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Anwendungen Beispiel: [Satz von Myhill und Nerode: Nachweis der Nichtregularität] Diese Äquivalenzklassen sind alle paarweise verschieden, d.h., [a i b] [a j b] für i j. Denn für z = b i gilt a i bz L, aber a j bz L. Folglich ist Index(R L ) =. Nach dem Satz von Myhill und Nerode ist L REG. J. Rothe (HHU Düsseldorf) Informatik IV 99 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Anwendungen Beispiel: [Satz von Myhill und Nerode: Nachweis der Regularität] Wir zeigen, dass die folgende Sprache L regulär ist: L = {x {a, b} x endet mit aa}. Die Äquivalenzklassen von L bzgl. R L sind: [aa] = {x {a, b} aa R L x} = {a 2, a 3, a 4,..., ba 2, ba 3, ba 4,...} = L [a] = {a, ba, b 2 a,...} = {x {a, b} x endet mit a, aber nicht mit aa} [λ] = {λ, b, ab,...} = {x {a, b} x endet nicht mit a}. Da {a, b} = [aa] [a] [λ], ist Index(R L ) = 3. Nach dem Satz von Myhill und Nerode ist L REG. J. Rothe (HHU Düsseldorf) Informatik IV / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Anwendungen Beispiel: [Satz von Myhill und Nerode: Untere Schranken für die Anzahl der Zustände eines DFAs] Es sei L eine reguläre Sprache. Für jeden DFA M = (Σ, Z, δ, z, E) mit L(M) = L gilt nach der ( ) -Richtung im Beweis des Satzes von Myhill und Nerode: Index(R L ) Index(R M ) = Anzahl der in M von z aus erreichbaren Zustände Z. Das heißt, M hat mindestens so viele Zustände wie R L Äquivalenzklassen. J. Rothe (HHU Düsseldorf) Informatik IV / 7
Der Satz von Myhill und Nerode und Minimalautomaten Erinnerung: L 3 : dritter Buchstabe von hinten ist : DFA versus NFA, start z z, z2, z3 z2z z3zz zz zz2z z3zz2z z3z2z z3z start z J. Rothe (HHU Düsseldorf) Informatik IV 2 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Anwendungen Beispiel: [Satz von Myhill und Nerode: Untere Schranken für die Anzahl der Zustände eines DFAs] Wir wenden dieses Ergebnis an, um eine untere Schranke für die Anzahl der Zustände der DFAs anzugeben, die die Sprache L n = {x {, } der n-te Buchstabe von hinten in x ist } = {x {, } x = uv mit u {, } und v {, } n }. erkennen. Wir betrachten die Wörter aus {, } n, d.h. die Wörter der Länge n über dem Alphabet {, }. Es seien u, v {, } n mit u v. Dann gibt es ein i, i n, so dass sich u und v an der Position i unterscheiden. J. Rothe (HHU Düsseldorf) Informatik IV 3 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Anwendungen Beispiel: [Satz von Myhill und Nerode: Untere Schranken für die Anzahl der Zustände eines DFAs] Wir nehmen o.b.d.a. an, dass u an der Position i eine und v an der Position i eine hat: Es gilt nun: u = i L v = i L 2 i n u i L, da der n-te Buchstabe von hinten in u i eine ist, und v i L, da der n-te Buchstabe von hinten in v i eine ist. J. Rothe (HHU Düsseldorf) Informatik IV 4 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Anwendungen Beispiel: [Satz von Myhill und Nerode: Untere Schranken für die Anzahl der Zustände eines DFAs] Somit sind u und v nicht äquivalent bezüglich R Ln. Da u und v beliebig waren, sind alle Wörter aus {, } n nicht äquivalent bezüglich R Ln, und es folgt: Index(R Ln ) 2 n. Somit hat jeder DFA für L n mindestens 2 n Zustände. (Erinnerung: Es gibt einen NFA für L n mit n + 2 Zuständen.) J. Rothe (HHU Düsseldorf) Informatik IV 5 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Erinnerung: L 8 : DFA versus NFA z, z z2, z3, z4, z5, z6, z7, z8, start z zz z2z z2zz z3z z3zz z3z2zz z3z2z z3z2zz4 z3z2zzz4 z3zzz4 z3zz4 z3zz5zz4 z3z5zz4 z3z2zz5zz4 z3z2z5zz4 z6z2z5zz4 z6z2zz5zz4 z6zz5zz4 z6z5zz4 z6z3z7z5z z6z3z7zz5z z6z3z2z7zz5z z6z3z2z7z5z z6z7z8zz4 z6z7zz8zz4 z6z2z7zz8zz4 z6z2z7z8zz4 z3z2z7z8z5z z3z2z7zz8z5z z3z7zz8z5z z3z7z8z5z z6z2z8zz4 z6z2zz8zz4 z6z8zz4 z6zz8zz4 z3z7z5z z3z7zz5z z3z2z7z5z z3z2z7zz5z z7zz5z z7z5z z2z7zz5z z2z7z5z z6z3z2zz8z z6z3z2z8z z6z3zz8z z6z3z8z z3z2z7zz4 z3z2z7zzz4 z3z7zz4 z3z7zzz4 z8z5zz4 zz8z5zz4 z2zz8z5zz4 z2z8z5zz4 z6z5z z6zz5z z6z2z5z z6z2zz5z z6z7z z6z7zz z6z2z7z z6z2z7zz z7z8z z7zz8z z2z7z8z z2z7zz8z z3z8z z3zz8z z3z2zz8z z3z2z8z z2z5zz4 z2zz5zz4 z5zz4 zz5zz4 z6z3z5z z6z3zz5z z6z3z2z5z z6z3z2zz5z z6z3z7zzz4 z6z3z7zz4 z6z3z2z7zz4 z6z3z2z7zzz4 z3z7z8z5zz4 z3z7zz8z5zz4 z3z2z7zz8z5zz4 z3z2z7z8z5zz4 z6z8z5zz4 z6zz8z5zz4 z6z2zz8z5zz4 z6z2z8z5zz4 z7z8z5z z7zz8z5z z2z7z8z5z z2z7zz8z5z z6z8z z6zz8z z6z2z8z z6z2zz8z z7zz z7z z2z7z z2z7zz z2z8z z2zz8z zz8z z8z zz4 zzz4 z2zz4 z2zzz4 zz5z z5z z2zz5z z2z5z z6z3z2z z6z3z2zz z6z3zz z6z3z z6z7zzz4 z6z7zz4 z6z2z7zzz4 z6z2z7zz4 z3z7z z3z7zz z3z2z7zz z3z2z7z z3z2z8zz4 z3z2zz8zz4 z3z8zz4 z3zz8zz4 z6z2z7z5z z6z2z7zz5z z6z7z5z z6z7zz5z z6z3z7z8z z6z3z7zz8z z6z3z2z7z8z z6z3z2z7zz8z z7zz8zz4 z7z8zz4 z2z7zz8zz4 z2z7z8zz4 z2z8z5z z2zz8z5z z8z5z zz8z5z z6zz z6z z6z2zz z6z2z z3z5z z3zz5z z3z2zz5z z3z2z5z z6zzz4 z6zz4 z6z2zz4 z6z2zzz4 z6z3z2z5zz4 z6z3z2zz5zz4 z6z3z5zz4 z6z3zz5zz4 z6z7zz5zz4 z6z7z5zz4 z6z2z7zz5zz4 z6z2z7z5zz4 z6z3z2z7z8z5z z6z3z2z7zz8z5z z6z3z7zz8z5z z6z3z7z8z5z z6z3zz8zz4 z6z3z8zz4 z6z3z2zz8zz4 z6z3z2z8zz4 z3z2z7z5zz4 z3z2z7zz5zz4 z3z7zz5zz4 z3z7z5zz4 z6z7zz8z z6z7z8z z6z2z7z8z z6z2z7zz8z z3z7zz8z z3z7z8z z3z2z7z8z z3z2z7zz8z z2z8zz4 z2zz8zz4 z8zz4 zz8zz4 z6z3zz8z5zz4 z6z3z8z5zz4 z6z3z2z8z5zz4 z6z3z2zz8z5zz4 z6z2z7zz8z5z z6z2z7z8z5z z6z7z8z5z z6z7zz8z5z z3z7z8zz4 z3z7zz8zz4 z3z2z7z8zz4 z3z2z7zz8zz4 z3z8z5zz4 z3zz8z5zz4 z3z2zz8z5zz4 z3z2z8z5zz4 z6z3z2zzz4 z6z3z2zz4 z6z3zz4 z6z3zzz4 z6z3z7zz5zz4 z6z3z7z5zz4 z6z3z2z7zz5zz4 z6z3z2z7z5zz4 z6z3z2z7zz8z5zz4 z6z3z2z7z8z5zz4 z6z3z7z8z5zz4 z6z3z7zz8z5zz4 z6z7zz8z5zz4 z6z7z8z5zz4 z6z2z7z8z5zz4 z6z2z7zz8z5zz4 z2z7zz4 z2z7zzz4 z7zzz4 z7zz4 z3zz8z5z z3z8z5z z3z2zz8z5z z3z2z8z5z z6z3z7zz z6z3z7z z6z3z2z7zz z6z3z2z7z z6z3z7zz8zz4 z6z3z7z8zz4 z6z3z2z7zz8zz4 z6z3z2z7z8zz4 z2z7zz8z5zz4 z2z7z8z5zz4 z7zz8z5zz4 z7z8z5zz4 z6z2z8z5z z6z2zz8z5z z6z8z5z z6zz8z5z z2z7z5zz4 z2z7zz5zz4 z7zz5zz4 z7z5zz4 z6z3zz8z5z z6z3z8z5z z6z3z2z8z5z z6z3z2zz8z5z start J. Rothe (HHU Düsseldorf) Informatik IV 6 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Minimalautomaten Definition (Minimalautomat) Ein DFA M mit totaler Überführungsfunktion heißt Minimalautomat, falls es keinen zu M äquivalenten DFA mit totaler Überführungsfunktion und weniger Zuständen gibt. Bemerkung: Es sei L Σ eine reguläre Sprache. Der in der Rückrichtung im Beweis des Satzes von Myhill und Nerode bestimmte Äquivalenzklassen-Automat M ist der DFA mit einer kleinstmöglichen Anzahl von Zuständen, der L akzeptiert. J. Rothe (HHU Düsseldorf) Informatik IV 7 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Minimalautomaten Begründung: die Anzahl der Zustände von M ist gleich Index(R L ) (Anzahl der Äquivalenzklassen der Myhill-Nerode-Relation) und für jeden DFA M = (Σ, Z, δ, z, E) mit L(M) = L = L(M ) gilt nach der ( ) -Richtung im Beweis des Satzes von Myhill und Nerode: Index(R L ) Index(R M ) = Anzahl der in M von z aus erreichbaren Zustände Z. Folglich hat M höchstens so viele Zustände wie M. J. Rothe (HHU Düsseldorf) Informatik IV 8 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Satz von Myhill und Nerode: Minimalautomaten Bemerkung: Alle DFAs, die L akzeptieren und genau Index(R L ) Zustände haben, sind bis auf Umbenennung der Zustände äquivalent, d.h., Minimalautomaten sind (bis auf Isomorphie) eindeutig bestimmt. J. Rothe (HHU Düsseldorf) Informatik IV 9 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Algorithmus Minimalautomat Eingabe: DFA M = (Σ, Z, δ, z, F). Ausgabe: Ein zu M äquivalenter Minimalautomat. Algorithmus: Entferne alle von z nicht erreichbaren Zustände aus Z. 2 Erstelle eine Tabelle aller (ungeordneten) Zustandspaare {z, z } von M mit z z. 3 Markiere alle Paare {z, z } mit z F z F. 4 Sei {z, z } ein unmarkiertes Paar. Prüfe für jedes a Σ, ob {δ(z, a), δ(z, a)} bereits markiert ist. Ist mindestens ein Test erfolgreich, so markiere auch {z, z }. 5 Wiederhole Schritt 4, bis keine Änderung mehr eintritt. 6 Bilde maximale Mengen paarweise nicht disjunkter unmarkierter Zustandspaare und verschmelze jeweils alle Zustände einer Menge zu einem neuen Zustand. J. Rothe (HHU Düsseldorf) Informatik IV / 7
Der Satz von Myhill und Nerode und Minimalautomaten Algorithmus Minimalautomat: Beispiel Bemerkung: Der Algorithmus Minimalautomat kann mit einer Laufzeit von O( Z 2 ) implementiert werden. Beispiel: Minimalautomat zu gegebenem DFA. Wir wollen einen Minimalautomaten zum DFA M = (Σ, Z, δ, z, F) bestimmen, wobei Überführungsfunktion δ Σ = {, } Z = {z, z, z 2, z 3, z 4 } Σ Z z z z 2 z 3 z 4 F = {z 3, z 4 } z z 3 z 4 z 3 z 4 z 2 z 3 z 4 z 3 z 4 J. Rothe (HHU Düsseldorf) Informatik IV / 7
Der Satz von Myhill und Nerode und Minimalautomaten Algorithmus Minimalautomat: Beispiel (.) Es sind alle Zustände von z aus erreichbar. (2.)+(3.) Markiere alle Paare {z, z } mit z F z F: z z z 2 z 3 z 4 z 3 z 2 z J. Rothe (HHU Düsseldorf) Informatik IV 2 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Algorithmus Minimalautomat: Beispiel (4.) Da {δ(z, ), δ(z 2, )} markiert ist, wird {z, z 2 } markiert, und da {δ(z, ), δ(z, )} markiert ist, wird {z, z } markiert: z z z 2 z 3 z 4 z 3 z 2 z J. Rothe (HHU Düsseldorf) Informatik IV 3 / 7
Der Satz von Myhill und Nerode und Minimalautomaten Algorithmus Minimalautomat: Beispiel (5.) Es ergeben sich nun keine weiteren Änderungen mehr. (6.) Wir können die Zustände z und z 2 bzw. z 3 und z 4 zu einem Zustand z 2 bzw. z 34 zusammenfassen. Damit erhalten wir einen zu M äquivalenten DFA M = (Σ, Z, δ, z, F ): Überführungsfunktion δ Σ = {, } Z = {z, z 2, z 34 } F = {z 34 } Z Σ z z 2 z 34 z 2 z 34 z 34 z 2 z 34 z 34 J. Rothe (HHU Düsseldorf) Informatik IV 4 / 7
Abschlusseigenschaften regulärer Sprachen Abschlusseigenschaften regulärer Sprachen Definition Seien Σ ein Alphabet und C P(Σ ) eine Sprachklasse über Σ. C heißt abgeschlossen unter Vereinigung, falls ( A, B Σ ) [(A C B C) A B C]; Komplement, falls ( A Σ ) [A C A C]; Schnitt, falls ( A, B Σ ) [(A C B C) A B C]; Differenz, falls ( A, B Σ ) [(A C B C) A B C]; Konkatenation, falls ( A, B Σ ) [(A C B C) AB C]; Iteration (Kleene-Hülle), falls ( A Σ ) [A C A C]; Spiegelung, falls ( A Σ ) [A C sp(a) C]. J. Rothe (HHU Düsseldorf) Informatik IV 5 / 7
Abschlusseigenschaften regulärer Sprachen Abschlusseigenschaften regulärer Sprachen Theorem REG ist unter allen in der obigen Definition angegebenen Operationen abgeschlossen. Behauptung: Für jedes n ist die Sprache L n regulär: L n = {x {, } der n-te Buchstabe in x ist } = {x {, } x = uv mit u {, } n und v {, } }. 2 Die folgende Sprache ist nicht regulär: {x {, } x enthält gleich viele en und en}. J. Rothe (HHU Düsseldorf) Informatik IV 6 / 7
Charakterisierungen regulärer Sprachen Charakterisierungen regulärer Sprachen Folgerung: Es sei L Σ eine Sprache. Dann sind die folgenden Aussagen äquivalent: Es gibt eine rechtslineare Grammatik G mit L(G) = L. (Form der Regeln: A ab oder A a.) 2 Es gibt eine linkslineare Grammatik G mit L(G) = L. (Form der Regeln: A Ba oder A a.) 3 Es gibt einen DFA M mit L(M) = L. 4 Es gibt einen NFA M mit L(M) = L. 5 Es gibt einen regulären Ausdruck α mit L(α) = L. 6 Für die Myhill-Nerode-Relation R L gilt: Index(R L ) <. J. Rothe (HHU Düsseldorf) Informatik IV 7 / 7