2.2 Nichtdeterministische endliche Automaten

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

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

2.3 Abschlusseigenschaften

Die mathematische Seite

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

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

5.2 Endliche Automaten

Grundlagen der Theoretischen Informatik

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

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

4.2 Varianten der Turingmaschine. 4 Turingmaschinen

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

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

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

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

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

Automaten und Formale Sprachen ε-automaten und Minimierung

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

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

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

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

Einführung in die Theoretische Informatik

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

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

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

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

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Theoretische Informatik I

Einführung in die Theoretische Informatik

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

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

THIA - Übungsblatt 2.

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

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

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

Theorie der Informatik

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

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

Kurz-Skript zur Theoretischen Informatik I

Formale Sprachen und endliche Automaten

Einführung in die Theoretische Informatik

11.1 Kontextsensitive und allgemeine Grammatiken

Reguläre Sprachen Endliche Automaten

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

Satz (Abschluß unter der Stern-Operation)

Einführung in die Theoretische Informatik

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine

2.2 Reguläre Sprachen Endliche Automaten

8. Turingmaschinen und kontextsensitive Sprachen

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

Theoretische Informatik II

Reguläre Sprachen und endliche Automaten

Einführung in die Theoretische Informatik

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

Endliche Automaten. Im Hauptseminar Neuronale Netze LMU München, WS 2016/17

Vorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016

Theoretische Grundlagen der Informatik

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

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

1.5 Turing-Berechenbarkeit

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik

Rekursiv aufzählbare Sprachen

7 Endliche Automaten. 7.1 Deterministische endliche Automaten

Beweis: Nach dem Pumping-Lemma für kontextfreie Sprachen ist

Automaten und formale Sprachen Klausurvorbereitung

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Endliche Automaten. Endliche Automaten 1 / 102

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

1.5 Turing-Berechenbarkeit

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

Einführung in die Theoretische Informatik

Es gibt drei unterschiedliche Automaten:

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

Vorlesung Theoretische Informatik

Grundlagen der Theoretischen Informatik

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Software Engineering Ergänzung zur Vorlesung

Grundlagen Theoretischer Informatik 2 WiSe 2009/10 in Trier. Henning Fernau Universität Trier

Die Nerode-Relation und der Index einer Sprache L

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).

Theoretische Informatik Mitschrift

PDA, Übergangsfunktion

Kontextfreie Grammatiken

Theoretische Informatik I

Endliche Automaten. Endliche Automaten 1 / 115

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

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

Induktive Definition

Grundlagen der Theoretischen Informatik, SoSe 2008

Übungsaufgaben zu Formalen Sprachen und Automaten

Automatentheorie und formale Sprachen

Deterministischer Kellerautomat (DPDA)

2.4 Kontextsensitive und Typ 0-Sprachen

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

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Das Pumping-Lemma Formulierung

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

liefern eine nicht maschinenbasierte Charakterisierung der regulären

Transkript:

2 Endliche Automaten arbeiten und hier kann dann ggf. auch wieder auf die Konstruktion verwiesen werden. Fragen 1. Wie viele Informationen kann man in einem DFA speichern? a) beliebig viele b) endlich viele c) so viele, wie man Zustände hat d) so viele, wie man Symbole in Σ hat 2. Wie kann man L(A) = M beweisen? a) Für jedes w L(A) zeigen, dass w M gilt und andersherum. b) Für ein w L(A) zeigen, dass w M gilt und andersherum. c) Für ein beliebiges w M zeigen, dass w L(A) gilt und andersherum. d) Für ein festes w M zeigen, dass w L(A) gilt und andersherum. 2.2 Nichtdeterministische endliche Automaten Bei einem vollständigen DFA gibt es zu jedem Zustand z, in dem sich der DFA befindet, und jedem Eingabesymbol x, das er in diesem Zustand liest, genau einen Nachfolgezustand δ(z, x) = z. Ist der DFA nicht vollständig, dann gibt es höchstens einen Nachfolgezustand. Man spricht daher davon, dass der Nachfolgezustand beim DFA determiniert ist (darum auch die Bezeichnung als deterministischer endlicher Automat). Ist ein DFA A nämlich in einem Zustand z, dann gibt es stets nur genau eine Möglichkeit, was bei einem Symbol x passiert. Entweder passiert der Zustandswechsel zu einem ganz bestimmten Zustand oder der Automat blockiert. In den späten 1950er Jahren kam die Idee auf, der Übergangsfunktion des DFA mehr Freiheiten einzuräumen. Statt nur einen Nachfolgezustand zu haben, darf der neue Automat nun beim Lesen eines Buchstaben mehrere Nachfolgezustände haben. a a z 0 z 1 z 2 b c Im abgebildeten Automaten gibt es in z 0 zwei Möglichkeiten den Zustand beim Lesen von a zu wechseln. Die Idee ist, dass nichtdeterministisch ein Nachfolgezustand gewählt wird. Man interpretiert dies so, dass der Automat sowohl 36

2.2 Nichtdeterministische endliche Automaten in z 1 als auch in z 2 ist und quasi in der Rückschau das bessere ausgewählt wird. Akzeptiert wird daher, informal ausgedrückt, sobald es mindestens eine Rechnung gibt, die den Automaten vom Start- in einen Endzustand bringt. Endliche Automaten, die wie der abgebildete Automaten mehrere gleichbeschriftete Kanten aus einem Zustand heraus haben, also nichtdeterministisch sind, werden als NFA (nichtdeterministischer endlicher Automat) bezeichnet. Nichtdeterminismus einzuführen war eine wegweisende Idee, die uns an vielen Stellen in der Informatik begegnet. Hier ist sie insb. deswegen nützlich, weil sie uns oft erlaubt, auf einfache Weise Automaten zu entwerfen, die als DFAs viel komplizierter sind. Will man z.b. einen Automaten für alle Worte, die auf 1 enden, so kann man dafür schnell den abgebildeten Automaten konstruieren. 0,1 1 z 0 z 1 Der DFA ist in diesem Fall nicht viel komplexer, aber man versuche dies einmal zu verallgemeinern und z.b. einen DFA zu entwerfen, der jene Worte akzeptiert, dessen fünftletzter Buchstabe 1 ist. Dies ist ein recht großer und schwer zu lesender DFA, mit Nichtdeterminismus aber sehr schnell konstruiert. Zudem werden wir Nichtdeterminismus bei späteren Automatenmodellen benötigen und insb. bei der Turingmaschine und der damit zusammenhängenden Komplexitätstheorie wird dieses Konzept unglaublich hilfreich sein. Mit ihm lassen sich einige der ganz großen offenen Fragen der Informatik formulieren. 2.2.1 Definition des NFA Den nichtdeterministischen endlichen Automaten (kurz: NFA) können wir formal fast wie den DFA einführen. Wir müssen nur bei der Übergangsfunktion etwas anders machen, um mehrere Nachfolgezustände ausdrücken zu können. Dies gelingt indem wir die Zielmenge von Z zu 2 Z ändern. Damit ist δ(z, x) dann eine Menge von Zuständen. In dieser Menge sind dann gerade jene Zustände, die von z aus mit x erreichbar sind. Zusätzlich wollen wir auch eine Menge von Startzuständen zulassen. Dies beschreibt, dass wir auch nach dem Lesen von null Symbolen nichtdeterministisch in mehreren Zuständen sein können, das also bereits der Anfang nichtdeterminiert ist. Formal können wir dies nun wie folgt exakt ausdrücken. Definition 2.2.1 (Nichtdeterministischer endlicher Automat (NFA)). Ein nichtdeterministischer, endlicher Automat (NFA) ist ein 5-Tupel mit: A = (Z, Σ, δ, Z start, Z end ) 37

2 Endliche Automaten 1. Der endlichen Menge von Zuständen Z. 2. Dem endlichen Alphabet Σ von Eingabesymbolen. 3. Der Überführungsfunktion δ : Z Σ 2 Z. 4. Der Startzustandsmenge Z start Z. 5. Der Menge der Endzustände Z end Z. Die graphische Darstellung ist wie beim DFA. Alternativ kann statt der Überführungsfunktion δ auch mit der Zustandsübergangsrelation K Z Σ Z arbeiten. Ein Tupel (z, x, z ) drückt dann aus, das es von z eine Kante nach z gibt, die mit x beschriftet ist. Es ist dann bei einem NFA möglich weitere Kanten mit gleichem Ursprung und gleichem Symbol zu haben, also z.b. zwei Kanten (z, x, z ) und (z, x, z ). Im abgebildeten Automaten ist dann Z = {z 0, z 1 }, Σ = {0, 1} und Z end = {z 1 } wie beim DFA. 0,1 1 z 0 z 1 Da dies ein NFA ist, haben wir aber, obwohl es in diesem Fall wie beim DFA nur ein Startzustand ist, eine Startzustandsmenge, also ist Z start = {z 0 }. Die Überführungsfunktion ist durch δ(z 0, 0) = {z 0 } und δ(z 0, 1) = {z 0, z 1 } gegeben. Außerdem kann man δ(z 1, 0) = δ(z 1, 1) = setzen. Als Zustandsübergangsrelation ist K gegeben durch K = {(z 0, 0, z 0 ), (z 0, 1, z 0 ), (z 0, 1, z 1 )}. Da wir die Überführungsfunktion angepasst haben, müssen wir auch die erweiterte Überführungsfunktion und letztendlich die akzeptierte Sprache anpassen. Für die erweiterte Überführungsfunktion definieren wir folgendes. Definition 2.2.2 (Erweiterte Überführungsfunktion). Sei A = (Z, Σ, δ, Z start, Z end ) ein NFA. 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) 38

2.2 Nichtdeterministische endliche Automaten Wir werden meistens mit der zweiten Alternative arbeiten. Hier sammeln sich die nichtdeterministisch erreichten Zustände in der Menge im ersten Argument. Sei der folgende Automat gegeben. Wir haben einen Startzustand und interessieren uns für das Wort aba. a z 0 z 1 z 2 Damit ergibt sich ˆδ({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 } Man beachte, wie sich im ersten Argument die Menge der erreichten Zustände sammelt. Um z.b. ˆδ({z 0, z 1 }, ba) = ˆδ({z 0 } {z 2 }, a) zu sehen, muss man die Nachfolgezustände von {z 0, z 1 } beim Lesen des nächsten Buchstabens (also von b) ermitteln. Dazu nimmt man die Menge der Zustände, die von z 0 aus durch b erreicht werden (also δ(z 0, b) = {z 0 }) und vereinigt diese mit der Menge der Zustande, die von z 1 durch b aus erreichbar sind (also mit δ(z 1, b) = {z 2 }). Damit ergibt sich obiges. Bevor wir zur akzeptierten Sprache kommen, können wir noch wie beim DFA die Konfiguration, Konfigurationsübergänge, sowie Rechnungen und Erfolgsrechnungen definieren. Definition 2.2.3 (Konfiguration und Rechnung). 1. Eine Konfiguration eines NFA A ist ein Tupel (z, w) Z Σ mit der Bedeutung, dass A im Zustand z ist und noch das Wort w zu lesen ist. 2. Ein Konfigurationsübergang ist dann (z, w) (z, v) genau dann, wenn w = xv, x Σ und z δ(z, x) ist. 3. Eine Rechnung auf dem Wort w Σ ist eine Folge von Konfigurationsübergängen, die in (z 0, w) mit z 0 Z start beginnt. 4. Endet eine Rechnung in (z, λ) und ist z Z end, so ist dies eine Erfolgsrechnung. 39

2 Endliche Automaten Man beachte wie gering die Unterschiede zum DFA sind. Beim DFA wird beim Konfigurationsübergang z = δ(z, x) gefordert, hier wird z δ(z, x) gefordert. Bei der Rechnung wird gefordert, dass z 0 ein Startzustand ist (wie beim DFA auch, aber hier könnte man mehrere zur Auswahl haben). Man beachte insbesondere aber auch, dass anders als beim DFA hier bei der Konfiguration Informationen verloren gehen! Ein NFA kann sozusagen in mehreren Konfigurationen gleichzeitig sein. Der Sinn hier ist, dass man über bestimmte Rechnungen ähnlich wie beim DFA sprechen will. Wir können nun die akzeptierte Sprache definieren. Definition 2.2.4 (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 } Ein NFA A akzeptiert also ein Eingabewort w dann, wenn auf w eine Erfolgsrechnung existiert, d.h. wenn es eine Rechnung gibt, die in (z 0, w) mit z 0 Z start beginnt und in (z e, λ) mit z e Z end endet. Die Notation ˆδ(Z start, w) Z end drückt das gleiche aus, nutzt aber die erweiterte Überführungsfunktion. Betrachten wir noch einmal den folgenden Automaten A. 0,1 1 z 0 z 1 Wir betrachten das Wort w = 011. Auf diesem Wort hat der Automat drei Rechnungen: 1. (z 0, 011) (z 0, 11) (z 1, 1) blockiert 2. (z 0, 011) (z 0, 11) (z 0, 1) (z 0, λ) lehnt ab 3. (z 0, 011) (z 0, 11) (z 0, 1) (z 1, λ) akzeptiert Im ersten Fall blockiert der Automat, da es in z 1 keine 1-Kante gibt. Im zweiten Fall lehnt der Automat das Wort ab, da die Rechnung in z 0 endet und dies kein Endzustand ist. Im dritten Fall ist das Wort zu Ende gelesen und der Automat in einem Endzustand, also wird das Wort akzeptiert. Wegen dieses dritten Falles wird das Wort auch ganz allgemein akzeptiert, soll heißen: es gilt 001 L(A). Man mache sich noch einmal klar, dass ein NFA ein Wort akzeptiert, sobald es irgendeine Rechnung gibt, die ihn von einem Start- zu einem Endzustand bringt. Ein NFA muss, um ein Wort zu akzeptieren, dieses wie ein DFA zu Ende gelesen haben und er muss dann in einem Endzustand sein. Er kann aber auf einem Wort mehrere Rechnungen haben und es genügt, wenn mindestens eine davon eine Erfolgsrechnung ist. 40

2.2 Nichtdeterministische endliche Automaten Fragen 1. Sei folgender NFA gegeben a z 0 z 1 z 2 Was ist ˆδ({z 0 }, aaa)? a) z 2 b) {z 2 } c) {z 0, z 2 } d) {z 1, z 2 } e) {z 0, z 1 } f) {z 0, z 1, z 2 } 2. Sei folgender NFA gegeben a z 0 z 1 z 2 Was ist ˆδ({z 0 }, aba)? a) z 2 b) {z 2 } c) {z 0, z 2 } d) {z 1, z 2 } e) {z 0, z 1 } f) {z 0, z 1, z 2 } 3. Sei folgender NFA gegeben a z 0 z 1 z 2 Gibt es eine Rechnung auf aaa, bei der A blockiert? a) Ja! b) Nein! 4. Sei folgender NFA gegeben a z 0 z 1 z 2 Welche Sprache akzeptiert dieser NFA? a) {a, b} {a}{a, b} b) {a, b}{a}{a, b} c) {a, b} {a}{a, b} d) {a, b}{a}{a, b} 41