Endliche Automaten Überführung regulärer Ausdrücke in endliche Automaten Karin Haenelt 25.4.2009 1 Inhalt Anwendung: Spezifikation linguistischer Regeln Theoretische Basis: Äquivalenz regulärer Ausdrücke und endlicher Automaten Überführung regulärer Ausdrücke in endliche Automaten Vorbereitung: Parsing regulärer Ausdrücke Algorithmus von Thompson Algorithmus von Glushkov und von McNaughton/Yamada Algorithmus von Fox © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 2 Linguistische Anwendungen: Lexikon (ab) (aber) ... (denk:denk) (dach:denk) start 0 a a d d 1 b b 5 e a e e © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 2 e e 3 6 n c 7 8 n n 9 r r 4 k h k k 3 Linguistische Anwendungen: Regeln Stamm (Fuge? Stamm)* Flexiv start 0 Stamm Stamm 1 Stamm Fuge 3 Flexiv 2 Artikel? Adjektiv* Nomen start © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 0 Adjektiv Adjektiv Artikel Nomen 1 Nomen 2 4 Inhalt Anwendung: Spezifikation linguistischer Regeln Theoretische Basis: Äquivalenz regulärer Ausdrücke und endlicher Automaten Überführung regulärer Ausdrücke in endliche Automaten Vorbereitung: Parsing regulärer Ausdrücke Algorithmus von Thompson Algorithmus von Glushkov und von McNaughton/Yamada Algorithmus von Fox © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 5 Äquivalenzen Reguläre Ausdrücke sind äquivalent spezifizieren Endliche Automaten Reguläre Sprachen akzeptieren © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 6 Äquivalenzen: Beispiel e = (dete,adje,nomn) | (dete,nomn) | (adje,nomn) | (nomn) e = (dete|ε) (adje|ε) nomn spezifizieren beschreiben e = dete? adje? nomn adje A 0 dete nomn 1 adje 2 nomn © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 nomn 3 erkennen L(e) = L(A) = { (dete,adje,nomn), (dete,nomn), (adje, nomn), (nomn) } 7 Äquivalenz endlicher Automaten und regulärer Ausdrücken Satz: Die von endlichen Automaten akzeptierten Sprachen sind genau die Sprachen, die durch reguläre Ausdrücke spezifiziert werden können. Beweis durch Konstruktion eines endlichen Automaten zu einem regulären Ausdruck und umgekehrt Konstruktion RegEx → EA Beispiel für Konstruktion eines εNEA: nach Thompson (1968) auch andere Verfahren bekannt Hopcroft/Ullmann 1988:29 © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 8 Äquivalenz endlicher Automaten und regulärer Ausdrücke Satz (zum Thompson-Verfahren). Sei E ein regulärer Ausdruck. Dann gibt es einen εNEA, der L(E) akzeptiert Beweis mit Thompson-Konstruktion Wir zeigen durch Induktion über die Struktur der Operatoren im regulären Ausdruck, dass es einen NEA M mit ε-Transitionen und einem Endzustand, aus dem keine Transitionen herausführen, gibt, so dass L(M) = L(E) Induktionsanfang: elementare reguläre Ausdrücke Induktionsschritt: zusammengesetzte reguläre Ausdrücke Vereinigung Konkatenation Kleenesche Hülle © Kari n Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 9 Prinzip des Beweises der Äquivalenz regulärer Ausdrücke und endlicher Automaten (mit Thompson-Konstruktion) Angabe von Automaten für elementare reguläre Ausdrücke zusammengesetzte reguläre Ausdrücke Feststellung durch einfache Beobachtung: die Sprachen L(M), die von den Automaten akzeptiert werden und die Sprachen L(E), die von den regulären Ausdrücken EA beschrieben werden sind identisch © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 RegEx L(E) Reguläre L(M) Sprachen 10 Beweis Induktionsanfang: elementare reguläre Ausdrücke Feststellung durch einfache Beobachtung: a © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 E=ε Automat akzeptiert nur ε , ist also äquivalent zu E = ε E = {} Automat hat keine Kante vom Startzustand zum Zielzustand, ist also äquivalent zu E = Ø E=a Automat akzeptiert nur a, ist also äquivalent zu E = a 11 Beweis Induktionsschritt: zusammengesetzte Ausdrücke R S R S Pfade vom Start- zum Zielzustand: erst durch den Automaten R, E=RS dann durch den Automaten S. EA ist also äquivalent zu E = RS Pfade vom Start- zum Zielzustand: gar nicht, einmal oder mehrmals E=R* durch den Automaten für R. EA ist also äquivalent zu E = R* R © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 Pfade vom Start- zum Zielzustand: durch den Automaten R oder E=R|S durch den Automaten S. EA ist also äquivalent zu E = R|S 12 Inhalt Anwendung: Spezifikation linguistischer Regeln Theoretische Basis: Äquivalenz regulärer Ausdrücke und endlicher Automaten Überführung regulärer Ausdrücke in endliche Automaten Vorbereitung: Parsing regulärer Ausdrücke Algorithmus von Thompson Algorithmus von Glushkov und von McNaughton/Yamada Algorithmus von Fox © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 13 Algorithmen Thompson-Konstruktion für allgemeine Ausdrücke erzeugt einen ε -NEA meist als Standardverfahren und Beweis der Äquivalenz regulärer Ausdrücke und endlicher Automaten vorgestellt Glushkov oder McNaughton/Yamada-Konstruktion für allgemeine Ausdrücke erzeugt einen DEA interessant für linguistische Anwendungen Fox-Konstruktion für Ausdrücke, die nur durch Konkatenation gebildet werden (Lexika) erzeugt einen DEA © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 14 Übersicht der Algorithmen Thompson Endesymbol bestimmen Erkennen des regulären Ausdrucks Erzeugung eines ε - N E A Glushkov und McNaughton/Yamada Endesymbol bestimmen Erkennen des Algorithmus von regulären Hopcroft/Ullman 1988 Ausdrucks Einfügen der Algorithmus von Hopcroft/Ullman 1988 Einfüg K o n s t r e n u k einen ε v o n T h d - t i N o e o n E m r s s c h r i t t e f ü r A u f S y b a n t u a d x b e a s u m e s K A p o e s o n 1 9 6 8 i S H n d o e p n c A r o l f t g / o U r l l i m t h m a u n s 1 v 9 8 o n i 8 u n l f E D n u k l a s o t l r l l o e A i o a b l p o s w z E t p u n e o g e n , f u n i r s t p o s , s u n g e i n e s A ( © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 i i e K o P a r o n t s r d B ü i M a s s t n o n s n e / S N T r l h u r i t m r u i l t t e b f z t ü w 9 n e r t n o 8 k i d a i n ä r b a u m u m 8 o n e r e n i s n t a s x v u g v o h e b n t r a s u m G o n i o l / Y e u s a s h m ) ) n k a n 15 B r . b v 1 u r ä s n o n u F k i m a r u B h m e e a c a a r d a b b U u s m f t s e o / y m : s g d h c i f e n u l g o u A o e t r A r i a : n f t b s c n n g i p k a x e o u P a s K l u t d d d n n r n a E t e B H F s n y ( i n o d v a n Literatur Erkennung regulärer Ausdrücke Algorithmus von Thompson Hopcroft, John E. und Jeffrey D. Ullman (1988). Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. Bonn u. a.: Addison-Wesley, 1988 (engl. Original Introduction to automata theory, languages and computation). Hopcroft, John E., Rajeev Motwani und Jeffrey D. Ullman (2002). Einführung in die Automatentheorie, Formale Sprachen und Komplexität. Pearson Studium engl. Original: Introduction to Automata Theory, Languages and Computation. AddisonWesley. www-db.stanford.edu/~ullman/ialc.html Thompson, Ken (1968). Regular expression search algorithms. In: CACM 11(6): 419422. Algorithmus von Glushkov und McNaughton/Yamada Glushkov, Viktor M.(1961). The abstract theory of automata. In: Russian Mathematical Surveys 16, S. 1-53. Glushkov, Viktor M.(1960). On Synthesis Algorithm for Abstract Automata, Ukr. Mathem. Zhurnal, 12(2), S.147-156. Aho, Alfred V.; Sethi, Ravi und Jeffrey D. Ullman (1986). Compilers. Principles, Techniques and Tools. Addison-Wesley Publishing Company. (S. 141) McNaughton, Robert und Hisao Yamada (1960). Regular expressions and state graphs for automata. In IEEE Transactions on Electronic Computers 9 (1): S. 39-47. © Karin Haenelt, Endliche Automaten, Akzeptoren, 20.4.2009 16 Literatur Algorithmus von Fox Fox, Christopher J. (1992). Lexical Analysis and Stoplists. In: Frakes, William; Baeza-Yates, Ricardo (eds.): Information Retrieval. Data Structures and Algorithms. Prentice Hall: New Jersey, 1992, Kap. 7 (S.102-130) http://www-lsi.upc.es/~rbaeza/iradsbook/irbook.html http://www.dcc.uchile.cl/~rbaeza/iradsbook/ (Inhaltsverzeichnis und Programme in C) Algorithmen und Datenstrukturen (veschiedene Bücher zu verschiedenen Programmiersprachen), z.B. Sedgewick, Robert (1992). Algorithmen in C++. München; Paris; Reading, Mass. et al.: Addison-Wesley. http://www.cs.princeton.edu/~rs/ (gleiche Bücher auch für C und Java) Standish, Thomas A.(1998). Data Structures in Java. Addison Wesley Longman ftp://ftp.aw.com/cseng/authors/standish/dsj/progs/ch8.txt) © Karin Haenelt, Endliche Automaten, RegEx → FSA 25.4.2009 17 Copyright © 2009 Karin Haenelt. All rights reserved. The German Urheberrecht shall be applied to these slides. In accordance with these laws these slides are a publication which may be quoted and used for non-commercial purposes, if the bibliographic data is included as described below. Please quote correctly. If you use the presentation or parts of it for educational and scientific purposes, please include the bibliographic data (author, title, date, page, URL) in your publication (book, paper, course slides, etc.). Deletion or omission of the footer (with name, data and copyright sign) is not permitted Bibliographic data. Karin Haenelt (2009). Endliche Automaten. Überführung regulärrer Ausrücke in endliche Automaten. 25.4.2009 http://kontext.fraunhofer.de/haenelt/kurs/folien/Haenelt_FSA-RegExFSA.pdf Any further use requires the prior permission in writing from the author. For commercial use: No commercial use is allowed without written permission from the author. In case you are interested in commercial use please contact the author. Court of Jurisdiction is Darmstadt. © Karin Haenelt, Endliche Automaten, Akzeptoren, 20.4.2009 18