260 likes | 368 Views
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 24.10.2005 3. Vorlesung. Christian Schindelhauer. Kapitel III Reguläre Sprachen. Reguläre Sprachen und Ausdrücke. Ein alternativer Beweis für den Abschluß über der Vereinigung. Beweisskizze:
E N D
Einführung in Berechenbarkeit, Formale Sprachen und KomplexitätstheorieWintersemester 2005/200624.10.20053. Vorlesung Christian Schindelhauer
Kapitel III Reguläre Sprachen Reguläre Sprachen und Ausdrücke
Ein alternativer Beweis für den Abschluß über der Vereinigung • Beweisskizze: • Betrachte NFAs N1 und N2 • Konstruiere N mit neuem Startzustand und -Übergangen zu den Startzuständen von N1 und N2 • NFA N akzeptiert L(N1) L(N2 )
Alternativer Beweis Gegeben seien nichtdeterministische endliche Automaten N1 = (Q1, , 1, q1, F1) und N2 = (Q2, , 2, q2, F2) Konstruktion von N = (Q, , , q0, F)mit L(N)= L(N1) L(N2 ) Zustandsmenge: Q = {q0} Q1 Q2 Anfangszustand: q0 Akzeptierende Zustände:F = F1F2 Übergangsfunktion Abschluss unter Vereinigung
Die regulären Sprachen sind über der Konkatenation abgeschlossen • Beweisskizze: • Betrachte NFA N1 und N2 • Konstruiere NFA N mit -Übergangen von allen akzeptierenden Zuständen von NFA N1 zu dem Startzustand von NFA N2 • Neuer Startzustand von N ist Startzustand von N1 • Die neuen akzeptierenden Zustände sind die von N2 • NFA N akzeptiert L(N1)L(N2 )
Theorem Die Menge der regulären Sprachen ist abgeschlossen unter Konkatenation Beweis: Gegeben seien nichtdeterministische endliche Automaten N1 = (Q1, , 1, q1, F1) und N2 = (Q2, , 2, q2, F2) Konstruktion von N mit L(N)= L(N1) L(N2 ) Zustandsmenge: Q’ = Q1 Q2 Anfangszustand: q0 = q1 Akzeptierende Zustände:F = F2 Übergangsfunktion Abschluss unter Konkatenation
Die regulären Sprachen sind unter dem Stern-Operator abgeschlossen • Beweisskizze: • Betrachte NFA N1 • Konstruiere NFA N mit neuem Startzustand • -Übergang vom neuem Startzustand zum alten • -Übergangen von allen akzeptierenden Zuständen zum Exstartzustand • Rest bleibt gleich in N • L(N) = L(N1)*
Theorem Die Menge der regulären Sprachen ist abgeschlossen unter der Stern-Operation Beweis: Gegeben sei der nichtdeterministische endliche Automat N1 = (Q1, , 1, q1, F1) und Konstruktion von N mit L(N)= L(N1)* Zustandsmenge: Q’ = {q0} Q1 Anfangszustand: q0 Akzeptierende Zustände:F = {q0} F1 Übergangsfunktion Abschluss unter der Stern-Operation
Reguläre Ausdrücke • Definition • R ist ein regulärer Ausdruck, wenn R eines der Darstellungen besitzt • a, für ein Zeichen a • • Ø • (R1 R2), wenn R1 und R2 schon reguläre Ausdrücke sind • (R1 R2), wenn R1 und R2 reguläre Ausdrücke sind • (R1)*, wenn R1 ein regulärer Ausdruck ist • Notation • statt R1 R2 schreiben wir R1 R2 • Bindung: • zuerst Stern, dann Konkatenation, dann Vereinigung • Also: abi*a*c*k = (ab)((i*)a*)c*k) • Schöner: = ab i*a* c*k
Beispiele • Zum Warmwerden: Was ist das? • flick flack = fl (i a) ck • fidera(la)*la • 0*10* • (0123456789)*(05) • Kniffliger: • otto Ø • otto • otto Ø • Praktisch unlösbar (oder?) • Ø • Ø • * • Ø* • Der Knüller • Ø (Ø (Ø Ø ))*
Reguläre Operationen • Definition • Die regulären Operationen Vereinigung, Konkatenation und Stern werden wie folgt definiert • Vereinigung: • Konkatenation • Stern
Lemma Jeder reguläre Ausdruck R beschreibt eine reguläre Sprache Beweis Wir konvertieren R in einen NFA 1. Fall R = a, für a Automat: Formal: 2. Fall R = Automat: Formal: 3. Fall R = Ø Automat: Formal: 4. Fall: R = (R1 R2), 5. Fall: (R1 R2), 6. Fall: (R1)* siehe Folien 03-3 bis 03-08 Die regulären Ausdrücke beschreiben genau die reguläre Sprachen (1. Teil: )
Die regulären Ausdrücke beschreiben genau die reguläre Sprachen (2. Teil: ) • Strategie: • Einführung der verallgemeinerten nichtdeterministischen endlichen Automaten (Generalized Non-deterministic Finite Automata - GNFA) • NFA GNFA • GNFA Regulärer Ausdruck • Eigenschaften GNFA: • GNFA = NFA + reguläre Ausdrücke • Reguläre Ausdrücke auf den Übergängen • Ein akzeptierender Zustand • Alle Übergänge existieren • Ausnahmen: • Kein Übergang hin zum Startzustand • Kein Übergang ausgehend vom akzeptierenden Zustand
Die regulären Ausdrücke beschreiben genau die reguläre Sprachen (2. Teil: ) • Strategie: • NFA mit k Zuständen GNFA mit k+2 Zuständen • GNFA mit k+2 Zuständen GNFA mit k+1 Zuständen • GNFA mit k+1 Zuständen GNFA mit k Zuständen • ... • GNFA mit 3 Zuständen GNFA mit 2 Zuständen • GNFA mit 2 Zuständen Regulärer Ausdruck a*b(a b)*
GNFA mit k Zuständen GNFA mit k-1 Zuständen • Wie kann man einen Zustand im GNFA einsparen? • Zustand qraus soll raus • Betrachte alle anderen Paare qi,qj • Jeder Weg von qi nach qj kann entweder • nach qraus führen (R1) • dort beliebig häufig qraus die Schleife über qraus nehmen (R2)* • dann nach qj gehen (R3) • oder • überhaupt nicht über qraus gehen (R4)
Und jetzt ausführlich: • Lemma • Jeder GNFA mit k>2 Zuständen läßt sich in einem äquivalenten mit k-1 Zuständen umformen. • Beweisschritte • Formale Definition des GNFA • Formale Definition der Berechung eines GNFAs • Definition der Operation Konvertiere(G) • der ein GNFA um einen Zustand reduziert • Beweis der Korrektheit der Operation
Definition eines GNFA • Definition • Ein verallgemeinerter nichtdeterministischer endlicher Automat (GNFA) wird durch das 5-Tupel(Q, , , qstart, qakz) beschrieben • Q: Eine endliche Menge von Zuständen • : ist das Alphabet • : (Q\{qakz}) (Q\{qstart}) R ist die Übergangsfunktion • R ist die Menge der regulären Ausdrücke • qstart Q: ist der Startzustand • qakz Q: ist der akzeptierende Endzustand
Definition Ein GNFA N = (Q, , , qstart, qakz) akzeptiert ein Wort w * falls es eine Darstellung der Eingabe w = w1 w2 ...wm mit w * gibt und es eine Folge q0 q1 ...qm von Zuständen aus Q gibt, wobei q0 = qstart qm = qakz für alle i: wi L(Ri) gilt Ri = (qi-1,qi) dann akzeptiert N das Wort. w = abbbaaaaabb = abbb aaaa ab b Berechnung eines GNFA
Der KONVERTIERER Konvertiere(G=(Q, , , qstart, qakz) :GNFA): • Sei k die Anzahl der Zustände von G • Falls k=2 dann • Gib regulären Ausdruck zwischen Startzustand und akzept. Zustand aus • Falls k>2 dann • Wähle beliebig qrausQ\{qakz,qstart} aus • Betrachte GNFA G’ = (Q’, , ’, qstart, qakz) mit • Q’ = Q \ {qraus} • Für alle qi Q\{qakz} und qj Q\{qstart}) sei • ’(qi,qj) = (R1) (R2)* (R3) (R4) • wobei R1= (qi,qraus), R2= (qraus,qraus),R3= (qraus,qj), R4= (qi,qj) • Berechne rekursiv Konvertiere(G’) und gib das Ergebnis aus
Behauptung Für jeden GNFA G ist Konvertiere(G) äquivalent zu G. Beweis durch Induktion über die Anzahl der Zustände von G k Basis (Anker): k=2 Der GNFA G hat nur einen Übergang Nach Definition ist er äquivalent mit dem regulären Ausdruck auf dem Übergang Induktionsschritt: Angenommen die Behaupting ist wahr für k-1 Zustände Angenommen G akzeptiert w und sei qstart,q1,q2,...qakzdie Folge der Zustände 1. Fall: qraus ist nicht in der Folge: dann bleibt alles unverändert 2. Fall: qraus ist in der Folge: Dann stehen vor oder nach einer Folge von qraus andere Zustände Seien dies qi und qj dann ist das Teilwort von qi nach qj im Ausdruck (R1) (R2)* (R3) enthalten Angenommen G’ akzeptiert w und sei qstart,q1,q2,...qakzdie Folge der Zustände Dann kann jeder Übergang mit Teilwort w’ zwischen zwei Zuständen qi und qj dargestellt werden durch einen direkten Übergang in G falls w’ L(R4) oder durch einen Weg über qraus falls w’ L((R1) (R2)* (R3)) In jedem Fall würde auch G das Wort w akzeptieren G akzeptiert also gdw. G’ akzeptiert Beweis der Korrektheit
Daraus folgt... • Theorem • Die regulären Ausdrücken beschreiben genau die regulären Sprachen.
Vielen DankEnde der 3. VorlesungNächste Vorlesung: Di. 25.10.2005 • Heinz Nixdorf Institut • & Institut für Informatik • Universität Paderborn • Fürstenallee 11 • 33102 Paderborn • Tel.: 0 52 51/60 66 92 • Fax: 0 52 51/62 64 82 • E-Mail: schindel@upb.de • http://www.upb.de/cs/schindel.html