Automaten und Formale Sprachen

Ähnliche Dokumente
Automaten und Formale Sprachen Endliche Automaten und Reguläre sprachen

Automaten und Formale Sprachen ε-automaten und Minimierung

Endliche Automaten. Grundlagen: Alphabet, Zeichenreihe, Sprache. Karin Haenelt

Formale Sprachen und endliche Automaten

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

Theoretische Informatik

4.2.4 Reguläre Grammatiken

Übungsaufgaben zu Formalen Sprachen und Automaten

7 Endliche Automaten. 7.1 Deterministische endliche Automaten

Operationen auf endlichen Automaten und Transduktoren

5.4 Endliche Automaten

Einführung in die Theoretische Informatik

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17. Wer sind wir? Willkommen zu

Informatik-Grundlagen

Überführung regulärer Ausdrücke in endliche Automaten

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

Theoretische Grundlagen der Informatik

Reguläre Ausdrücke. Karin Haenelt

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

Theoretische Grundlagen der Informatik

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

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

Deterministische endliche Automaten - Wiederholung

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Herzlich willkommen!!!

Informatik III Grundlagen der theoretischen Informatik

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Theoretische Informatik 1

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange

Formale Sprachen und Automaten

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Theoretische Grundlagen der Informatik

Theoretische Informatik I

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

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

Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka

Anwenundg regulärer Sprachen und endlicher Automaten

Theoretische Informatik 1

Deterministische Turing-Maschinen

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

Kapitel 2: Formale Sprachen Gliederung

Automaten und Formale Sprachen

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Operationen auf endlichen Akzeptoren und Transduktoren

Einführung in die Informatik

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

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

Theoretische Informatik

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

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

Induktive Definition

8. Turingmaschinen und kontextsensitive Sprachen

Grundlagen der Theoretischen Informatik

Theoretische Informatik 1

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

Theoretische Informatik

1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten

Lösungsvorschläge Blatt 4

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Rekursiv aufzählbare Sprachen

Endliche Automaten. Kapitel Deterministische endliche Automaten

Theoretische Informatik [TI] Bachelorstudiengang Informatik/IT-Sicherheit. Autoren: Prof. Dr. Steffen Lange Prof. Dr.

THEORETISCHE INFORMATIK

Proseminar Theoretische Informatik. Die Klasse NP. von Marlina Spanel

Grundlagen der Theoretischen Informatik

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Lexikalische Programmanalyse der Scanner

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

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

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Theoretische Grundlagen der Informatik

Reguläre Sprachen und endliche Automaten

Es gibt drei unterschiedliche Automaten:

Formale Sprachen und Automaten

Automaten und Coinduktion

Übung zur Vorlesung Theoretische Information. Minimierungsalgorithmus

Automaten und formale Sprachen Klausurvorbereitung

Endliche Automaten. Deterministische Akzeptoren, nichtdeterministische Akzeptoren, nichtdeterministische Akzeptoren mit Epsilon-Übergängen

Theorie der Informatik

Berechenbarkeit und Komplexität

Theoretische Informatik 1

Berechenbarkeit. Script, Kapitel 2

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

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

Grundlagen der Informatik II

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Lexikalische Analyse, Tokenizer, Scanner

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

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

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

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

Transkript:

Automaten und Formale Sprachen Einführung Ralf Möller Hamburg Univ. of Technology Übung Fr. 14:30-15:15 Max Berndt, D1025

Literatur Gottfried Vossen, Kurt-Ulrich Witt: Grundkurs Theoretische Informatik, Vieweg Verlag 2

Weitere Literatur U. Schöning: Theoretische Informatik kurz gefasst, Spektrum Akademischer Verlag John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman: Introduction to Automata Theory, Languages, and Computation, Addison Wesley Publishing Company

Danksagung Kurs basiert auf Präsentationsmaterial von w G. Vossen (Uni Münster), K.-U. Witt (Hochschule Bonn-Rhein-Sieg) w Christian Sohler (TU Dortmund) w Thomas Ottmann (Uni Freiburg) w Lenore Blum (CMU)

Zentrale Fragestellungen Effiziente Algorithmen: Welche Probleme können effizient gelöst werden? Wie misst man Effizienz? Welche algorithmischen Methoden gibt es, Probleme zu lösen? Wie kann man Probleme mit geringstmöglichem Aufwand lösen? Wie gehen wir mit schweren Problemen um?

Wozu benötigen wir effiziente Algorithmen? Beispiele: Internetsuchmaschinen Berechnung von Bahnverbindungen Optimierung von Unternehmensabläufen Datenkompression Computer Spiele Datenanalyse Alle diese Bereiche sind (immer noch) Stoff aktueller Forschung im Bereich der Algorithmik!

Algorithmische Problemstellungen Typische Aufgabenstellung: Berechne die kürzeste Rundreise durch n Städte

Algorithmische Problemstellungen Typische Aufgabenstellung: Berechne die kürzeste Rundreise durch n Städte

Algorithmische Problemstellungen Typische Aufgabenstellung: Berechne die kürzeste Rundreise durch n Städte [Optimierungsproblem]

Algorithmische Problemstellungen Optimierungsprobleme (informal): Zulässigkeitsbedingung (Lösung ist eine Rundreise) Zielfunktion (Länge der Tour) Aufgabe: Finde beste zulässige Lösung

Algorithmische Problemstellungen Optimierungsprobleme (informal): Zulässigkeitsbedingung (Lösung ist eine Rundreise) Zielfunktion (Länge der Tour) Aufgabe: Finde beste zulässige Lösung Lösung ist zulässig, aber nicht optimal

Algorithmische Problemstellungen Optimierungsprobleme (informal): Zulässigkeitsbedingung (Lösung ist eine Rundreise) Zielfunktion (Länge der Tour) Aufgabe: Finde beste zulässige Lösung Keine zulässige Lösung Kosten (Summe der Kantenlängen) Kleiner als bei der besten Rundreise

Algorithmische Problemstellungen Typische Aufgabenstellung: Entscheide, ob eine Zahl prim ist

Algorithmische Problemstellungen Typische Aufgabenstellung: Entscheide, ob eine Zahl prim ist 2 -> prim 17 -> prim 99 -> nicht prim

Algorithmische Problemstellungen Typische Aufgabenstellung: Entscheide, ob eine Zahl prim ist [Entscheidungsproblem] 2 -> prim 17 -> prim 99 -> nicht prim

Algorithmische Problemstellungen Entscheidungsprobleme: Eigenschaft (Primzahl) Aufgabe: - Akzeptieren, wenn Eingabe die Eigenschaft besitzt - Zurückweisen, sonst Ausgabe: 1 (akzeptieren) oder 0 (zurückweisen)

Algorithmische Problemstellungen Typische Aufgabenstellung: Sortiere Folge von n Zahlen

Algorithmische Problemstellungen Typische Aufgabenstellung: Sortiere Folge von n Zahlen Eingabe: 9, 3, 2, 15, 17, 8

Algorithmische Problemstellungen Typische Aufgabenstellung: Sortiere Folge von n Zahlen Eingabe: 9, 3, 2, 15, 17, 8 Ausgabe: 2, 3, 8, 9, 15, 17

Algorithmische Problemstellungen Typische Aufgabenstellung: Sortiere Folge von n Zahlen [neue Art von Problem?]

Algorithmische Problemstellungen Neue Problemformulierung: Finde die Reihenfolge der Zahlen mit der kleinsten Anzahl Inversionen Inversion: Bezeichne x i die Zahl an Stelle i unserer Reihenfolge Das Paar (i,j) ist eine Inversion, wenn gilt i<j, aber x i > x j Position 6 Beispiel: 1, 5, 4, 7, 8, 3 (2,6) ist eine Inversion Position 2

Algorithmische Problemstellungen Neue Problemformulierung: Finde die Reihenfolge der Zahlen mit der kleinsten Anzahl Inversionen Lemma: Eine Reihenfolge ohne Inversionen ist aufsteigend sortiert.

Algorithmische Problemstellungen Neue Problemformulierung: Finde die Reihenfolge der Zahlen mit der kleinsten Anzahl Inversionen Lemma: Eine Reihenfolge ohne Inversionen ist aufsteigend sortiert. Lemma: Eine Reihenfolge mit Inversionen ist nicht aufsteigend sortiert.

Algorithmische Problemstellungen Erkenntnis: Durch geschickte Umformulierung kann man die meisten algorithmischen Probleme als Entscheidungs- oder Optimierungsprobleme formulieren Vorgehensweise: Wir werden zunächst Entscheidungsprobleme untersuchen und uns danach (ggf. in anderen Vorlesungen) mit Optimierungsproblemen beschäftigen

Langfristige Fragestellung Welche Entscheidungsprobleme können durch einen Rechner gelöst werden?

Formale Sprachen Wie kann man Entscheidungsprobleme allgemein formulieren? Annahme: Jede Eingabe kann als endliche Zeichenkette (Bitstring) beschrieben werden Bei Entscheidungsproblemen müssen wir bestimmen, ob eine Eingabe eine vorgegebene Eigenschaft hat Äquivalent: Bestimme die Menge der Bitstrings, die eine Eingabe mit der vorgegenene Eigenschaft kodieren

Formale Sprachen Beispiel: Primzahlerkennung Eingabe ist eine Zahl Kann Zahl durch Binärkodierung darstellen Muss alle Zahlen akzeptieren, deren Binärkodierung eine Primzahl ist L = {Bitstrings b : b ist die Binärdarstellung einer Primzahl} Enscheide, ob Bitstring b in L ist

Formale Sprachen Wichtige Erkenntnis: Man kann auf dieselbe Weise jedes Problem als Problem über Bitstrings formulieren Generalisiertes Problem: Sei L eine Menge von Bitstrings Entscheide, ob Eingabebitstring b in L liegt

0 11 0,1 1 1 0111 111 0 0 1 Verarbeite Eingabe von links nach rechts 1 Die Maschine akzeptiert eine Eingabezeichenkette wenn der Prozess in einem Zustand mit Doppelkreis endet

Ein Deterministischer Endlicher Automat (DEA) Zustände 0 q 1 0,1 1 1 q 0 0 q 3 0 1 q 2 Zustände Die Maschine akzeptiert eine Eingabezeichenkette wenn der Prozess in einem Zustand mit Doppelkreis endet

Ein Deterministischer Endlicher Automat (DEA) Zustände Endzustände(F) 0 q 1 0,1 1 1 q 0 Startzustand(q 0 ) 0 q 3 0 1 q 2 Zustände Die Maschine akzeptiert eine Eingabezeichenkette wenn der Prozess in einem Zustand mit Doppelkreis endet

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

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

34 Rechnung des Automaten A swim

Konfiguration eines endlichen Automaten 35

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

Deterministische endliche Automaten Ein deterministischer endlicher Automat (DFA) ist gegeben durch eine endliche Menge Σ von Eingabezeichen eine endliche Menge S von Zuständen eine Übergangsfunktion δ : S x Σ S einen Anfangszustand s 0 S eine Endzustandsmenge F 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) 37

Erweiterte Übergangsfunktion Die Zustandsübergangsfunktion δ kann von Zeichen auf Wörter erweitert werden: δ*: S x Σ* S definiert durch w δ*(s, ε) = s für alle s S w δ*(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} 38

Beispiel 0 1 1 s 0 s 1 0 39

Konfiguration eines endlichen Automaten 40

Konfigurationsübergänge 41 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, 50 100 50)

(start, 50 100 50)

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