Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann."—  Präsentation transkript:

1 1 Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann

2 2 Motivation Einfacher Automat (Schalter, Fahrkarten) Definierter Ablauf von Aktionen Determinierte Folge von (akzeptierten) Aktionen Ausstattung eines Automaten A 1.Eingabe: A wird von außen mit Eingabedaten versorgt 2.Interne Zustände: A befindet sich immer in einem definierten Zustand. A kann Zustandsübergänge durchführen, etwa unter Einfluss der Eingabe. 3.Ausgabe: A kann unter gewissen Umständen Ausgabeinformation erzeugen.

3 3 Beispiel: Geräteschalter aus ein Kippschalter drücken Anfangszustand, (gew.) Endzustand, Eingabefolge Endliche Automaten dienen zur Klassifikation von Eingabefolgen

4 4 Endlicher Automat als Black Box

5 5 Zustandsdiagramm des Automaten A swim Eigenschaften von A swim : Münzeingaben mit Werten 50, 100, 200 in beliebiger Reihenfolge Nach Einwurf von insgesamt 200 akzeptiert A swim : Eintritt freigegeben! Der Gesamtwert der bisherigen Eingabe ist im aktuellen Zustand vermerkt.

6 6 Startkonfiguration von A swim Eingabeband enthält Eingaben als Folgen von Zeichen Zustandsspeicher enthält jeweils aktuellen Zustand Programm, Kontrolle: Zustandsübergangsfunktion δ.

7 7 Rechnung des Automaten A swim

8 8 Konfiguration eines endlichen Automaten

9 9 Alphabete Automaten verarbeiten Zeichenfolgen, die aus atomaren Symbolen bestehen. Menge der zugelassenen Zeichen: Endliches Alphabet. Beispiele: = {50, 100, 200} = 3 = {a 1, a 2, a 3, …, a n } = n = {a, b,…., z} = 26 = = 0

10 10 Deterministische endliche Automaten Ein deterministischer endlicher Automat (DFA) ist gegeben durch eine endliche menge S von Zuständen eine endliche Menge von Eingabezeichen einen Anfangszustand s 0 S eine Endzustandsmenge F S eine Übergangsfunktion δ : S x S Kurz: A = (, S, δ, s 0, F) δ kann auch durch einen Zustandsübergangs Graphen oder als Menge von Tripeln (s, a, t) mit δ (s, a) = t gegeben sein δ ist manchmal nicht total (überall definiert)

11 11 Erweiterte Übergangsfunktion Die Zustandsübergangsfunktion δ kann von Zeichen auf Wörter erweitert werden: δ*: S x * S definiert durch δ*(s, ε) = s für alle s S δ*(s, aw) = δ*(δ(s, a), w) für alle a, w * Für einen endlichen Automaten A = (, S, δ, s 0, F) wird die von A akzeptierte Sprache (die Menge aller von A akzeptierten Eingabefolgen) L(A) * definiert durch: L(A) = {w; δ*(s 0, w) F}

12 12 Beispiel s0s0 s1s

13 13 Konfiguration eines endlichen Automaten

14 14 Konfigurationsübergänge Ein Konfigurationsübergang (s, v) (t, w) kann stattfinden, wenn v = aw und δ(s, a) =t ist. Die Abarbeitung eines Wortes x = x 1 x 2 … x r durch einen DFA kann als Folge von Konfigurationsübergängen beschrieben werden: (s 0, x 1 x 2 … x r ) (s 1, x 2 … x r ) … (s r, ε ) Mit * wird die transitiv-reflexive Hülle von beschrieben. Beispiel: (start, )

15 15 Reguläre Sprachen Für einen DFA A = (, S, δ, s 0, F) ist L(A) = {w * ; (s 0, w) * (s, ε), s F} die von A akzeptierte Sprache. Eine Sprache L * heißt regulär, wenn es einen DFA A gibt mit L = L(A). Zwei DFA A und A heißen äquivalent, falls sie die gleiche Sprache akzeptieren, wenn also gilt: L(A) = L(A).

16 16 Theorie endlicher Automaten Gibt Antworten auf folgende Fragen: 1.Wie entwirft man endliche Automaten für bestimmte Aufgaben (Synthese- Aufgabe)? 2.Wie analysiert man endliche Automaten? D.h. kann man die von endlichen Automaten akzeptierbaren Sprachen auch anders (automatenfrei) beschreiben? 3.Wie vereinfacht (reduziert, minimiert) man endliche Automaten? D.h. wie eliminiert man evtl. überflüssige Zustände? Die Synthese endlicher Automaten ist ein kreativer Prozess! Zur Analyse verwendet man: Reguläre Ausdrücke, Grammatiken, algebraische Hilfsmittel. Die Reduzierung erfolgt durch Bildung von Äquivalenzklassen.

17 17 Beispiel einer Syntheseaufgabe Finde einen DFA für L 3b = {w {a, b}* ; w = w 1 …w n, w i {a, b}, w 3i a, 1 3i n, n 0} Dreiergruppe von Zeichen, deren letztes ein b ist, muss erkannt werden: Beliebig viele Dreiergruppen derselben Art sind als Präfixe erlaubt: Auch sämtliche Präfixe sollen erkannt werden:

18 18 Vollständige Automaten Bisher musste die Funktion δ eines DFA nicht total sein. Ein DFA A = (, S, δ, s 0, F) heißt vollständig, wenn dom(δ) = S x Jeder DFA A = (, S, δ, s 0, F) kann durch Hinzunahme eines Zustands tot vervollständigt werden: Wenn δ(s, a) nicht definiert ist, ergänze δ(s, a) = tot Beispiel:

19 19 Anwendung von DFA zur Suche in Texten Verschiedene Szenarien: Dynamische Texte –Texteditoren –Symbolmanipulatoren –Statische Texte Literaturdatenbanken –Bibliothekssysteme –Gen-Datenbanken –WWW-Verzeichnisse

20 20 Problemdefinition: Mustersuche in Texten Gegeben: Textt 1 t 2 t 3 … t n n Muster p 1 p 2 … p m m Gesucht: Ein oder alle Vorkommen des Musters im Text, d.h. Verschiebungen i mit 0 i n-m und p 1 = t i+1 p 2 = t i+2 …….. p m = t i+m Text:t 1 t 2 t 3 t i+1 … t i+m Muster: p 1 ……p m

21 21 Naives Verfahren Für jede mögliche Verschiebung i mit 0 i n-m prüfe maximal m Zeichenpaare. Bei Mismatch beginne mit neuer Verschiebung! Aufwandsabschätzung: Was ist die Laufzeit im worst case? Text:t 1 t 2 t 3 t i+1 … t i+j ….t i+m …… Muster: p 1 …. p j ……p m

22 22 Grundidee des KMP-Verfahrens Konstruiere zum Muster P = p 1 p 2 … p m einen DFA A P, der den Text T = t 1 t 2 t 3 … t n einmal v.l.n.r. liest und in einem Endzustand ist, immer dann, wenn er das Ende eines Vorkommens von P in T erkannt hat. Beobachtung: Das Lesen und Verarbeiten eines Zeichens Verursacht nur konstanten Aufwand!

23 23 Beispiel für die Konstruktion eines Pattern Matching Automaten Sei P = abba, ein DFA, der jedes Vorkommen von P in einem beliebigen Text aus * = {a, b}* entdeckt, kann so konstruiert werden: s0s0 sasa s ab s abba s abb

24 24 Operationen für Formale Sprachen Sei ein fest gewähltes, endliches Alphabet. Für Sprachen A, B * definiert man: Vereinigung: A B = {w; w A oder w B} Durchschnitt: A B = {w; w A und w B} Verkettung: A B = {xy; x A und y B} Iteration A* = {x 1 …x k ; k 0 und x i A für alle i mit 1 i k}

25 25 Reguläre Sprachen Die Klasse der von endlichen Automaten akzeptierbaren Sprachen heißt auch Klasse der regulären Sprachen, m.a.W: Eine Sprache L * heißt regulär, wenn es einen endlichen Automaten (einen DFA) A gibt mit L = L(A). Satz: Die Klasse der regulären Sprachen ist abgeschlossen gegenüber Vereinigung, Durchschnitt und Komplement.


Herunterladen ppt "1 Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann."

Ähnliche Präsentationen


Google-Anzeigen