Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften

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

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

2.2 Nichtdeterministische endliche Automaten

2.3 Abschlusseigenschaften

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

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}}

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

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

Wie man eine Sprache versteht

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

Die mathematische Seite

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

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

5.2 Endliche Automaten

Formale Grundlagen der Informatik 1 Kapitel 1 Endliche Automaten

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

Das Pumping Lemma: Ein Anwendungsbeispiel

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

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

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

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

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

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

Satz (Abschluß unter der Stern-Operation)

Grundlagen der Theoretischen Informatik

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

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

Automaten und Formale Sprachen ε-automaten und Minimierung

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

4.2 Varianten der Turingmaschine. 4 Turingmaschinen

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

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

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

2.2 Reguläre Sprachen Endliche Automaten

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

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

Formale Sprachen und endliche Automaten

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Einführung in die Theoretische Informatik

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

DisMod-Repetitorium Tag 4

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

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

1 Eliminieren von ɛ-übergängen

Einführung in die Theoretische Informatik

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

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

Automaten und Formale Sprachen SoSe 2013 in Trier

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

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

Theorie der Informatik

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

Theoretische Grundlagen der Informatik

Das Pumping-Lemma Formulierung

F2 Zusammenfassung Letzte Tips zur Klausur

Formale Grundlagen der Informatik 3 Kapitel 6 Automatenbasiertes LTL Model Checking

Einführung in die Computerlinguistik Satz von Kleene

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

Grundlagen der Theoretischen Informatik, SoSe 2008

Formale Grundlagen der Informatik 1 Kapitel 1 Endliche Automaten

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

10 Kellerautomaten. Kellerautomaten

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

Einführung in die Computerlinguistik Satz von Kleene

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

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

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

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

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

liefern eine nicht maschinenbasierte Charakterisierung der regulären

Einführung in die Theoretische Informatik

Automaten und Formale Sprachen SoSe 2013 in Trier

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

Endliche Automaten Jörg Roth 101

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

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Kontextfreie Sprachen werden von PDAs akzeptiert

Theoretische Grundlagen der Informatik

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

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

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

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

Kurz-Skript zur Theoretischen Informatik I

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

Proseminar Automatentheorie. Thema: Berry Sethi Algorithmus. Von Christopher Haas

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

Einführung in die Theoretische Informatik

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Automaten und Coinduktion

Software Engineering Ergänzung zur Vorlesung

Akzeptierende Turing-Maschine

Einführung in die Theoretische Informatik

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

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

Übungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen

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

Transkript:

Formale Grundlagen der Informatik 1 Kapitel 5 Frank Heitmann heitmann@informatik.uni-hamburg.de 18. April 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/64

NFAs - Grundlagen DFAs vs. NFAs Der deterministische, endliche Automat 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 Alphabet Σ von Eingabesymbolen. Der Überführungsfunktion δ : Z Σ Z. Dem Startzustand z 0 Z. Der Menge der Endzustände Z end Z. Frank Heitmann heitmann@informatik.uni-hamburg.de 2/64

NFAs - Grundlagen DFAs vs. NFAs 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 Alphabet Σ von Eingabesymbolen. Der Überführungsfunktion δ : Z Σ 2 Z. Der Menge der Startzustände Z start Z. Der Menge der Endzustände Z end Z. Frank Heitmann heitmann@informatik.uni-hamburg.de 3/64

NFAs - Grundlagen DFAs vs. NFAs Der nichtdeterministische, endliche Automat 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 Alphabet Σ von Eingabesymbolen. Der Zustandsübergangsrelation K Z Σ Z Der Menge der Startzustände Z start Z. Der Menge der Endzustände Z end Z. Frank Heitmann heitmann@informatik.uni-hamburg.de 4/64

NFAs - Grundlagen DFAs vs. NFAs Überführungsfunktion und Rechnung Definition (Erweiterte Überführungsfunktion) Die erweiterte Überführungsfunktion ˆδ : 2 Z Σ 2 Z wird für alle Z Z, x Σ und w Σ rekursiv definiert durch oder alternativ durch ˆδ(Z, λ) := Z ˆδ(Z, xw) := z Z ˆδ(δ(z, x), w) ˆδ(Z, λ) := Z ˆδ(Z, xw) := ˆδ( z Z δ(z, x), w) Frank Heitmann heitmann@informatik.uni-hamburg.de 5/64

NFAs - Grundlagen DFAs vs. NFAs Überführungsfunktion und Rechnung ˆδ(Z, λ) := Z ˆδ(Z, xw) := ˆδ( z Z δ(z, x), w) a,b a a,b z 0 z 1 z2 ˆδ({z 0 }, aba) = ˆδ({z 0, z 1 }, ba) = ˆδ({z 0 } {z 2 }, a) = ˆδ({z 0, z 2 }, a) = ˆδ({z 0, z 1 }, λ) = ˆδ({z 0, z 1 }, λ) = {z 0, z 1 } Frank Heitmann heitmann@informatik.uni-hamburg.de 6/64

Akzeptierte Sprache NFAs - Grundlagen DFAs vs. NFAs Definition (Akzeptierte Sprache) Die von einem NFA A akzeptierte Sprache ist die Menge L(A) := {w Σ ˆδ(Z start, w) Z end } = {w Σ (z 0, w) (z e, λ), z 0 Z start, z e Z end } Für die untere Notation definiert man sich ähnlich wie bei DFAs die Begriffe Konfiguration, Konfigurationsübergang, Rechnung und Erfolgsrechung (siehe vorherigen Foliensatz). Frank Heitmann heitmann@informatik.uni-hamburg.de 7/64

Der NFA - Ein Beispiel NFAs - Grundlagen DFAs vs. NFAs 0,1 1 z 0 z 1 Alle möglichen Rechnungen auf dem Wort 011: (z 0, 011) (z 0, 11) (z 1, 1) blockiert (z 0, 011) (z 0, 11) (z 0, 1) (z 0, λ) lehnt ab (z 0, 011) (z 0, 11) (z 0, 1) (z 1, λ) akzeptiert! Da es (mindestens) eine akzeptierende Rechnung gibt, akzeptiert der Automat die Eingabe! Frank Heitmann heitmann@informatik.uni-hamburg.de 8/64

Äquivalenz? NFAs - Grundlagen DFAs vs. NFAs DFAs vs. NFAs NFAs sind mindestens so mächtig wie DFAs. Die Idee 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 Überführungsfunktion des NFA, δ D die des DFA). Die Rückrichtung geht dann mit der Potenzautomatenkonstruktion... Frank Heitmann heitmann@informatik.uni-hamburg.de 9/64

Der Potenzautomat NFAs - Grundlagen DFAs vs. NFAs Satz Zu jeder von einem NFA A akzeptierte Menge L kann ein DFA B konstruiert werden mit L(B) = L. 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) 4 z 0 := Z start 5 Z end := {M 2Z M Z end } Frank Heitmann heitmann@informatik.uni-hamburg.de 10/64

Der Potenzautomat - Ein Beispiel NFAs - Grundlagen DFAs vs. NFAs a,b a a,b z 0 z 1 z2 Wir bauen nur die initiale Zusammenhangskomponente und beginnen mit dem Startzustand: {z 0 } Wohin gelangen wir mit einem a? Wohin mit einem b? Frank Heitmann heitmann@informatik.uni-hamburg.de 11/64

Der Potenzautomat - Ein Beispiel NFAs - Grundlagen DFAs vs. NFAs a,b a a,b z 0 z 1 z2 Mit a zu {z 0, z 1 }, mit b zu {z 0 } b {z 0 } a {z 0, z 1 } Wohin nun von {z 0, z 1 } mit a und b? Frank Heitmann heitmann@informatik.uni-hamburg.de 12/64

Der Potenzautomat - Ein Beispiel NFAs - Grundlagen DFAs vs. NFAs a,b a a,b 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 b: b {z 0 } a {z 0, z 1 } {z 0, z 2 } {z 0, z 1, z 2 } So fahren wir fort... b a Frank Heitmann heitmann@informatik.uni-hamburg.de 13/64

Der Potenzautomat - Ein Beispiel NFAs - Grundlagen DFAs vs. NFAs a,b a a,b z 0 z 1 z2... und fügen noch die Endzustände hinzu... b {z 0 } b {z 0, z 2 } a a {z 0, z 1 } b b a {z 0, z 1, z 2 } a Frank Heitmann heitmann@informatik.uni-hamburg.de 14/64

NFAs - Grundlagen DFAs vs. NFAs Der Potenzautomat - Korrektheit der Konstruktion Beweis. Wir zeigen per Induktion über w, dass für jedes w Σ und M Z ˆδ (M, w) = ˆδ(M, w) Ind.-Anfang w = 0, d.h. w = λ. In diesem Fall ist ˆδ (M, w) = ˆδ(M, w) = M (wegen der Definition der erweiterten Überführungsfunktion). Ind.-Annahme: Gelte die Aussage für Wörter der Länge n. Ind.-Schritt: Sei w Σ mit w = n + 1. Wir zerlegen w in xv (also w = xv) mit x Σ. x ist also das erste Symbol... Frank Heitmann heitmann@informatik.uni-hamburg.de 15/64

NFAs - Grundlagen DFAs vs. NFAs Der Potenzautomat - Korrektheit der Konstruktion Beweis. Fortsetzung des Induktionsschrittes: Nach den Definitionen der erweiterten Überführungsfunktionen folgt nun ˆδ(M, xv) = ˆδ( z M δ(z, x), v) ˆδ (M, xv) = ˆδ (δ (M, x), v) = ˆδ ( z M δ(z, x), v) Letztere Gleichheit aufgrund der Definition von δ. Sei z M δ(z, x) = M. Nun gilt aber v = n und damit ist die Induktionsannahme anwendbar, d.h. es ist ˆδ (M, v) = ˆδ(M, v) und damit insgesamt ˆδ (M, w) = ˆδ(M, w). Frank Heitmann heitmann@informatik.uni-hamburg.de 16/64

NFAs - Grundlagen DFAs vs. NFAs Der Potenzautomat - Korrektheit der Konstruktion Beweis. Abschluss des Beweises: Setzen wir für M die Menge Z start bzw. z 0 ein (was das gleiche ist nach Konstruktion), so erhalten wir ˆδ (z 0, w) = ˆδ(Z start, w) Nach Konstruktion und Definition der Akzeptanzbedingung akzeptieren nun sowohl A als auch B genau dann, wenn in ˆδ (z 0, w) bzw. ˆδ(Z start, w) ein Endzustand des NFA auftritt. Da diese Mengen gleich sind, akzeptiert A folglich genau dann, wenn B akzeptiert und damit ist L(A) = L(B). Frank Heitmann heitmann@informatik.uni-hamburg.de 17/64

Zusammenfassung NFAs - Grundlagen DFAs vs. NFAs DFAs und NFAs Zu jeder regulären Sprache L gibt es einen DFA A mit L(A) = L einen NFA B mit L(B) = L DFAs und NFAs sind also äquivalent. Wichtige Anmerkung Führt man das praktisch aus bzw. implementiert man dies, so wählt man die algorithmische Variante aus dem Beispiel, nicht die eher statische aus dem Beweis. Frank Heitmann heitmann@informatik.uni-hamburg.de 18/64

Fragen... NFAs - Grundlagen DFAs vs. NFAs Sie A ein nichtdeterministischer endlicher Automat. Was ist richtig? 1 L(A) REG 2 L(A) REG 3 L(A) REG 4 L(A) = REG Frank Heitmann heitmann@informatik.uni-hamburg.de 19/64

Fragen... NFAs - Grundlagen DFAs vs. NFAs Wie ist die Endzustandsmenge des DFA in der Potenzautomatenkonstruktion definiert? 1 Z end ist die Menge aller Endzustände des NFA 2 Z end ist die Menge aller Mengen, die Endzustände des NFA enthalten. 3 Z end ist die Menge aller Mengen, die geschnitten mit der Menge der Endzustände des NFA leer sind. 4 Z end ist die Menge aller Mengen, die geschnitten mit der Menge der Endzustände des NFA nicht leer sind. Frank Heitmann heitmann@informatik.uni-hamburg.de 20/64

Fragen... NFAs - Grundlagen DFAs vs. NFAs Welche Aussage stimmt für einen Potenzautomaten, der wie im Beweis angegeben konstruiert wurde? 1 Der Potenzautomat ist stets vollständig und initial zusammenhängend. 2 Der Potenzautomat ist stets vollständig, aber nicht zwingend initial zusammenhängend. 3 Der Potenzautomat ist nicht zwingend vollständig, aber stets initial zusammenhängend. 4 Der Potenzautomat ist weder zwingend vollständig noch zwingend initial zusammenhängend. Frank Heitmann heitmann@informatik.uni-hamburg.de 21/64

Zur Nachbereitung NFAs - Grundlagen DFAs vs. NFAs Zur Nachbereitung Richtige Antworten sind: 1 2 2 2 und 4 3 2 Frank Heitmann heitmann@informatik.uni-hamburg.de 22/64

Lambda-Kanten Man kann einem NFA zusätzlich zu dem bisherigen noch erlauben, λ-kanten (oder ɛ-kanten) zu benutzen. Nutzt man diese, liest man nichts vom Eingabeband (und der Lesekopf auf dem Eingabeband geht nicht weiter). Es findet nur ein Zustandswechsel statt. λ z 0 a z 1 z 2 λ z 3 b z 4 Die Einfachheit des Beispiels täuscht. Die Kanten können sehr nützlich sein. Frank Heitmann heitmann@informatik.uni-hamburg.de 23/64

Lambda-Kanten Definitionen Begriffe wie Rechnung etc. wären nun anzupassen Satz Zu jedem NFA mit λ-kanten kann ein äquivalenter NFA ohne λ-kanten konstruiert werden. Frank Heitmann heitmann@informatik.uni-hamburg.de 24/64

Lambda-Kanten Vorgehen Wir wollen λ-kanten in bestimmten Kontexten benutzen. Wir wissen dann, dass wir solch einen NFA auch in einen DFA umwandeln können, die Sprache also regulär ist. Wir werden aber 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 benutzen. Literaturhinweis Interessierte finden die Konstruktion in [HMU] (siehe Literaturhinweis zu Anfang). Frank Heitmann heitmann@informatik.uni-hamburg.de 25/64

Reguläre Sprachen Bisher kennen wir zur Beschreibung einer regulären Sprache damit DFAs NFAs NFAs mit λ-kanten Wir lernen nun noch eine vierte Möglichkeit kennen... Frank Heitmann heitmann@informatik.uni-hamburg.de 26/64

Zu regulären Ausdrücken Wir wollen Sprachen mit Ausdrücken der Art a + (a + (b c)) usw. beschreiben... Man kennt das vielleicht aus Programmiersprachen... Frank Heitmann heitmann@informatik.uni-hamburg.de 27/64

Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet. Die regulären Ausdrücke über Σ sind induktiv definiert durch: 1 ist ein regulärer Ausdruck, der die Menge M = beschreibt. 2 Für jedes a Σ ist a ein regulärer Ausdruck, der die Menge M a = {a} beschreibt. 3 Sind X und Y reguläre Ausdrücke, die die Mengen M X und M Y beschreiben, dann beschreibt (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. Frank Heitmann heitmann@informatik.uni-hamburg.de 28/64

Beispiele Beispiele ( für beschreibt die Menge ): (a + b) ({a} {b}) = {a, b} (a b) {a} {b} = {ab} a b + b a {a} {b} {b} {a} = {λ} Anmerkung Abgesehen von + für also recht ähnlich zu den Mengenoperationen, die wir schon kennen! Wir benutzen die üblichen Klammerersparnis regeln wie vor + und hoch + bzw. hoch vor. Frank Heitmann heitmann@informatik.uni-hamburg.de 29/64

Äquivalenzbeweis Man kann nun zeigen: Satz Sei A ein regulärer Ausdruck und M A die von A beschriebene Menge. Dann gibt es einen DFA A mit L(A ) = M A. Satz Sei A ein DFA. Dann gibt es einen regulären Ausdruck A so dass L(A ) = M A für die von A beschriebene Menge M A. Wichtige Anmerkung Die beiden Modelle sind also wieder äquivalent. Auch mit regulären Ausdrücken lassen sich also genau die regulären Sprachen beschreiben. Frank Heitmann heitmann@informatik.uni-hamburg.de 30/64

Äquivalenzbeweis Hinweis Wir skizzieren jetzt recht knapp beide Richtungen. Für später genügt es, wenn ihr wisst, dass die Äquivalenz besteht. Trotzdem hier jetzt einmal die Idee(n) und die Literaturhinweise für Interessierte... Frank Heitmann heitmann@informatik.uni-hamburg.de 31/64

Äquivalenzbeweis - Die Idee 1 Die Richtung regulärer Ausdruck DFA ist relativ einfach. Zu jeder Operation bei der Erstellung eines regulären Ausdrucks gibt man ein Verfahren an, wie man einen NFA (mit λ-kanten) konstruieren kann. Dieser hat stets genau einen Start- und genau einen Endzustand. Z.B. zum regulären Ausdruck a einfach z 0 a z 1 Frank Heitmann heitmann@informatik.uni-hamburg.de 32/64

Äquivalenzbeweis - Die Idee 1 Z.B. zum regulären Ausdruck A B z 0 z e z 0 0 z 0 e Frank Heitmann heitmann@informatik.uni-hamburg.de 33/64

Äquivalenzbeweis - Die Idee 1 Z.B. zum regulären Ausdruck A B z 0 z e z 0 0 z 0 e Frank Heitmann heitmann@informatik.uni-hamburg.de 34/64

Äquivalenzbeweis - Die Idee 1 Z.B. zum regulären Ausdruck A B z 0 z e z 0 0 z 0 e Frank Heitmann heitmann@informatik.uni-hamburg.de 35/64

Äquivalenzbeweis - Die Idee 1 Z.B. zum regulären Ausdruck A + B z 0 z e z 0 0 z 0 e Frank Heitmann heitmann@informatik.uni-hamburg.de 36/64

Äquivalenzbeweis - Die Idee 1 Z.B. zum regulären Ausdruck A + B z 0 z e z 0 0 z 0 e Frank Heitmann heitmann@informatik.uni-hamburg.de 37/64

Äquivalenzbeweis - Die Idee 1 Z.B. zum regulären Ausdruck A + B z 0 z e z z 0 0 z 0 e (z ist neuer Startzustand!) Frank Heitmann heitmann@informatik.uni-hamburg.de 38/64

Äquivalenzbeweis - Die Idee 1 Z.B. zum regulären Ausdruck A + B z 0 z e z z e z 0 0 z 0 e (z ist neuer Startzustand!) Frank Heitmann heitmann@informatik.uni-hamburg.de 39/64

Äquivalenzbeweis - Die Idee 1 Anmerkung Dies kann man für alle Operatoren machen und kann dann so wie der reguläre Ausdruck Stück für Stück aufgebaut ist, auch den Automaten dafür Stück für Stück aufbauen. Im richtigen Verfahren wird noch auf Dinge geachtet, wie dass man nur einen Startzustand und Endzustand hat etc. (so wie oben). Literaturhinweis Interessierte finden die Konstruktion in [HMU]. Frank Heitmann heitmann@informatik.uni-hamburg.de 40/64

Äquivalenzbeweis - Die Idee 2 Die andere Richtung (DFA regulärer Ausdruck) ist schwieriger! Die Idee Mittels einer Rekursionsformel werden Worte beschrieben, die auf bestimmten Pfaden im Automaten liegen. Damit lassen sich letztendlich alle akzeptierten Worte beschreiben (also die akzeptierte Sprache) und (!) wir benötigen dafür nur endlich oft die einfachen Operationen, und, was mit regulären Ausdrücken geht. Frank Heitmann heitmann@informatik.uni-hamburg.de 41/64

Äquivalenzbeweis - Die Idee 2 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 benutzen { {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 begonnen wird in z j geendet wird und dabei nur Zustände aus {z 1, z 2,..., z k } besucht werden. Man berechnet 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 in [HMU]. Frank Heitmann heitmann@informatik.uni-hamburg.de 42/64

Zusammenfassung Zusammenfassung Zu jeder regulären Sprache L gibt 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 beschreibt (M D = L). DFAs, NFAs, NFAs mit λ-kanten und reguläre Ausdrücke sind also äquivalent. Frank Heitmann heitmann@informatik.uni-hamburg.de 43/64

Fragen... Sie R ein regulärer Ausdruck. Was ist richtig? 1 R REG 2 R REG 3 R REG 4 R = REG 5 nichts davon 6 mehrere davon Frank Heitmann heitmann@informatik.uni-hamburg.de 44/64

Fragen... b a a z 1 z 2 b Welche Sprache akzeptiert obiger DFA? 1 b aa 2 b aa(ba) 3 b (a + b) 4 b + aa(ba) + z 3 Frank Heitmann heitmann@informatik.uni-hamburg.de 45/64

Fragen... Sei L Σ eine Sprache. Ist dann Σ \ L auch eine Sprache? Falls ja, ist sie eine reguläre Sprache? 1 Nein und Nein 2 Ja und Nein 3 Ja und Manchmal 4 Ja und Ja Frank Heitmann heitmann@informatik.uni-hamburg.de 46/64

Zur Nachbereitung Zur Nachbereitung Richtige Antworten sind: 1 5 (zunächst, wir wollen später 1 erlauben) 2 2 3 3 (wobei wir das manchmal noch genauer ausführen müssen) Frank Heitmann heitmann@informatik.uni-hamburg.de 47/64

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 abgeschlossen gegenüber der Operation f 1 bzw. f 2, wenn für jedes R C auch f 1 (R) C gilt bzw. wenn für R 1, R 2 C auch f 2 (R 1, R 2 ) C gilt. Typische Beispiele sind z.b. Vereinigung oder Komplementbildung. Oft schreibt man die Operatoren in Infix-Notation (d.h. den Operator zwischen die Argumente). Frank Heitmann heitmann@informatik.uni-hamburg.de 48/64

Ziel Wir wollen jetzt für die regulären Sprachen untersuchen, also z.b. ob 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-hamburg.de 49/64

Einfache Viele kriegen wir durch reguläre Ausdrücke geschenkt, da wir ja wissen, dass diese reguläre Sprachen beschreiben. Satz Die regulären Sprachen sind abgeschlossen gegenüber,, +,. Beweis. Seien L 1, L 2 REG. Dann gibt es reguläre Ausdrücke A 1, A 2, die L 1 bzw. L 2 beschreiben. 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 beschreiben. Diese sind folglich auch regulär. (Da jede Sprache, die von einem regulären Ausdruck beschrieben werden kann, regulär ist.) Frank Heitmann heitmann@informatik.uni-hamburg.de 50/64

Komplement Definition Sei L Σ. Dann ist das Komplement von L. Und Komplementbildung...? L = {w Σ w L} Ideen?! Mit vollständigen DFAs? Frank Heitmann heitmann@informatik.uni-hamburg.de 51/64

Komplement Satz Die regulären Sprachen sind gegenüber Komplementbildung abgeschlossen, d.h. ist L REG, dann auch L REG. Beweis. Sei L REG. Dann gibt 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 übernehmen z Z in A Endzustand, dann in A nicht z Z in A kein Endzustand, dann einer in A Frank Heitmann heitmann@informatik.uni-hamburg.de 52/64

Komplement Satz Die regulären Sprachen sind gegenüber Komplementbildung abgeschlossen, d.h. ist L REG, dann auch L REG. Beweis. (Wir haben 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-hamburg.de 53/64

Produkt/Durchschnitt Satz 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 beide 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. Frank Heitmann heitmann@informatik.uni-hamburg.de 54/64

Der Produktautomat 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-hamburg.de 55/64

Der Produktautomat 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 Dies wäre noch genauer zu zeigen. Z.B. wieder mit einer Induktion über die Wortlänge. Dafür bietet sich obiges aber nicht an. Warum? Was wäre eine bessere Induktionsbehauptung? Frank Heitmann heitmann@informatik.uni-hamburg.de 56/64

Der Produktautomat - Konstruktion Will man einen Produktautomaten konstruieren, so beginnt man in (z 1,0, z 2,0 ) berechnet δ(z 1,0, x) und δ(z 2,0, x) für jedes x Σ (sind für ein x beide definiert, ist dies ein neuer Nachfolgezustand - so lässt sich das Verfahren auch auf nicht vollständige DFAs erweitern) 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-hamburg.de 57/64

- Zusammenfassung Satz Die regulären Sprachen sind abgeschlossen gegenüber Vereinigung Konkatenation hoch + hoch Komplementbildung Durchschnitt Für Interessierte Es gelten weitere. Siehe z.b. [HMU]. Frank Heitmann heitmann@informatik.uni-hamburg.de 58/64

Möglichkeiten und Grenzen 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 Schreibweise) (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-hamburg.de 59/64

Eine Sprache, die nicht geht, oder? L := {a n b n n N} Ideen für einen DFA? Welche? Oder was ist das Problem? Frank Heitmann heitmann@informatik.uni-hamburg.de 60/64

Zusammenfassung Wir haben heute NFAs mit λ-kanten und reguläre Ausdrücke eingeführt. Frank Heitmann heitmann@informatik.uni-hamburg.de 61/64

Zusammenfassung Zusammenfassung Zu jeder regulären Sprache L gibt 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 beschreibt (M D = L) DFAs, NFAs, NFAs mit λ-kanten und reguläre Ausdrücke sind also äquivalent. Frank Heitmann heitmann@informatik.uni-hamburg.de 62/64

Zusammenfassung Sollt ihr wissen NFA mit λ-kanten und reguläre Ausdrücke solltet ihr lesen und benutzen können. Ihr solltet wissen, dass man die in DFAs umwandeln kann. Könnt ihr wissen... Interessierte können die Konstruktionen im Detail und die zugehörigen Beweise in [HMU] finden. Frank Heitmann heitmann@informatik.uni-hamburg.de 63/64

Zusammenfassung Wir haben uns dann noch angesehen: Satz Die regulären Sprachen sind (u.a.) abgeschlossen gegenüber Vereinigung Konkatenation hoch + hoch Komplementbildung Durchschnitt... Frank Heitmann heitmann@informatik.uni-hamburg.de 64/64