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

Slides:



Advertisements
Ähnliche Präsentationen
Vorlesung Compilertechnik Sommersemester 2008
Advertisements

Informatik II: Algorithmen und Datenstrukturen SS 2013
Eine dynamische Menge, die diese Operationen unterstützt,
Christian Schindelhauer
Eingebettete Systeme Qualität und Produktivität
Prof. Dr. W. Conen 15. November 2004
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
7. Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F).
Suche in Texten (Stringsuche )
Institut für Informatik Abt. Intelligente Systeme
8. Formale Sprachen und Grammatiken
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Grammatiken, Definitionen
Verifizieren versus Berechnen
Kapitel 4 Syntaktische Analyse: LR Parsing.
FH-Hof Formale Sprachen - Maschinenmodelle Richard Göbel.
Stoyan Mutafchiev Betreuer: Ilhan, Tim
Algorithmentheorie 04 –Hashing
Suche in Texten: Suffix-Bäume
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
Reguläre Sprachen Karin Haenelt.
© Karin Haenelt 2006, Äquivalenzen Reg.Ausdrücke, Reg.Sprachen, EA ( ) 1 Reguläre Sprachen Karin Haenelt.
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Theoretische Informatik 2
Formale Sprachen Grundbegriffe für formale Sprachen
Grenzen der Regularität
Basisinformationstechnologie HK-Medien
Effiziente Algorithmen
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Eine Präsentation von Lena Sauter & Corinna Nawatzky
Akzeptor & Sprache.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Städtisches Gymnasium Beverungen Friedel Berlage
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
Noam CHOMSKY, Sheila GREIBACH
Noam CHOMSKY, Sheila GREIBACH
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Wintersemester 2005 / Vorlesung
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
 Sortigkeit oder Arität
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
 Präsentation transkript:

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

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

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

Endlicher Automat als Black Box

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

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

Rechnung des Automaten Aswim

Konfiguration eines endlichen Automaten

Alphabete Automaten verarbeiten Zeichenfolgen, die aus atomaren Symbolen bestehen. Menge der zugelassenen Zeichen: Endliches Alphabet . Beispiele:  = {50, 100, 200} │  │ = 3  = {a1, a2, a3, …, an} │  │ = n  = {a, b,…., z} │  │ = 26  =  │  │ = 0

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 s0  S eine Endzustandsmenge F  S eine Übergangsfunktion δ : S x  → S Kurz: A = (, S, δ, s0, 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)

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, δ, s0, F) wird die von A akzeptierte Sprache (die Menge aller von A akzeptierten Eingabefolgen) L(A)  * definiert durch: L(A) = {w; δ*(s0, w)  F}

Beispiel 1 1 s0 s1

Konfiguration eines endlichen Automaten

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 = x1x2 … xr durch einen DFA kann als Folge von Konfigurationsübergängen beschrieben werden: (s0, x1x2 … xr ) ├ (s1, x2 … xr ) ├ … ├ (sr, ε ) Mit ├ * wird die transitiv-reflexive Hülle von ├ beschrieben. Beispiel: (start, 50 100 50) ├

Reguläre Sprachen Für einen DFA A = (, S, δ, s0, F) ist L(A) = {w  * ; (s0, 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‘).

Theorie endlicher Automaten Gibt Antworten auf folgende Fragen: Wie entwirft man endliche Automaten für bestimmte Aufgaben (Synthese-Aufgabe)? Wie analysiert man endliche Automaten? D.h. kann man die von endlichen Automaten akzeptierbaren Sprachen auch anders (automatenfrei) beschreiben? 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.

Beispiel einer Syntheseaufgabe Finde einen DFA für L3b = {w  {a, b}* ; w = w1…wn, wi  {a, b}, w3i ≠ 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:

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

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

Problemdefinition: Mustersuche in Texten Gegeben: Text t1t2t3 … tn  n Muster p1p2 … pm  m Gesucht: Ein oder alle Vorkommen des Musters im Text, d.h. Verschiebungen i mit 0 ≤ i ≤ n-m und p1 = ti+1 p2 = ti+2 …….. pm = ti+m Text: t1 t2 t3 ti+1… ti+m Muster: p1 ……pm

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: t1 t2 t3 ti+1 … ti+j ….ti+m …… Muster: p1 …. pj ……pm

Grundidee des KMP-Verfahrens Konstruiere zum Muster P = p1p2 … pm einen DFA AP, der den Text T = t1t2t3 … tn 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!

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: s0 sa sab sabb sabba

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* = {x1…xk; k ≥ 0 und xi  A für alle i mit 1 ≤ i ≤ k}

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.