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

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

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

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

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

5.2 Endliche Automaten

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

Mehrdeutige Grammatiken

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

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

Berechenbarkeitstheorie 1. Vorlesung

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

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

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

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

DisMod-Repetitorium Tag 4

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

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Übersicht. 3 3 Kontextfreie Sprachen

Mehrdeutige Grammatiken

Das Pumping Lemma: Ein Anwendungsbeispiel

2.2 Nichtdeterministische endliche Automaten

Carlos Camino Einführung in die Theoretische Informatik SS 2015

{a i b i i 0} FORMALE SYSTEME. Kellerautomaten. (Nicht)Abschlusseigenschaften für Typ 2. Ein Berechnungsmodell für Typ-2-Sprachen

Das Halteproblem für Turingmaschinen

Theoretische Informatik I

Informatik III - WS07/08

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

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Grundlagen der Theoretischen Informatik

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

THIA - Übungsblatt 2.

Berechenbarkeit und Komplexität

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

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

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

F2 Zusammenfassung Letzte Tips zur Klausur

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

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

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

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

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

Theorie der Informatik

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

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Automaten und formale Sprachen Klausurvorbereitung

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

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

Automaten und Formale Sprachen SoSe 2013 in Trier

11.1 Kontextsensitive und allgemeine Grammatiken

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

4.2.4 Reguläre Grammatiken

Informatik III. Arne Vater Wintersemester 2006/ Vorlesung

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

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

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

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

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

8. Turingmaschinen und kontextsensitive Sprachen

Einführung in die Theoretische Informatik

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Theoretische Informatik I

Theoretische Informatik. Berechenbarkeit

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

(Prüfungs-)Aufgaben zu formale Sprachen

FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie

Theoretische Informatik II

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

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

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

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

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

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

Alphabet, formale Sprache

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

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

Automatentheorie und formale Sprachen

3.1 Kontextfreie Sprachen und Grammatiken 3.2 Ableitungsbäume 3.3 Die pre -Operation

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

Theoretische Informatik I

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

Einführung in die Theoretische Informatik

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Kapitel IV Formale Sprachen und Grammatiken

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Die Nerode-Relation und der Index einer Sprache L

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

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

Turing: prinzipielle Berechenbarkeit Abschnitt 4.2. Turingmaschinen: DTM Abschnitt 4.2. DTM: Akzeptieren und Entscheiden Abschnitt 4.

Transkript:

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

Rückblick Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 2 von 31

Wiederholung Mit Grammatiken können wir Sprachen beschreiben und sie grob in Typen unterteilen: Formale Sprachen Typ-0-Sprachen Kontextsensitive Sprachen (Typ 1) Kontextfreie Sprachen (Typ 2) Reguläre Sprachen (Typ 3) Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 3 von 31

Grammatiken in der Praxis Eine ASCII-Syntax für Typ-2-Grammatiken ist die sogenannte Backus-Naur-Form (BNF): 1 statt wird ::= verwendet für Alternativen (wie bei uns) Markierung: "Terminalsymbole" und <Nichterminalsymbole> oben: John Backus, Peter Naur unten: Nicklas Wirth, Panini 1 Panini, 5./4. Jhd. v. Chr.; neu erfunden von John Backus in 1959 Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 4 von 31

Grammatiken in der Praxis Eine ASCII-Syntax für Typ-2-Grammatiken ist die sogenannte Backus-Naur-Form (BNF): 1 statt wird ::= verwendet für Alternativen (wie bei uns) Markierung: "Terminalsymbole" und <Nichterminalsymbole> Erweiterte BNF (EBNF, von Nicklas Wirth): allgemein wie BNF, aber Konkatenation mit Kommas Zusätzliche Abkürzungen [X] für null oder ein X und {X} für null oder mehr X In der Praxis sind unterschiedliche Notationen im Einsatz (EBNF von Wirth; ISO EBNF; W3C EBNF; Augmented BNF der IETF; verschiedene EBNF aus Vorlesungen und Lehrbüchern... ) oben: John Backus, Peter Naur unten: Nicklas Wirth, Panini 1 Panini, 5./4. Jhd. v. Chr.; neu erfunden von John Backus in 1959 Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 4 von 31

Sprachen Nutzen und Verstehen Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 5 von 31

Von Beschreiben zu Erkennen Grammatiken beschreiben Sprachen als Mengen von Wörtern, die sie erzeugen können. Praktisch wichtige Aufgabe: erkenne ob ein Wort in einer Sprache liegt Das Wortproblem für eine Sprache L über Alphabet Σ besteht darin, die folgende Funktion zu berechnen: Eingabe: ein Wort w Σ Ausgabe: ja wenn w L und nein wenn w L Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 6 von 31

Von Beschreiben zu Erkennen Grammatiken beschreiben Sprachen als Mengen von Wörtern, die sie erzeugen können. Praktisch wichtige Aufgabe: erkenne ob ein Wort in einer Sprache liegt Das Wortproblem für eine Sprache L über Alphabet Σ besteht darin, die folgende Funktion zu berechnen: Eingabe: ein Wort w Σ Ausgabe: ja wenn w L und nein wenn w L Für die Sprache {a} {b} wird das Wortproblem durch einen einfachen Algorithmus in linearer Zeit gelöst (teste, ob der erste Buchstabe a ist und ob alle folgenden Buchstaben b sind). Andererseits kann das Wortproblem sehr schwer sein, selbst für Sprachen, die mit einer Grammatik formal beschrieben sind. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 6 von 31

Ausblick Wir werden sehen, dass jede Sprachklasse zu einem bestimmten Berechnungsmodell passt: Sprachklasse Berechnungsmodell Wortproblem Typ 0 Turingmaschine (TM) semi-entscheidbar 1 Kontextsensitiv nichtdeterministische TM PSpace-vollständig 2 mit linearem Speicher Kontextfrei nichtdeterministischer polynomiell Kellerautomat Regulär endlicher Automat polynomiell 3 1 Akzeptanz von Wörtern kann beliebig lange dauern, so dass man nie weiß, ob sie noch passiert; Wörter können nur rekursiv aufgezählt werden 2 höchstwahrscheinlich schwerer als NP; jeder praktisch bekannte Algorithmus benötigt im Worst Case exponentiell viel Zeit 3 tatsächlich sogar noch viel einfacher als Typ 2 Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 7 von 31

Weitere Fragestellungen Das Wortproblem ist nicht die einzige praktische relevante Frage. Darstellungen von Sprachen Welche verschiedenen Darstellungen gibt es (Grammatiken, Automaten,... )? Wie kann man eine Darstellung in eine andere übersetzen? Beschreiben zwei Darstellungen die gleiche Sprache? Beschreibt eine Darstellung die leere Sprache? Wie kann eine Darstellung vereinfacht werden? Eigenschaften von Sprachen Was passiert, wenn man Operationen anwendet, um neue Sprachen zu erzeugen? Beispiel: Wenn L 1 und L 2 regulär sind, wie ist es dann mit L 1 L 2? sogenannte Abschlusseigenschaften Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 8 von 31

Vorschau Plan der nächsten Vorlesungen: Reguläre Sprachen endliche Automaten reguläre Ausdrücke Eigenschaften regulärer Sprachen Kontextfreie Sprachen Normalformen kontextfreier Grammatiken Kellerautomaten Eigenschaften kontextfreier Sprachen Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 9 von 31

Endliche Automaten Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 10 von 31

Beispiel Ein Bezeichner ist ein String, der mit einem Buchstaben beginnt und danach nur Buchstaben oder Ziffern enthält. Darstellung als endlicher Automat: Buchstabe Automat beginnt im Startzustand Zustandswechsel gemäß Pfeilen start start Buchstabe inner Kein passender Pfeil für Symbol? return false Keine weiteren Symbole? return true in Endzustand inner Ziffer return false falls in Zustand start Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 11 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 C++ ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start C++ ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner C++ ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner C++ ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner C++ ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner inner C++ ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner inner akzeptiert C++ ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner inner akzeptiert C++ start ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner inner akzeptiert C++ start inner ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner inner akzeptiert C++ start inner? ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner inner akzeptiert C++ start inner? abgelehnt (fehlender Übergang) ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner inner akzeptiert C++ start inner? abgelehnt (fehlender Übergang) ɛ start Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Worterkennung mit Automaten Ein Automat kann eine Sprache erkennen, indem er Wörter akzeptiert oder ablehnt: Buchstabe start Buchstabe inner Ziffer Wort Zustandsfolge Ergebnis utf8 start inner inner inner inner akzeptiert C++ start inner? abgelehnt (fehlender Übergang) ɛ start abgelehnt (kein Endzustand) Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 12 von 31

Deterministische Endliche Automaten Die graphische Darstellung von Automaten ist anschaulich, aber nicht immer praktisch. Formal definieren wir Automaten wie folgt: Ein deterministischer endlicher Automat (international: DFA ) M ist ein Tupel M = Q, Σ, δ, q 0, F mit den folgenden Bestandteilen: Q: endliche Menge von Zuständen Σ: Alphabet δ: Übergangsfunktion, eine partielle Funktion Q Σ Q q 0 : Startzustand q 0 Q F: Menge von Endzuständen F Q ( d.h. manche Übergänge sind undefiniert, wie im Beispiel) Notation: Wir schreiben statt δ(q, a) = q auch q a q. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 13 von 31

Beispiel Buchstabe start Buchstabe inner Ziffer Endlicher Automat M = Q, Σ, δ, q 0, F mit Q = {start, inner} Σ = {a, b,..., 0, 1,..., 9,...} (in Zeichnung unterspezifiziert) δ definiert wie folgt: δ(start, x) = inner für alle Buchstaben x δ(inner, y) = inner für alle Buchstaben und Ziffern y δ(q, x) undefiniert für alle anderen Fälle q 0 = start F = {inner} Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 14 von 31

Ist mein Computer ein DFA? Beobachtungen: Computer haben endlich viel Speicher, können also nur endlich viele Zustände einnehmen Programme verändern Speicher nach festen Regeln, die man als Übergangsfunktion auffassen könnte Sind alle Computer DFAs? Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 15 von 31

Ist mein Computer ein DFA? Beobachtungen: Computer haben endlich viel Speicher, können also nur endlich viele Zustände einnehmen Programme verändern Speicher nach festen Regeln, die man als Übergangsfunktion auffassen könnte Sind alle Computer DFAs? Jein. Zustandsmenge und Übergangsfunktion extrem groß keine praktisch nützliche Beschreibung für ganze Computer Computerprogramme verhalten sich systematisch, unabhängig von der Speichergröße DFA-Übergänge können diese Systematik nicht gut abbilden Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 15 von 31

Die Sprache eines DFA Für einen DFA M = Q, Σ, δ, q 0, F erweitern wir δ : Q Σ Q zu einer Übergangsfunktion δ : Q Σ Q auf Wörtern: Für einen Zustand q Q und ein Wort w Σ sei δ(q, w) der eindeutig bestimmte Zustand, den man erreicht, wenn man ausgehend von q das Wort w einliest: δ(q, ɛ) = q (Fall w = ɛ) δ(q, av) = δ(δ(q, a), v) (Fall w = av) δ(q, w) ist undefiniert wenn einer der nötigen Übergänge undefiniert ist. Die Sprache eines DFA kann nun formal definiert werden: Die Sprache eines DFA M = Q, Σ, δ, q 0, F ist die Menge L(M) = {w Σ δ(q 0, w) F}. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 16 von 31

Alternative Definition: totale Übergänge Wir können DFAs mit partieller Übergangsfunktion in DFAs mit totaler Übergangsfunktion umwandeln: Eingabe: DFA M = Q, Σ, δ, q 0, F Ausgabe: DFA M total = Q, Σ, δ, q 0, F füge einen neuen Fangzustand q f ein: Q := Q {q f } für alle Zustände q Q und Symbole a Σ: δ (q, a) := δ(q, a) q f falls δ(q, a) definiert falls δ(q, a) nicht definiert Anmerkung: laut dieser Definition gilt insbesondere δ (q f, a) = q f für alle a Σ. wird beim Lesen eines Wortes q f erreicht, dann kann es nicht mehr akzeptiert werden (da q f F) Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 17 von 31

Totale Übergänge (2) Satz: M total = Q, Σ, δ, q 0, F hat eine totale Übergangsfunktion und akzeptiert die selbe Sprache wir M, d.h. L(M total ) = L(M). Beispiel: wir betrachten das Alphabet Σ = {a, b, c} DFA M mit partieller Übergangsfunktion: a q 1 q b 2 c q 3 Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 18 von 31

Totale Übergänge (2) Satz: M total = Q, Σ, δ, q 0, F hat eine totale Übergangsfunktion und akzeptiert die selbe Sprache wir M, d.h. L(M total ) = L(M). Beispiel: wir betrachten das Alphabet Σ = {a, b, c} DFA M mit partieller Übergangsfunktion: a q 1 q b 2 c q 3 L(M) = (ab) c Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 18 von 31

Totale Übergänge (2) Satz: M total = Q, Σ, δ, q 0, F hat eine totale Übergangsfunktion und akzeptiert die selbe Sprache wir M, d.h. L(M total ) = L(M). Beispiel: wir betrachten das Alphabet Σ = {a, b, c} DFA M mit partieller Übergangsfunktion: a q 1 q b 2 c DFA M total mit totaler Übergangsfunktion: q 1 q b 2 c a b a, c q 3 q 3 a, b, c q f L(M) = (ab) c a, b, c Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 18 von 31

Die Sprachen endlicher Automaten Idee: Ein Typ von Automaten definiert eine Klasse von Sprachen Bsp.: Die Klasse aller Sprachen, die irgendein DFA erkennen kann Eine Alternative zur Chomsky-Hierarchie? Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 19 von 31

Die Sprachen endlicher Automaten Idee: Ein Typ von Automaten definiert eine Klasse von Sprachen Bsp.: Die Klasse aller Sprachen, die irgendein DFA erkennen kann Eine Alternative zur Chomsky-Hierarchie? Es zeigt sich: mit DFAs erhält man keine neue Sprachklasse! Satz: Die Klasse der Sprachen, die durch einen DFA erkannt werden können, ist genau die Klasse der regulären Sprachen. Konsequenzen: DFAs können nur sehr einfache Sprachen akzeptieren Typ-3-Sprachen sind eine natürliche Klasse: sowohl in der Welt der Grammatiken als auch in der Welt der Automaten Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 19 von 31

Von DFAs zu regulären Grammatiken Satz: Die Klasse der Sprachen, die durch einen DFA erkannt werden können, ist genau die Klasse der regulären Sprachen. Beweis: Eine Richtung dieser Behauptung ist leicht zu sehen: Für jeden DFA M gibt es eine reguläre Grammatik G M, welche die selbe Sprache akzeptiert (d.h., L(M) = L(G M )). Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 20 von 31

Von DFAs zu regulären Grammatiken Satz: Die Klasse der Sprachen, die durch einen DFA erkannt werden können, ist genau die Klasse der regulären Sprachen. Beweis: Eine Richtung dieser Behauptung ist leicht zu sehen: Für jeden DFA M gibt es eine reguläre Grammatik G M, welche die selbe Sprache akzeptiert (d.h., L(M) = L(G M )). Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q

Von DFAs zu regulären Grammatiken Satz: Die Klasse der Sprachen, die durch einen DFA erkannt werden können, ist genau die Klasse der regulären Sprachen. Beweis: Eine Richtung dieser Behauptung ist leicht zu sehen: Für jeden DFA M gibt es eine reguläre Grammatik G M, welche die selbe Sprache akzeptiert (d.h., L(M) = L(G M )). Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q S := q 0

Von DFAs zu regulären Grammatiken Satz: Die Klasse der Sprachen, die durch einen DFA erkannt werden können, ist genau die Klasse der regulären Sprachen. Beweis: Eine Richtung dieser Behauptung ist leicht zu sehen: Für jeden DFA M gibt es eine reguläre Grammatik G M, welche die selbe Sprache akzeptiert (d.h., L(M) = L(G M )). Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q S := q 0 P besteht aus den folgenden Produktionsregeln: q aq falls δ(q, a) = q

Von DFAs zu regulären Grammatiken Satz: Die Klasse der Sprachen, die durch einen DFA erkannt werden können, ist genau die Klasse der regulären Sprachen. Beweis: Eine Richtung dieser Behauptung ist leicht zu sehen: Für jeden DFA M gibt es eine reguläre Grammatik G M, welche die selbe Sprache akzeptiert (d.h., L(M) = L(G M )). Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q S := q 0 P besteht aus den folgenden Produktionsregeln: q aq falls δ(q, a) = q q a falls δ(q, a) F

Von DFAs zu regulären Grammatiken Satz: Die Klasse der Sprachen, die durch einen DFA erkannt werden können, ist genau die Klasse der regulären Sprachen. Beweis: Eine Richtung dieser Behauptung ist leicht zu sehen: Für jeden DFA M gibt es eine reguläre Grammatik G M, welche die selbe Sprache akzeptiert (d.h., L(M) = L(G M )). Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q S := q 0 P besteht aus den folgenden Produktionsregeln: q aq falls δ(q, a) = q q a q 0 ɛ falls δ(q, a) F falls q 0 F Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 20 von 31

Beispiel q 1 a q 2 a b q 4 b q 3 Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q S := q 0 P besteht aus den folgenden Produktionsregeln: c Produktionsregeln der entsprechenden Grammatik: Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 21 von 31

Beispiel q 1 a q 2 a b q 4 b q 3 Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q S := q 0 P besteht aus den folgenden Produktionsregeln: q aq falls δ(q, a) = q c Produktionsregeln der entsprechenden Grammatik: q 1 aq 2 q 2 bq 3 q 3 cq 3 q 3 bq 4 q 4 aq 1 Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 21 von 31

Beispiel q 1 a q 2 a b q 4 b q 3 c Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q S := q 0 P besteht aus den folgenden Produktionsregeln: q aq falls δ(q, a) = q q a falls δ(q, a) F Produktionsregeln der entsprechenden Grammatik: q 1 aq 2 q 2 bq 3 q 3 cq 3 q 3 bq 4 q 4 aq 1 q 2 b q 3 c q 4 a Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 21 von 31

Beispiel q 1 a q 2 a b q 4 b q 3 c Für M = Q, Σ, δ, q 0, F ergibt sich G M = V, Σ, P, S wie folgt: V := Q S := q 0 P besteht aus den folgenden Produktionsregeln: q aq falls δ(q, a) = q q a q 0 ɛ falls δ(q, a) F falls q 0 F Produktionsregeln der entsprechenden Grammatik: q 1 aq 2 q 2 bq 3 q 3 cq 3 q 3 bq 4 q 4 aq 1 q 2 b q 3 c q 4 a q 1 ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 21 von 31

DFAs akzeptieren reguläre Sprachen: Beweis Satz: Die Klasse der Sprachen, die durch einen DFA erkannt werden können, ist genau die Klasse der regulären Sprachen. Beweis (Fortsetzung): Wir müssen noch die Korrektheit des angegebenen Verfahrens zeigen, also dass L(M) = L(G M ). Dazu beweisen wir beide Richtungen einzeln: Jedes von M akzeptierte Wort kann von G M erzeugt werden. Jedes von G M erzeugte Wort kann von M akzeptiert werden. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 22 von 31

L(M) L(G M ) Wir betrachten ein beliebiges Wort w L(M). Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 23 von 31

L(M) L(G M ) Wir betrachten ein beliebiges Wort w L(M). Falls w = ɛ, dann ist q 0 F. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 23 von 31

L(M) L(G M ) Wir betrachten ein beliebiges Wort w L(M). Falls w = ɛ, dann ist q 0 F. Dann hat G M eine Regel q 0 ɛ Also ist w L(G M ) Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 23 von 31

L(M) L(G M ) Wir betrachten ein beliebiges Wort w L(M). Falls w = ɛ, dann ist q 0 F. Dann hat G M eine Regel q 0 ɛ Also ist w L(G M ) Falls w = a 1 a n mit n 1, dann gilt δ(q 0, w) F. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 23 von 31

L(M) L(G M ) Wir betrachten ein beliebiges Wort w L(M). Falls w = ɛ, dann ist q 0 F. Dann hat G M eine Regel q 0 ɛ Also ist w L(G M ) Falls w = a 1 a n mit n 1, dann gilt δ(q 0, w) F. a 1 a 2 a n Dann gibt es Übergänge q 0 q1... qn mit q n F Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 23 von 31

L(M) L(G M ) Wir betrachten ein beliebiges Wort w L(M). Falls w = ɛ, dann ist q 0 F. Dann hat G M eine Regel q 0 ɛ Also ist w L(G M ) Falls w = a 1 a n mit n 1, dann gilt δ(q 0, w) F. a 1 a 2 a n Dann gibt es Übergänge q 0 q1... qn mit q n F Dann hat G M die Regeln: q 0 a 1 q 1 q 1 a 2 q 2... q n 1 a n Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 23 von 31

L(M) L(G M ) Wir betrachten ein beliebiges Wort w L(M). Falls w = ɛ, dann ist q 0 F. Dann hat G M eine Regel q 0 ɛ Also ist w L(G M ) Falls w = a 1 a n mit n 1, dann gilt δ(q 0, w) F. a 1 a 2 a n Dann gibt es Übergänge q 0 q1... qn mit q n F Dann hat G M die Regeln: q 0 a 1 q 1 q 1 a 2 q 2... q n 1 a n Durch Anwendung dieser Regeln kann man ableiten: q 0 a 1 q 1 a 1 a 2 q 2... a 1 a 2 a n 1 q n 1 a 1 a 2 a n 1 a n Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 23 von 31

L(M) L(G M ) Wir betrachten ein beliebiges Wort w L(M). Falls w = ɛ, dann ist q 0 F. Dann hat G M eine Regel q 0 ɛ Also ist w L(G M ) Falls w = a 1 a n mit n 1, dann gilt δ(q 0, w) F. a 1 a 2 a n Dann gibt es Übergänge q 0 q1... qn mit q n F Dann hat G M die Regeln: q 0 a 1 q 1 q 1 a 2 q 2... q n 1 a n Durch Anwendung dieser Regeln kann man ableiten: q 0 a 1 q 1 a 1 a 2 q 2... a 1 a 2 a n 1 q n 1 a 1 a 2 a n 1 a n Also ist w L(G M ). Somit gilt w L(G M ) für beliebige w L(M), d.h. L(M) L(G M ) Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 23 von 31

L(M) L(G M ) G M hat drei Typen von Regeln: q aq, q a und q 0 ɛ Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 24 von 31

L(M) L(G M ) G M hat drei Typen von Regeln: q aq, q a und q 0 ɛ Für ein Wort w = a 1 a n sind zwei Arten von Ableitungen denkbar: (1) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n (2) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n q n a 1 a n Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 24 von 31

L(M) L(G M ) G M hat drei Typen von Regeln: q aq, q a und q 0 ɛ Für ein Wort w = a 1 a n sind zwei Arten von Ableitungen denkbar: (1) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n (2) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n q n a 1 a n In Fall (1) wurden Regeln der folgenden Form angewendet: q 0 a 1 q 1 q 1 a 2 q 2... q n 1 a n Also hat M die folgenden Übergänge: a 1 a 2 a n q 0 q1 q 1 q2... q n 1 qn wobei q n F ein Endzustand ist. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 24 von 31

L(M) L(G M ) G M hat drei Typen von Regeln: q aq, q a und q 0 ɛ Für ein Wort w = a 1 a n sind zwei Arten von Ableitungen denkbar: (1) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n (2) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n q n a 1 a n In Fall (1) wurden Regeln der folgenden Form angewendet: q 0 a 1 q 1 q 1 a 2 q 2... q n 1 a n Also hat M die folgenden Übergänge: a 1 a 2 a n q 0 q1 q 1 q2... q n 1 qn wobei q n F ein Endzustand ist. Also gilt δ(q 0, a 1 a n ) = q n F und M akzeptiert das Wort w. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 24 von 31

L(M) L(G M ) G M hat drei Typen von Regeln: q aq, q a und q 0 ɛ Für ein Wort w = a 1 a n sind zwei Arten von Ableitungen denkbar: (1) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n (2) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n q n a 1 a n Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 25 von 31

L(M) L(G M ) G M hat drei Typen von Regeln: q aq, q a und q 0 ɛ Für ein Wort w = a 1 a n sind zwei Arten von Ableitungen denkbar: (1) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n (2) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n q n a 1 a n In Fall (2) wurden Regeln der folgenden Form angewendet: q 0 a 1 q 1 q 1 a 2 q 2... q n 1 a n q n q n ɛ Also ist q n = q 0 mit q 0 F und M hat die folgenden Übergänge: a 1 a 2 a n q 0 q1 q 1 q2... q n 1 q0 Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 25 von 31

L(M) L(G M ) G M hat drei Typen von Regeln: q aq, q a und q 0 ɛ Für ein Wort w = a 1 a n sind zwei Arten von Ableitungen denkbar: (1) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n (2) q 0 a 1 q 1... a 1 a n 1 q n 1 a 1 a n 1 a n q n a 1 a n In Fall (2) wurden Regeln der folgenden Form angewendet: q 0 a 1 q 1 q 1 a 2 q 2... q n 1 a n q n q n ɛ Also ist q n = q 0 mit q 0 F und M hat die folgenden Übergänge: a 1 a 2 a n q 0 q1 q 1 q2... q n 1 q0 Also gilt δ(q 0, a 1 a n ) = q 0 F und M akzeptiert das Wort w. Zusammengefasst gilt somit w L(M) für beliebige w L(G M ), d.h. L(M) L(G M ) Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 25 von 31

Reguläre Grammatiken und DFAs Wir haben bisher gezeigt: Jede von DFA erkannte Sprache ist regulär. Für die Umkehrung müsste man reguläre Grammatiken in DFAs übersetzen. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 26 von 31

Reguläre Grammatiken und DFAs Wir haben bisher gezeigt: Jede von DFA erkannte Sprache ist regulär. Für die Umkehrung müsste man reguläre Grammatiken in DFAs übersetzen. Kann man die Übersetzung nicht einfach umdrehen? Für jede reguläre Regel A ab definieren wir δ(a, a) = B Für jede reguläre Regel A a definieren wir δ(a, a) = C mit C F Warum funktioniert das nicht? Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 26 von 31

Reguläre Grammatiken und DFAs Wir haben bisher gezeigt: Jede von DFA erkannte Sprache ist regulär. Für die Umkehrung müsste man reguläre Grammatiken in DFAs übersetzen. Kann man die Übersetzung nicht einfach umdrehen? Für jede reguläre Regel A ab definieren wir δ(a, a) = B Für jede reguläre Regel A a definieren wir δ(a, a) = C mit C F Warum funktioniert das nicht? Weil die Übergangsfunktion dann mehr als einen Wert hätte! Beispiel: Eine Grammatik kann die Regeln S aa, S as und A ɛ haben, aber wir können nicht δ(s, a) = A und δ(s, a) = S gleichzeitig fordern. Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 26 von 31

Nichtdeterministische Übergänge Kann die Übergangsfunktion mehr als einen Wert haben? darstellbar als Menge, z.b. δ(q, a) = {q 1, q 2 } Was soll das bedeuten? Der Automat hat die Wahl zwischen mehreren Übergängen Die Verarbeitung eines Wortes wird nichtdeterministisch (weil die Eingabe nicht völlig bestimmt, in welchen Zustand der Automat gelangt) Der Automat akzeptiert ein Wort, wenn es eine richtige Wahl von Zustandsübergängen gibt, die zu einem Endzustand führt Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 27 von 31

Nichtdeterministische Automaten Ein nichtdeterministischer endlicher Automat (international: NFA ) M ist ein Tupel M = Q, Σ, δ, Q 0, F mit den folgenden Bestandteilen: Q: endliche Menge von Zuständen Σ: Alphabet δ: Übergangsfunktion, eine totale Funktion Q Σ 2 Q, wobei 2 Q die Potenzmenge von Q ist Q 0 : Menge möglicher Startzustände Q 0 Q F: Menge von Endzuständen F Q Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 28 von 31

Nichtdeterministische Automaten Ein nichtdeterministischer endlicher Automat (international: NFA ) M ist ein Tupel M = Q, Σ, δ, Q 0, F mit den folgenden Bestandteilen: Q: endliche Menge von Zuständen Σ: Alphabet δ: Übergangsfunktion, eine totale Funktion Q Σ 2 Q, wobei 2 Q die Potenzmenge von Q ist Q 0 : Menge möglicher Startzustände Q 0 Q F: Menge von Endzuständen F Q Beispiel: 0 q1 1 1 q2 Welche Sprache erkennt dieser Automat? Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 28 von 31

NFAs: Alternative Definitionen In der Literatur gibt es leicht abgewandelte Definitionen von NFAs Übergangsrelation statt Übergangsfunktion Statt einer Funktion δ : Q Σ 2 Q kann man auch eine Relation Q Σ Q verwenden, wenn für alle q, q Q, σ Σ gilt: q δ(q, σ) genau dann wenn q, σ, q Einzelner Startzustand q 0 Manchmal wird statt der Menge Q 0 nur ein Startzustand q 0 verwendet (es ist leicht, einen NFA unserer Bauart so zu verändern, dass nur ein Startzustand nötig ist) Einzelner Endzustand q f Man kann auch die Menge der Endzustände F leicht auf ein einziges Argument reduzieren Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 29 von 31

Ist Nichtdeterminisms sinnvoll? Nichdeterministische Automaten müssen jeweils den richtigen Übergang erraten entspricht nicht der Funktionsweise echter Computer Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 30 von 31

Ist Nichtdeterminisms sinnvoll? Nichdeterministische Automaten müssen jeweils den richtigen Übergang erraten entspricht nicht der Funktionsweise echter Computer Dennoch ist Nichtdeterminismus ein wichtiges Prinzip in der Informatik: Kann kompaktere, natürlichere Darstellungen ermöglichen Beschreibt treffend die Schwierigkeit vieler praktischer Probleme wichtig für Untersuchung von Komplexität und Berechenbarkeit Ist relevant in der Modellierung parallel arbeitender Systeme Bildet Ausgangspunkt für die Entwicklung deterministischer Algorithmen Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 30 von 31

Zusammenfassung und Ausblick Das Wortproblem ist eine von mehreren wichtigen Fragestellungen zu formalen Sprachen Deterministische endliche Automaten lösen das Wortproblem für reguläre Sprachen (Bisher gezeigt: jede durch DFAs erkennbare Sprache ist regulär) Nichtdeterminismus ermöglicht endlichen Automaten, bei der Worterkennung zu raten Offene Fragen: Was bringen uns nichtdeterministische Automaten? Wir wollten noch zeigen: alle regulären Sprachen sind durch DFAs erkennbar wie? Gibt es noch mehr Darstellungsformen für reguläre Sprachen? Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 31 von 31