Automatentheorie und ihre Anwendungen Teil 1: endliche Automaten auf endlichen Wörtern

Ähnliche Dokumente
Automatentheorie und ihre Anwendungen Teil 1: endliche Automaten auf endlichen Wörtern

Automatentheorie und ihre Anwendungen Teil 1: endliche Automaten auf endlichen Wörtern

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Theoretische Grundlagen der Informatik

Anwenundg regulärer Sprachen und endlicher Automaten

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016.

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

2.2 Reguläre Sprachen Endliche Automaten

Das Pumping-Lemma Formulierung

Software Engineering Ergänzung zur Vorlesung

Theorie der Informatik

Formale Sprachen und Automaten

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!

Reguläre Sprachen und endliche Automaten

Kontextfreie Sprachen

Theoretische Informatik für Medieninformatiker

2 2 Reguläre Sprachen. 2.2 Endliche Automaten. Übersicht

Herzlich willkommen!!!

Automaten und Formale Sprachen SoSe 2013 in Trier

Kontextfreie Sprachen

Diskrete Mathematik. Arne Dür Kurt Girstmair Simon Legner Georg Moser Harald Zankl

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Grundlagen der theoretischen Informatik

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Induktive Definition

Herzlich willkommen!!!

Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

Die Nerode-Relation und der Index einer Sprache L

Die mathematische Seite

Satz (Abschluß unter der Stern-Operation)

Minimalautomaten. Minimalautomaten. Frage: Ist der Äquivalenzautomat A der kleinste Automat ( Minimalautomat ) der die Sprache L(A) erkennt?

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

Operationen auf endlichen Automaten und Transduktoren

Theorie der Informatik

Reguläre Ausdrücke. Karin Haenelt

11.1 Kontextsensitive und allgemeine Grammatiken

Automaten und Formale Sprachen ε-automaten und Minimierung

4. Übung zur Vorlesung Informatik III am

Automaten und Formale Sprachen

Kapitel 2: Formale Sprachen Gliederung

Formale Systeme. Büchi-Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Grundlagen der Theoretischen Informatik

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

abgeschlossen unter,,,, R,

Formale Sprachen und endliche Automaten

Automatentheorie und formale Sprachen

Übung Theoretische Grundlagen

Theoretische Grundlagen der Informatik

Automaten und Coinduktion

1.Klausur Diskrete Mathematik Seite 1 von 22

Grenzen der Regularität

Theoretische Informatik I

Formale Systeme. Endliche Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Endliche Automaten. Grundlagen: Alphabet, Zeichenreihe, Sprache. Karin Haenelt

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Einführung in die Computerlinguistik Satz von Kleene

TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012)

Theoretische Grundlagen des Software Engineering

Automaten und Formale Sprachen SoSe 2013 in Trier

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Kurz-Skript zur Theoretischen Informatik I

Grundlagen der Theoretischen Informatik

Berechenbarkeitstheorie 19. Vorlesung

1. Welche der folgenden Aussagen zur Entscheidbarkeit beziehungsweise Unentscheidbarkeit

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Musterlösung Informatik-III-Klausur

Einführung in die Theoretische Informatik

1.Klausur Diskrete Mathematik Seite 1 von 22

Die Unentscheidbarkeit extensionaler Eigenschaften von Turingmaschinen: der Satz von Rice

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Lexikalische Programmanalyse der Scanner

BA-INF 011 Logik und Diskrete Strukturen WS 2013/14 Mögliche Klausuraufgaben Stand vom

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

Formale Systeme Prof. Dr. Bernhard Beckert, WS 2016/2017

Einführung in die Theoretische Informatik

Informatik-Grundlagen

Überführung regulärer Ausdrücke in endliche Automaten

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

2.3 Abschlusseigenschaften

Automatentheorie und ihre Anwendungen Teil 2: endliche Automaten auf endlichen Bäumen

Grundbegriffe der Theoretischen Informatik

Übungsaufgaben zu Formalen Sprachen und Automaten

Beispiel für die Minimierung von DEAs

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Kapitel 0: Grundbegriffe Gliederung

Theoretische Grundlagen der Informatik. Vorlesung am 02. November INSTITUT FÜR THEORETISCHE INFORMATIK

Proseminar Theoretische Informatik. Die Klasse NP. von Marlina Spanel

Präsenzübung Berechenbarkeit und Komplexität

8. Turingmaschinen und kontextsensitive Sprachen

Lexikalische Analyse, Tokenizer, Scanner

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Transkript:

Überblick Automatentheorie und ihre Anwendungen Teil 1: endliche Automaten auf endlichen Wörtern Thomas Schneider 28. April 7. Mai 2014 1 Grundbegriffe 2 Anwendung: Textsuche 3 Abschlusseigenschaften 4 Reguläre Ausdrücke und Anwendungen 5 Charakterisierungen 6 Entscheidungsprobleme Thomas Schneider Automatentheorie 1: endliche Wörter 1 Und nun... Thomas Schneider Automatentheorie 1: endliche Wörter 2 Wörter, Sprachen,... 1 Grundbegriffe 2 Anwendung: Textsuche 3 Abschlusseigenschaften 4 Reguläre Ausdrücke und Anwendungen 5 Charakterisierungen 6 Entscheidungsprobleme Symbole a, b,... Alphabet Σ: endliche nichtleere Menge von Symbolen (endliches) Wort w über Σ: endliche Folge w = a 1 a 2... a n von Symbolen a i Σ leeres Wort ε Wortlänge a 1 a 2... a n = n, ε = 0 Menge aller Wörter über Σ: Σ Sprache L über Σ: Teilmenge L Σ von Wörtern Sprachklasse L: Menge von Sprachen Thomas Schneider Automatentheorie 1: endliche Wörter 3 Thomas Schneider Automatentheorie 1: endliche Wörter 4

Endliche Automaten Beispiel und graphische Repräsentation von NEAs Definition 1 Ein nichtdeterministischer endlicher Automat (NEA) über einem Alphabet Σ ist ein 5-Tupel A = (Q, Σ,, I, F ), wobei Q eine endliche nichtleere Zustandsmenge ist, Σ ein Alphabet ist, Q Σ Q die Überführungsrelation ist, (*) I Q die Menge der Anfangszustände ist, F Q die Menge der Endzustände ist. (*) bedeutet: besteht aus Tripeln (q, a, q ) mit q, q Q und a Σ (q, a, q ) bedeutet: ist A in Zustand q und liest ein a, geht er in Zustand q über. Betrachte A = ({q 0, q 1 }, {a, b}, {(q 0, a, q 0 ), (q 0, b, q 1 ), (q 1, b, q 1 )}, {q 0 }, {q 1 }) Zustände: q 0, q 1 Alphabet {a, b} Übergänge: von q 0 mittels a zu q 0,... q 0 Anfangszustand q 0 q 0 Endzustand q 1 q 1 a b b A: q 0 q 1 q i a Thomas Schneider Automatentheorie 1: endliche Wörter 5 Berechnungen und Akzeptanz Thomas Schneider Automatentheorie 1: endliche Wörter 6 Beispiele Definition 2 Sei A = (Q, Σ,, I, F ) ein NEA. Eine Berechnung (Run) von A auf w = a 1 a 2... a n ist eine Folge q 0 q 1 q 2... q n, so dass für alle i = 0,..., n 1 gilt: (q i, a i+1, q i+1 ). Man sagt auch: w überführt q 0 in q n. A akzeptiert w = a 1 a 2... a n, wenn es eine Berechnung q 0 q 1 q 2... q n von A auf w gibt mit q 0 I und q n F. Die von A erkannte Sprache ist L(A) = {w Σ A akzeptiert w}. a b A 1 : q 0 q 1 b a a, b a b A 2 : q 0 q 1 q 2 b L(A 2 ) = {w {a, b} w enthält Teilwort ab} a, b a b A 3 : q 0 q 1 q 2 L(A 3 ) = {w {a, b} w endet auf ab} L(A 1 ) = {a n b m n 0, m 1} Thomas Schneider Automatentheorie 1: endliche Wörter 7 Thomas Schneider Automatentheorie 1: endliche Wörter 8

Erkennbare Sprache Determinismus Definition 3 Eine Sprache L Σ ist (NEA-)erkennbar, wenn es einen NEA A gibt mit L = L(A). Thomas Schneider Automatentheorie 1: endliche Wörter 9 Potenzmengenkonstruktion Definition 4 Sei A = (Q, Σ,, I, F ) ein NEA. Enthält für jedes q Q u. jedes a Σ genau 1 Tripel (q, a, q ) und enthält I genau 1 Zustand, dann ist A ein deterministischer endlicher Automat (DEA). Nachfolgezustand für jedes Paar (q, a) eindeutig bestimmt Frage Jeder DEA ist ein NEA, aber nicht umgekehrt (z. B. A 1, A 3 auf Folie 8). Auf Folie 8 ist nur A 2 ein DEA; A 1 kann mittels Papierkorbzustand zum DEA werden und A 3? Sind DEAs und NEAs gleichmächtig? Thomas Schneider Automatentheorie 1: endliche Wörter 10 Und nun... Antwort Ja, DEAs und NEAs sind gleichmächtig. Satz 5 Sei A ein NEA. Dann gibt es einen DEA A d mit L(A d ) = L(A). 1 Grundbegriffe 2 Anwendung: Textsuche 3 Abschlusseigenschaften 4 Reguläre Ausdrücke und Anwendungen Beweis: siehe Tafel. Im schlimmsten Fall kann A d im Vergleich zu A exponentiell viele Zustände haben (s. Hopcroft et al. 2001, S. 65). 5 Charakterisierungen 6 Entscheidungsprobleme Thomas Schneider Automatentheorie 1: endliche Wörter 11 Thomas Schneider Automatentheorie 1: endliche Wörter 12

Stichwortsuche Stichwortsuche ohne invertierte Indizes? Typisches Problem aus dem Internetzeitalter Gegeben sind Stichwörter w 1,..., w n Σ und Dokumente D 1,..., D M Σ. Finde alle j, so dass D j mindestens ein (alle) w i als Teilwort hat. relevant z.b. für Suchmaschinen übliche Technologie: invertierter Index (II) speichert für jedes im Internet auftretende w i eine Liste aller Dokumente D j, die w i enthalten IIs sind zeitaufwändig zu erstellen und setzen voraus, dass die D j sich nur langsam ändern IIs versagen, wenn die (relevanten) Dokumente sich schnell ändern: Suche in tagesaktuellen Nachrichtenartikeln Einkaufshelfer sucht nach bestimmten Artikeln in aktuellen Seiten von Online-Shops die Dokumente nicht katalogisiert werden können: Online-Shops wie Amazon generieren oft Seiten für ihre Artikel nur auf Anfragen hin. Wie kann man dafür Stichwortsuche implementieren? Thomas Schneider Automatentheorie 1: endliche Wörter 13 Ein Fall für endliche Automaten! Thomas Schneider Automatentheorie 1: endliche Wörter 14 Implementation des NEAs A Wdhlg.: Typisches Problem aus dem Internetzeitalter Gegeben sind Stichwörter w 1,..., w n Σ und Dokumente D 1,..., D M Σ. Finde alle j, so dass D j mindestens ein w i als Teilwort hat. Ziel: konstruiere NEA A, der Eine Möglichkeit: 1 Determinisierung (Potenzmengenkonstruktion) 2 Simulation des resultierenden DEA A d Wird A d nicht zu groß? (2 27 > 134 Mio. Zustände bei Stichw. Binomialkoeffizient, Polynom ) ein D j zeichenweise liest und in einen Endzustand geht gdw. er eins der Stichwörter findet Beispiel 6 Seien w 1 = web und w 2 = ebay. Wie muss A aussehen? siehe Tafel. Nein, für unsere spezielle Form von A, mit unserer Version der Potenzmengenkonstruktion wird A d genauso viele Zustände haben wie A! Beispiel: siehe Tafel Thomas Schneider Automatentheorie 1: endliche Wörter 15 Thomas Schneider Automatentheorie 1: endliche Wörter 16

Zum Nachdenken Und nun... 1 Grundbegriffe Übung: Konstruiere den DEA A d für A von Folie 15. Beschreibe die Konstruktion von A d allgemein, wenn w 1,..., w n gegeben sind, mit w i = a i1... a ili für jedes i = 1,..., n. 2 Anwendung: Textsuche 3 Abschlusseigenschaften 4 Reguläre Ausdrücke und Anwendungen 5 Charakterisierungen 6 Entscheidungsprobleme Thomas Schneider Automatentheorie 1: endliche Wörter 17 Operationen auf Sprachen sind Operationen auf Mengen Thomas Schneider Automatentheorie 1: endliche Wörter 18 Abgeschlossenheit Wie können (NEA-erkennbare) Sprachen kombiniert werden? Mengenoperationen Vereinigung L 1 L 2 = {w w L 1 oder w L 2 } Schnitt L 1 L 2 = {w w L 1 und w L 2 } Komplement L = {w Σ w / L} Wortoperationen Konkatenation L 1 L 2 = {vw v L 1 und w L 2 } Kleene-Hülle L = L i, i 0 wobei L 0 = {ε} und L i+1 = L i L für alle i 0 Frage Unter welchen Op. sind die NEA-erkennbaren Sprachen abgeschlossen? Thomas Schneider Automatentheorie 1: endliche Wörter 19 Satz 7 Die Menge der NEA-erkennbaren Sprachen ist abgeschlossen unter den Operationen,,,,. Das heißt: Wenn L, L 1, L 2 NEA-erkennbar sind, dann sind auch L 1 L 2 L 1 L 2 L L 1 L 2 L NEA-erkennbar. Beweis: Direkte Konsequenz aus den folgenden Lemmata. Thomas Schneider Automatentheorie 1: endliche Wörter 20

Abgeschlossenheit unter Vereinigung Abgeschlossenheit unter Durchschnitt Lemma 8 Seien A 1, A 2 NEAs über Σ. Dann gibt es einen NEA A 3 mit L(A 3 ) = L(A 1 ) L(A 2 ). Beweis: Seien A i = (Q i, Σ, i, I i, F i ) für i = 1, 2. O. B. d. A. gelte Q 1 Q 2 =. Konstruieren A 3 = (Q 3, Σ, 3, I 3, F 3 ) wie folgt. Idee: vereinige A 1 und A 2. Q 3 = Q 1 Q 2 3 = 1 2 I 3 = I 1 I 2 F 3 = F 1 F 2 (Beispiel siehe Tafel) Dann gilt L(A 3 ) = L(A 1 ) L(A 2 ). (Tafel) Thomas Schneider Automatentheorie 1: endliche Wörter 21 Abgeschlossenheit unter Komplement Lemma 9 Seien A 1, A 2 NEAs über Σ. Dann gibt es einen NEA A 3 mit L(A 3 ) = L(A 1 ) L(A 2 ). Beweis: Seien A i = (Q i, Σ, i, I i, F i ) für i = 1, 2. Konstruieren A 3 = (Q 3, Σ, 3, I 3, F 3 ) wie folgt. Idee: lasse A 1 und A 2 gleichzeitig auf Eingabewort laufen. Q 3 = Q 1 Q 2 3 = {((p, p ), a, (q, q )) (p, a, q) 1 & (p, a, q ) 2 } I 3 = I 1 I 2 F 3 = F 1 F 2 (Beispiel siehe Tafel) Dann gilt L(A 3 ) = L(A 1 ) L(A 2 ). (Übung) Thomas Schneider Automatentheorie 1: endliche Wörter 22 Abgeschlossenheit unter Verkettung Lemma 10 Sei A ein NEA über Σ. Dann gibt es einen NEA A c mit L(A c ) = L(A). Lemma 11 Seien A 1, A 2 NEAs über Σ. Dann gibt es einen NEA A 3 mit L(A 3 ) = L(A 1 ) L(A 2 ). Beweis: Idee: Umwandlung in DEA Vertauschen von End- und Nicht-Endzuständen O. B. d. A. sei A = (Q, Σ,, I, F ) ein DEA (Satz 5). Dann erkennt A = (Q, Σ,, I, Q \ F ) die Sprache L(A). ( ) Jetzt erhält man Abgeschlossenheit unter auch mittels L 1 L 2 = L 1 L 2 ). Thomas Schneider Automatentheorie 1: endliche Wörter 23 Beweis: Seien A i = (Q i, Σ, i, I i, F i ) für i = 1, 2. O. B. d. A. gelte Q 1 Q 2 = und I i = {q 0i }. Konstruieren A 3 = (Q 3, Σ, 3, I 3, F 3 ) wie folgt. Idee: Hintereinanderhängen von A 1 und A 2. Q 3 = Q 1 Q 2 3 = 1 2 {(q, a, q ) q F 1 und (q 02, a, q ) 2 } { F2 F 1 falls q 02 F 2 I 3 = I 1, F 3 = (Bsp. s. Tafel) sonst F 2 Dann gilt L(A 3 ) = L(A 1 ) L(A 2 ). (Übung) Thomas Schneider Automatentheorie 1: endliche Wörter 24

Abgeschlossenheit unter Kleene-Hülle Und nun... Lemma 12 Sei A ein NEA über Σ. Dann gibt es einen NEA A k mit L(A k ) = L(A). Beweis: Sei A = (Q, Σ,, I, F ). Konstruieren A k = (Q k, Σ, k, I k, F k ) wie folgt. 1 Grundbegriffe 2 Anwendung: Textsuche 3 Abschlusseigenschaften Idee: Lege Schleife um A. Q k = Q {q 0 } (für ein q 0 / Q) k = {(q 0, ε, q) q I} {(q, ε, q 0 ) q F } 4 Reguläre Ausdrücke und Anwendungen 5 Charakterisierungen (ε-kanten werden aufgelöst wie im -Fall.) I k = F k = {q 0 } (Beispiel siehe Tafel) 6 Entscheidungsprobleme Dann gilt L(A k ) = L(A). (Übung) Thomas Schneider Automatentheorie 1: endliche Wörter 25 Ziel dieses Abschnitts Thomas Schneider Automatentheorie 1: endliche Wörter 26 Reguläre Sprachen Definition 13 Eine Sprache L Σ ist regulär, falls gilt: Wie können NEA-erkennbare Sprachen bequem charakterisiert werden? L = L = {ε} oder oder L = {a}, a Σ, oder L lässt sich durch (endlichmaliges) Anwenden der Operatoren,, aus den vorangehenden Fällen konstruieren. Beispiele: ({a} {b}) {a} {b} (siehe A 3 auf Folie 8) {b} {a} {a} {b} ({a} {b}) (s. A 2 auf Folie 8) Thomas Schneider Automatentheorie 1: endliche Wörter 27 Thomas Schneider Automatentheorie 1: endliche Wörter 28

Reguläre Ausdrücke Reguläre und NEA-erkennbare Sprachen Definition 14 Ein regulärer Ausdruck (RA) r über Σ und die zugehörige Sprache L(r) Σ werden induktiv wie folgt definiert. r = r = ε Beispiele: ist ein RA mit L(r) = ist ein RA mit L(r) = {ε} r = a, für a Σ, ist ein RA mit L(r) = {a} r = (r 1 + r 2 ) ist ein RA mit L(r) = L(r 1 ) L(r 2 ) r = (r 1 r 2 ) ist ein RA mit L(r) = L(r 1 ) L(r 2 ) r = (r 1 ) ist ein RA mit L(r ) = (L(r)) (wir lassen Klammern weg soweit eindeutig) (a + b) ab (siehe A 3 auf Folie 8) b aa b(a + b) (siehe A 2 auf Folie 8) Thomas Schneider Automatentheorie 1: endliche Wörter 29 Anwendungen regulärer Ausdrücke Satz 15 (Kleene) Sei L Σ eine Sprache. 1 L ist regulär gdw. es einen RA r gibt mit L = L(r). 2 L ist regulär gdw. L NEA-erkennbar ist. Beweis. 1 Folgt offensichtlich aus Def. 13, 14. 2 Benutze Teil (1). : Induktion über Aufbau von r. IA: gib Automaten an, die, {ε}, {a} erkennen. IS: benutze Abschlusseigenschaften Lemmas 8, 11, 12 : siehe Theoretische Informatik 1. Thomas Schneider Automatentheorie 1: endliche Wörter 30 Komfortablere Syntax regulärer Ausdrücke UNIX und andere Anwendungen erweitern Syntax von RAs RAs werden verwendet, um Muster von zu suchendem Text zu beschreiben z. B.: suche alle Vorkommen von PLZ Ort : (0 + + 9) 5 (A + + Z)(a + + z) Programme zum Suchen von Mustern im Text übersetzen RAs in NEAs/DEAs und simulieren diese wichtige Klassen von Anwendungen: lexikalische Analyse, Textsuche Thomas Schneider Automatentheorie 1: endliche Wörter 31 Hier: nur syntaktischer Zucker die Erweiterungen, die nicht aus den regulären Sprachen herausführen Alphabet Σ: alle ASCII-Zeichen RA. mit L(.) = Σ RA [a 1 a 2... a k ], Abkürzung für a 1 + a 2 + + a k RAs für Bereiche: z. B. [a-z0-9], Abkü. für [ab... z01... 9] Operator anstelle + Operator?: r? steht für ε + r Operator +: r+ steht für rr Operator {n}: r{5} steht für rrrrr Klammern und wie gehabt PLZ-Ort-Beispiel: [0-9]{5} [A-Z][a-z]* Thomas Schneider Automatentheorie 1: endliche Wörter 32

Anwendung: lexikalische Analyse Beispieleingabe für lex Lexer durchsucht Quelltext eines Programms nach Token: zusammengehörende Zeichenfolgen, z. B. Kennwörter, Bezeichner Ausgabe des Lexers: Token-Liste, wird an Parser weitergegeben Mit RAs: Lexer leicht programmier- und modifizierbar UNIX-Kommandos lex und flex generieren Lexer Eingabe: Liste von Einträgen RA + Code Code beschreibt Ausgabe des Lexers für das jeweilige Token generierter Lexer wandelt RAs in DEAs um, um Vorkommen der Tokens zu finden (siehe Folie 15) anhand des Zustands des DEAs lässt sich bestimmen, welches Token gefunden wurde else {return(else)} [A-Za-z][A-za-z0-9]* {<Trage gefundenen Bezeichner in Symboltabelle ein>; return(id);} >= {return(ge);} = {return(eq);} (Lexer-Generator muss Prioritäten beachten: else wird auch vom 2. RA erkannt, ist aber reserviert) Thomas Schneider Automatentheorie 1: endliche Wörter 33 Anwendung: Finden von Mustern im Text Thomas Schneider Automatentheorie 1: endliche Wörter 34 Mustersuche mit regulären Ausdrücken Beispiel: Suchen von Adressen (Str. + Hausnr.) in Webseiten Solche Angaben sollen gefunden werden: Parkstraße 5 Enrique-Schmidt-Straße 12a Breitenweg 24A Knochenhauergasse 30 32 aber auch solche: Straße des 17. Juni 17... boulevard,... allee,... platz,... Postfach 330 440 Am Wall 8 Mögliches Vorgehen: 1 Beschreibung des Musters mit einem einfachen RA 2 Umwandlung des RA in einen NEA 3 Implementation des NEA wie auf Folie 15 4 Test 5 Wenn nötig, RA erweitern und Sprung zu Schritt 2 Ausmaß der Variationen erst während der Suche deutlich Gesucht: einfach modifizierbare Beschreibung der Muster Thomas Schneider Automatentheorie 1: endliche Wörter 35 Thomas Schneider Automatentheorie 1: endliche Wörter 36

Adresssuche mit regulären Ausdrücken Und nun... So kann sich der RA entwickeln: Vorkommen von straße etc.: 1 straße str\. weg gasse Plus Name der Straße und Hausnummer: [A-Z][a-z]*(straße str\. weg gasse) [0-9]* Hausnummern mit Buchstaben (12a), -bereiche (30 32): [A-Z][a-z]*(straße str\. weg gasse) ([0-9]*[A-Za-z]?-)?[0-9]*[A-za-z]? und mehr: Straßennamen mit Bindestrichen Straße etc. am Anfang Plätze, Boulevards, Alleen etc. Postfächer... 1 Weil der UNIX-RA. für Σ reserviert ist, steht \. für {.} Thomas Schneider Automatentheorie 1: endliche Wörter 37 Pumping-Lemma 1 Grundbegriffe 2 Anwendung: Textsuche 3 Abschlusseigenschaften 4 Reguläre Ausdrücke und Anwendungen 5 Charakterisierungen 6 Entscheidungsprobleme Thomas Schneider Automatentheorie 1: endliche Wörter 38 Anwendung des Pumping-Lemmas Wie zeigt man, dass L nicht NEA-erkennbar (regulär) ist? Satz 16 (Pumping-Lemma) Sei L eine NEA-erkennbare Sprache. Dann gibt es eine Konstante p N, 2 so dass für alle Wörter w L mit w p gilt: Es gibt eine Zerlegung w = xyz mit y > 0 und xy p, so dass xy i z L für alle i N. 2 Zur Erinnerung: Satz 16 (Pumping-Lemma) Wenn L eine NEA-erkennbare Sprache ist, dann gibt es eine Konstante p N, so dass für alle Wörter w L mit w p gilt: Es gibt eine Zerlegung w = xyz mit y > 0 und xy p, so dass xy i z L für alle i N. Benutzen Kontraposition: Beweis: siehe Tafel. 2 N = {0, 1, 2,... } Wenn es für alle Konstanten p N ein Wort w L mit w p gibt, so dass es für alle Zerlegungen w = xyz mit y > 0 und xy p ein i N gibt mit xy i z / L, dann ist L keine NEA-erkennbare Sprache. Bsp.: s. Tafel Thomas Schneider Automatentheorie 1: endliche Wörter 39 Thomas Schneider Automatentheorie 1: endliche Wörter 40

Bemerkungen zum Pumping-Lemma Der Satz von Myhill-Nerode Bedingung in Satz 16 ist notwendig dafür, dass L NEA-erkennbar ist. nicht hinreichend (Bsp.: {a n b k c k n, k 1} {b n c k n, k 0}) Pumping-L. nur zum Widerlegen von Erkennbarkeit verwendbar, nicht zum Beweisen, dass L regulär ist Notwendige und hinreichende Bedingung: Jaffes Pumping-L. Ziel: notwendige und hinreichende Bedingung für Erkennbarkeit Definition 17 Sei L Σ eine Sprache. Zwei Wörter u, v Σ sind L-äquivalent (Schreibweise: u L v), wenn für alle w Σ gilt: uw L genau dann, wenn vw L L heißt Nerode-Rechtskongruenz und ist Äquivalenzrelation: reflexiv: offensichtlich symmetrisch: offensichtlich transitiv: offensichtlich Index von L : Anzahl der Äquivalenzklassen Thomas Schneider Automatentheorie 1: endliche Wörter 41 Der Satz von Myhill-Nerode Thomas Schneider Automatentheorie 1: endliche Wörter 42 Und nun... Satz 18 (Myhill-Nerode) L Σ is NEA-erkennbar gdw. L endlichen Index hat. 1 Grundbegriffe 2 Anwendung: Textsuche Ohne Beweis. Beispiel siehe Tafel. Interessantes Nebenprodukt des Beweises: Endlicher Index n von L = minimale Anzahl von Zuständen in einem DEA, der L erkennt. 3 Abschlusseigenschaften 4 Reguläre Ausdrücke und Anwendungen 5 Charakterisierungen 6 Entscheidungsprobleme Thomas Schneider Automatentheorie 1: endliche Wörter 43 Thomas Schneider Automatentheorie 1: endliche Wörter 44

Entscheidbarkeit Komplexität und Reduktion (Entscheidungs-)Problem... ist eine Teilmenge P M Beispiele: P = Menge aller Primzahlen, M = N P = Menge aller NEAs A mit L(A), M = Menge aller NEAs man stelle sich eine Blackbox vor: Eingabe m M m P? Ausgabe ja m P nein m / P Entscheidbarkeit: P ist entscheidbar, wenn es einen Algorithmus A gibt, der die Blackbox implementiert. ( ) Programmiersprache u. Rechnermodell sind relativ unerheblich: erweiterte Churchsche These Thomas Schneider Automatentheorie 1: endliche Wörter 45 Einige übliche Komplexitätsklassen Name Bedeutung Beispiele L logarithm. Speicherplatz Grapherreichbarkeit NL nichtdetermin. log. Platz P Polynomialzeit Primzahlen NP nichtdeterminist. Polyzeit Erfüllbarkeit Auss.-logik PSPACE polynom. Speicherplatz Erfüllbarkeit QBF Eingabe m M m P? Ausgabe ja m P nein m / P Komplexität: zusätzliche Anforderungen an Zeit-/Speicherplatzbedarf von A Polynomialzeit: Anzahl Rechenschritte von A ist pol( m ), m : Länge der Eingabe; pol ist ein festes Polynom (Polynomielle) Reduktion von P M nach P M ist eine (in Polynomialzeit berechenbare) Funktion π mit π : M M m P gdw. π(m) P Skizze/Bsp.: siehe Tafel Wenn P zu P reduzierbar, dann ist P höchstens so schwer wie P. Thomas Schneider Automatentheorie 1: endliche Wörter 46 Bestimmung der Komplexität Normalerweise zeigt man, dass ein Problem P M... in einer Komplexitätsklasse C liegt, indem man einen Algorithmus A findet, der P löst zeigt, dass A korrekt ist (ja/nein-antworten) und terminiert zeigt, dass A für jedes m M höchstens die C-Ressourcen braucht... A kann z. B. eine Reduktion zu einem Problem aus C sein EXPTIME NEXPTIME EXPSPACE. Exponentialzeit nichtdet. Exponentialzeit exponentieller Platz. unentscheidbar Erfüllbarkeit Präd.-logik schwer (hard) für C ist, indem man ein Problem P M findet, dass schwer für C ist und eine Reduktion von P nach P angibt vollständig für C ist, indem man zeigt, dass es in C liegt und schwer für C ist Thomas Schneider Automatentheorie 1: endliche Wörter 47 Thomas Schneider Automatentheorie 1: endliche Wörter 48

Entscheidungsprobleme für endliche Automaten Das Leerheitsproblem Betrachten wesentliche Eigenschaften von Sprachen (Sprachen repräsentiert durch NEAs oder reguläre Ausdr.) Ist eine gegebene Sprache leer? Ist ein gegebenes Wort w in einer Sprache L? Beschreiben zwei Repräsentationen einer Sprache tatsächlich dieselbe Sprache? Wichtig für die bisher gesehenen Anwendungen (Ü: finde Gründe!) Art der Repräsentation spielt manchmal eine Rolle: Umwandlung DEA NEA: Umwandlung NEA DEA: Umwandlung reg. Ausdr. NEA: Umwandlung NEA reg. Ausdr.: konstante Zeit Exponentialzeit Wir beschränken uns im Folgenden auf NEAs. Polynomialzeit Exponentialzeit Ist definiert als {A L(A) = }. Satz 19 Das Leerheitsproblem ist entscheidbar. Beweis: Siehe Tafel. Komplexität: NL-vollständig (Wegsuche in gerichteten Graphen) Thomas Schneider Automatentheorie 1: endliche Wörter 49 Das Wortproblem Thomas Schneider Automatentheorie 1: endliche Wörter 50 Das Äquivalenzproblem Ist definiert als {(A, w) w L(A)}. Ist definiert als {(A 1, A 2 ) L(A 1 ) = L(A 2 )}. Satz 20 Das Wortproblem ist entscheidbar. Satz 21 Das Äquivalenzproblem ist entscheidbar. Beweis: Reduktion zum Leerheitsproblem siehe Tafel. Beweis: Siehe Tafel. Komplexität: NL-vollständig (modifizierte Wegsuche) (Reduktion liefert nur in P ) Komplexität: für DEAs in P, für NEAs PSPACE-vollständig (aus Beweis folgt nur in EXPTIME ) Thomas Schneider Automatentheorie 1: endliche Wörter 51 Thomas Schneider Automatentheorie 1: endliche Wörter 52

Das Universalitätsproblem Literatur für diesen Teil Ist definiert als {A L(A) = Σ }. Satz 22 Das Universalitätsproblem ist entscheidbar. Beweis: Übungsaufgabe. Komplexität: für DEAs in P, für NEAs PSPACE-vollständig (aus Beweis folgt nur in EXPTIME ) Thomas Schneider Automatentheorie 1: endliche Wörter 53 John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. Introduction to Automata Theory, Languages and Computation. 2. Auflage, Addison-Wesley, 2001. Kapitel 1,2. Verfügbar in SUB: Zentrale a inf 420 e/028(2) dt. Versionen 2002 11: 2 TB Technik n 438/101(3,2) dt. Version 2006: 2 Zentrale a inf 420 ef/238a,b Vorgängerversion von 1979: Zentrale a inf 420 e/806 oder BB Math.-MZH 19h kyb 315 e/996a oder auf dt., 1988: 2 Zentr. a kyb 308 f/352, (a) Meghyn Bienvenu. Automata on Infinite Words and Trees. Vorlesungsskript, Uni Bremen, WS 2009/10. http://www.informatik.uni-bremen.de/tdki/lehre/ws09/ automata/automata-notes.pdf Thomas Schneider Automatentheorie 1: endliche Wörter 54