ppt

Werbung
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
Herunterladen