Der deterministische, endliche Automat. Formale Grundlagen der Informatik 1 Kapitel 3 Mehr zu regulären Sprachen

Ähnliche Dokumente
Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften

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

2.3 Abschlusseigenschaften

Endliche Automaten. aus. Abbildung 1: Modell eines einfachen Lichtschalters

2.2 Nichtdeterministische endliche Automaten

a b b a Alphabet und Wörter - Zusammengefasst Formale Grundlagen der Informatik 1 Kapitel 2 Endliche Automaten und reguläre Sprachen

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

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

Wie man eine Sprache versteht

Worterkennung in Texten speziell im Compilerbau 14. April Frank Heitmann 2/65

Satz (Abschluß unter der Stern-Operation)

Die mathematische Seite

Beispiel Produktautomat

Seien M 1,M 2 NFAs f. die Sprachen L 1 und L 2. Konstruktion eines NFAs für L 1 L 2 : Erzeuge Kopien von M 1 und M 2. p 1

Organisatorisches... Formale Grundlagen der Informatik 1 Kapitel 1. Endliche Automaten. Organisatorisches. Organisatorisches. Eine typische Woche:

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Induktionsprinzipien für andere Bereiche. falscher Induktionsbeweis über N Übung Beispiele. Reguläre Σ-Sprachen Abschnitt 2.

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

5.2 Endliche Automaten

Organisatorisches... Formale Grundlagen der Informatik 1 Kapitel 1. Endliche Automaten. Organisatorisches. Organisatorisches. Eine typische Woche:

Das Pumping Lemma: Ein Anwendungsbeispiel

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

F2 Zusammenfassung Letzte Tips zur Klausur

WS07/08 Automaten und Formale Sprachen 2. Vorlesung. Kapitel 2. Endliche Automaten und reguläre Sprachen. Definitionen:

Informatik III. Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung

Grundlagen der Theoretischen Informatik, SoSe 2008

Das Pumping-Lemma Formulierung

1 Eine Menge M Σ heißt (rekursiv) aufzählbar genau. 2 Die Familie aller aufzählbaren Mengen wird mit RE

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

FORMALE SYSTEME. Wiederholung. Beispiel: NFA. Wiederholung: NFA. 4. Vorlesung: Nichtdeterministische Endliche Automaten. TU Dresden, 19.

Endliche Automaten. Endliche Automaten J. Blömer 1/24

DisMod-Repetitorium Tag 4

Automaten und Formale Sprachen 4. Vorlesung

Automaten und Formale Sprachen ε-automaten und Minimierung

Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus:

Formale Sprachen und endliche Automaten

Automaten und formale Sprachen Notizen zu den Folien

Äquivalenzrelation R A zu DFA A. Rechtsinvarianz. Relation R L zur Sprache L

FORMALE SYSTEME. Wiederholung. Beispiel: NFA. Wiederholung: NFA. 4. Vorlesung: Nichtdeterministische Endliche Automaten. TU Dresden, 20.

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

Homomorphismen. Defnition: Σ und Γ seien zwei endliche Alphabete, und h sei eine Abbildung h : Σ Γ. Wir definieren die folgenden Sprachen:

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 2. Mai HA-Lösung. TA-Lösung

Kapitel 1: Endliche Automaten Gliederung 1. Endliche Automaten

Frank Heitmann 2/71. 1 Betrachten wir Σ für ein Alphabet Σ, so ist Σ die Menge

Automaten und formale Sprachen Notizen zu den Folien

Fragen 1. Wie viele Startzustände kann ein endlicher Automat haben? 2. Wie viele Endzustände kann ein endlicher Automat haben?

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

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Informales Beispiel. Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen. Grammatiken. Anmerkungen

Grundlagen der Theoretischen Informatik

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Einführung in die Theoretische Informatik

a b b a Vom DFA zur TM Formale Grundlagen der Informatik 1 Kapitel 9 Turing-Maschinen Der Lese-/Schreibkopf Bedeutung der TM

4.2 Varianten der Turingmaschine. 4 Turingmaschinen

Endliche Automaten. Endliche Automaten J. Blömer 1/23

Teil V: Formale Sprachen 1. Sprachen und Grammatiken 2. Endliche Automaten

Automaten und Formale Sprachen SoSe 2013 in Trier

Informatik IV. Pingo Sommersemester Dozent: Prof. Dr. J. Rothe. J. Rothe (HHU Düsseldorf) Informatik IV 1 / 13

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit. Zugangsnummer: 3288

Potenzmengenkonstruktion. Vergleich DFAs NFAs. NFA DFA ohne überflüssige Zust. Ansatz nicht praktikabel

Theorie der Informatik

Einführung in die Computerlinguistik Satz von Kleene

Automaten und Formale Sprachen SoSe 2013 in Trier

2.2 Reguläre Sprachen Endliche Automaten

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

Beweisidee: 1 Verwende den Keller zur Simulation der Grammatik. Leite ein Wort. 2 Problem: der Keller darf nicht beliebig verwendet werden, man kann

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Die oben aufgelisteten Sprachfamilien werden von oben nach unten echt mächtiger, d.h. die Familie der regulären Sprachen ist eine echte Teilfamilie

Formale Sprachen. Reguläre Sprachen. Rudolf FREUND, Marian KOGLER

Formale Grundlagen der Informatik 1 Kapitel 1 Endliche Automaten

Einführung in die Computerlinguistik Satz von Kleene

Theorie der Informatik

Endliche Automaten. δ : Z Σ Z die Überführungsfunktion, z 0 Z der Startzustand und F Z die Menge der Endzustände (Finalzustände).

Endliche Automaten Jörg Roth 101

Induktive Definition

Die Nerode-Relation und der Index einer Sprache L

Übersicht. 3 3 Kontextfreie Sprachen

ADS-EI 5.2 Struktur einer Turing-Maschine 120/451 ľernst W. Mayr

10 Kellerautomaten. Kellerautomaten

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung

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

Theoretische Grundlagen der Informatik

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

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

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Grundlagen der Theoretischen Informatik

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Reguläre Sprachen Endliche Automaten

1 Eliminieren von ɛ-übergängen

Automaten und formale Sprachen Notizen zu den Folien

Einführung in die Theoretische Informatik

FORMALE SYSTEME. Der Satz von Myhill und Nerode. Automaten verkleinern mit Quotientenbildung. Verschiedene Äquivalenzrelationen

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Nichtdeterministische endliche Automaten. Nichtdetermistische Automaten J. Blömer 1/12

Software Engineering Ergänzung zur Vorlesung

Transkript:

Der deterministische, endliche Automat Formale Grundlagen der Informatik 1 Kapitel 3 Mehr zu regulären Sprachen Frank Heitmann heitmann@informatik.uni-hamurg.de 8. April 2014 Definition (DFA) Ein deterministischer, endlicher Automat (DFA) ist ein 5-Tupel A = (Z, Σ, δ, z 0, Z end ) mit: Der endlichen Menge von Zuständen Z. Dem endlichen Alphaet Σ von Eingaesymolen. Der Üerführungsfunktion δ : Z Σ Z. Dem Startzustand z 0 Z. Der Menge der Endzustände Z end Z. Frank Heitmann heitmann@informatik.uni-hamurg.de 1/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 2/57 Der nichtdeterministische, endliche Automat Der nichtdeterministische, endliche Automat Definition (NFA) Ein nichtdeterministischer, endlicher Automat (NFA) ist ein 5-Tupel A = (Z, Σ, δ, Z start, Z end ) mit: Der endlichen Menge von Zuständen Z. Dem endlichen Alphaet Σ von Eingaesymolen. Der Üerführungsfunktion δ : Z Σ 2 Z. Der Menge der Startzustände Z start Z. Der Menge der Endzustände Z end Z. Definition (NFA - Alternative) Ein nichtdeterministischer, endlicher Automat (NFA) ist ein 5-Tupel A = (Z, Σ, K, Z start, Z end ) mit: Der endlichen Menge von Zuständen Z. Dem endlichen Alphaet Σ von Eingaesymolen. Der Zustandsüergangsrelation K Z Σ Z Der Menge der Startzustände Z start Z. Der Menge der Endzustände Z end Z. Frank Heitmann heitmann@informatik.uni-hamurg.de 3/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 4/57

Der NFA - Ein Beispiel DFA = NFA 0,1 1 z 0 z 1 Alle möglichen Rechnungen auf dem Wort 011: (z 0, 011) (z 0, 11) (z 1, 1) lockiert (z 0, 011) (z 0, 11) (z 0, 1) (z 0, λ) alehnen (z 0, 011) (z 0, 11) (z 0, 1) (z 1, λ) akzeptieren! Da es (mindestens) eine akzeptierende Rechnung git, akzeptiert der Automat die Eingae! NFAs und DFAs sind äquivalent, d.h. zu jedem DFA kann ein NFA konstruiert werden, der die gleiche Sprache akzeptiert und andersherum eenso. DFA NFA Jeder DFA kann auch als spezieller NFA gesehen werden, indem man δ N (z, x) = {δ D (z, x)} und Z start = {z 0 } setzt (δ N ist die Üerführungsfunktion des NFA, δ D die des DFA). NFA DFA Andersherum geht es mit der Potenzautomatenkonstruktion. Frank Heitmann heitmann@informatik.uni-hamurg.de 5/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 6/57 Der Potenzautomat Der Potenzautomat - Ein Beispiel Zu jeder von einem NFA A akzeptierte Menge L kann ein DFA B konstruiert werden mit L(B) = L. a, a a, z 0 z 1 z2 Die Konstruktion Sei A = (Z, Σ, δ, Z start, Z end ) der NFA. Wir definieren B = (Z, Σ, δ, z 0, Z end ) mit 1 Z := 2 Z 2 Σ := Σ 3 δ (M, x) := z M δ(z, x) oder alternativ δ (M, x) := z M {z Z (z, x, z ) K 4 z 0 := Z start 5 Z end := {M 2Z M Z end } {z 0 } a {z 0, z 1 } Wohin nun von {z 0, z 1 } mit a und? Verfahren: Man geht alle Zustände der Menge durch (hier z 0 und z 1 ), guckt für jeden wohin man im NFA (!) mit dem jeweiligen Symol (z.b. a) kommt und tut alle daei herauskommende Zustände in eine Menge. Dies ist der Nachfolgezustand im DFA. Frank Heitmann heitmann@informatik.uni-hamurg.de 7/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 8/57

Der Potenzautomat - Ein Beispiel Der Potenzautomat - Ein Beispiel a, a, a a, z 0 z 1 z2 a a, z 0 z 1 z2 Es ist δ(z 0, a) = {z 0, z 1 } und δ(z 1, a) = z 2 also insgesamt δ ({z 0, z 1 }, a) = {z 0, z 1, z 2 } und ähnlich für : {z 0 } a {z 0, z 1 } {z 0, z 2 } {z 0, z 1, z 2 } a Und fertig! {z 0 } {z 0, z 2 } a a {z 0, z 1 } a {z 0, z 1, z 2 } a Frank Heitmann heitmann@informatik.uni-hamurg.de 9/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 10/57 Zusammenfassung Wichtige Anmerkung Jeder DFA akzeptiert eine Sprache. Man kann auch sagen, dass er eine (kompakte) Beschreiung dieser Sprache ist zw. jener Wörter, die in der Sprache enthalten sind. Eine Menge/Sprache ist gerade dann regulär, wenn es einen DFA git, der sie akzeptiert. Regulär zu sein ist also gerade üer die Automaten definiert! Die Familie der regulären Sprachen ist dann die Ansammlung all jener Sprachen für die es einen DFA git, der sie akzeptiert. Wir haen nun gelernt: Der NFA tut auch genau dies! Die Aussage eine Sprache ist regulär ist also gleichedeutend damit, dass es einen DFA git, der sie akzeptiert oder damit, dass es einen NFA git, der sie akzeptiert. Man kann einem NFA zusätzlich zu dem isherigen noch erlauen λ-kanten (oder ɛ-kanten) zu enutzen. Nutzt man diese, liest man nichts vom Eingaeand (und der Lesekopf auf dem Eingaeand geht nicht weiter). Es findet nur ein Zustandswechsel statt. λ z 0 a z 1 z 2 λ z 3 z 4 Frank Heitmann heitmann@informatik.uni-hamurg.de 11/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 12/57

Lasst euch von der Einfachheit des Beispiels nicht täuschen. Die Kanten können sehr nützlich sein. Begriffe wie Rechnung etc. wären nun anzupassen Wissen Man kann zeigen, dass man einen NFA mit λ-kanten in einen λ-freien NFA umwandeln kann (und letztendlich dann auch in einen DFA). Vorgehen Wir wollen λ-kanten in estimmten Kontexten enutzen. Wir wissen dann, dass wir solch einen NFA auch in einen DFA umwandeln können, die Sprache also regulär ist. Wir werden aer weder formal die λ-kanten einführen, noch den Beweis führen, dass auch NFA mit ihnen wieder genau die regulären Sprachen akzeptieren. Wir werden sie einfach informal enutzen. Literaturhinweis Interessierte finden die Konstruktion im Skript und in [HMU] (siehe Literaturhinweis zu Anfang). Frank Heitmann heitmann@informatik.uni-hamurg.de 13/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 14/57 Reguläre Sprachen Zu regulären Ausdrücken Bisher kennen wir zur Beschreiung einer regulären Sprache DFAs NFAs NFAs mit λ-kanten Wir lernen jetzt noch eine dritte Möglichkeit kennen... Wir wollen Sprachen mit Ausdrücken der Art a + (a + ( c)) usw. eschreien... Man kennt das vielleicht aus Programmiersprachen... Frank Heitmann heitmann@informatik.uni-hamurg.de 15/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 16/57

Beispiele Definition () Sei Σ ein Alphaet. Die regulären Ausdrücke üer Σ sind induktiv definiert durch: 1 ist ein regulärer Ausdruck, der die Menge M = eschreit. 2 Für jedes a Σ ist a ein regulärer Ausdruck, der die Menge M a = {a} eschreit. 3 Sind X und Y reguläre Ausdrücke, die die Mengen M X und M Y eschreien, dann eschreit (X + Y ) die Menge M X M Y (X Y ) die Menge M X M Y X die Menge M X und X + die Menge M + X. 4 Nur die so erzeugten Ausdrücke sind reguläre Ausdrücke. Beispiele ( für eschreit die Menge ): (a + ) ({a} {}) = {a, } (a ) {a} {} = {a} a + a {a} {} {} {a} = {λ} Anmerkung Agesehen von + für also recht ähnlich zu den Mengenoperationen, die wir schon kennen! Wir enutzen die ülichen Klammerersparnis regeln wie vor + und hoch + zw. hoch vor. Frank Heitmann heitmann@informatik.uni-hamurg.de 17/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 18/57 Äquivalenzeweis Äquivalenzeweis Man kann nun zeigen: Sei A ein regulärer Ausdruck und M A die von A eschrieene Menge. Dann git es einen DFA A mit L(A ) = M A. Sei A ein DFA. Dann git es einen regulären Ausdruck A so dass L(A ) = M A für die von A eschrieene Menge M A. Hinweis Wir skizzieren jetzt recht knapp eide Richtungen. Für später genügt es, wenn ihr wisst, dass die Äquivalensteht. Trotzdem hier jetzt einmal die Idee(n) und die Literaturhinweise für Interessierte... Bemerkung Die eiden Modelle sind also wieder äquivalent. Auch mit regulären Ausdrücken lassen sich also genau die regulären Sprachen eschreien. Frank Heitmann heitmann@informatik.uni-hamurg.de 19/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 20/57

Die Richtung regulärer Ausdruck DFA ist relativ einfach. Zu jeder Operation ei der Erstellung eines regulären Ausdrucks git man ein Verfahren an, wie man einen NFA konstruieren kann. Z.B. zum rationalen Ausdruck A B z 0 z 0 0 z 0 e Z.B. zum rationalen Ausdruck a einfach z 0 a z 1 Frank Heitmann heitmann@informatik.uni-hamurg.de 21/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 22/57 Z.B. zum rationalen Ausdruck A B Z.B. zum rationalen Ausdruck A B z 0 z 0 0 z 0 e z 0 z 0 0 z 0 e Frank Heitmann heitmann@informatik.uni-hamurg.de 23/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 24/57

Z.B. zum rationalen Ausdruck A + B Z.B. zum rationalen Ausdruck A + B z 0 z 0 z 0 0 z 0 e z 0 0 z 0 e Frank Heitmann heitmann@informatik.uni-hamurg.de 25/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 26/57 Z.B. zum rationalen Ausdruck A + B Z.B. zum rationalen Ausdruck A + B z 0 z 0 z z z 0 0 z 0 e z 0 0 z 0 e Frank Heitmann heitmann@informatik.uni-hamurg.de 27/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 28/57

Äquivalenzeweis - Die Idee 2 Anmerkung Dies kann man für alle Operatoren machen und kann dann so wie der reguläre Ausdruck Stück für Stück aufgeaut ist, auch den Automaten dafür Stück für Stück aufauen. Im richtigen Verfahren wird noch auf Dinge geachtet, wie dass man nur einen Startzustand und Endzustand hat etc. (so wie oen). Literaturhinweis Interessierte finden die Konstruktion in [HMU] (und auf andere Weise im Skript). Die andere Richtung (DFA regulärer Ausdruck) ist schwieriger! Die Idee Mittels einer Rekursionsformel werden Worte eschrieen, die auf estimmten Pfaden im Automaten liegen. Damit lassen sich letztendlich alle akzeptierten Worte eschreien (also die akzeptierte Sprache) und (!) wir enötigen dafür nur endlich oft die einfachen Operationen, und, was mit regulären Ausdrücken geht. Frank Heitmann heitmann@informatik.uni-hamurg.de 29/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 30/57 Äquivalenzeweis - Die Idee 2 Zusammenfassung Kern des Beweises ist es die Zustände durchzunummerieren z 1, z 2,..., z n (z 1 ist der Startzustand) und dann folgende Rekursionsformel zu enutzen { {x Ri,j k δ(zi, x) = z j oder (x = λ) (i = j)}, falls k = 0 = R k 1 i,j R k 1 i,k (R k 1 k,k ) R k 1 k,j, falls k 1 In R k i,j sind genau jene Worte enthalten, die gelesen werden können, wenn in z i egonnen wird in z j geendet wird und daei nur Zustände aus {z 1, z 2,..., z k } esucht werden. Man erechnet dann gerade die R n 1,x mit z x Z end, vereinigt diese und ist fertig. Literaturhinweis Interessierte finden die Konstruktion im Detail inkl. Beweis im Skript und in [HMU]. Frank Heitmann heitmann@informatik.uni-hamurg.de 31/57 Zusammenfassung Zu jeder regulären Sprache L git es einen DFA A mit L(A) = L einen NFA B mit L(B) = L einen NFA mit λ-kanten C mit L(C) = L einen regulären Ausdruck D, der L eschreit (M D = L). DFAs, NFAs, NFAs mit λ-kanten und reguläre Ausdrücke sind also äquivalent. Frank Heitmann heitmann@informatik.uni-hamurg.de 32/57

Definition Sei f 1 eine einstellige Operation auf Mengen und f 2 eine zweistellige Operationen. D.h. wenn M 1, M 2 zwei Mengen sind, dann sind auch f 1 (M 1 ) und f 2 (M 1, M 2 ) Mengen. Beispiel Eine Sprachfamilie C ist ageschlossen gegenüer der Operation f 1 zw. f 2, wenn für jedes R C auch f 1 (R) C gilt zw. wenn für R 1, R 2 C auch f 2 (R 1, R 2 ) C gilt. Oft schreit man die Operatoren in Infix-Notation (d.h. den Operator zwischen die Argumente). Beispiele in einem anderen Kontext sind z.b. die Addition ei den natürlichen Zahlen. Ziel Wir wollen jetzt für die regulären Sprachen untersuchen, also z.b. o für zwei reguläre Sprachen L 1, L 2 REG auch gilt. L 1 L 2 REG L + 1 REG L REG... Vorgehen Die Argumentation ist dann immer Seien L 1 und L 2 reguläre Sprachen, dann..., also ist auch L 1 L 2 regulär. Frank Heitmann heitmann@informatik.uni-hamurg.de 33/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 34/57 Einfache Komplement Viele kriegen wir durch reguläre Ausdrücke geschenkt, da wir ja wissen, dass diese reguläre Sprachen eschreien. Die regulären Sprachen sind ageschlossen gegenüer,, +,. Beweis. Seien L 1, L 2 REG. Dann git es reguläre Ausdrücke A 1, A 2, die L 1 zw. L 2 eschreien. Nach Definition sind nun auch A 1 + A 2, A 1 A 2, A + 1, A 1 reguläre Ausdrücke, die die Mengen L 1 L 2, L 1 L 2, L + 1 und L 1 eschreien. Diese sind folglich auch regulär. (Da jede Sprache, die von einem regulären Ausdruck eschrieen werden kann, regulär ist.) Definition Sei L Σ. Dann ist das Komplement von L. Und Komplementildung...? L = {w Σ w L} Ideen?! Mit vollständigen DFAs? Frank Heitmann heitmann@informatik.uni-hamurg.de 35/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 36/57

Komplement Komplement Die regulären Sprachen sind gegenüer Komplementildung ageschlossen, d.h. ist L REG, dann auch L REG. Beweis. Sei L REG. Dann git es einen vollständigen DFA A mit L(A) = L. Wir konstruieren nun einen vollständigen DFA A aus A wie folgt: Alles von A üernehmen z Z in A Endzustand, dann in A nicht z Z in A kein Endzustand, dann einer in A Die regulären Sprachen sind gegenüer Komplementildung ageschlossen, d.h. ist L REG, dann auch L REG. Beweis. (Wir haen gerade End- und Nicht-Endzustände getauscht.) Wurde ein Wort nun von A akzeptiert (die Rechnung endet in einem Endzustand), so wird es von A nicht akzeptiert (kein Endzustand). Wurde ein Wort von A nicht akzeptiert (Rechnung endet in einem Nicht-Endzustand), so wird es von A akzeptiert (Endzustand). Damit gilt L(A ) = L. Frank Heitmann heitmann@informatik.uni-hamurg.de 37/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 38/57 Produkt/Durchschnitt Der Produktautomat Seien L 1, L 2 REG, dann ist auch L 1 L 2 REG. Die Idee Ideen? Wir gehen von zwei Automaten aus (für L 1 und L 2 ). Ein neuer Automat muss dann die Wörter akzeptieren, die eide Automaten akzeptieren. Dazu merken wir uns in einem Zustand des neuen Automaten jeweils in welchem Zustand der erste und in welchem der zweite Automat ist. Beweis. Seien A 1 = (Z 1, Σ 1, δ 1, z 1,0, Z 1,end ) A 2 = (Z 2, Σ 2, δ 2, z 2,0, Z 2,end ) vollständige DFAs mit L(A 1 ) = L 1 und L(A 2 ) = L 2. Wir konstruieren C = (Z 3, Σ 3, δ 3, z 3,0, Z 3,end ) mit Z 3 := Z 1 Z 2 Σ 3 := Σ 1 Σ 2 z 3,0 := (z 1,0, z 2,0 ) Z 3,end := Z 1,end Z 2,end δ 3 ((z 1, z 2 ), x) := (δ 1 (z 1, x), δ(z 2, x)) Frank Heitmann heitmann@informatik.uni-hamurg.de 39/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 40/57

Der Produktautomat Der Produktautomat - Konstruktion Will man einen Produktautomaten konstruieren, so Im Produktautomaten C wird also in der ersten Komponente eine Rechnung von A 1 und in der zweiten Komponente eine Rechnung von A 2 gemacht. Daraus folgt schnell die Korrektheit: ˆδ 3 (z 3,0, w) Z 3,end ˆδ 1 (z 1,0, w) Z 1,end ˆδ 2 (z 2,0, w) Z 2,end eginnt man in (z 1,0, z 2,0 ) erechnet δ(z 1,0, x) und δ(z 2,0, x) für jedes x Σ (sind für ein x eide definiert, ist dies ein neuer Nachfolgezustand) So fährt man dann fort... Bemerkung Im Grund genommen ähnlich zur Potenzautomatenkonstruktion, nur dass man hier im ersten Tupelelement immer wie im ersten Automaten und im zweiten Tupelelement immer wie im zweiten Automaten rechnet. Frank Heitmann heitmann@informatik.uni-hamurg.de 41/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 42/57 - Zusammenfassung Eine Anmerkung Die regulären Sprachen sind ageschlossen gegenüer Vereinigung Konkatenation hoch + hoch Komplementildung Durchschnitt Bemerkung Im Skript wird dies teilweise andersherum gemacht. Wir haen hier mittels regulären Ausdrücken einige der sofort gekriegt. Im Skript wird zunächst gezeigt, dass z.b. REG gegenüer ageschlossen ist und dies dann eim Beweis enutzt, dass die regulären Ausdrücke und DFAs äquivalent sind. Für Interessierte Es gelten weitere. Siehe z.b. [HMU]. Frank Heitmann heitmann@informatik.uni-hamurg.de 43/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 44/57

Möglichkeiten und Grenzen Intermezzo Wir können nun sehr viele Sprachen konstruieren, die alle regulär sind. Sind z.b. L 1, L 2 regulär. Dann auch (in etwas schluderiger Schreiweise) (L 1 + L 2 ) L 1 L + 2 L 1 (L 1 a3 L 2 )+... Intermezzo... dennoch wissen wir, dass wir nur endlich viele Informationen speichern können (der DFA hat nur endlich viele Zustände). Frank Heitmann heitmann@informatik.uni-hamurg.de 45/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 46/57 Naive Wortsuche Wortsuche mit Automaten Die naive Wortsuche dauert O(n m) Schritte Veresserungen sind möglich (z.b. mit ooleschen Flags welche Buchstaen man schon entdeckt hat), aer dies ist fehleranfällig und im Grunde aut man Automaten nach. Wortsuche mit Automaten raucht nur O(n) Schritte! Vorher muss der Automat aus dem Pattern erzeugt werden. Zur Info: Dies kann man in O(m Σ ) machen. Wenig fehleranfällig. Methoden für den Automaten müssen nur einmal geschrieen werden! Frank Heitmann heitmann@informatik.uni-hamurg.de 47/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 48/57

Deswegen... Eine Sprache, die nicht geht, oder? Deswegen z.b. auch die ganzen Konstruktionen. Man könnte jetzt ein Tool schreien, in dem jemand einen regulären Ausdruck eingit dieser wird in einen Automaten umgewandelt (automatisch) zw. in Code (so dass wir eine Methode für δ haen) der dann für eine effiziente Wortsuche enutzt werden kann Anwendungen z.b.: Suchen in Texten Suchen nach Schlüsselworten eim Kompilieren Suchen in DNA-Sequenzen... Wir können nun sehr viele Sprachen konstruieren, die alle regulär sind. Sind z.b. L 1, L 2 regulär. Dann auch (L 1 + L 2 ) L 1 L + 2 L 1 (L 1 a3 L 2 )+... dennoch wissen wir, dass wir nur endlich viele Informationen speichern können (der DFA hat nur endlich viele Zustände). Frank Heitmann heitmann@informatik.uni-hamurg.de 49/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 50/57 Eine Sprache, die nicht geht, oder? Der Kellerautomat a a L := {a n n n N} Ideen für einen DFA? Was ist das Prolem?, A,? z 0 z 1 z 2 a,? A? a, A AA, A? Frank Heitmann heitmann@informatik.uni-hamurg.de 51/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 52/57

Zusammenfassung Wir haen heute Nächstes Mal: Kellerautomat richtig einführen Werkzeuge kennenlernen, um zu zeigen, dass es wirklich nicht mit DFAs geht NFA mit λ-kanten und reguläre Ausdrücke eingeführt. Sollt ihr wissen Beide solltet ihr lesen können und ei eiden solltet ihr Wissen, dass man die in DFAs umwandeln kann. Könnt ihr wissen... Interessierte können die Konstruktionen im Detail und die zugehörigen Beweise im Skript finden. Frank Heitmann heitmann@informatik.uni-hamurg.de 53/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 54/57 Zusammenfassung Zusammenfassung Zusammenfassung Zu jeder regulären Sprache L git es einen DFA A mit L(A) = L einen NFA B mit L(B) = L einen NFA mit λ-kanten C mit L(C) = L einen regulären Ausdruck D, der L eschreit (M D = L). DFAs, NFAs, NFAs mit λ-kanten und reguläre Ausdrücke sind also äquivalent. Wir haen uns dann noch angesehen: Die regulären Sprachen sind (u.a.) ageschlossen gegenüer Vereinigung Konkatenation hoch + hoch Komplementildung Durchschnitt... Frank Heitmann heitmann@informatik.uni-hamurg.de 55/57 Frank Heitmann heitmann@informatik.uni-hamurg.de 56/57

Zusammenfassung Was ihr is zur nächsten Woche kennen solltet: Was DFAs sind und wie die funktionieren Was NFAs sind und wie die funktionieren Was reguläre Ausdrücke sind und wie man damit Sprachen eschreit. λ-kanten kennen Wissen, dass DFA, NFA, NFA mit λ-kanten und reguläre Ausdrücke im Prinzip das Gleiche sind. Konstruktionsmethoden (zu einer Sprache M einen Automaten A machen) und der Beweis L(A) = M. Potenzautomatenkonstruktion (die Konstruktion) für REG. Welche gelten? Wie gehen die Konstruktionen? Frank Heitmann heitmann@informatik.uni-hamurg.de 57/57