1 / 26

Christian Schindelhauer

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:

miracle
Télécharger la présentation

Christian Schindelhauer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Einführung in Berechenbarkeit, Formale Sprachen und KomplexitätstheorieWintersemester 2005/200624.10.20053. Vorlesung Christian Schindelhauer

  2. Kapitel III Reguläre Sprachen Reguläre Sprachen und Ausdrücke

  3. 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 )

  4. 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 = F1F2 Übergangsfunktion Abschluss unter Vereinigung

  5. 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 )

  6. 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

  7. 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)*

  8. 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

  9. 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: abi*a*c*k = (ab)((i*)a*)c*k) • Schöner: = ab  i*a*  c*k

  10. Beispiele • Zum Warmwerden: Was ist das? • flick  flack = fl (i  a) ck • fidera(la)*la • 0*10* • (0123456789)*(05) • Kniffliger: • otto Ø • otto  • otto  Ø • Praktisch unlösbar (oder?) •   Ø •   Ø • * • Ø* • Der Knüller • Ø (Ø  (Ø  Ø ))*

  11. Reguläre Operationen • Definition • Die regulären Operationen Vereinigung, Konkatenation und Stern werden wie folgt definiert • Vereinigung: • Konkatenation • Stern

  12. 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: )

  13. 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

  14. 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)*

  15. 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)

  16. GNFA mit k Zuständen  GNFA mit k-1 Zuständen

  17. GNFA mit k Zuständen  GNFA mit k-1 Zuständen

  18. 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

  19. 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

  20. 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

  21. 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 qrausQ\{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

  22. 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

  23. Noch ein Beispiel

  24. Noch ein Beispiel

  25. Daraus folgt... • Theorem • Die regulären Ausdrücken beschreiben genau die regulären Sprachen.

  26. 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

More Related