Grundbegriffe der Informatik

Ähnliche Dokumente
18 E N D L I C H E AU T O M AT E N erstes beispiel: ein getränkeautomat

Theoretische Informatik I

Formale Sprachen und Automaten

Einführung in die Informatik

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

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

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

Grundbegriffe der Informatik

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

Grundbegriffe der Informatik

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

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

Grundbegriffe der Informatik

5.4 Endliche Automaten

Automaten und formale Sprachen Klausurvorbereitung

Probeklausur Lösungen

Grundbegriffe der Informatik

I.2. Endliche Automaten (ohne Ausgabe)

Es gibt drei unterschiedliche Automaten:

1. Einführung und Begriffsbildung

Automaten und Coinduktion

Grundbegriffe der Informatik

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Theorie der Informatik

7 Endliche Automaten. 7.1 Deterministische endliche Automaten

Theoretische Grundlagen der Informatik

Reguläre Sprachen und endliche Automaten

Formale Sprachen und Automaten

Übung zur Vorlesung Theoretische Information. Pumping Lemma

Lexikalische Programmanalyse der Scanner

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten

Grundbegriffe der Informatik Tutorium 12

Automaten und Formale Sprachen ε-automaten und Minimierung

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Alphabet, formale Sprache

7 Endliche Automaten. Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik

2 Typ Deterministische endliche Automaten

Reguläre Grammatiken/Sprachen und endliche Automaten

Vorlesung Rechnerstrukturen Winter 2002/03. 3b. Endliche Automaten. Modellierung und Realisierung von Steuerungen

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke 08

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Formale Sprachen und endliche Automaten

8. Turingmaschinen und kontextsensitive Sprachen

Deterministische Turing-Maschinen

Formale Sprachen und Automaten

Theoretische Grundlagen der Informatik

Endliche Automaten. Endliche Automaten 1 / 108

Grundbegriffe der Informatik

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

Übung zur Vorlesung Theoretische Information. Minimierungsalgorithmus

Z 50. Z O Z Int Z Komma Z Real Ziffer Komma Ziffer

Induktive Definition

Beispiele für Wortverarbeitung durch NEA. Beispiele für NEA (1) Beispiele für NEA (2) Beispiele für NEA (3) 1.) 1 q 2. q 5. q 1 1 0,1,2. 0 q 2.

Automaten und Formale Sprachen

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Deterministische endliche Automaten - Wiederholung

Formale Systeme. Büchi-Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Grundbegriffe der Informatik

Einführung in die Informatik I (autip)

Kapitel 3: Berechnungstheorie Gliederung

Endlicher Automat (EA)

2.4.3 Zustandsgraphen

Rekursiv aufzählbare Sprachen

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!

2.4.3 Zustandsgraphen

Formale Sprachen und Automaten

Übung Grundbegriffe der Informatik

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

Grundlagen der Informatik II

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

Lösungen zur 3. Projektaufgabe TheGI1

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

Tutorübung 7: Mikroprogrammierung I

Übungsaufgaben zu Formalen Sprachen und Automaten

GTI. Hannes Diener. 18. Juni. ENC B-0123,

Herzlich willkommen!!!

Lexikalische Analyse, Tokenizer, Scanner

Automaten und Formale Sprachen

Automat: Getränkeautomat

Empfehlenswerte Referenzen

Einführung in die Informatik II Automaten

Transkript:

Grundbegriffe der Informatik Einheit 14: Endliche Automaten Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/38

Überblick Erstes Beispiel: ein Getränkeautomat Mealy-Automaten Moore-Automaten Spezialfall: endliche Akzeptoren Überblick 2/38

Überblick Erstes Beispiel: ein Getränkeautomat Mealy-Automaten Moore-Automaten Spezialfall: endliche Akzeptoren Erstes Beispiel: ein Getränkeautomat 3/38

Ein primitiver Getränkeautomat Geld- Einwurf rein Sprudel zitro OK C Geld- Rückgabe Ware Erstes Beispiel: ein Getränkeautomat 4/38

Getränkeautomat: umgangssprachliche Beschreibung nur 1-Euro-Stücke einzuwerfen vier Tasten zwei Wahltasten für Mineralwasser rein und Zitronensprudel zitro OK -Taste und Abbruch-Taste C Jede Flasche kostet 1 Euro. Guthaben von 1 Euro kann gespeichert werden weitere Euro-Stücke werden sofort wieder ausgegeben Drücken von rein / zitro : letzter wird Wunsch gespeichert C -Taste: bereits eingeworfener Euro wird zurückgegeben und kein Getränkewunsch mehr gespeichert. OK -Taste ignoriert, solange noch kein Euro eingeworfen oder keine Getränkesorte ausgewählt andernfalls das gewünschte Getränk ausgeworfen Erstes Beispiel: ein Getränkeautomat 5/38

Formalisierung des Getränkeautomaten: Zustände Automat muss zwischen den Eingaben, die sein Verhalten beeinflussen können (Geldeinwürfe und Getränkewahl), gewisse Nachrichten speichern. und zwar Wurde schon ein 1-Euro-Stück eingeworfen? Wurde schon ein Getränk ausgewählt? Wenn ja: welches? Modellierung: durch Paare (x, y) Komponente x {0, 1}: schon eingeworfener Geldbetrag Komponente y {-, R, Z}: Getränkewahl Zustandsmenge Z = {0, 1} {-, R, Z} Erstes Beispiel: ein Getränkeautomat 6/38

Formalisierung des Getränkeautomaten: Eingaben erster wesentlicher Aspekt jedes Automaten: Eingaben (Einflüsse von außen ) führen zu Zustandsänderungen. Eingaben hier: Einwurf eines Euros Drücken einer der vier Tasten ignoriere gleichzeitige Tastendrücke ( Abstraktion ) Modellierung der Eingaben: Symbole 1, R, Z, C und O Eingabealphabet X = {1, R, Z, C, O} Erstes Beispiel: ein Getränkeautomat 7/38

Formalisierung des Getränkeautomaten: Zustandsübergänge (1) Zustandsübergang abhängig von aktuellem Zustand z Z und aktuellem Eingabesymbol x X z und x legen eindeutig den neuen Zustand fest. also immer und eindeutig jedenfalls bei dem Getränkeautomaten Formalisierung: Zustandsüberführungsfunktion f : Z X Z oft in Darstellung als Graph spezifiziert Erstes Beispiel: ein Getränkeautomat 8/38

Formalisierung des Getränkeautomaten: Zustandsübergänge (2a) Z Z R Z (0, -) (0, R) R R (0, Z) 1 1 1 R R Z (1, -) (1, R) R (1, Z) 1 Z 1 Z 1 Erstes Beispiel: ein Getränkeautomat 9/38

Formalisierung des Getränkeautomaten: Zustandsübergänge (2b) C C (0, -) O,C (0, R) O (0, Z) O C O,C O,C (1, -) O (1, R) (1, Z) Erstes Beispiel: ein Getränkeautomat 10/38

Formalisierung des Getränkeautomaten: Zustandsübergänge (2c) C O,C Z R,O C R (0, -) (0, R) (0, Z) R Z 1 1 1 Z,O 1,O C O,C O,C R (1, -) (1, R) (1, Z) R 1,R Z Z 1,Z Erstes Beispiel: ein Getränkeautomat 11/38

Formalisierung des Getränkeautomaten: Ausgaben (1) zweiter wesentlicher Aspekt jedes Automaten: Ausgaben wozu sollte man ihn sonst laufen lassen jedenfalls ab und zu Ausgaben hier: Euro Rückgeld gewählte Flasche Ausgabealphabet Y = {1, R, Z} Formalisierung der Ausgaben abhängig von aktuellem Zustand z Z und aktuellem Eingabesymbol x X z und x legen eindeutig die Ausgabe fest. also immer und eindeutig jedenfalls bei dem Getränkeautomaten im allgemeinen Wörter über Y Formalisierung: Ausgabefunktion g : Z X Y Funktionswert ε: keine Ausgabe Auch g üblicherweise in den Zustandsübergangsdiagrammen mit angegeben in der Form x g(z, x) Erstes Beispiel: ein Getränkeautomat 12/38

Formalisierung des Getränkeautomaten: Ausgaben (2) C ε O ε,c ε Z ε R ε,o ε C ε R ε (0, -) (0, R) (0, Z) R ε Z ε 1 ε 1 ε 1 ε Z ε,o ε 1 1,O ε O Z,C 1 C 1 O R,C 1 R ε (1, -) (1, R) (1, Z) R ε 1 1,R ε Z ε Z ε 1 1,Z ε Erstes Beispiel: ein Getränkeautomat 13/38

Was ist wichtig Das sollten Sie mitnehmen: alles endlich alles endlich beschreibbar im Beispiel Getränkeautomat: aktueller Zustand und aktuelle Eingabe legen immer und eindeutig fest: nächsten Zustand Ausgabe Das sollten Sie üben: Zustandsdiagramm lesen Erstes Beispiel: ein Getränkeautomat was ist wichtig 14/38

Überblick Erstes Beispiel: ein Getränkeautomat Mealy-Automaten Moore-Automaten Spezialfall: endliche Akzeptoren Mealy-Automaten 15/38

Mealy-Automaten Ein (endlicher) Mealy-Automat ist festgelegt durch eine endliche Zustandsmenge Z, einen Anfangszustand z 0 Z, ein Eingabealphabet X, eine Zustandsüberführungsfunktion f : Z X Z, ein Ausgabealphabet Y, eine Ausgabefunktion g : Z X Y Darstellung als Graph: Knoten: Zustände x g(z, x) Kanten: z f (z, x) Anfangszustand: in der Darstellung durch kleinen Pfeil gekennzeichnet: z Mealy-Automaten 16/38

Verallgemeinerte Zustandsübergangsfunktionen (1) nach Eingabe eines ganzen Wortes w X : Was ist der erreichte Zustand? Welches sind alle durchlaufenen Zustände? definiere passende Funktionen f und f 1. Stern: zweite Argument ist ganzes Wort von Eingabesymbolen 2. Stern: interessieren uns für alle durchlaufenen Zuständen Zuständen definiere f : Z X Z: alternativ: f (z, ε) = z w X : x X : f (z, wx) = f (f (z, w), x) f (z, ε) = z w X : x X : f (z, xw) = f (f (z, x), w) beide Definitionen liefern das Gleiche: f = f. Man nimmt die bequemere. Mealy-Automaten 17/38

Verallgemeinerte Zustandsübergangsfunktionen (1) nach Eingabe eines ganzen Wortes w X : Was ist der erreichte Zustand? Welches sind alle durchlaufenen Zustände? definiere passende Funktionen f und f 1. Stern: zweite Argument ist ganzes Wort von Eingabesymbolen 2. Stern: interessieren uns für alle durchlaufenen Zuständen Zuständen definiere f : Z X Z: alternativ: f (z, ε) = z w X : x X : f (z, wx) = f (f (z, w), x) f (z, ε) = z w X : x X : f (z, xw) = f (f (z, x), w) beide Definitionen liefern das Gleiche: f = f. Man nimmt die bequemere. Mealy-Automaten 17/38

Verallgemeinerte Zustandsübergangsfunktionen (1) nach Eingabe eines ganzen Wortes w X : Was ist der erreichte Zustand? Welches sind alle durchlaufenen Zustände? definiere passende Funktionen f und f 1. Stern: zweite Argument ist ganzes Wort von Eingabesymbolen 2. Stern: interessieren uns für alle durchlaufenen Zuständen Zuständen definiere f : Z X Z: alternativ: f (z, ε) = z w X : x X : f (z, wx) = f (f (z, w), x) f (z, ε) = z w X : x X : f (z, xw) = f (f (z, x), w) beide Definitionen liefern das Gleiche: f = f. Man nimmt die bequemere. Mealy-Automaten 17/38

Verallgemeinerte Zustandsübergangsfunktionen (2) alle durchlaufenen Zustände: definiere f : Z X Z : f (z, ε) = z w X : x X : f (z, wx) = f (z, w) f (f (z, w), x) auch hier wieder eine alternative Definitionsmöglichkeit... das wird hoffentlich gleich noch nützlich sein (wenn die Zeit reicht) Mealy-Automaten 18/38

Verallgemeinerte Ausgabefunktionen für die letzte Ausgabe: g : Z X Y g (z, ε) = ε g (z, wx) = g(f (z, w), x) Für alle Ausgaben konkateniert : g : Z X Y : g (z, ε) = ε g (z, wx) = g (z, w) g (z, wx) das wird am Freitag nützlich sein beim Codieren/Decodieren mit Mealy-Automaten Mealy-Automaten 19/38

Was ist wichtig Das sollten Sie mitnehmen: offizielle Definition von Mealy-Automat: Z z 0 Z X f : Z X Z Y g : Z X Y Ausgabe hängt von der Eingabe ab Das sollten Sie üben: zu vorgegebenem Verhalten Beispielautomaten konstruieren von vorgebenenen Automaten ihr Verhalten verstehen Mealy-Automaten was ist wichtig 20/38

Überblick Erstes Beispiel: ein Getränkeautomat Mealy-Automaten Moore-Automaten Spezialfall: endliche Akzeptoren Moore-Automaten 21/38

Moore-Automat manchmal näherliegend: Automat produziert in jedem Zustand eine Ausgabe (nicht bei Zustandsübergang) (endlicher) Moore-Automat festgelegt durch eine endliche Zustandsmenge Z, einen Anfangszustand z0 Z, ein Eingabealphabet X, eine Zustandsüberführungsfunktion f : Z X Z, ein Ausgabealphabet Y, eine Ausgabefunktion h : Z Y Moore-Automaten 22/38

Moore-Automat: Beispiel (aus der Dokumentation zu tikz) graphische Darstellung analog zu Mealy-Automaten, nur die Ausgaben in den Zuständen: a q ε 0 a b qa 0 q b 0 b q f 1 a, b q r 0 a a, b b Moore-Automaten 23/38

Verallgemeinerte Zustandsübergangsfunktionen f und f Definition von f und f wie bei Mealy-Automaten a a q ε 0 qa 0 b a, b q f 1 q r 0 a, b b q b 0 a b Beispiel: f (q ε, aaaba) = q r f (q ε, aaaba) = q ε qaqaqaq f q r Moore-Automaten 24/38

Kleine Änderung bei der Notation für Homomorphismen Schreibe h statt h für den durch h : A B induzierten Homomorphismus A B also h : A B definiert vermöge h (ε) = ε w A : x A : h (wx) = h (w)h(x) Fakt h (x 1 x 2 x n ) = h(x 1 )h(x 2 ) h(x n ) Skript wurde entsprechend geändert. Moore-Automaten 25/38

Verallgemeinerte Ausgabefunktionen g und g etwas einfacher als bei Mealy-Automaten letzte Ausgabe g = h f : (z, w) Z X : g (z, w) = h(f (z, w)) alle Ausgaben : g = h f (z, w) Z X : g (z, w) = h (f (z, w)) Beispiel: f (q ε, aaaba) = q r f (q ε, aaaba) = q ε qaqaqaq f q r also g (q ε, aaaba) = h(f (q ε, aaaba)) = h(q r ) = 0 g (q ε, aaaba) = h (f (q ε, aaaba)) = h (q ε qaqaqaq f q r ) = h(q ε )h(qa)h(qa)h(qa)h(q f )h(q r ) = 000010 Moore-Automaten 26/38

Was ist wichtig Das sollten Sie mitnehmen: offizielle Definition von Moore-Automat: Z z 0 Z X f : Z X Z Y h : Z Y Ausgabe hängt nicht von der Eingabe ab Das sollten Sie üben: zu vorgegebener formaler Sprache Akzeptor konstruieren, der sie erkennt von vorgebenenem Akzeptor erkannte formale Sprache herausfinden Moore-Automaten was ist wichtig 27/38

Überblick Erstes Beispiel: ein Getränkeautomat Mealy-Automaten Moore-Automaten Spezialfall: endliche Akzeptoren Spezialfall: endliche Akzeptoren 28/38

Endliche Akzeptoren wichtiger Sonderfall von Moore-Automaten: sogenannte endliche Akzeptoren Moore-Automaten mit immer genau einem Bit Ausgabe: Y = {0, 1} und z : h(z) Y Interpretation der Ausgabe: Eingabe war gut oder schlecht bzw. syntaktisch korrekt oder syntaktisch falsch (für eine gerade interessierende Syntax) bequemere Formalisierung: Spezifikation der Menge F der akzeptierenden Zustände: F = {z h(z) = 1} die anderen heißen ablehnende Zustände in graphischen Darstellungen akzeptierende Zustände mit doppeltem Kringel gemalt: z Spezialfall: endliche Akzeptoren 29/38

Endlichen Akzeptoren: Beispiel der Automat von eben: a a qa b q ε q f a, b q r a, b b q b a b Spezialfall: endliche Akzeptoren 30/38

Akzeptierte und abgelehnte Wörter Wort w X wird akzeptiert, falls f (z 0, w) F. Wort w X wird abgelehnt, falls f (z 0, w) / F. Spezialfall: endliche Akzeptoren 31/38

Beispiel a q ε a qa b q f a, b q r a, b b q b a b aaaba wird abgelehnt, denn f (z 0, aaaba) = q r / F aaab wird akzeptiert, denn f (z 0, aaab) = q f F. allgemein: Alle Wörter der Form a k b für ein k N + werden akzeptiert. Alle Wörter der Form b k a für ein k N + werden akzeptiert. Keine anderen Wörter werden akzeptiert. Spezialfall: endliche Akzeptoren 32/38

Erkannte formale Sprache Die von einem Akzeptor A = (Z, z 0, X, f, F ) akzeptierte oder erkannte formale Sprache ist L(A) = {w X f (z 0, w) F } Das ist ganz einfache Syntaxanalyse. in unserem Beispiel: L(A) = {a} + {b} {b} + {a} Spezialfall: endliche Akzeptoren 33/38

Weiteres Beispiel einer erkennbaren Sprache formale Sprache L aller Wörter w {a, b} mit den Eigenschaften: in w kommt mindestens ein b vor und vor dem letzten b steht ein a Behauptung: Es gibt einen endlichen Akzeptor, der L erkennt. Spezialfall: endliche Akzeptoren 34/38

Weiteres Beispiel einer erkennbaren Sprache formale Sprache L aller Wörter w {a, b} mit den Eigenschaften: in w kommt mindestens ein b vor und vor dem letzten b steht ein a Behauptung: Es gibt einen endlichen Akzeptor, der L erkennt. Idee: b b z a 0 z b 1 z 2 z 3 b a a bliebe zu tun: Nachweis, dass L(A) wirklich die gewünschte formale Sprache ist... a Spezialfall: endliche Akzeptoren 35/38

Beispiel einer nicht erkennbaren Sprache Behauptung: Die formale Sprache L = {a k b k k N 0 } kann von keinem endlichen Akzeptor erkannt werden. Beweisskizze: indirekt: angenommen A wäre ein Akzeptor mit L(A) = L. sei m = Z betrachte die Eingabe w = a m b m f (z 0, w) besteht aus k + 1 Zuständen soviele verschiedene gibt es gar nicht also kommt mindestens einer doppelt vor: A läuft in einer Schleife; Länge sei l > 0 entferne das Teilwort für einen Schleifendurchlauf aus w: w = a m l b m / L f (z 0, w ) = f (z 0, a m l b m ) = f (f (z 0, a m l ), b m ) = f (f (z 0, a m ), b m ) F, aber w / L Widerspruch Spezialfall: endliche Akzeptoren 36/38

Was ist wichtig Das sollten Sie mitnehmen: offizielle Definition endlicher Akzeptoren: Z z 0 Z X f : Z X Z F Z Wenn ein sehr langes Wort akzeptiert wird, dann läuft der Automat in einer Schleife, die beliebig oft durchlaufen werden kann ohne Akzeptanz zu ändern Das sollten Sie üben: gegeben L: konstruiere A mit L(A) = L gegeben A: bestimme L(A) Spezialfall: endliche Akzeptoren was ist wichtig 37/38

Zusammenfassung Mealy-Automaten Moore-Automaten taucht im Zusammenhang mit diversen Protokollen z. B. in Betriebssystemen und bei Kommunikationssystemen auf insbesonderen Akzeptoren: primitive Syntaxanalyse aber oft nützlich (z. B.: Compilerbau-Werkzeuge) Zusammenfassung 38/38