Beispiel Produktautomat

Ähnliche Dokumente
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

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

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

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

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

Abschluss gegen Substitution. Wiederholung. Beispiel. Abschluss gegen Substitution

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

Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften

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

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

Satz (Abschluß unter der Stern-Operation)

Kapitel 2: Formale Sprachen Gliederung

Das Pumping Lemma: Ein Anwendungsbeispiel

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Einführung in die Theoretische Informatik

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

Die Nerode-Relation und der Index einer Sprache L

DisMod-Repetitorium Tag 4

Zusammenfassung. Endliche Sprachen. Fazit zu endlichen Automaten. Teil 4: Grammatiken und Syntaxanalyse

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

2.3 Abschlusseigenschaften

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

Grammatiken. Einführung

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für

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

liefern eine nicht maschinenbasierte Charakterisierung der regulären

5.2 Endliche Automaten

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

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

Klammersprache Definiere

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

Theoretische Informatik Mitschrift

Automaten und Formale Sprachen SoSe 2013 in Trier

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

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

Theoretische Grundlagen der Informatik

Automaten und Formale Sprachen ε-automaten und Minimierung

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

Das Pumping-Lemma Formulierung

H MPKP. Beispiel für eine Rechnung. Reduktion H MPKP. Überführungsregeln

Grundlagen der Theoretischen Informatik, SoSe 2008

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

Algorithmen auf Sequenzen

Zwei Bemerkungen zum Schluss

Einführung in die Theoretische Informatik

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Automaten und Formale Sprachen SoSe 2013 in Trier

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

Berechenbarkeitstheorie 1. Vorlesung

Formale Sprachen und endliche Automaten

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

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

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

Konkatenation. Abschlusseigenschaften. Kleenescher Abschluss. Durchschnitt und Komplement

Endliche Automaten Jörg Roth 101

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

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

Theoretische Grundlagen der Informatik

Einführung in die Theoretische Informatik

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

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

Teil VI. Anwendungen, Teil 1: XML und deterministische reguläre Ausdrücke

WS07/08 Automaten und Formale Sprachen 5. Vorlesung

Theorie der Informatik

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

Grundlagen der theoretischen Informatik

Reguläre Sprachen und endliche Automaten

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

2.2 Nichtdeterministische endliche Automaten

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

Kellerautomaten u. kontextfr. Spr.

Kapitel 2: Formale Sprachen Gliederung

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

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

Übungsaufgaben zu Formalen Sprachen und Automaten

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

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:

Grundlagen der Theoretischen Informatik

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

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

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

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Die mathematische Seite

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

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

Teil 3: Endliche Automaten. (Kapitel T4 u. T5.3)

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

Automatentheorie und formale Sprachen

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Einführung in die Theoretische Informatik

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Induktive Definition

Grundlagen der theoretischen Informatik

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

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

Informatik III - WS07/08

Transkript:

Beispiel Produktautomat 0 1 p 0 p 1 p 2 q 0 q 1 445

Vereinfachte Konstruktion f. NFAs 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. Erzeuge neuen Startzustand q 0 (akzeptierend, falls q 0,1 oder q 0,2 akzept.). Für alle a Σ erzeuge a-übergänge von q 0 zu den a-nachfolgern der Startzustände von M 1 und M 2. - Funktioniert aber nicht für Durchschnitt. 446

Symmetrische Differenz Definition: L 1 L 2 ={w w L 1 L 2 w L 1 L 2 } heißt symmetrische Differenz von L 1 und L 2. Beispiel: L 1 ={00,11,01}, L 2 ={00,10}. Dann ist L 1 L 2 ={11,01,10} Satz: Seien M 1 und M 2 DFAs für L 1 und L 2. Dann kann ein DFA für L 1 L 2 in Zeit O( Q 1 Q 2 Σ ) konstruiert werden. 447

Abschluss unter symm. Differenz Satz: Seien M 1 und M 2 DFAs für L 1 und L 2. Dann kann ein DFA für L 1 L 2 in Zeit O( Q 1 Q 2 Σ ) konstruiert werden. Beweis: Benutze Produktautomatenkonstruktion mit F = {(q 1,q 2 ) (q 1 F 1 q 2 F 2 ) (q 1 F 1 q 2 F 2 )}. Übungsaufgabe: Überlege, woran diese Konstruktion für NFAs scheitert. 448

Äquivalenztest für DFAs Gegeben: DFAs M 1 und M 2 für Sprachen L 1 und L 2. Konstruiere DFA für L 1 L 2. Wende darauf den Leerheitstest an. Rechenzeit: O( Q 1 Q 2 Σ ). 449

Produktsprache (Konkatenation) Definition T4.6.9: Seien L 1 und L 2 Sprachen über Σ. Die Konkatenation von L 1 und L 2 ist definiert durch Beispiel: L 1 ={0 n 1 n n 0}, L 2 ={1 n 0 n n 0}. Dann L 1 L 2 ={0 n 1 n+m 0 m }. 450

Abschluss gegen Konkatenation Satz T4.6.10: Seien M 1 und M 2 DFAs für L 1 und L 2. Dann kann ein NFA für L 1 L 2 in Zeit O(( Q 1 + Q 2 ) Σ ) konstruiert werden. Insbesondere ist L 1 L 2 regulär, d.h., die regulären Sprachen sind gegen Konkatenation abgeschlossen. 451

Beweis Seien M 1 und M 2 gegeben, o.b.d.a Q 1 Q 2 =. Idee: In akzept. Zuständen kann M 1 raten, dass sein Teilwort zu Ende ist. M 1 M 2 q 0 452

Formalere Beschreibung Zustandsmenge: Q 1 Q 2. Startzustand: Startzustand von M 1. Akz. Zustände: F 2 (bzw. F 1 F 2, falls ε L 2 ). Zustandsübergänge: Zustandsübergänge aus M 1 und M 2 Für q F 1 und a Σ zusätzlich: δ(q,a)=δ 2 (q 0,2,a). 453

Kleenescher Abschluss Definition T4.6.11: L i : i-fache Produkt von L mit sich selbst. (L 0 ={ε}, L 1 =L, L 2 =LL, L 3 =LLL, ) Beispiel: L={00,11}. Dann: L*= {w 1 w n mit n gerade und w 2i-1 =w 2i }. 454

Abschluss unter kleeneschen A. Satz T4.6.12: Sei M ein DFA für L. Aus M kann in Zeit O( Q Σ ) ein NFA für L* konstruiert werden. Insbesondere ist L* regulär und die regulären Sprachen sind unter dem kleeneschen Abschluss abgeschlossen. Beweis: Idee: Rate die Stellen, wo die Teilwörter aus L zu Ende sind. 455

Idee: q 0 Neuer akzept. Startzustand Fortsetzen der Rechnung an Nachf. des Startzust. ermögl. 456

Formalere Beschreibung Sei (Q,Σ,q 0,δ,F) DFA für L. NFA (Q,Σ,q 0,δ,F ) für L*: Zustandsmenge: Q =Q {q 0 }. Startzustand: q 0. Akz. Zustände: F = {q 0 } F. Zustandsübergänge in δ : Zustandsübergänge aus δ. Für q {q 0 } F und a Σ zusätzlich: δ (q,a)=δ(q 0,a). 457

Quotientensprache Definition T4.6.7: Seien L 1,L 2 Sprachen über Σ. Die Quotientensprache L 1 /L 2 ist definiert durch L 1 /L 2 = {w Σ* z L 2 : wz L 1 }. Beispiel: L 1 ={w w enthält gerade Anzahl von Nullen und Einsen} L 2 ={000,111} L 1 /L 2 ={w w enthält gerade Anzahl von Nullen u. ungerade Anzahl von Einsen oder umgekehrt} 458

Abschluss u. Quotientenbildung Satz T.4.6.8: Wenn L 1 und L 2 regulär sind, ist auch L 1 /L 2 regulär. Ein DFA für L 1 /L 2 kann aus DFAs für L 1 und L 2 in Zeit O( Q 1 Q 2 Σ ) konstruiert werden. 459

Beweis Konstruktion eines DFAs für L 1 /L 2 : Modifiziere DFA für L 1 : Ersetze die Menge F 1 der akzep. Zustände durch F ={q Q 1 z L 2 : δ 1 (q,z) F 1 }. Korrektheit klar. Frage: Wie berechnen wir F? F ={q Q 1 z: δ 1 (q,z) F 1 δ 2 (q 0,2,z) F 2 } L 1 /L 2 = {w Σ* z L 2 : wz L 1 }. 460

Berechnung von F Berechne Produktautomaten von M 1 und M 2 (wie bei Abschluss gegen Durchschnitt). Dann ist q F Von (q,q 0,2 ) ist akzeptierender Zustand des Produktautomaten erreichbar. Startzustand von M 2 L 1 /L 2 = {w Σ* z L 2 : wz L 1 }. F ={q Q 1 z: δ 1 (q,z) F 1 δ 2 (q 0,2,z) F 2 } 461

Beispiel L 1 ={w w enthält gerade Anzahl von Nullen und Einsen} L 2 ={000,111} L 1 L 1 /L 2 1 1 q 0 1 q 1 q 0 1 q 1 0 0 0 0 0 0 0 0 1 1 q 2 q 3 1 q 2 q 3 1 462

Reguläre Ausdrücke [K5.3] Im folgenden Teil 4 der Vorlesung: Regelsysteme, die Sprachen erzeugen Grammatiken Hier: einfaches Regelsystem für reguläre Sprachen: reguläre Ausdrücke 463

Def. von regulären Ausdrücken Definition T5.3.2: Rekursionsende: : leere Sprache ε: leeres Wort a Σ: Wörter aus einem Buchstaben sind reguläre Ausdrücke. Rekursion: Wenn A und B reguläre Ausdrücke sind, dann auch (A)+(B), (A) (B) und (A)*. Vereinigung Konkatenation Kleenescher 464A.

Beispiele für reguläre Ausdrücke Menge aller Wörter, die mit 0 beginnen und 1 enden: (0) ((0)+(1))* (1) Vereinfachung: 0(0+1)*1 Menge aller Wörter mit einer geraden Anzahl Nullen: 1* ((0) (1)* (0) (1)*)* Vereinfachung: 1*(01*01*)* 465

Vereinfachungen Klammern um, ε, a weglassen +, assoziativ Klammern weglassen Prioritäten der Operationen: Addition/Vereinigung + Multiplikation/Konkatenation Potenzbildung/kleenescher Abschluss * Klammern entsprechend weglassen Zeichen für Konkatenation weglassen 466

Beispiele für reguläre Ausdrücke L k ={w {0,1}* In w ist der k-te Buchstabe von hinten eine 1}. Regulärer Ausdruck: (0+1)* 1 (0+1) (0+1) (k-1)-mal Zum Vergleich: Ein DFA für L k benötigt 2 k Zustände (Satz T4.4.3). 467

grep Befehl zur Suche von Mustern in den Zeilen einer Textdatei Beschreibung der Muster: reguläre Ausdrücke [abc] entspricht a+b+c? entspricht jedem Buchstaben \ entspricht + Hintereinanderschreiben entspricht * entspricht kleeneschen Abschluss Klammern: \(, \) 468

grep (Fortsetzung) grep PATTERN FILE gibt die Zeilen von FILE aus, die das durch den reg. Ausdruck PATTERN beschriebene Muster enthalten. grep x PATTERN FILE gibt die Zeilen von FILE aus, die (als ganze Zeilen gesehen) durch den reg. Ausdruck PATTERN beschrieben sind. 469

Beispiele für grep-syntax Menge aller Wörter, die mit 0 beginnen und 1 enden: vorher: 0(0+1)*1 grep: [0][01]*[1] Menge aller Wörter mit gerader Anzahl Nullen oder gerader Anzahl Einsen vorher: 1*(01*01*)* + 0*(10*10*)* grep: [1]*\([0][1]*[0][1]*\)*\ [0]*\([1][0]*[1][0]*\)* 470

Zshg. reg Ausdrücke reg. Spr. Satz T5.3.3: Genau die regulären Sprachen lassen sich durch reguläre Ausdrücke beschreiben. Beweis: 1. Alle regulären Ausdrücke beschreiben reguläre Sprachen. 2. Alle regulären Sprachen können durch reguläre Ausdrücke beschrieben werden. 471

Reg. Ausdr. beschr. reg. Sprachen Betrachte rekursive Def. der reg. Ausdrücke:, {ε}, {a} sind reguläre Sprachen. Die regulären Sprachen sind gegen Vereinigung (+), Konkatenation ( ) und kleeneschen Abschluss (*) abgeschlossen. Alle regulären Ausdrücke beschreiben reguläre Sprachen. 472

Umformung DFA reg. Ausdruck Sei M DFA für reg. Sprache L. Sei Q={1,,n} u. Zustand 1 der Startzustand. dynamische Programmierung Definiere: R i,jk : Menge aller Wörter, für die M beginnend mit Zustand i den Zustand j erreicht, wobei die Zwischenzustände aus {1,,k} sind. Idee: Zeige, dass sich alle R i,jk durch reguläre Ausdrücke beschreiben lassen. 473

Konstr. von reg. Ausdr. für R i,j k k=0 keine Zwischenzustände erlaubt. R i,j0 : kann nur aus einem Buchstaben a bestehen, nämlich dem a mit δ(i,a)=j. R i,i0 : enthält zusätzlich ε. Reguläre Ausdrücke für R i,j0 : R i,jk : Menge aller Wörter, für die M beginnend mit Zustand i den Zustand j erreicht, wobei die Zwischenzustände aus {1,,k} sind. 474

Rekursive Bestimmung von R i,j k Rekursionsformel: R i,jk = R i,j k-1 + R i,k k-1 (R k,k k-1 )*R k,j k-1 Wörter, bei deren Rechnung der Zwischenzustand k ev. mehrfach benutzt wird. Wörter, bei deren Rechnung Zwischenzustand k nicht benutzt wird. R i,jk : Menge aller Wörter, für die M beginnend mit Zustand i den Zustand j erreicht, wobei die Zwischenzustände aus {1,,k} sind. 475

Rekursionsformel erzeugt aus reg. Ausdrücken für R i,j k-1 reg. Ausdrücke für R i,jk. Wir können reguläre Ausdrücke für R i,j n berechnen. Dann gilt für die von M akzeptierte Sprache: L = +i F R 1,i n regulärer Ausdruck R i,jk : Menge aller Wörter, für die M beginnend mit Zustand i den Zustand j erreicht, wobei die Zwischenzustände aus {1,,k} sind. 476

Endliche Sprachen Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 + +w n ein regulärer Ausdruck für L. 477