heoretische Informatik I Einheit 2 Endliche Automaten & Reguläre Sprachen. Deterministische endliche Automaten 2. Nichtdeterministische Automaten 3. Reguläre Ausdrücke 4. Grammatiken 5. Eigenschaften regulärer Sprachen
Automaten: das einfachste Maschinenmodell Externer Speicher Eingabe Programm Automat Interner Zustand Ausgabe Sichtweisen von Computern Automaten stehen im Kern jeder Berechnung Schnelle, direkte Verarbeitung von Eingaben Keine interne Speicherung von Daten Speicher sind eil der Umgebung Endliche Automaten sind leicht zu analysieren Jede Berechnung endet nach einer festen Anzahl von Schritten Keine Schleifen oder Seiteneffekte heoretische Informatik I 2: Endliche Automaten
Verwendungszwecke für endliche Automaten Basismodell für viele Arten von Hard- & Software Steuerungsautomaten Alle Formen rein Hardware-gesteuerter automatischer Maschinen Waschmaschinen, Autos, Unterhaltungselektronik, Ampelanlagen, Computerprozessoren Entwurf und Überprüfung digitaler Schaltungen Entwicklungswerkzeuge und estsoftware beschreiben endliches Verhalten Lexikalische Analyse in Compilern Schnelle Identifizierung von Bezeichnern, Schlüsselwörtern,... extsuche in umfangreichen Dokumenten Z.B. Suche nach Webseiten mithilfe von Schlüsselwörtern Software mit endlichen Alternativen Kommunikationsprotokolle, Protokolle zum sicheren Datenaustausch... heoretische Informatik I 2: 2 Endliche Automaten
Automaten beschreiben Sprachen Generierte Sprache Menge aller möglichen Ausgaben des Automaten Erkannte Sprache Menge aller Eingaben, die zur Ausgabe ja führen Alternativ: letzter Zustand des Automaten muß ein Endzustand sein Sprachen endlicher Automaten sind einfach Nur sehr einfach strukturierte Sprachen können beschrieben werden Durch endliche Automaten beschreibbare Sprachen heißen regulär heoretische Informatik I 2: 3 Endliche Automaten
Modelle zur Beschreibung regulärer Sprachen Automaten: erkennen von Wörtern z.b. Wechselschalter: Verarbeitung von Drück -Eingaben aus Drücken Drücken ein Zustände: aus, ein zustand: aus Endzustand: ein Eingabesymbol: Drücken Endzustand wird erreicht bei ungerader Anzahl von Drücken Mathematische Mengennotation z.b.: {Drücken 2i+ i N} oder {w {Drücken} i N. w = 2i+} Reguläre Ausdrücke: algebraische Strukturen z.b.: (DrückenDrücken) Drücken Grammatiken: Vorschriften für Spracherzeugung z.b.: S Drücken, S SDrückenDrücken Erzeugt nur ungerade Anzahl von Drücken-Symbolen heoretische Informatik I 2: 4 Endliche Automaten
heoretische Informatik I Einheit 2. Deterministische Endliche Automaten. Arbeitsweise 2. Akzeptierte Sprache 3. Entwurf und Analyse 4. Automaten mit Ausgabe
Erkennung von Wörtern mit Automaten nicht alles nicht, I I I I- nicht, Endliche Anzahl von Zuständen Ein zustand Regeln für Zustandsübergänge Eingabealphabet: {A,..,Z,a,..,z,,?,!,..} Ein oder mehrere akzeptierende Endzustände heoretische Informatik I 2: Endliche Automaten Deterministische Automaten
Endliche Automaten mathematisch präzisiert nicht alles nicht, I I I I- nicht, Ein Deterministischer Endlicher Automat (DEA) ist ein 5-upel A = (Q, Σ, δ, q, F) mit Q nichtleere endliche Zustandsmenge Σ (endliches) Eingabealphabet δ:q Σ Q Zustandsüberführungsfunktion q Q zustand F Q Menge von akzeptierenden Zuständen (Anfangszustand) (Endzustände) (Finale Zustände) heoretische Informatik I 2: Endliche Automaten 2 Deterministische Automaten
Beschreibung von Endlichen Automaten Übergangsdiagramm nicht nicht, I I I alles I- nicht, Jeder Zustand in Q wird durch einen Knoten (Kreise) dargestellt Ist δ(q,a) = p, so verläuft eine Kante von q nach p mit Beschriftung a (mehrere Beschriftungen derselben Kante möglich) q wird durch einen mit beschrifteten Pfeil angezeigt Endzustände in F werden durch doppelte Kreise gekennzeichnet Σ meist implizit durch Diagramm bestimmt Übergangstabelle abellarische Darstellung der Funktion δ Kennzeichnung von q durch einen Pfeil Kennzeichnung von F durch Sterne Σ und Q meist implizit durch abelle bestimmt I sonst S S S S I S S I S S * heoretische Informatik I 2: Endliche Automaten 3 Deterministische Automaten
Arbeitsweise von Endlichen Automaten nicht alles nicht, I I I I- nicht, Anfangssituation Automat befindet sich im zustand q Arbeitschritt Im Zustand q lese Eingabesymbol a, Bestimme δ(q,a)=p und wechsele in neuen Zustand p erminierung Eingabewort w = a..a n ist komplett gelesen, Automat im Zustand q n Ergebnis Eingabewort w wird akzeptiert, wenn q n F, sonst wird w abgewiesen heoretische Informatik I 2: Endliche Automaten 4 Deterministische Automaten
Arbeitsweise von DEAs mathematisch präzisiert Erweiterte Überführungsfunktion ˆδ : Q Σ Q Schrittweise Abarbeitung der Eingabe mit δ von links nach rechts Informal: ˆδ(q, w w 2...w n ) = δ(...(δ(δ(q, w ),w 2 ),...),w n ) Mathematisch präzise Beschreibung benötigt induktive Definition ˆδ(q, w) = { q falls w=ǫ, Von A akzeptierte Sprache δ(ˆδ(q,v),a) falls w=v a für ein v Σ, a Σ Menge der Eingabewörter w, für die ˆδ(q,w) akzeptierender Zustand ist L(A) = {w Σ ˆδ(q, w) F} Auch: die von A erkannte Sprache Reguläre Sprache Sprache, die von einem DEA A akzeptiert wird heoretische Informatik I 2: Endliche Automaten 5 Deterministische Automaten
Analyse der Sprache des Wechselschalters aus Drücken Drücken ein Zeige: Automat A ist ein Wechselschalter S (n): Ist n gerade, so ist A nach n-fachem Drücken ausgeschaltet S 2 (n): Ist n ungerade, so ist A nach n-fachem Drücken eingeschaltet Beweis durch simultane Induktion: Induktionsanfang n=: n ist gerade also gilt S 2 () A ist ausgeschaltet, also gilt S () Induktionsschritt: Es gelte S (n) und S 2 (n). Betrachte n+ Falls n+ ungerade, dann gilt S (n+) und n ist gerade. Wegen S (n) war A aus und wechselt auf ein. Es gilt S 2 (n+) Falls n+ gerade, dann gilt S 2 (n+) und n ist ungerade. Wegen S 2 (n) war A ein und wechselt auf aus. Es gilt S (n+) Es folgt: L(A) = {Drücken 2i+ i N} heoretische Informatik I 2: Endliche Automaten 6 Deterministische Automaten
Entwurf und Analyse endlicher Automaten Entwerfe Automaten für L = {uv u, v {, } } Drei Zustände sind erforderlich Zustand q : A hat noch keine gelesen i bleibt in q Zustand q : A hat eine aber noch keine gelesen i j+ bleibt in q Zustand q 2 : A hat eine Zeichenkette gelesen i j v bleibt in q 2 Zustandsübergänge erhalten Bedeutung Zustand q : Mit bleibe in q, sonst wechsele nach q Zustand q : Mit bleibe in q, sonst wechsele nach q 2 Zustand q 2 : Bleibe bei jeder Eingabe in q 2, Endzustand Zugehöriger DEA mit Alphabet Σ = {, }, q q q 2 heoretische Informatik I 2: Endliche Automaten 7 Deterministische Automaten
q q, q 2 Zeige L(A) = L = {uv u,v {, } } Zeige durch strukturelle Induktion über w: ˆδ(q, w) = q es gibt ein i N mit w = i Basisfall w = ǫ: Per Definition ist ˆδ(q,ǫ) = q und w = i für i = Schrittfall w = ua für ein u Σ, a Σ: Es gelte ˆδ(q,w) = q. Dann ist ˆδ(q, u) = q und δ(q, a) = q. Es folgt a = und per Annahme u = i für ein i, also w = i+. Es gelte w = i. Dann ist a = und u = i. Mit der Induktionsannahme folgt ˆδ(q, w) = δ(ˆδ(q,u), a) = δ(q, a) = q ˆδ(q, w) = q es gibt i, j N mit w = i j+ analog ˆδ(q, w) = q 2 es gibt i, j N, v Σ mit w = i j+ v Zeige: w L es gibt i, j N, v Σ mit w = i j v Für w L gibt es u,v Σ mit w = uv Wenn u nicht die Form i j hat, dann folgt in u eine auf eine. Das erste solche Vorkommen von liefert die gewünschte Zerlegung Es folgt w L ˆδ(q, w) = q 2 F w L(A) heoretische Informatik I 2: Endliche Automaten 8 Deterministische Automaten
Eine alternative Beschreibung der Arbeitsweise von DEAs Konfiguration: Gesamtzustand von Automaten Mehr als q Q: auch die noch unverarbeitete Eingabe zählt Formal dargestellt als upel K = (q,w) Q Σ Konfigurationsübergangsrelation Wechsel zwischen Konfigurationen durch Abarbeitung von Wörtern (q,aw) (p,w), falls δ(q, a) = p K K 2, falls K = K 2 oder es gibt eine Konfiguration K mit K K und K K 2 Akzeptierte Sprache Menge der Eingaben, für die zu akzeptierendem Zustand führt L(A) = {w Σ p F. (q, w) (p,ǫ)} Für DEAs weniger intuitiv, aber leichter zu verallgemeinern heoretische Informatik I 2: Endliche Automaten 9 Deterministische Automaten
DEA für L = {w {, } w enthält gerade Anzahl von und } Codiere Anzahl der gelesener / im Zustand q ˆ= (gerade,gerade) q ˆ= (gerade,ungerade) q 2 ˆ= (ungerade,gerade) q 3 ˆ= (ungerade,ungerade) q q q 2 q 3 Korrektheit: gegenseitige strukturelle Induktion heoretische Informatik I 2: Endliche Automaten Deterministische Automaten
Korrektheitsbeweis mit Konfigurationen Zeige simultan für alle Wörter w, v {, } : () (q, w v) (q, v) es gilt g (w) und g (w) (2) (q, w v) (q, v) es gilt g (w) und u (w) (3) (q, w v) (q 2, v) es gilt u (w) und g (w) (4) (q, w v) (q 3, v) es gilt u (w) und u (w) g (w) ˆ= w hat gerade Anzahl von Nullen, u (w) ˆ= w hat ungerade Anzahl von Nullen,... Basisfall w = ǫ: Per Definition gilt (q, v) (q,v) und g (w) und g (w) Schrittfall w = ua für ein u Σ, a Σ: () Es gelte (q, w v) (q, v). Dann gilt (q,uav) (p, av) (q, v) für einen Zustand p. Falls a =, dann ist p = q 2 und nach (3) folgt u (u) und g (u). Für w = ua folgt somit g (w) und g (w). Fall a= analog. Gegenrichtung durch Umkehrung des Arguments. (2), (3), (4) analog. Es folgt w L(A) (q, w) (q, ǫ) g (w) und g (w) w L heoretische Informatik I 2: Endliche Automaten Deterministische Automaten
Weitere Beispiele endlicher Automaten Erkenne Strings, die mit enden q q q 2 5c Kaffeeautomat Akzeptiert,2,5c Münzen, gibt kein Geld zurück, mit Reset-aste q q q 2 q 3 2 2 5 reset 2 2 q 4,2,5 q 5 2 5 heoretische Informatik I 2: Endliche Automaten 2 Deterministische Automaten
Endliche Automaten mit Ausgabefunktion 5c Kaffeeautomat mit Restbetragsanzeige q /4 q 2/3 /3 2/2 q 2 5/ /2 reset/5 q 3 2/ / 2/ q 4,2,5 Münzeinwurf führt zu Zustandsänderung und erzeugt Ausgabe q 5 2 5 Formalisierungen von Automaten mit Ausgabe Mealy-Automaten: Ausgabefunktion abhängig von Eingabe & Zustand Moore-Automaten: Ausgabefunktion nur von Zustand abhängig Beide Modelle sind äquivalent heoretische Informatik I 2: Endliche Automaten 3 Deterministische Automaten
Mealy-Automaten mathematisch präzisiert 5/ q /4 2/3 q /3 2/2 q 2 /2 q 3 2/ reset/5 / 2/ q 4,2,5 q 5 2 5 Ein Mealy-Automat ist ein 6-upel M = (Q, Σ,,δ,λ,q ) mit Q nichtleere endliche Zustandsmenge Σ (endliches) Eingabealphabet (endliches) Ausgabealphabet δ:q Σ Q Zustandsüberführungsfunktion λ:q Σ Ausgabefunktion q Q zustand heoretische Informatik I 2: Endliche Automaten 4 Deterministische Automaten
Arbeitsweise von Mealy-Automaten analog zu DEAs Anfangssituation: Automat im zustand q Arbeitschritt Im Zustand q lese Eingabesymbol a, Bestimme δ(q,a)=p und wechsele in neuen Zustand p Bestimme x = λ(q,a) und gebe dieses Symbol aus erminierung: Eingabewort w = a..a n ist komplett gelesen Ausgabewort: Verkettung der ausgegebenen Symbole x..x n Erweiterte Ausgabefunktion ˆλ:Q Σ Schrittweise Erzeugung der Ausgabe mit Abarbeitung der Eingabe Formal: Induktive Definition { ǫ falls w=ǫ, ˆλ(q, w) = ˆλ(q,v) λ(ˆδ(q,v),a) falls w=v a für ein a Σ Von M berechnete Funktion: f M (w) = ˆλ(q, w) heoretische Informatik I 2: Endliche Automaten 5 Deterministische Automaten
Mealy-Automat für (inverse) Binäraddition Addition von Bitpaaren von rechts nach links Eingabealphabet Σ = {, } {, } Ausgabealphabet = {, } Zwei Zustände sind erforderlich Zustand q : A kann Addition zweier Bits direkt ausführen Zustand q : A hat bei Addition einen Übertrag zu berücksichtigen Zugehöriger Mealy-Automat,/,/,/,/,/,/ q,/,/ q heoretische Informatik I 2: Endliche Automaten 6 Deterministische Automaten
Mealy-Automaten sind äquivalent zu DEAs Gegenseitige Simulation ist möglich Jede Funktion f ist als Menge beschreibbar graph(f) = {(w,v) f(w) = v} graph (f) = {(w, v )..(w n, v n ) f(w..w n ) = v..v n } DEAs können Graphen berechneter Funktionen akzeptieren Satz: f Mealy-berechenbar graph (f) reguläre Sprache Jede Sprache L ist als Funktion beschreibbar χ L (w) = { falls w L, charakteristische Funktion von L sonst Charakteristische Funktionen akzeptierter Sprachen sind berechenbar Satz: L regulär χ L Mealy-berechenbar heoretische Informatik I 2: Endliche Automaten 7 Deterministische Automaten
Beweis der Äquivalenz (Skizze) f Mealy-berechenbar graph (f) regulär Zu M = (Q, Σ,,δ,λ,q ) konstruiere A = (Q {q f }, Σ, δ, q, Q) { δ(q,a) falls λ(q, a) = b, mit δ (q, (a,b)) = sonst q f Dann f M (w..w n ) = v..v n genau dann, wenn (w, v )..(w n, v n ) L(A) L regulär χ L Mealy-berechenbar Zu A = (Q, Σ,δ,q,F) konstruiere M = (Q, Σ, {,},δ,λ,q ) { falls δ(q, a) F, mit λ(q, a) = sonst Dann ist w L(A) genau dann, wenn f M (w) = v für ein v {, } χ L (w) ist das letzte Ausgabesymbol von f M (w) Mehr zu Automaten mit Ausgabe im Buch von Vossen & Witt heoretische Informatik I 2: Endliche Automaten 8 Deterministische Automaten