Überführung regulärer Ausdrücke in endliche Automaten Der Algorithmus von Glushkov und McNaughton/Yamada Karin Haenelt 14.5.2010.

Slides:



Advertisements
Ähnliche Präsentationen
Baumautomaten Christian Klein Betreuer : Tim Priesnitz
Advertisements

LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Institut für Informatik Abt. Intelligente Systeme
8. Formale Sprachen und Grammatiken
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Verifizieren versus Berechnen
Kapitel 4 Syntaktische Analyse: LR Parsing.
Stoyan Mutafchiev Betreuer: Ilhan, Tim
Suche in Texten: Suffix-Bäume
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Reguläre Sprachen Karin Haenelt.
Endliche Automaten Akzeptoren
Formale Grundlagen der Faktenextraktion mit endlichen Automaten
Endliche Automaten Überführung regulärer Ausdrücke in endliche Automaten Karin Haenelt
Reguläre Ausdrücke Karin Haenelt
© Karin Haenelt 2006, Äquivalenzen Reg.Ausdrücke, Reg.Sprachen, EA ( ) 1 Reguläre Sprachen Karin Haenelt.
© Karin Haenelt, Modellierung Menschlicher.Sprachen mit Regulären Ausdrücken, Modellierung menschlicher Sprachen mit Regulären Ausdrücken.
Parsing regulärer Ausdrücke
Mathematische Grundlagen
© Karin Haenelt 2006, Operationen auf Akzeptoren und Transduktoren, ( ) 1 Operationen auf endlichen Akzeptoren und Transduktoren.
© Karin Haenelt 2005, Endliche Automaten: Alphabet, Zeichenreihe, Sprache, Endliche Automaten Grundlagen: Alphabet, Zeichenreihe, Sprache.
Mathematische Grundlagen
© Karin Haenelt, Transduktoren, Transduktoren für die Sprachverarbeitung Vereinigung von Transduktoren Karin Haenelt Karin Haenelt, Transduktoren,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Christian Schindelhauer
Christian Schindelhauer
AC Analyse.
AC Analyse. 2Ausgewählte Themen des analogen Schaltungsentwurfs Sprungantwort.
Differentieller Stromverstärker
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
SK / , , in Hochkössen und der Wildschönau flow Ski- und Snowboardschule Intersport Menzel.
Syntaxanalyse Bottom-Up und LR(0)
Auslegung eines Vorschubantriebes
Analyse von Ablaufdiagrammen
PROCAM Score Alter (Jahre)
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Symmetrische Blockchiffren DES – der Data Encryption Standard
SK / – in Hochkössen, St. Johann i.Tirol und Hochfügen flow Ski- und Snowboardschule Intersport Menzel.
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Großer Altersunterschied bei Paaren fällt nicht auf!
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
Pigmentierte Läsionen der Haut
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
1 Mathematical Programming Nichtlineare Programmierung.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Softwareengineering Endliche Automaten
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
1 IdeenSet Sonnensystem Ideenset Wann können Sonnenfinsternisse stattfinden? Erich Laager / 2014.
Der Erotik Kalender 2005.
Folie Einzelauswertung der Gemeindedaten
7. Formale Sprachen und Grammatiken
SAP Seminar 2007 Organisationsobjekte anlegen
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
 Präsentation transkript:

Überführung regulärer Ausdrücke in endliche Automaten Der Algorithmus von Glushkov und McNaughton/Yamada Karin Haenelt 14.5.2010

Inhalt Quelle Prinzip des Algorithmus Algorithmus Parsing des regulären Ausdrucks Erkennung Syntaxbaum Funktionen nullable, firstpos, lastpos und followpos Konstruktion des Automaten Ein linguistisches Beispiel Implementierung Komplexität © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Quelle Der Algorithmus wurde unabhängig entwickelt von Viktor M. Glushkov (1960, 1961) Robert McNaughton und Hisao Yamada (1960) © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Inhalt Quelle Prinzip des Algorithmus Algorithmus Parsing des regulären Ausdrucks Erkennung Syntaxbaum Funktionen nullable, firstpos, lastpos und followpos Konstruktion des Automaten Ein linguistisches Beispiel Implementierung Komplexität © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Prinzip des Algorithmus bestimmte Positionen des regulären Ausdrucks stehen in bestimmten Folgerelationen in den zugehörigen Zeichenketten die Folgerelationen sind eindeutig bestimmt über die Abfolge und Definition der Operatoren des regulären Ausdrucks die Folgerelationen legen die Menge der möglichen Zustände und die zeitliche Ordnung der Zustände fest es geht also darum die Folgerelationen zu berechnen aus dem Ergebnis der Berechnung den DEA zu konstruieren © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Prinzip des Algorithmus Beispiel -1- wie sehen die Zeichenketten aus, die dieser Ausdruck beschreibt? welchem Zeichen kann welches Zeichen folgen? RE = dete? adje* nomn REp = dete?1 adje*2 nomn3 #4 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Prinzip des Algorithmus Beispiel -2- mögliche Startpositionen mögliche Folgepositionen RE = dete? adje* nomn REp = dete?1 adje*2 nomn3 #4 dete1 adje2 nomn3 #4 dete1 adje2 (da dete1 optional ist) nomn3 (dete1 und adje2 opt.) dete1 adje2 nomn3 #4 adje2, nomn3 #4 - © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Prinzip des Algorithmus Beispiel -3- RE = dete? adje* nomn REp = dete?1 adje*2 nomn3 #4 dete1 adje2 nomn3 #4 1,2,3 2,3 4 dete1 adje2 nomn3 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Prinzip des Algorithmus Beispiel -4- Start- und Folgepositionen sind eindeutig bestimmt durch die Semantik der Operatoren Wenn E= dete? adje* nomn in eine Zeichenkette aus L(E) umgewandelt wird, kann das erste Zeichen der Zeichenkette sein dete weil es vorne steht adje wegen des ?-Operators über dete nomn wegen des Stern-Operators über adje 1,2,3 Startzustand aus Positionsmenge {1,2,3} © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Prinzip des Algorithmus Wie berechnet man die Start- und Folgepositionen? Erkennung des Ausdrucks mit dem Algorithmus von Hopcroft/Ullman 1988 Aufbau eines binären Syntaxbaumes Blätter: Positionen innere Knoten: Operatoren Berechnung der Abfolgen während der bottom-up-Konstruktion des Syntaxbaumes Wie erzeugt man den Automaten? auf der Basis der Abfolgeinformation nach dem Algorithmus von Glushkov bzw. MacNaughton/Yamada © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Inhalt Quelle Prinzip des Algorithmus Algorithmus Parsing des regulären Ausdrucks Erkennung Syntaxbaum Funktionen nullable, firstpos, lastpos und followpos Konstruktion des Automaten Ein linguistisches Beispiel Implementierung Komplexität © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Algorithmus © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Der Syntaxbaum (a1|b2)*a3b4b5#6 ● ● # 6 ● b 5 ● b 4 * a 3 | a b 1 2 Aho/Sethi/Ullmann 1986: 139 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Die Funktionen nullable, firstpos, lastpos und followpos Der Automat wird aufgebaut aus den Ergebnissen von firstpos(root) und followpos(i) Zur Ermittlung von followpos(i) wird firstpos(n) und lastpos(n) benötigt Zur Ermittlung von firstpos(n) und lastpos(n) wird nullable(n) benötigt nullable(n) ist knotenspezifisch definiert Die Funktionen werden bottom-up auf den Syntaxbaum angewendet © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Die Funktionen nullable, firstpos, lastpos und followpos Def Sei E der Teilausdruck, der durch den Syntaxbaum mit Wurzel n repräsentiert wird, und E’ ein regulärer Ausdruck, in dem jedes Symbol durch seine Position ersetzt ist, dann ist Aho/Sethi/Ullmann 1986: 138 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Die Berechnung der Funktionen nullable, firstpos, lastpos und followpos | c1 c2 • * c1 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Der annotierte Syntaxbaum (a1|b2)*a3b4b5#6 {1,2,3} ● {6} {1,2,3} ● {5} {6} # {6} 6 nullable {1,2,3} ● {4} {5} b {5} 5 {1,2,3} ● {3} {4} b {4} 4 {1,2} * {1,2} {3} a {3} 3 {1,2} | {1,2} firstpos lastpos {1} a {1} {2} b {2} 1 2 Aho/Sethi/Ullmann 1986: 139 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Berechnung von followpos | c1 c2 • c1 * © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Beispiel zur Berechnung von followpos: Stern-Knoten (a|b)* followpos(1).addAll( {1,2}) followpos(2).addAll ({1,2}) n {1,2} * {1,2} {1,2} | {1,2} followpos(1) = {1,2} followpos(2) = {1,2} {1} a {1} {2} b {2} 1 2 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Beispiel zur Berechnung von followpos: Konkatenations-Knoten (a|b)*a n {1,2,3} ● {3} followpos(1).addAll( {3}) followpos(2).addAll ({3}) {1,2} * {1,2} {3} a {3} 3 {1,2} | {1,2} followpos(1) = {1,2,3} followpos(2) = {1,2,3} {1} a {1} {2} b {2} 1 2 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Konstruktion der Automaten aus den followpos-Mengen 1 2 3 4 5 6 a b # NEA DEA 1,2,3,6 1,2,3 1,2,3,4 1,2,3,5 a b Aho/Sethi/Ullmann 1986: 136-140 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Algorithmus von Gluskov bzw. McNaughton/Yamada: Konstruktion des DEA Aho/Sethi/Ullmann 1986: 141 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

© Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14. 5

DEA 1,2,3,6 1,2,3 1,2,3,4 1,2,3,5 a1,a3 b2 b2,b4 b2,b5 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Inhalt Quelle Prinzip des Algorithmus Algorithmus Parsing des regulären Ausdrucks Erkennung Syntaxbaum Funktionen nullable, firstpos, lastpos und followpos Konstruktion des Automaten Ein linguistisches Beispiel Implementierung Komplexität © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Ein linguistisches Beispiel, 1a dete? adje* nomn {1,2,3,4} ● {5} Variante 1: Darstellung von a? durch (a|ε) bei Automatenkonstruktion werden für ε keine Kanten konstruiert (nur für Eingabe- Symbole a) {1,2,3,4} ● {4} {5} # {5} 5 {1,2,3} ● {1,2,3} {4} nomn {4} 4 {1,2} | {1,2} {3} * {3} {1} dete {1} { } ε { } {3} adje {3} nullable firstpos lastpos {i} 1 2 3 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Ein linguistisches Beispiel, 1b dete? adje* nomn {1,2,3} ● {4} Variante 2: direkte Angabe von Regeln für ?: nullable(n) := true firstpos (n) := firstpos(left) lastpos(n) := lastpos(left) {1,2,3} ● {3} {4} # {4} 4 {1,2} ● {1,2} {3} nomn {3} 3 {1} ? {1} {2} * {2} {1} dete {1} {2} adje {2} nullable firstpos lastpos {i} 1 2 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Ein linguistisches Beispiel, 2a+b dete? adje* nomn Variante 2 für ? Variante 1 für ? 1,2,3,4 3,4 5 start adje dete nomn 1,2,3 2,3 4 start adje dete nomn © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Inhalt Quelle Prinzip des Algorithmus Algorithmus Parsing des regulären Ausdrucks Erkennung Syntaxbaum Funktionen nullable, firstpos, lastpos und followpos Konstruktion des Automaten Ein linguistisches Beispiel Implementierung Komplexität © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Implementierung Einfügen der Konstruktionsschritte für einen Parsebaum bzw. Syntaxbaum Zuordnung von Baumkonstruktoren zu den Elementen des regulären Ausdrucks Terminalsymbole (Zeile 21) Klammern (Zeile 23, 27) unäre Operatoren (*,+,?) (Zeile 31) binäre Operatoren (·, |) (Zeile 4, 13) * | © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Implementierung: TreeNode © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Definition der Knoten, 1 Brüggemann-Klein, 1992 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Definition der Knoten, 2 Brüggemann-Klein, 1992 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Definition der Knoten, 3 Brüggemann-Klein, 1992 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Inhalt Quelle Prinzip des Algorithmus Algorithmus Parsing des regulären Ausdrucks Erkennung Syntaxbaum Funktionen nullable, firstpos, lastpos und followpos Konstruktion des Automaten Ein linguistisches Beispiel Implementierung Komplexität © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Komplexität: Platz maximale Anzahl der Zustände: 2p+1, p = Anzahl der Positionen (Anzahl möglicher Teilmengen, die aus p Objekten gebildet werden können, beträgt 2p) max. Anzahl wird in der Praxis kaum erreicht: der reg. Ausdruck schränkt Anzahl der möglichen Teilmengen sehr stark ein Algorithmus konstruiert nur die tatsächlich vorkommenden Teilmengen (lazy implementation der Teilmengen) minimale Anzahl der Zustände: p+1 (falls nur Konkatenation von Symbolen vorkommt) Glushkov, 1961 McNaughton/Yamada, 1960 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Komplexität: Zeit Implementierungen mit kubischer Zeit Aho/Sethi/Ullman, 1986 Berry/Sethi, 1986 Implementierung mit quadratischer Zeit für allgemeine Ausdrücke (d.h. auch ambige) Brüggemann-Klein, 1992 Implementierung mit linearer Zeit für deterministische Ausdrücke © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Literatur Quellen Erläuterungen weitere Literatur 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 (in Russisch) McNaughton, Robert und Hisao Yamada (1960). Regular expressions and state graphs for automata. In IEEE Transactions on Electronic Computers 9 (1): S. 39-47. Erläuterungen Aho, Alfred V.; Sethi, Ravi und Jeffrey D. Ullman (1986). Compilers. Principles, Techniques and Tools. Addison-Wesley Publishing Company. weitere Literatur Berry, Gérard und Ravi Sethi (1986). From regular expressions to deterministic automata. In: Theoretical Computer Science 48 (3), S. 117-126. Brüggemann-Klein, Anne (1992). Regular Expressions into Finite Automata, Proceedings of Latin '92, 1st Latin American Symposium on Theoretical Informatics, São Paulo, Brazil, April 6-10, 1992. (Lecture Notes in Computer Science 583) Heidelberg: Springer Verlag. © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010

Versionen 14.05.2010, 9.5.2010, 14.09.2007, 05.05.2007, 21.05.2006, 20.03.2005 © Karin Haenelt, RegEx → FSA: Glushkov und MacNaughton/Yamada 14.5.2010