Theoretische Informatik: Automaten und formale Sprachen

Größe: px
Ab Seite anzeigen:

Download "Theoretische Informatik: Automaten und formale Sprachen"

Transkript

1 Theoretische Informatik: Automaten und formale Sprachen Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakultät IMN Gustav-Freytag-Str. 42a, Leipzig Zimmer Z 411 (Zuse-Bau) sibylle.schwarz@htwk-leipzig.de Wintersemester 2017/18 1

2 Einordnung der Theoretischen Informatik Informatik Lehre von der Darstellung und Verarbeitung von Information durch Algorithmen Teilgebiete der Informatik: theoretisch technisch Sprachen zur Formulierung von Information und Algorithmen, Möglichkeiten und Grenzen der maschinellen Berechenbarkeit, Grundlagen für technische und praktische (und angewandte) Informatik maschinelle Darstellung von Information Mittel zur Ausführung von Algorithmen (Rechnerarchitektur, Hardware-Entwurf, Netzwerk,... ) praktisch Entwurf und Implementierung von Algorithmen (Betriebssysteme, Compilerbau, SE,... ) angewandt Anwendung von Algorithmen (Text- und Bildverarbeitung, Datenbanken, KI, Medizin-, Bio-, Wirtschafts-, Medieninformatik,... ) 2

3 Teilgebiete der theoretischen Informatik Formale Sprachen Repräsentation von Informationen und Aufgaben in maschinenlesbarer Form (Mensch-Maschine-Kommunikation) Ausdrucksstärke und Flexibilität von Programmiersprachen Übersetzung von Programmiersprachen (z.b. in ausführbaren Code) Maschinenmodelle (Automaten) Möglichkeiten und Grenzen verschiedener Modelle zur (maschinellen) Ausführung von Algorithmen Berechenbarkeitstheorie (hier Ausblick, mehr dazu im Mastermodul) Welche Aufgaben sind überhaupt algorithmisch (mit Hilfe verschiedener Maschinenmodelle) lösbar? Auch negative Antworten sind sehr hilfreich (sparen Aufwand für ungeeignete Lösungsansätze) Komplexitätstheorie (hier Ausblick, mehr dazu im Mastermodul) Welche Aufgaben sind mit beschränkten Ressourcen (z.b. Zeit, Speicherplatz) lösbar? Für welche Aufgaben können schnelle Algorithmen existieren? 3

4 Prinzipien der theoretischen Informatik ältester Zweig der Informatik (lange vor dem ersten Computer) Mathematische Prinzipien: Abstraktion ermöglicht verallgemeinerte Aussagen und breit einsetzbare Verfahren, Ergebnisse und Verfahren oft nicht sofort praktisch anwendbar, müssen auf spezielle Situationen angepasst werden. Beweisbarkeit erfordert präzise Modellierung der Aufgabe Nachweis der Korrektheit von Hard- und Software (Tests können dies nicht!) Wissen aus der theoretischen Informatik veraltet über viele Jahre kaum Grundlage für Verständnis von (schnelllebigem) Spezialwissen, z.b. konkrete Programmiersprachen, Domain-spezifische Sprachen, Transformationen verschiedener Darstellungen 4

5 Aus der Modulbeschreibung 3010 Theoretische Informatik: Automaten und formale Sprachen Arbeitsaufwand: Präsenzzeit 60 h (= 2 h V + 2 h Ü je Woche) Vor- und Nachbereitungszeit 90 h ( 6 h je Woche) Voraussetzungen: anwendungsbereite Kenntnisse auf den Gebieten Modellierung, Logik, Algorithmen und Datenstrukturen, Aufwandsabschätzungen Lernziele: Die Studierenden sind in der Lage, wichtige Klassen formaler Sprachen als Grundlage von Programmierund Beschreibungssprachen einzuordnen und kennen die wesentlichen Eigenschaften der Sprachklassen. Sie kennen die entsprechenden abstrakten Maschinenmodelle und Algorithmen und können sie zur Darstellung und Lösung praktischer Aufgabenstellungen einsetzen. Die Studierenden wissen, dass nicht jedes formal darstellbare Problem algorithmisch lösbar ist. 5

6 Inhalt der Lehrveranstaltung Formale Sprachen Wiederholung: Alphabet, Wort, Sprache, Operationen darauf reguläre Ausdrücke Wiederholung: Wortersetzung Grammatiken, Chomsky-Hierarchie Maschinenmodelle Endliche Automaten Kellerautomaten Turing-Maschinen Berechenbarkeit (Ausblick auf Master-Modul) berechenbare Funktionen Berechnungsmodelle These von Church algorithmische Entscheidbarkeit / Unentscheidbarkeit Komplexität (Ausblick auf Master-Modul) jeweils mit vielen Beispielen 6

7 Literatur Uwe Schöning: Theoretische Informatik - kurzgefasst (Spektrum 2001) John E. Hopcroft, Jeffrey D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie (Addison-Wesley 1990) Dirk W. Hoffmann: Theoretische Informatik (Hanser 2009) Rolf Socher: Theoretische Grundlagen der Informatik (Hanser 2008) Ulrich Hedtstück: Einführung in die Theoretische Informatik (Oldenbourg 2007) Gottfried Vossen, Kurt-Ulrich Witt: Grundkurs Theoretische Informatik (Vieweg 2006) Alexander Asteroth, Christel Baier: Theoretische Informatik. Eine Einführung in Berechenbarkeit, Komplexität und formale Sprachen (Pearson 2002) Renate Winter: Theoretische Informatik (Oldenbourg 2002) 7

8 Lehrveranstaltungen Folien, Übungsserien, aktuelle Informationen unter Vorlesung (2 h / Woche) Selbststudium (Hausaufgaben): (6 h / Woche) schriftliche Übungsserien (ca. zu jeder Vorlesung) Besprechung in der folgenden Übung Autotool jeweils nach der Vorlesung (ca. eine Woche Bearbeitungszeit) Übung (2 Gruppen) (2 h / Woche) alle Folien, Aufgaben, Lösungen mitbringen! Besprechung der Übungsserien (Vorrechnen), Fragen zum aktuellen Vorlesungsinhalt 8

9 Prüfung Prüfungsvorleistungen: 50% aller Punkte für Autotool-Pflichtaufgaben und 3 Vorrechen-Punkte (Übungen) Prüfung: Klausur 90 min Aufgabentypen ähnlich Übungsaufgaben (Hilfsmittel: beidseiting handbeschriebenes A4-Blatt) 9

10 Formale Sprachen Syntax natürlicher Sprachen: Rechtschreibung: korrekte Wörter Grammatik: Aufbau korrekter Sätze Definition von Programmiersprachen: Syntax Form der Sprachelemente Semantik Bedeutung der Sprachelemente und -strukturen Pragmatik Regeln zur zweckmäßigen Anwendung Syntax von Programmiersprachen: Schlüsselwörter, Bezeichner, Darstellung von Zahlen,... Programmstrukturen: Form der Ausdrücke, Anweisungen, Deklarationen,... 10

11 Formale Sprachen: Beispiele Programmiersprachen (Java): while (b!= 0) { if (a > b) a = a - b; else b = b - a; } Regeln für korrekte Syntax (EBNF): Statement ::=... IfStmt WhileStmt... ; WhileStmt ::= "while" "(" Expr ")" Statement; IfStmt ::= "if" "(" Expr ")" Statement ( "else" Statement )?; Expr ::=... Domain-spezifische Sprachen, z.b. Autotool-Lösungen zu AL-Modell listtofm[(x,true),(y,false),(z,false)] Regeln für korrekte Syntax (EBNF): belegung ::= "listtofm" "[" var-wert-ps "]" var-wert-ps ::= "" var-wert-paar var-wert-paar "," var-wert-ps var-wert-paar ::= "(" var-name, wert ")" wert ::= "True" "False" var-name ::=... Graphische Sprachen, z.b

12 Maschinenmodell: endlicher Automat Beschreibung des dynamischen Verhaltens von Systemen Modellierung von Abläufen (Zustandsübergangssysteme) Beispiele: Bedienoperationen an Geräten oder Software Schaltfolgen von Ampelanlagen Steuerung von Produktionsanlagen Ablauf von (Geschäfts-)Prozessen 12

13 Beispiel: (Pool-)Einlass mit Karte Automat definiert durch Zustände: gesperrt, frei Startzustand: gesperrt Aktionen (Eingabesymbole): Karte (anlegen), Durchgehen, Timeout Zustandsübergänge: (gesperrt, Karte) frei (frei, Karte) frei (frei, Durchgehen) gesperrt (frei, Timeout) gesperrt definiert mögliche (erlaubte) Folgen von Aktionen Diese Folgen lassen sich durch reguläre Ausdrücke darstellen: ( Karte Karte ( Durchgehen + Timeout )) 13

14 Anwendung bei der Übersetzung von Programmen Übersetzung von Quell- in Zielsprache (z.b. C, Java in Maschinen- oder Byte-Code) meist in zwei Phasen über eine (gemeinsame) Abstraktion: Quellcode Zwischendarstellung (oft Baumstruktur) Code in Zielsprache Analyse-Phase (Front-End) Synthese-Phase (Back-End) 14

15 Analyse-Phase Quellcode Scanner Folge von Token Parser Syntaxbaum lexikalische Analyse (Scanner) lineare Analyse des Quelltextes, Aufteilung in Einheiten (Token) z.b. Schlüsselwörter, Bezeichner, Zahlen reguläre Sprachen, endliche Automaten Syntaxnalyse (Parser) hierarchische Struktur des Quelltextes z.b. Ausdrücke, Verzweigungen, Schleifen kontextfreie Sprachen, Kellerautomaten semantische Analyse Annotationen im Syntaxbaum, z.b. Typprüfungen 15

16 Einsatz ähnlicher Transformations- und Analyse-Methoden Compiler für Programmiersprachen (z. B. Java Bytecode) Interpreter für Programmiersprachen (z. B. Java-Bytecode) Übersetzung von Daten zwischen verschiedenen Formaten z. B. LilyPond ( übersetzt \repeat volta 3 { c e g e } \alternative { { c 2 g } { g 1 } } u. A. in Verarbeitung von Domain-spezifischen Sprachen Textformatierung Dokumentbeschreibungssprachen kontextabhängige Hilfe in Entwicklungsumgebungen statische Analyse zur Fehlersuche in Programmen graphische Editoren (z.b. für UML-Diagramme) mit automatischer Programmgenerierung 16

17 Berechenbarkeit / Entscheidbarkeit Halteproblem: Kann ein (Test-)programm U existieren, welches für jedes beliebige (Dienst-)Programm P (Eingabe als Quelltext) entscheidet, ob P nach endlich vielen Schritten anhält? Antwort (Herleitung später): Nein Folgerungen: Alle Versuche, ein solches Programm zu schreiben, müssen fehlschlagen. Sinnvoll ist jedoch die Suche nach Verfahren, die für eine möglichst große Teilmenge aller (Dienst-)Programme P entscheiden, ob P nach endlich vielen Schritten anhält. Entwickler von P (Dienstleister) muss nachweisen, dass sein Programm P nach endlich vielen Schritten anhält. 17

18 Komplexität Beispiel Primzahltest Aufgabe: Ist eine gegebene Zahl n eine Primzahl? Instanz der Aufgabe: Ist eine Primzahl? lösbar durch den Algorithmus: 1. Für alle i {2,..., n}: Test: Ist n durch i teilbar? ja: Ende mit Ausgabe n ist nicht prim. nein: weiter (mit Test für i + 1) 2. Ausgabe: n ist prim. Dieser Test ist für große Zahlen aufwendig. Geht es besser? Was bedeutet aufwendig und besser? Wie aufwendig ist eine Berechnung? Wie aufwendig ist die Lösung einer Aufgabe? 18

19 Wiederholung: Alphabet, Wort, Sprache Für jede Menge A heißt A n = A A }{{} n = {w 1 w n i : w i A} Menge aller Wörter der Länge n über A (n-tupel, Vektoren, Folgen, Listen, Zeichenketten) A = {n N} An Menge aller Wörter über A (endliche Folgen, Listen, Zeichenketten) A 0 = {ε} Alphabet (endliche) Menge A von Symbolen mit leerem Wort ε Wort endliche Folge von Symbolen w = w 1 w n mit i {1,..., n} : w i A Länge eines Wortes w = Anzahl der Symbole in w Anzahl der Vorkommen eines Symboles in einem Wort w a = Anzahl der a in w (für a A) Sprache Menge von Wörtern L A 19

20 Beispiele Alphabet A = {0, 1} Wörter A = {0, 1} : Menge aller Binärwörter Sprachen A, z.b. {w {0, 1} w 1 0} Menge aller Binärzahlen ohne führende Nullen {w {0, 1} w 1 0 w w 1 = w w = 0} Menge aller Binärdarstellungen durch 4 teilbarer Zahlen ohne führende Nullen Alphabet A = {a, b} Wörter A = {a, b} : Menge aller Wörter, die höchstens die Buchstaben a und b enthalten Sprachen A, z.b. {a, b} {a} = {ε, a, aa, aaa,...} {w {a, b} w 1 = a w w = a} = {a, aa, aaa, aba, aaaa, abaa, aaba, abba,...} 20

21 Beispiele für Sprachen Menge aller englischen Wörter L 1 {a,..., z} Menge aller deutschen Wörter L 2 {a,..., z, ß,ä,ö,ü} Menge aller möglichen DNA L 3 {A, T, G, C} Menge aller natürlichen Zahlen in Dezimaldarstellung L 4 {0,..., 9} (evtl. mit führenden Nullen) Menge aller natürlichen Zahlen in Binärdarstellung (Bitfolgen beliebiger Länge) L 5 {0, 1} Menge aller aussagenlogischen Formeln in AL({p, q, r}) L 6 {p, q, r, t, f,,,,,, (, )}, Menge aller arithmetischen Ausdrücke über Z (ohne Variablen) L 7 {0,..., 9, +,,, /, (, )}, Menge aller deutschen Sätze L 8 (L 2 {.,,,!,?, (, ), }) Wie lassen sich unendliche Sprachen endlich darstellen? (Voraussetzung für maschinelle Verarbeitung) verschiedene Darstellungen später in dieser LV 21

22 Darstellung von Wörtern extensional durch Angabe der Symbole in ihrer Reihenfolge Beispiele: u = 321, v = abababababa, w = w 1 w 4 mit w 1 = w 2 = w 3 = a, w 4 = b intensional durch Angabe einer Eigenschaft, die für jeden Index i das i-te Symbol eindeutig bestimmt. Beispiele: u {0,..., 4} 3 mit i {1,..., 3} : u i = 4 i, { v {a, b} 11 a falls i 2N + 1 mit i {1,..., 11} : v i = b sonst w {a, b} 4 mit w 4 = b i {1,..., 3} : w i = a 22

23 Darstellung von Sprachen extensional durch Angabe der Elemente (nur Beschreibung endlicher Sprachen möglich) Beispiele: {ε, a, aa, aaa}, {b, ba, baa, baaa}, {a, b, aa, bb, aaa, bbb} intensional durch Angabe einer Eigenschaft, die genau alle Wörter der Sprache haben. (auch Beschreibung unendlicher Sprachen möglich) Beispiele: {w {a} w 3}, {w {a, b} w 1 = b i 2 : w i = a}, {w {a, b} i 2 : w i = w 1 } später in dieser LV noch mehr Formalismen zur endlichen Beschreibung von eingeschränkten Sprachklassen (reguläre Ausdrücke, Grammatiken, Automaten,... ) 23

24 Operationen auf Wörtern Operationen auf Wörtern u, v A : Verkettung : A A A, wobei Spiegelung u A v A i {1,..., u + v } : { ui falls i u (u v) i = sonst v i u Beispiel: anne marie = annemarie assoziativ, nicht kommutativ, ε ist neutral Damit ist (A,, ε) ein Monoid. R : A A, wobei Fakt u A i {1,..., u } : u R i Beispiel: marie R = eiram, anna R = anna u A heißt Palindrom gdw. u R = u Für jedes Wort u A gilt ( u R) R = u. = u u +1 i Für je zwei beliebige Wörter u, v A gilt (u v) R = v R u R. 24

25 Anwendung: Java-Standardbibliothek Rotieren einer Liste in java.util.collections: x 0,..., x mid 1, x mid,..., x size durch v u = (u }{{}}{{} R v R ) R u v private static void rotate2(list<?> list, int distance) { int size = list.size(); if (size == 0) return; int mid = -distance % size; if (mid < 0) mid += size; if (mid == 0) return; reverse(list.sublist(0, mid)); reverse(list.sublist(mid, size)); reverse(list); } 25

26 Wiederholung: Relationen zwischen Wörtern Präfix A A : u A v A : ((u v) ( w A (u w = v))) z.b. tom tomate (mit w = ate) Postfix (Suffix): u A v A : (u Postfix von v ( w A (w u = v))) z.b. enten ist Postfix von studenten (mit w = stud) Infix (Faktor, zusammenhängendes Teilwort): u A v A : (u Infix von v ( w A w A : (w u w = v))) z.b. oma ist Infix von tomate (mit w = t und w = te) Präfix-, Postfix- und Infixrelation sind Halbordnungen (aber keine totalen Ordnungen). 26

27 Mehr Relationen auf Wörtern Jede totale Ordnung < auf dem Alphabet A definiert totale Ordnungen auf A : lexikographische Ordnung auf A ( lex A A ): u, v A : u lex v gdw. 1. u v oder 2. w A a, b A : a < b wa u wb v quasi-lexikographische Ordnung auf A ( qlex A A ): u, v A : u qlex v gdw. 1. u v oder 2. u = v u lex v Beispiele: für A = {a, b} mit a < b ab aba, ab lex aba, ab qlex aba abab abba, aber abab lex abba und abab qlex abba, aaa lex ab, aber aaa qlex ab ab lex aaba, aber ab qlex aaba 27

28 Wiederholung: Sprachen als Mengen Sprachen L A sind Mengen von Wörtern Eigenschaften: leer, endlich, abzählbar, überabzählbar Mengenrelationen auf Sprachen: L L gdw. w A : w L w L gilt L = L gdw. w A : w L w L gilt Mengenoperationen auf Sprachen: L L = {w w L w L } L L = {w w L w L } L \ L = {w w L w L } L L = (L \ L ) (L \ L) Komplement einer Sprache L A : L = A \ L Beispiel: L = A n L = A n n 3N n {3i+1 i N} n {3i+2 i N} A n 28

29 Weitere Operationen auf Sprachen Verkettung von Sprachen: L 1 L 2 = {u v u L 1 v L 2 } Beispiel: L 1 = {111, 1, 10} L 2 = {00, 0} L 1 L 2 = {111, 1, 10} {00, 0} = {1110, 11100, 10, 100, 1000} Spiegelung L R = {w R w L} Beispiel: L = {a, ab, aba, abab} L R = {a, ba, aba, baba} 29

30 Iterierte Verkettung für Sprachen L A L 0 = {ε} n N : L n+1 = L n L = L } {{ L } n+1 mal L = L n L + = L n n N für Wörter u A : Beispiele: u n = u } {{ u } n mal n N\{0} A, u = {u} = {u n n N} A u + = u \ {ε} = {u} + = {u n n N \ {0}} A (101) 3 = und = a = {a i i N} = {ε, a, aa, aaa,...} (ab) = {(ab) i i N} = {ε, ab, abab, ababab,...} 30

31 Reguläre Ausdrücke Syntax Die Menge RegExp(A) aller regulären Ausdrücke über einem Alphabet A ist (induktiv) definiert durch: IA RegExp(A), ε RegExp(A) und für jedes Symbol a A gilt a RegExp(A) IS für alle E RegExp(A) und F RegExp(A) gilt (E + F ), EF, (E) RegExp(A). Beispiele: ε + a, ε +, (a + ), ε + ((ab) a) dieselbe Definition kürzer: RegExp(A) = Term(Σ F, ) für die Signatur Σ F = {(, 0), (ε, 0), (, 1), (+, 2), (, 2)} {(a, 0) a A} (Baumdarstellung) 31

32 Beispiele (ohne überflüssige Klammern) Für A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} gilt 0+( )( ) RegExp(A) Für A = {0, 1} gilt (1 + ε) + (10) RegExp(A) (0 + 11) + ((0 + (1) )0) RegExp(A) Oft werden A E + = EE E n = E E }{{} E n = n mal E } {{ E } n mal für n N als Kurzbezeichnungen verwendet. 32

33 Reguläre Ausdrücke Semantik Jeder reguläre Ausdruck E RegExp(A) repräsentiert eine Sprache L(E) A. L( ) = L(ε) = {ε} a A : L(a) = {a} E, F RegExp(A) : L(E + F ) = L(E) L(F ) E, F RegExp(A) : L(EF ) = L(E) L(F ) E, F RegExp(A) : L(E ) = (L(E)) Eine Sprache L A heißt genau dann regulär, wenn ein regulärer Ausdruck E RegExp(A) mit L = L(E) existiert. Beispiel: Die Menge L aller Dezimaldarstellungen natürlicher Zahlen ist regulär wegen L = L (0 + ( )( ) ) 33

34 Beispiele Für A = {a, b} gilt L(ab ) = {a, ab, abb, abbb, abbbb,...} = {ab i i N} L((ab) ) = {ε, ab, abab, ababab,...} = {(ab) i i N} L((a + b) ) = {a, b} L(a b ) = {u v u a v b } L((a b ) ) = {a, b} L((a + b) aba) = {u aba u A } Reguläre Ausdrücke ermöglichen eine endliche Darstellung unendlicher Sprachen. 34

35 Äquivalenz regulärer Ausdrücke Zwei reguläre Ausdrücke E, F RegExp(A) heißen genau dann äquivalent, wenn L(E) = L(F ) gilt. Beispiele: (a + b), (a + b ) und a (ba ) sind äquivalent ab und (ab) sind nicht äquivalent ( ) und (11 + 0) sind... Fakt Die Äquivalenz regulärer Ausdrücke ist eine Äquivalenzrelation. 35

36 Was bisher geschah (Wiederholung) Wörter w A Operationen: Spiegelung R, Verkettung Palindrome Relationen: Präfix, Infix, Postfix, lexikographische, quasi-lexikographische Ordnung Sprachen L A (L 2 (A ) ) Relationen: Mengenrelationen, = Operationen: Mengenoperationen,,, \ Verkettung, iterierte Verkettung, Spiegelung R Reguläre Ausdrücke endliche Darstellung auch unendlicher Sprachen Syntax: RegExp(A) = Term(Σ F, ) (Baumstruktur) für Σ F = {(, 0), (ε, 0), (, 1), (, 2), (+, 2)} {(a, 0) a A} Semantik des regulären Ausdrucks E RegExp(A): Sprache L(E) A 36

37 Interessante Fragen für Sprachen Ist ein gegebenes Wort w in der Sprache L enthalten? (heißt oft Wortproblem) Enthält die Sprache L nur endlich viele Wörter? Gilt L 1 L 2 für zwei gegebene Sprachen L 1 und L 2? Gilt L 1 = L 2 für zwei gegebene Sprachen L 1 und L 2? Fragen zur Regularität: Lässt sich die Sprache L durch einen regulären Ausdruck definieren? (Gilt E RegExp(A) : L = L(E)?) Woran erkennt man, ob sich eine Sprache durch einen regulären Ausdruck definieren lässt? Gilt L(E) = für einen gegebenen regulären Ausdruck E? Gilt L(E) = A für einen gegebenen regulären Ausdruck E? Ist ein gegebenes Wort w in der durch den regulären Ausdruck E definierten Sprache L(E) enthalten? Alle Antworten sind für endliche Sprachen einfach, aber für unendliche Sprachen meist schwierig. 37

38 Wortersetzungssysteme Alphabet A Wortersetzungsregel (l, r) A A (geschrieben l r) Wortersetzungssystem endliche Menge von Wortersetzungsregeln Beispiele: Regel ba ab, Wortersetzungssystem S = {a ab, ba c, abc ε} 38

39 Anwendung von Wortersetzungsregeln Eine Regel l r ist auf ein Wort w A anwendbar, falls l ein Infix von w ist. Beispiel: Regel ma ε ist auf tomate anwendbar, u = to, v = te, auf am, motte und meta nicht anwendbar. Eine Anwendung der Regel l r auf ein Wort w = u l v ergibt das Wort u r v. (Ersetzung des Teilwortes l durch r) Beispiel: ab a angewendet auf baababa = u l v mit u = ba und v = aba ergibt baaaba mit u = baab und v = a ergibt baabaa 39

40 Ableitungsschritt Ableitungsschritt (u, (l r), p, v) im Wortersetzungssystem S mit Ausgangswort u, auf u anwendbare Regel l r aus S, Position p {1,..., u } im Wort u, an der das Teilwort l beginnt v ist das nach Anwendung der Regel l r an Position p auf u entstandene Wort. Beispiel: S = {ab ba, a b}, u = aba mögliche Ableitungsschritte in S (aba, (ab ba), 1, baa) (aba, (a b), 3, abb) (aba, (a b), 1, bba) 40

41 Ein-Schritt-Ableitungsrelation Jedes Wortersetzungssystem S A A definiert eine Relation S A A, wobei genau dann u S v gilt, wenn ein Ableitungsschritt (u, (l r), p, v) mit (l r) S existiert. Beispiel: Für S = {ab ba, a b} gilt aba S baa wegen (aba, (ab ba), 1, baa) aba S bba wegen (aba, (a b), 1, bba) aba S abb wegen (aba, (a b), 3, abb) aba S bbb 41

42 Ableitungen Eine Folge von Ableitungsschritten (u, (l 1 r 1 ), p 1, u 2 ), (u 2, (l 2 r 2 ), p 2, u 3 ),, (u n 1, (l n 1 r n 1, p n 1, v) im Wortersetzungssystem S heißt Ableitung von u nach v in S. Beispiel: S = {ab ba, a b}, u = aba Folge von Ableitungsschritten (aba, (ab ba), 1, baa), (baa, (a b), 3, bab), (bab, (a b), 2, bbb) aba ab ba baa a b bab a b bbb Länge der Ableitung = Anzahl der Ableitungsschritte In jedem System S existiert für jedes u A die leere Ableitung (der Länge 0) von u nach u. 42

43 Beispiele S 1 = { } mit u = und v = Was wird hier berechnet? Anderes Wortersetzungssystem mit derselben Wirkung? S 2 = {11 1, 00 1, 01 0, 10 0} und u = Wirkung verschiedener Ableitungreihenfolgen? S 3 = {c aca, c bcb, c a, c b, c ε} und u = c Menge aller in S 3 aus c ableitbaren Wörter, die kein c enthalten? 43

44 Wiederholung: Hüllen binärer Relationen R I M heißt reflexive Hülle von R M 2 (mit Identität I M = {(x, x) x M}) R R 1 heißt symmetrische Hülle von R M 2 (mit inverser Relation R 1 = {(y, x) (x, y) R}) Wiederholung: Verkettung der Relationen R M 2 und S M 2 R S = {(x, z) M 2 y M : (x, y) R (y, z) S} Iterierte Verkettung von R M 2 mit sich selbst: R 0 = I M R n+1 = R n R R + = R n M 2 n N\{0} R = R n M 2 n N transitive Hülle reflexiv-transitive Hülle 44

45 Ersetzungsrelation Jedes Wortersetzungssystem S (A A ) definiert die Ersetzungsrelation S (A A ), wobei genau dann u S v gilt, wenn eine Ableitung von u nach v existiert. Beispiel: S = {a aa}, für jedes n 1 gilt ba S b a a }{{} n wegen ba S baa S baaa S S b a a }{{} n b S b, aber für kein Wort w b gilt b S w ( S ist die reflexive transitive Hülle von S) 45

46 Modellierungsbeispiel: lineares Solitaire Startkonfiguration : n Spielsteine auf n benachbarten Spielfeldern. Spielzug : Springe mit einem Stein über einen benachbarten Stein auf das nächste freie Feld und entferne den übersprungenen Stein. Spielende, wenn kein Zug mehr möglich ist. Modellierung als Wortersetzungssystem: Konfiguration: w {, } ( - Stein, - leer, - Rand) Startkonfiguration: n zulässige Spielzüge:,,,... Fragen: Welche Konfigurationen / Endkonfigurationen sind von der Startkonfiguration erreichbar? Wieviele Züge sind mindestens / höchstens notwendig, um eine Endkonfiguration zu erreichen? Jedes Paar (Wortersetzungssystem, Anfangskonfiguration) definiert die Menge (Sprache) aller erreichbaren Konfigurationen. 46

47 Sprachen aus Wortersetzungssystemen Jedes Paar (Wortersetzungssystem S, Anfangswort w) über einem Alphabet A definiert die Sprache L(S, w) = {v A w S v} (alle Wörter v, die von w durch eine Ableitung in S erreicht werden) B: S = {c aca, c bcb, c ε}, w = c L(S, w) = {w c w R } (Menge aller Palindrome über {a, b, c}, die höchstens an der mittleren Position ein c enthalten) Jedes Paar (Wortersetzungssystem S, Menge M von Wörtern) über einem Alphabet A definiert die Sprache L(S, M) = L(S, w) w M (alle Wörter v, die von irgendeinem w M durch eine Ableitung in S erreicht werden) 47

48 Ausdrucksstärke von Wortersetzungssystemen Wortersetzungssysteme ermöglichen eine endliche Darstellung unendlicher Sprachen. (als Erzeugungsvorschrift für alle Wörter der Sprache) Beispiele: L ({ε aaa}, ε) = {a 3n n N} = (aaa) L ({2 020, 2 121}, 2) = {w2w R w {0, 1} } können zur Modellierung von Zuständen und Übergängen dazwischen verwendet werden z.b. Spiele, Ausführung von Programmen, Programmverifikation Beispiel: Lineares Solitaire können Berechnungen simulieren (Bestimmung von erreichbaren Wörtern ohne Nachfolger) Beispiel: ε L ({ }, ) 48

49 Wortproblem für durch Wortersetzungssysteme definierte Sprachen Ist ein gegebenes Wort w in der Sprache L(S, u) enthalten? alternative Formulierung: Gilt u S w? Ableitungsrelation S als (unendlicher) gerichteter Graph G S = (V, E) mit Knoten: V = A Kanten: E = {(u, v) u S v} u S w gilt genau dann, wenn in G S ein Pfad von u nach w existiert. Beispiel: (Tafel) S = {ab ba}, abab S baba, aber abab S abaa, abab S aabb 49

50 Sprachen aus Wortersetzungssystemen Lösung des Wortproblems und anderer Fragen zu Sprachen ist für endliche Sprachen einfach, für unendliche Sprachen oft nicht. Darstellung der Sprache durch ein Wortersetzungssystem kann helfen. Lösung des Wortproblem w L(S, u) durch Standardverfahren: Suche eines Pfades von u nach w im Ableitungsgraphen des Wortersetzungssystems S Problem: Pfadsuche ist Standardverfahren für endliche Graphen. Ableitungsgraphen von Wortersetzungssystemen sind meist unendlich. Standardverfahren ist in Spezialfällen anwendbar, wenn Suche in einem endlichen Teilgraphen genügt 50

51 Nichtverlängernde Wortersetzungssysteme Ein Wortersetzungssystem S heißt genau dann nichtverlängernd, wenn für jede Regel (l r) S gilt: l r. Wortproblem (L, w): Eingabe : Sprache L A, Wort w A Frage: Gilt w L? Ausgabe ja oder nein Beispiel: S = {ab ba, ac a}, u = abcac, v = aacb Satz Es gibt einen Algorithmus, welcher für für jedes nichtverlängernde Wortersetzungssystem S A A und beliebige Wörter u, w A das Wortproblem (L(S, u), w) in endlicher Zeit korrekt löst. Idee: Suche im endlichen Teilgraphen aller Wörter v A mit v u 51

52 Nichtverkürzende Wortersetzungssysteme Ein Wortersetzungssystem S heißt genau dann nichtverkürzend, wenn für jede Regel (l r) S gilt: l r. Beispiel: S = {a ba, b a}, u = ba, w = aaba, w = abab Satz Es gibt einen Algorithmus, welcher für für jedes nichtverkürzende Wortersetzungssystem S A A und beliebige Wörter u, w A das Wortproblem (L(S, u), w) in endlicher Zeit korrekt löst. Idee: Suche im endlichen Teilgraphen aller Wörter v A mit u v w 52

53 Wortersetzungssysteme mit verlängernden und verkürzenden Regeln Beispiel: Gilt c S d? S = c baaca, c aacba, c bbcabb, aca d, bcb d, ada d, bdb d Für Wortersetzungssysteme S mit verlängernden und verkürzenden Regeln existiert im Allgemeinen kein Algorithmus, der für beliebige Wörter u, w A feststellt, ob u s w gilt. 53

54 Was bisher geschah Alphabet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen interessante Fragen für Sprachen und Wörter Reguläre Ausdrücke Syntax, Semantik endliche Darstellung evtl. unendlicher Sprachen Wortersetzungssysteme P A A Wortersetzungssregel l r mit l, r A Ableitung in P: endliche Folge von Ersetzungsschritten Ausdrucksstärke: Darstellung von (evtl. unendlichen) Sprachen Modellierung von Zustandsübergängen Ausführen von Berechnungen 54

55 Wiederholung Wortersetzungssysteme A = {s, w}, R = {ww s, ss s, ws w, sw w} (nichtverlängernd) Ist ww aus wsww ableitbar? (Gilt wsww R ww?) L(R, wsww) ={wsww, www, wss, sw, ws, w} A = {b, r, w}, S = {wr rw, br rb, bw wb} (nichtverlängernd und nichtverkürzend) Ist wbbr aus brwb ableitbar? L(S, brwb) ={brwb, rbwb, rwbb} A = {a, b, c}, T = {a ba, b cc} (nichtverkürzend) Ist aabbcc aus a ableitbar? L(T, a) =L ((b + cc) a) 55

56 Wiederholung: abzählbare Mengen (Mathematik 1. Semester) Eine Menge M heißt genau dann abzählbar, wenn sie höchstens so mächtig wie N ist. (also eine surjektive Funktion f : N M existiert) Mit dem ersten Diagonalverfahren von Cantor lässt sich z.b. zeigen: Z und Q sind abzählbar. Für jedes endliche Alphabet A ist die Menge A aller Wörter über A abzählbar. Für jedes endliche Alphabet A ist jede Sprache L A abzählbar. Mengen, die nicht abzählbar sind, heißen überabzählbar. 56

57 Beispiele überabzählbarer Mengen Mit dem zweiten Diagonalverfahren von Cantor lässt sich zeigen: R ist überabzählbar (mächtiger als N). (Es gibt überabzählbar viele reelle Zahlen.) [0, 1] R ist überabzählbar. (Intervall [0, 1] enthält überabzählbar viele reelle Zahlen.) 2 N (Menge aller Mengen natürlicher Zahlen) ist mächtiger als N. (Überabzählbarkeit der Menge 2 N ) Es gibt überabzählbar viele Mengen natürlicher Zahlen. 2 {0,1} Menge aller Sprachen L {0, 1} ist mächtiger als {0, 1}. (Es gibt überabzählbar viele Sprachen über dem Alphabet {0, 1}.) 2 (A ) ist für beliebiges endliches Alphabet A mächtiger als A (Für jedes nichtleere endliche Alphabet A ist die Menge aller Sprachen über A überabzählbar. ) 57

58 Ist jede Sprache regulär? Existiert für jedes endliche Alphabet A zu jeder Sprache L A ein regulärer Ausdruck E mit L = L(E)? Nein (Gegenbeispiel mit Nachweis später) Begründung: 1. Wieviele Sprachen L A gibt es? (Mächtigkeit von 2 (A ) ) überabzählbar viele 2. Wieviele reguläre Ausdrücke über dem endlichen Alphabet A gibt es? abzählbar viele, weil Alphabet A = A {, ε, +,, (, ), } endlich Menge (A ) aller Wörter über A abzählbar jeder reguläre Ausdruck über A ist ein Wort aus (A ) (endliche Beschreibung) Menge aller regulären Ausdrücke über A ist Teilmenge der abzählbaren Menge (A ), also selbst abzählbar Damit existieren sogar sehr viel mehr (überabzählbar viele) nicht reguläre Sprachen. 58

59 Lässt sich jede Sprache durch ein Wortersetzungssystem erzeugen? Existiert für jedes endliche Alphabet A zu jeder Sprache L A ein Paar (S, u) aus Wortersetzungssystem S und Wort u A mit L = L(S, u)? Nein (Gegenbeispiel später) Begründung: 1. Wieviele Sprachen L A gibt es? (Mächtigkeit von 2 (A ) ) überabzählbar viele 2. Wieviele Paare (Wortersetzungssysteme, Startwort) über dem endlichen Alphabet A gibt es? abzählbar viele, weil Alphabet A = A {(, ),,, {, },, ε} endlich Menge (A ) aller Wörter über A abzählbar jedes Paar (Wortersetzungssystem, Wort) über A ist ein Wort aus (A ) (endliche Beschreibung) Menge aller Paare (Wortersetzungssystem, Wort) über A ist Teilmenge der abzählbaren Menge (A ), also selbst abzählbar Also existieren überabzählbar viele Sprachen, die nicht durch Wortersetzungssysteme erzeugt werden können. 59

60 Ableitbare Wörter über Teilalphabet Beispiele: A = {a, b, c}, S = c aca, c bcb, c ε, c a, c b L(S, c) = {u d u R u {a, b} d {a, b, c, ε}} Menge aller Wörter in L(S, c) {a, b} : alle Palindrome in {a, b} c ist Hilfssymbol zur Erzeugung der Palindrome 60

61 Natürliche Sprache Wortersetzungssystem S enthält die Regeln: Satz Subjekt Prädikat. Subjekt martikel msubstantiv Subjekt wartikel wsubstantiv martikel Der wartikel Die msubstantiv Hund wsubstantiv Sonne Prädikat bellt Prädikat scheint Alphabet A = {Der, Die, Hund, Sonne, scheint, bellt,.} { Satz,Subjekt, Prädikat, wartikel, martikel, wsubstantiv, msubstantiv} Ableitbare Wörter in L(S, Satz ) ohne Hilfssymbole aus der Menge {Satz, Subjekt, Prädikat, martikel, wartikel, msubstantiv, wsubstantiv}: Menge korrekter deutscher Sätze (dieser einfachen Form mit ausschließlich den Worten Der, Die, Hund, Sonne, scheint, bellt). 61

62 Aussagenlogische Formeln Wortersetzungssystem S enthält die Regeln Formel Variable Formel Konstante Formel ( Formel ) Formel ( Formel Formel ) Formel ( Formel Formel ) Variable p Variable q Konstante t Konstante f Alphabet A = {t, f, p, q,,,, (, )} { Formel,Variable, Konstante} Formel S (Formel Formel) 2 S (Formel f) S ((p ( q)) f) Wörter in L(S, Formel ) {t, f, p, q,,,, (, )} : Menge AL({p, q}) aller aussagenlogischen Formeln mit Aussagenvariablen aus der Menge {p, q} 62

63 Aussagenlogische DNF Wortersetzungssystem S enthält die Regeln DNF Minterm DNF DNF Minterm Minterm Literal Minterm Minterm Literal Literal Variable Literal Variable Variable p Variable q Alphabet A = {p, q,,, } { DNF, Minterm, Literal,Variable} DNF S Minterm DNF 3 S p DNF S p q p q Wörter in L(S, DNF ) {p, q,,, } : Menge AL({p, q}) aller disjunktiven Normalformen mit Aussagenvariablen aus der Menge {p, q} 63

64 Dezimaldarstellung natürlicher Zahlen Wortersetzungssystem S enthält die Regeln Zahl 0 Zahl 1Ziffernfolge. Zahl 9Ziffernfolge Ziffernfolge 0Ziffernfolge. Ziffernfolge 9Ziffernfolge Ziffernfolge ε Alphabet {0,..., 9} { Zahl, Ziffernfolge } Zahl S 3Ziffernfolge S 32Ziffernfolge S 327Ziffernfolge S 327 Wörter in L(S, Zahl ) {0,..., 9} : Menge aller Dezimaldarstellungen natürlicher Zahlen 64

65 Programmiersprachen Java-Syntax (Ausschnitt) in Backus-Naur Form (BNF) (John Backus, Peter Naur) <while statement>::=while(<expression>)<statement> <expression>::=<assignment expression> <assignment expression>::=<conditional expression> <assignment> <assignment>::=<left hand side><assignment operator><assignment expression> <left hand side>::=<expression name> <field access> <array access> <assignment operator>::= = *= /= %= += -= <<= >>= >>>= &= ^= = a r 1 r 2... r n statt mehrerer Regeln a r 1,..., a r n ::= statt (in ASCII darstellbar) Hilfssymbole markiert durch < und > 65

66 Definition Grammatik Grammatik G = (N, T, P, S) ist definiert durch Nichtterminalsymbole: endliche Menge N (Hilfssymbole) Terminalsymbole: endliche Menge T (Alphabet der erzeugten Sprache) Wortersetzungssystem: P (N T ) + (N T ) (Produktionen) Startsymbol S N Beispiel: G = (N, T, P, S) mit N = {S}, T = {0, 1}, { S 0S1 P = S ε } 66

67 Grammatiken: Beispiele G = (N, T, P, E) mit N = {E, F, G}, T = {(, ), a, +, } und E G, E E + G, G F, P = G G F, F a, F (E) G = (N, T, P, S) mit N = {S, A, B, C}, T = {a, b, c} S asbc, S abc, CB BC, P = ab ab, bb bb, bc bc, cc cc 67

68 Ableitungen in Grammatiken Ableitung in Grammatik G = (N, T, P, S): Ableitung im Ersetzungssystem P mit Startwort S Beispiel: G = (N, T, P, S) mit N = {S, A, B} T = {0, 1} S 0SA S 0A P = A 1 B A 68

69 Durch Grammatiken definierte Sprachen Grammatik G = (N, T, P, S) definiert die Sprache L(G) = {w T S P w} = L(P, S) T Beispiel: G = (N, T, P, S) mit N = {S, Z} definiert die Sprache L(G) =... T = {0, 1} S 1Z, S 0, P = Z 0Z, Z 1Z, Z ε 69

70 Äquivalenz von Grammatiken Zwei Grammatiken G 1 und G 2 heißen genau dann äquivalent, wenn L(G 1 ) = L(G 2 ) gilt. Beispiel: G 1 = (N 1, {0, 1}, P 1, S) mit N 1 = {S, A, B} und S 0SA S 0A P 1 = A 1 B A und G 2 = (N 2, {0, 1}, P 2, S ) mit N 2 = {S } und P 2 = { S 0S 1, S 01 } sind äquivalent wegen L(G 1 ) = L(G 2 ) =... Äquivalenz von Grammatiken ist eine Äquivalenzrelation. (ÜA) 70

71 Grammatiken mit ε-regeln ε-regel : Grammatik-Regel der Form l ε Beispiele: G 1 = ({A, B}, {0, 1}, P 1, A) mit P 1 = {A 1B0, B 1B0, B ε} ist äquivalent zu G 2 = ({A}, {0, 1}, P 2, A) mit P 2 = {A 1A0, A 10} (ohne ε-regel) G = ({A}, {0, 1}, P, A) mit P = {A 1A0, A ε} ist nicht äquivalent zu einer Grammatik ohne ε-regel 71

72 Chomsky-Hierarchie (Noam Chomsky) Eine Grammatik G = (N, T, P, S) ist vom Chomsky-Typ 0 immer, 1, falls für jede Regel (l r) P gilt: l r (monoton, kontextsensitiv) 2, falls Typ 1 und für jede Regel (l r) P gilt: l N (kontextfrei) 3, falls Typ 2 und für jede Regel (l r) P gilt: l N und r (T (T N)) (regulär) Eine Sprache L T heißt vom (Chomsky-)Typ i für i {0,..., 3}, falls eine Grammatik G vom Typ i mit L \ {ε} = L(G) existiert. L i bezeichnet die Menge aller Sprachen vom Typ i. Achtung: Es gibt Sprachen, die nicht durch eine Grammatik erzeugt werden können, also keinen Chomsky-Typ haben (Warum?) 72

73 Beispiele G = ({S}, {a, b}, P, S) mit P = {S asb, S ab, S a, S b} ist vom Typ 2 G = ({S}, {a, b}, P, S) mit P = {S asb, S a, S b, S ε} ist vom Typ 0 G = ({S, A, B}, {a, b}, P, S) mit P = {S aa, A ab, B bb, B b} ist vom Typ 3 G = ({A, B, C}, {a, b, c}, P, A) mit P = A aabc, A abc, CB BC, ab ab, bb bb, bc bc, cc cc ist vom Typ 1 definiert L(G) = {a n b n c n n N \ {0}} 73

74 Was bisher geschah: Formale Sprachen Alphabet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen reguläre Ausdrücke: Syntax, Semantik, Äquivalenz Wortersetzungssysteme Wortersetzungsregeln und -systeme Ableitungen, Ableitungsgraph durch Wortersetzungssysteme definierte Sprachen Wortproblem in Wortersetzungssystemen im Allgemeinen nicht algorithmisch lösbar, aber algorithmisch lösbar für nichtverlängernde Systeme nichtverkürzende Systeme Grammatiken Terminal-, Nichtterminalsymbole Ableitungen in Grammatiken durch Grammatiken definierte Sprachen Äquivalenz von Grammatiken Chomsky-Hierarchie für Grammatiken und Sprachen

75 Wiederholung: Chomsky-Hierarchie Eine Grammatik G = (N, T, P, S) ist vom Chomsky-Typ 0 immer, 1, falls für jede Regel (l r) P gilt: l r (monoton, kontextsensitiv) 2, falls Typ 1 und für jede Regel (l r) P gilt: l N (kontextfrei) 3, falls Typ 2 und für jede Regel (l r) P gilt: l N und r (T (T N)) (regulär) Eine Sprache L T heißt vom (Chomsky-)Typ i für i {0,..., 3}, falls eine Grammatik G vom Typ i mit L \ {ε} = L(G) existiert. L i bezeichnet die Menge aller Sprachen vom Typ i. Achtung: Es gibt Sprachen, die nicht durch eine Grammatik erzeugt werden können, also keinen Chomsky-Typ haben (Warum?)

76 Wortproblem für Typ-1-Sprachen gegeben : Grammatik G = (N, T, P, S) vom Chomsky-Typ 1, Wort w T Frage : Gilt w L(G)? Satz Es existiert ein Algorithmus, welcher für jede beliebige Eingabe (G, w), wobei T ein endliches Alphabet, w T und G eine monotone Grammatik (Chomsky-Typ 1) über T sind die Wahrheit der Aussage w L(G) korrekt beantwortet. (folgt aus entsprechendem Satz für nichtverkürzende Wortersetzungssysteme) demnächst spezielle (effizientere) Verfahren für Grammatiken vom Chomsky-Typ 2 und 3 74

77 Dyck-Sprache Klammerpaar ( und ) Dyck-Sprache: Menge aller korrekt geklammerten Ausdrücke erzeugt durch Grammatik Beispiele: ()(()()) L(G) ())( L(G) ε L(G) Achtung: G hat Chomsky-Typ 0 G = ({S}, {(, )}, P, S) mit S ε P = S SS S (S) Dyck-Sprache hat Chomsky-Typ 2 (Warum?) 75

78 Allgemeine Dyck-Sprachen Menge aller korrekt geklammerten Ausdrücke mit n Paaren von Klammern: ( i, ) i für i {1,..., n} erzeugt durch Grammatik G = ({S}, {( i, ) i i {1,..., n}}, P, S) mit { } S ε P = {S ( S SS i S) i i {1,..., n}} Symbole müssen nicht notwendig Klammern sein, z.b. aacdacababdbbcabdb Dyck-Sprache mit a statt ( 1, b statt ) 1, c statt ( 2 und d statt ) 2 76

79 Beispiel HTML mehrere Paare öffnender und schließender Klammern (Tags) <html> <head> <title> Theoretische Informatik </title> </head> <body> <h1> Theoretische Informatik </h1>... </body> </html> 77

80 Zustandsübergangssystem Münzschließfach fg b S O Z A S G fo bo bg O Aktionen: A aufschließen Z zuschließen O Tür öffnen S Tür schließen G Geld einwerfen Zustände : fg frei, Tür zu fo frei, Tür offen bo bezahlt, Tür offen bg bezahlt, Tür zu b belegt 78

81 Endliche Automaten Definition NFA (nondeterministic finite automaton) A = (X, Q, δ, I, F ) mit X endliches Alphabet, Q endliche Menge von Zuständen, δ Übergangsrelationen δ : X (Q Q), I Q Startzustände, F Q akzeptierende Zustände. 79

82 NFA: Beispiel A = (X, Q, δ, {0, 3}, {2, 3, 4}) mit X = {a, b, c} Q = {0, 1, 2, 3, 4} δ(a) = {(0, 0), (0, 1), (1, 3)} δ(b) = {(0, 0), (1, 2)} δ(c) = {(0, 3), (3, 3), (4, 1)} a,b 0 3 c a a b 1 2 c c 4 80

83 Eigenschaften endlicher Automaten NFA A = (X, Q, δ, I, F ) heißt vollständig, falls a X p Q : {q (p, q) δ(a)} 1 deterministisch (DFA), falls 1. I = 1 und 2. a X p Q : {q (p, q) δ(a)} 1 Beispiele: a,b b 0 1 a b a b b 0 1 a b 0 1 vollständig nicht vollständig vollständig nicht deterministisch deterministisch deterministisch a b 81

84 Wiederholung: zweistellige Relationen Verkettung der Relationen R M M und S M M: R S = {(a, b) c M : (a, c) R (c, b) S} Beispiel: M = {a, b, c} R = {(a, a), (b, c)} S = {(a, c), (c, b)} R S = {(a, c), (b, b)} S R = {(c, c)} 82

85 Darstellung als Graph als gerichteter Graph G = (V, E) mit V = M und E = R M = {a, b, c} R = {(a, a), (b, c)} S = {(a, c), (c, b)} a Verkettung als Pfade mit passender Markierung b c R S = {(a, c), (b, b)} S R = {(c, c)} a b c 83

86 Darstellung als Matrix mit Booleschen Einträgen M = {a, b, c} R = {(a, a), (b, c)} S = {(a, c), (c, b)} Verkettung als Matrixmultiplikation mit Booleschen Operationen R S = S R = = =

87 Übergangsrelation auf Wörtern Fortsetzung der Übergangsrelationen δ : X (Q Q) auf Wörter δ : X (Q Q): δ (ε) = {(q, q) q Q} = I Q Identität auf Q δ (wa) = δ (w) δ(a) für alle w X, a X = {(p, q) r Q : (p, r) δ (w) (r, q) δ(a)} Für w = w 1 w n X n gilt also δ (w) = δ(w 1 ) δ(w n ) (Multiplikation der Matrizen δ(w 1 ),..., δ(w n )) 85

88 Beispiel a,b b A = ({a, b}, {0, 1}, δ, I, F ) mit δ(a) = {(0, 0)} und δ(b) = {(0, 0), (0, 1), (1, 1)} b 0 1 δ(a) = ( δ (ba) = δ(b)δ(a) = ) ( δ(b) = ) ( ( ) = ) ( ) δ (abb) = δ(a)δ(b)δ(b) = ( ) ( ) ( ) = ( ) 86

89 Von einem NFA akzeptierte Wörter NFA A = (X, Q, δ, I, F ) akzeptiert ein Wort w X genau dann, wenn δ (w) (I F ). alternative Formulierung: A akzeptiert w genau dann, wenn ein akzeptierender Weg, d.h. eine Folge (q 0,..., q w ) von Zuständen q i Q existiert, für die gilt: 1. i {1,..., w } : (q i 1, q i ) δ(w i ), 2. q 0 I (Startzustand) und 3. q w F (akzeptierender Zustand). w q 1 w 0 2 w q1 n qn mit q 0 I und q n F 87

90 Beispiel A = ({a, b}, {0, 1}, δ, {0}, {0}) mit δ(a) = {(0, 1)}, δ(b) = {(0, 1), (1, 0)} akzeptiert abbb über den Weg a,b 0 1 b 0 a 1 b 0 b 1 b 0 F akzeptiert bbb nicht 0 b 1 b 0 b 1 F akzeptiert aaba nicht 0 a 1 a? 88

91 NFA-akzeptierbare Sprachen NFA A = (X, Q, δ, I, F ) akzeptiert die Sprache L(A) = {w X s I f F : (s, f ) δ(w)} Beispiel: A = ({a, b}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 0), (2, 2)} und δ(b) = {(0, 0), (0, 1), (1, 2), (2, 2)} akzeptiert L(A) =... Sprache L X heißt genau dann NFA-akzeptierbar, wenn ein NFA A mit L = L(A) existiert. Menge aller NFA-akzeptierbaren Sprachen: REC(NFA) (recognizable) Beispiel: L = {w w enthält ein Infix aa oder bba} ist NFA-akzeptierbar. 89

92 Beispiele NFA-akzeptierbarer Sprachen L 1 = {w {0, 1} w 0 ist ungerade } L 2 = {w {a, b} w beginnt mit ab und endet mit ba } L 3 = L(G) mit G = ({S, T }, {0, 1}, P, S) mit P = {S 11T, T 0S, T 0} L 4 = L(E) mit E = (a + b) ab L 5 = L(F ) mit F = ((a + b)c) 90

93 Isomorphie endlicher Automaten Zwei NFA A = (X, Q, δ, I, F ) und B = (X, Q, δ, I, F ) sind genau dann isomorph, wenn eine bijektive Funktion h : Q Q existiert, so dass 1. s Q((s I ) (h(s) I )) 2. f Q((f F ) (h(f ) F )) 3. a X (p, q) Q 2 (((p, q) δ(a)) ((h(p), h(q)) δ (a)) Beispiel: A = ({a, b}, {0, 1, 2}, δ, {0}, {0}) mit δ(a) = {(0, 1), (1, 2), (2, 0)} und δ(b) = {(0, 2), (1, 0), (2, 1)} und B = ({a, b}, {α, β, γ}, δ, {β}, {β}) mit δ(a) = {(α, β), (β, γ), (γ, α)} und δ(b) = {(α, γ), (β, α), (γ, β)} sind isomorph mit h(0) = β, h(1) = γ, h(2) = α. (Graphisomorphie zwischen gerichteten Graphen mit markierten Kanten) Fakt Isomorphie von NFA ist eine Äquivalenzrelation. 91

94 Äquivalenz endlicher Automaten Zwei NFA A, B heißen genau dann äquivalent, wenn L(A) = L(B) gilt. Beispiel: Der NFA A = ({a, b}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 1)} und δ(b) = {(1, 1), (1, 2)} und der NFA B = ({a, b}, {0, 1, 2, 3}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 1), (2, 1), (3, 3)} und δ(b) = {(0, 3), (1, 2), (2, 2), (3, 3)} sind äquivalent. Warum? Fakt Äquivalenz endlicher Automaten ist eine Äquivalenzrelation. Fakt Isomorphe endliche Automaten sind immer auch äquivalent. 92

95 Konstruktion von DFA aus NFA Motivation: In DFA existiert zu jedem Wort höchstens ein akzeptierender Weg, schnelles Feststellen der Akzeptanz möglich. Beispiel: A = ({a, b}, {0, 1, 2, 3, 4}, δ, {0, 4}, {3}) mit δ(a) = {(0, 0), (4, 4)(0, 1), (1, 3), (3, 3)} und δ(b) = {(0, 0), (4, 4), (4, 2), (2, 3), (3, 3)} allgemeines Verfahren: gegeben: NFA A = (X, Q A, δ A, I A, F A ) gesucht: DFA B = (X, Q B, δ B, I B, F B ) mit L(A) = L(B) Potenzmengenkonstruktion: NFA B = (X, Q B, δ B, I B, F B ) mit Q B = 2 Q A (Einschränkung auf von I B erreichbare genügt) I B = {I A } F B = {M Q A F A M } a X : δ B (a) = {(M, N) N = {q p M : (p, q) δ A (a)}} Fakt Der nach der Potenzmengenkonstruktion aus dem NFA A konstruierte Automat B ist vollständig, deterministisch und äquivalent zu A. 93

96 Beispiel Potenzmengenkonstruktion gegeben: NFA A = ({a, b}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 1)} und δ(b) = {(1, 1), (1, 2)} Potenzmengenkonstruktion: NFA B = (X, Q B, δ B, I B, F B ) mit Q B = 2 Q A = {, {0}, {1}, {2}, {0, 1}, {0, 2}, {1, 2}, {0, 1, 2}} I B = {{0}} F B = {{2}, {0, 2}, {1, 2}, {0, 1, 2}} { } (, ), ({0}, {1}), ({1}, {1}), ({1, 2}, {1}), δ B (a) = ({2}, ), ({0, 1}, {1}), ({0, 2}, ), ({0, 1, 2}, {1}) { } (, ), ({0}, ), ({1}, {1, 2}), ({1, 2}, {1, 2}), δ B (b) = ({2}, ), ({0, 1}, {1, 2}), ({0, 2}, ), ({0, 1, 2}, {1, 2}) (rot: Einschränkung auf aus dem Startzustand erreichbare Zustände) Lösung: DFA B = (X, Q B, δ B, I B, F B ), Einschränkung isomorph zu DFA B = ({a, b}, {0, 1, 2, 3}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 1), (2, 1), (3, 3)} und δ(b) = {(0, 3), (1, 2), (2, 2), (3, 3)} mit Isomorphismus h : Q B {0, 1, 2, 3} mit h({0}) = 0, h({1}) = 1, h({1, 2}) = 2, h( ) = 3 94

97 Was bisher geschah endlicher Automat (NFA) A = (X, Q, δ, I, F ) NFA-Eigenschaften: vollständig, deterministisch akzeptierender Weg für Wort w = w 1 w n in einem NFA A = (X, Q, δ, I, F ): Folge (q 0,..., q n ) von Zuständen aus Q mit 1. q 0 I, 2. q n F und 3. i {1,..., n} : (q i 1, q i ) δ(w i ) vom NFA A akzeptierte Sprache L(A) Menge aller NFA-akzeptierbaren Sprachen: REC(NFA) Isomorphie von NFA Äquivalenz von NFA Zu jedem NFA existiert ein äquivalenter DFA. (Potenzmengenkonstruktion) Damit gilt REC(NFA) = REC(DFA)

98 Vervollständigung von NFA Motivation: In vollständigen NFA existiert zu jedem Wort wenigstens ein Weg, Akzeptanz jedes Wortes durch Menge der mit dem letzten Symbol erreichten Zustände auf allen Wegen feststellbar. Satz Zu jedem NFA existiert ein äquivalenter vollständiger NFA. (Hinzufügen eines zusätzlichen nichtakzeptierenden Zustandes, falls notwendig) Beispiel: A = ({a, b, c}, {0, 1, 2, 3, 4, 5}, δ, {0}, {2, 4}) mit δ(a) = {(0, 0), (1, 2), (3, 4), (4, 4), (2, 5), (5, 5)}, δ(b) = {(0, 1), (0, 3), (1, 5), (2, 5), (3, 5), (4, 5), (5, 5)} und δ(c) = {(3, 0), (0, 5), (1, 5), (2, 5), (4, 5), (5, 5)} (rote Elemente zur Vervollständigung hinzugefügt) 95

99 Wiederholung: Operationen auf Sprachen Mengenoperationen,, \, Sprachoperationen R,, reguläre Ausdrücke RegExp(X ): Syntax: Menge aller Grundterme über der Signatur mit Konstantensymbolen, ε, jedes a X Operationssymbolen +, oder erzeugt durch Grammatik (ÜA 4.3.a) Semantik: Zuordnung E RegExp(X ) Sprache L(E) X Konstantensymbole Basissprachen (Einermengen bzw. ) Operationssymbole Sprachoperationen 96

100 NFA für Komplement NFA-akzeptierbarer Sprachen Beispiel: vollständiger DFA A = ({a, b}, {0, 1, 2, 3}, δ, {0}, {2}) mit δ(a) = {(0, 1), (1, 3), (2, 2), (3, 3)} und δ(b) = {(0, 3), (1, 2), (2, 2), (3, 3)} allgemeines Verfahren: gegeben: vollständiger DFA A = (X, Q, δ, I, F ) (falls notwendig, vorher aus NFA erzeugen) gesucht: NFA B mit L(B) = L(A) Konstruktion: NFA B = (X, Q, δ, I, Q \ F ) Fakt Der oben definierte NFA B akzeptiert die Sprache L(A). Die Menge REC(NFA) ist abgeschlossen unter Komplementbildung. 97

101 NFA für Vereinigung NFA-akzeptierbarer Sprachen Beispiel: NFA A = ({a, b}, {0, 1}, δ A, {0}, {0}) mit δ A (a) = {(0, 1), (1, 0)} und δ A (b) = NFA B = ({a, b}, {2, 3, 4}, δ B, {2}, {4}) mit δ B (a) = {(2, 3), (4, 3)} und δ B (b) = {(3, 4)} allgemeines Verfahren: gegeben: NFA A = (X, Q A, δ A, I A, F A ) und NFA B = (X, Q B, δ B, I B, F B ) mit Q A Q B = (Zustände disjunkt umbenennen, falls notwendig) gesucht: NFA C mit L(C) = L(A) L(B) Konstruktion: NFA C = (X, Q A Q B, δ C, I A I B, F A F B ) mit a X : δ C (a) = δ A (a) δ B (a) Fakt Der oben definierte NFA C akzeptiert die Sprache L(A) L(B). Die Menge REC(NFA) ist abgeschlossen unter Vereinigung. Zu gegebenen NFA A und B lässt sich damit auch ein Automat C mit L(C) = L(A) L(B) = L(A) L(B) (demorgan) konstruieren. 98

102 DFA für Schnittmenge Beispiel: DFA A = ({a, b}, {0, 1}, δ A, {0}, {1}) mit δ A (a) = {(0, 0)} und δ A (b) = {(0, 1), (1, 1)} DFA B = ({a, b}, {2, 3}, δ B, {2}, {3}) mit δ B (a) = {(2, 3), (3, 3)} und δ B (b) = {(3, 3)} allgemeines Verfahren: gegeben: DFA A = (X, Q A, δ A, I A, F A ), DFA B = (X, Q B, δ B, I B, F B ) gesucht: DFA C = (X, Q C, δ C, I C, F C ) mit L(C) = L(A) L(B) Produkt-Konstruktion: DFA C = (X, Q A Q B, δ C, I A I B, F A F B ) mit a X : δ C (a) = {((p, q), (r, s)) (p, r) δ A (a) (q, s) δ B (a)} Fakt Der oben definierte DFA C akzeptiert die Sprache L(A) L(B). Die Menge REC(NFA) ist abgeschlossen unter Schnitt. Modifikation (Tafel): dieselbe Konstruktion des DFA C aus vollständigen DFA A und B mit akzeptierenden Zuständen F C = F A F B akzeptiert L(A) L(B) mit akzeptierenden Zuständen F C = (F A Q B ) (Q A F B ) akzeptiert L(A) L(B) 99

103 NFA mit ε-übergängen ε-nfa: NFA ohne Einschränkung δ(ε) = I Q, stattdessen δ(ε) I Q (zusätzliche Kanten im Automatengraphen mit Beschriftung ε) ε-nfa vereinfachen oft die Modellierung von Sprachen und Abläufen. Beispiel: A = ({a, b, c}, {0, 1, 2}, δ, {0}, {2}) mit δ(a) = {(0, 0)}, δ(b) = {(1, 1)}, δ(c) = {(2, 2)} und δ(ε) = {(0, 1), (1, 2)} Akzeptanz von Wörtern analog zu NFA: ε-nfa A = (X, Q, δ, I, F ) akzeptiert ein Wort w X genau dann, wenn δ (w) (I F ). δ (w) = δ (ε) δ(w 1 ) δ (ε) δ (ε) δ(w n ) δ (ε) ε-nfa A im Beispiel oben akzeptiert die Sprache L(A) = a b c Fakt Zu jedem NFA A existiert ein äquivalenter ε-nfa B mit genau einem Startzustand und genau einem akzeptierenden Zustand. 100

104 Eliminierung der ε-übergänge aus ε-nfa δ (ε) ist der transitive Abschluß der Relation δ(ε) ε-hülle eines Zustandes q Q: H ε (q) = {p (q, p) δ (ε)} allgemeines Verfahren: gegeben: ε-nfa A = (X, Q, δ, I, F ) mit δ(ε) I Q gesucht: NFA B ohne ε-übergänge mit L(B) = L(A) Konstruktion (ε-eliminierung): B = (X, Q, δ, I, F ) mit I = q I H ε (q) : a X : δ (a) = δ(a) { (p, q ) (p, q) δ(a) q H ε (q) } Fakt Der durch ε-eliminierung aus dem ε-nfa A konstruierte NFA B enthält keine ε-übergänge und ist äquivalent zu A. 101

105 NFA für Verkettung NFA-akzeptierbarer Sprachen Beispiel: NFA A = ({a, b}, {0}, δ A, {0}, {0}) mit δ A (a) = und δ A (b) = {(0, 0)} NFA B = ({a, b}, {1, 2, 3}, δ B, {1, 3}, {2}) mit δ B (a) = {(3, 2), (3, 3)} und δ B (b) = {(1, 2)} allgemeines Verfahren: gegeben: NFA A = (X, Q A, δ A, I A, F A ) und NFA B = (X, Q B, δ B, I B, F B ) mit Q A Q B = gesucht: NFA C mit L(C) = L(A) L(B) Konstruktion: 1. (A A F A = 1): ε-nfa A = (X, Q A {f A }, δ A, I A, {f A }) mit a X : δ A (a) = δ A(a) und δ A (ε) = δ A(ε) {(q, f A ) q F A } 2. (B B I B = 1): ε-nfa B = (X, Q B {s B }, δ B, {s B}, F B ) mit a X : δ B (a) = δ B(a) und δ B (ε) = δ B(ε) {(s B, q) q I B } 3. ( ): ε-nfa C = (X, Q A Q B {f A, s B }, δ C, I A, F B ) mit a X : δ C (a) = δ A (a) δ B (a) δ C (ε) = δ A (ε) δ B (ε) {(f A, s B )} Fakt Der oben definierte ε-nfa C akzeptiert die Sprache L(A) L(B). Die Menge REC(NFA) ist abgeschlossen unter Verkettung. 102

Was bisher geschah Alphabet, Wort, Sprache

Was bisher geschah Alphabet, Wort, Sprache Was bisher geschah Alphabet, Wort, Sprache Wörter w A Operationen: Spiegelung R, Verkettung Palindrome Relationen: Präfix, Infix, Postfix, lexikographische, quasi-lexikographische Ordnung Sprachen L A

Mehr

Was bisher geschah Alphabet, Wort, Sprache

Was bisher geschah Alphabet, Wort, Sprache Was bisher geschah Alphabet, Wort, Sprache Wörter w A Operationen: Spiegelung R, Verkettung Palindrome Relationen: Präfix, Infix, Postfix, lexikographische, quasi-lexikographische Ordnung Sprachen L A

Mehr

Theoretische Informatik Automaten und formale Sprachen

Theoretische Informatik Automaten und formale Sprachen Theoretische Informatik Automaten und formale Sprachen Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakultät IMN Gustav-Freytag-Str. 42a, 04277 Leipzig Zimmer Z 411 (Zuse-Bau) http://www.imn.htwk-leipzig.de/~schwarz

Mehr

Was bisher geschah: Formale Sprachen

Was bisher geschah: Formale Sprachen Was bisher geschah: Formale Sprachen Alphabet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen Darstellung unendlicher Sprachen durch reguläre Ausdrücke (Syntax, Semantik, Äquivalenz)

Mehr

Theoretische Informatik: Automaten und formale Sprachen

Theoretische Informatik: Automaten und formale Sprachen Theoretische Informatik: Automaten und formale Sprachen Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakultät IMN Gustav-Freytag-Str. 42a, 04277 Leipzig Zimmer Z 411 (Zuse-Bau) http://www.imn.htwk-leipzig.de/~schwarz

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII 263 http://wwwstud.fh-zwickau.de/~sibsc/ sibylle.schwarz@fh-zwickau.de SS 2011 1 Einordnung der Theoretischen

Mehr

Was bisher geschah. Modellierung von Aussagen durch Logiken. Modellierung von Daten durch Mengen

Was bisher geschah. Modellierung von Aussagen durch Logiken. Modellierung von Daten durch Mengen Was bisher geschah Modellierung von Aussagen durch Logiken Modellierung von Daten durch Mengen extensionale und intensionale Darstellung Mächtigkeiten endlicher Mengen, Beziehungen zwischen Mengen, =,

Mehr

Was bisher geschah. Darstellung von Sprachen Ausführen von Berechnungen

Was bisher geschah. Darstellung von Sprachen Ausführen von Berechnungen Was bisher geschah Alphabet, Wort, Sprache Operationen auf Wörtern: Spiegelung R, Verkettung Palindrome Relationen zwischen Wörtern: Präfix, Infix, Postfix Wortersetzungssystem S: Regeln (l r), Ersetzungsschritt

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII 263 http://wwwstud.fh-zwickau.de/~sibsc/ sibylle.schwarz@fh-zwickau.de SS 2010 1 Einordnung der Theoretischen

Mehr

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen (Kontextsensitive) Sprachen L 2 Menge aller kontextfreien

Mehr

Inhalt Theoretische Informatik WS17/18

Inhalt Theoretische Informatik WS17/18 Inhalt Theoretische Informatik WS17/18 (nach Modulbeschreibung) Formale Sprachen Wortersetzungssysteme Grammatiken Chomsky-Hierarchie (für Grammatiken und Sprachen) abstrakte Maschinenmodelle zur Akzeptanz

Mehr

Für jede Sprache L X sind die folgenden Aussagen äquivalent:

Für jede Sprache L X sind die folgenden Aussagen äquivalent: Was bisher geschah Für jede Sprache L X sind die folgenden Aussagen äquivalent: Es existiert ein NFA A mit L = L(A) (L REC(NFA)). Es existiert ein vollständiger NFA B mit L = L(B). Es existiert ein ε-nfa

Mehr

Was bisher geschah: Formale Sprachen

Was bisher geschah: Formale Sprachen Was isher geschah: Formale Sprachen Alphaet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen reguläre Ausdrücke: Syntax, Semantik, Äquivalenz Wortersetzungssysteme Wortersetzungsregeln

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII 263 http://www.fh-zwickau.de/~sibsc/ sibylle.schwarz@fh-zwickau.de SS 2012 1 Einordnung der Theoretischen

Mehr

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=

Mehr

Grundlagen der theoretischen Informatik

Grundlagen der theoretischen Informatik Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 09.04.2013 Inhalt der Vorlesung Teil I: Automaten und formale Sprachen (Kurt Sieber)

Mehr

Automaten und formale Sprachen Klausurvorbereitung

Automaten und formale Sprachen Klausurvorbereitung Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen

Mehr

Berechenbarkeitstheorie 1. Vorlesung

Berechenbarkeitstheorie 1. Vorlesung Berechenbarkeitstheorie Dr. Institut für Mathematische Logik und Grundlagenforschung WWU Münster WS 15/16 Alle Folien unter Creative Commons Attribution-NonCommercial 3.0 Unported Lizenz. Zentrale Themen

Mehr

Wiederholung: Modellierung in Prädikatenlogik

Wiederholung: Modellierung in Prädikatenlogik Was bisher geschah Modellierung von Aussagen durch logische Formeln Daten durch Mengen, Multimengen, Folgen, Sprachen Zusammenhängen und Eigenschaften von Elementen von Mengen durch Relationen (Eigenschaften

Mehr

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

2.1 Allgemeines. Was ist eine Sprache? Beispiele: Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax

Mehr

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 29.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Motivation 2. Terminologie 3. Endliche Automaten und reguläre

Mehr

(Algebraische) Strukturen Beispiele (Träger-)Mengen (Individuenbereiche) mit Relationen (Eigenschaften, Beziehungen) und Funktionen (Operationen) auf

(Algebraische) Strukturen Beispiele (Träger-)Mengen (Individuenbereiche) mit Relationen (Eigenschaften, Beziehungen) und Funktionen (Operationen) auf Was bisher geschah Modellierung von Aussagen durch logische Formeln Daten durch Mengen, Multimengen, Folgen, Sprachen Zusammenhängen und Eigenschaften von Elementen von Mengen durch Relationen (Eigenschaften

Mehr

Kapitel IV Formale Sprachen und Grammatiken

Kapitel IV Formale Sprachen und Grammatiken Kapitel IV Formale Sprachen und Grammatiken 1. Begriffe und Notationen Sei Σ ein (endliches) Alphabet. Dann Definition 42 1 ist Σ das Monoid über Σ, d.h. die Menge aller endlichen Wörter über Σ; 2 ist

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Maximilian Haslbeck Fabian Mitterwallner Georg Moser David Obwaller cbr.uibk.ac.at Zusammenfassung der letzten LVA Definition Eine Grammatik G ist ein Quadrupel

Mehr

Das Halteproblem für Turingmaschinen

Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen ist definiert als die Sprache H := { T w : T ist eine TM, die bei Eingabe w {0, 1} hält }. Behauptung: H {0, 1} ist nicht entscheidbar.

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 23.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S) Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

Mehr

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

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung

Mehr

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer, Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen

Mehr

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch TU Dresden, 17. Oktober 2016 Rückblick Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 2 von 31 Wiederholung Mit Grammatiken können

Mehr

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme Wiederholung Mit Grammatiken können wir Sprachen beschreiben und sie grob in Typen unterteilen: FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch Lehrstuhl Wissensbasierte Systeme Formale

Mehr

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b Kap. 2: Endliche Automaten Myhill Nerode 2.4 Minimalautomat für reguläre Sprache Abschnitt 2.4.3 L Σ regulär der Äuivalenzklassen-Automat zu L ist ein DFA mit minimaler Zustandszahl (= index( L )) unter

Mehr

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann. Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden

Mehr

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.

Mehr

1 Automatentheorie und Formale Sprachen

1 Automatentheorie und Formale Sprachen Sanders: TGI October 29, 2015 1 1 Automatentheorie und Formale Sprachen 1.1 Allgemeines Sanders: TGI October 29, 2015 2 Beispiel: Arithmetische Ausdrücke:EXPR Σ={1,a,+,,,(,)} a ist Platzhalter für Konstanten

Mehr

DisMod-Repetitorium Tag 4

DisMod-Repetitorium Tag 4 DisMod-Repetitorium Tag 4 Endliche Automaten, Reguläre Sprachen und Kontextfreie Grammatiken 22. März 2018 1 Endliche Automaten Definition DFA Auswertungen Äquivalenzrelationen Verschmelzungsrelation und

Mehr

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,

Mehr

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung Formale Sprachen rammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marion OSWALD rammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind rammatiken.

Mehr

Theoretische Informatik und Logik, VU 4.0 (Teil1: Berechenbarkeit, Formale Sprachen und Komplexitätstheorie)

Theoretische Informatik und Logik, VU 4.0 (Teil1: Berechenbarkeit, Formale Sprachen und Komplexitätstheorie) 185.278 Theoretische Informatik und Logik, VU 4.0 (Teil1: Berechenbarkeit, Formale Sprachen und Komplexitätstheorie) Marion OSWALD (marion@logic.at) unter Mitwirkung von Chris FERMÜLLER, Rudi FREUND, Alexander

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Berechenbarkeit und Komplexität Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2010/11 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien und Übungsblätter

Mehr

(Prüfungs-)Aufgaben zu formale Sprachen

(Prüfungs-)Aufgaben zu formale Sprachen (Prüfungs-)Aufgaben zu formale Sprachen (siehe auch bei den Aufgaben zu endlichen Automaten) 1) Eine Grammatik G sei gegeben durch: N = {S, A}, T = {a, b, c, d}, P = { (S, Sa), (S, ba), (A, ba), (A, c),

Mehr

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

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen! Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit Sommersemester 2012 Prof. Dr. Nicole Schweikardt AG Theorie komplexer Systeme Goethe-Universität Frankfurt am Main Herzlich willkommen!

Mehr

Satz (Abschluß unter der Stern-Operation)

Satz (Abschluß unter der Stern-Operation) Satz (Abschluß unter der Stern-Operation) Wenn L eine reguläre Sprache ist, dann ist auch L regulär. Beweis: Es gibt einen NFA M = (Z, Σ, S, δ, S, E) mit L(M) = L. Wir bauen aus diesem NFA nun wie folgt

Mehr

Automaten und Formale Sprachen

Automaten und Formale Sprachen Automaten und Formale Sprachen Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2011/12 WS 11/12 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien

Mehr

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2017 20.04.2017 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Organisatorisches Literatur Motivation und Inhalt Kurzer

Mehr

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Ausgabe 8. Januar 2019 Abgabe 22. Januar 2019, 11:00 Uhr (im

Mehr

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

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden Maike Buchin 8. Februar 26 Stef Sijben Probeklausur Theoretische Informatik Bearbeitungszeit: 3 Stunden Name: Matrikelnummer: Studiengang: Geburtsdatum: Hinweise: Schreibe die Lösung jeder Aufgabe direkt

Mehr

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen Vorlesung Automaten und Formale Sprachen Sommersemester 2018 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Wörter Wort Sei Σ ein Alphabet, d.h., eine endliche Menge von Zeichen. Dann bezeichnet

Mehr

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

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.

Mehr

Musterlösung Informatik-III-Nachklausur

Musterlösung Informatik-III-Nachklausur Musterlösung Informatik-III-Nachklausur Aufgabe 1 (2+2+4+4 Punkte) (a) L = (0 1) 0(0 1) 11(0 1) 0(0 1) (b) Der Automat ist durch folgendes Übergangsdiagramm gegeben: 0, 1 0, 1 0, 1 0, 1 0 s q 1 1 0 0 q

Mehr

Modellierung. Wintersemester 2018/19

Modellierung. Wintersemester 2018/19 Modellierung Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakultät IMN Gustav-Freytag-Str. 42a, 04277 Leipzig Zimmer Z 411 (Zuse-Bau) https://informatik.htwk-leipzig.de/schwarz sibylle.schwarz@htwk-leipzig.de

Mehr

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

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14 Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV 1 Wir betrachten die folgende Signatur

Mehr

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung? Überblick 1. reguläre Sprachen endliche Automaten (deterministisch vs. nichtdeterministisch) Nichtregularität 2. Berechenbarkeit Registermaschinen/Turingmaschinen Churchsche These Unentscheidbarkeit 3.

Mehr

Theoretische Informatik I (Grundzüge der Informatik I)

Theoretische Informatik I (Grundzüge der Informatik I) Theoretische Informatik I (Grundzüge der Informatik I) Literatur: Buch zur Vorlesung: Uwe Schöning, Theoretische Informatik - kurzgefasst. Spektrum Akademischer Verlag, Heidelberg/Berlin, 4. Auflage, 2001.

Mehr

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13 Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 2003/04 ILKD Prof. Dr. D. Wagner 14. April 2004 2. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004 Hier Aufkleber

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 17.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Evaluation Ergebnisse

Mehr

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz. Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Klammersprache Definiere

Klammersprache Definiere Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere

Mehr

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G

Mehr

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45 Kontextfreie Grammatiken Kontextfreie Grammatiken 1 / 45 Was kann man mit kontextfreien Grammatiken anfangen? Kontextfreie Grammatiken, kurz: werden zur Modellierung von KFGs beliebig tief geschachtelten

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 08.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Letzte Vorlesung Eine

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2011 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Wir beschäftigen uns ab

Mehr

Informatik III - WS07/08

Informatik III - WS07/08 Informatik III - WS07/08 Kapitel 5 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner dwagner@ira.uka.de Kapitel 5 : Grammatiken und die Chomsky-Hierarchie Informatik III - WS07/08 Kapitel 5 2 Definition

Mehr

Automaten und Formale Sprachen ε-automaten und Minimierung

Automaten und Formale Sprachen ε-automaten und Minimierung Automaten und Formale Sprachen ε-automaten und Minimierung Ralf Möller Hamburg Univ. of Technology Literatur Gottfried Vossen, Kurt-Ulrich Witt: Grundkurs Theoretische Informatik, Vieweg Verlag 2 Danksagung

Mehr

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen

Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen Was bisher geschah Modellierung von Daten durch Mengen Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen, Graphen und Funktionen Anforderungen durch Logiken Modellierung als algebraische Strukturen

Mehr

Automatentheorie und formale Sprachen

Automatentheorie und formale Sprachen Automatentheorie und formale Sprachen VL 8 Chomsky-Grammatiken Kathrin Hoffmann 23. Mai 2012 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 23.5. 2012 250 Wortproblem Wortproblem ist das

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Einschub: Kellerautomaten

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen Malte Helmert Gabriele Röger Universität Basel 7. April 2014 Kontextsensitive und allgemeine Grammatiken Wiederholung: (kontextsensitive)

Mehr

Übungsaufgaben zu Formalen Sprachen und Automaten

Übungsaufgaben zu Formalen Sprachen und Automaten Universität Freiburg PD Dr. A. Jakoby Sommer 27 Übungen zum Repetitorium Informatik III Übungsaufgaben zu Formalen Sprachen und Automaten. Untersuchen Sie das folgende Spiel: A B x x 2 x 3 C D Eine Murmel

Mehr

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische Informatik für Wirtschaftsinformatik und Lehramt Theoretische Informatik für Wirtschaftsinformatik und Lehramt Reguläre Sprachen Priv.-Doz. Dr. Stefan Milius stefan.milius@fau.de Theoretische Informatik Friedrich-Alexander Universität Erlangen-Nürnberg

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff

Mehr

Aufgabe Bonus.1. Aufgabe Bonus.2. Aufgabe Bonus.3. Aufgabe Bonus.4. HTWK Leipzig, Fakultät IMN Prof. Dr. Sibylle Schwarz

Aufgabe Bonus.1. Aufgabe Bonus.2. Aufgabe Bonus.3. Aufgabe Bonus.4. HTWK Leipzig, Fakultät IMN Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakultät IMN Prof. Dr. Sibylle Schwarz sibylle.schwarz@htwk-leipzig.de Bonus. Übung zur Vorlesung Modellierung Wintersemester 2017/18 Lösungen bis 3. Januar 2018 einzusenden im Opal-Kurs

Mehr

Adventure-Problem. Vorlesung Automaten und Formale Sprachen Sommersemester Adventure-Problem

Adventure-Problem. Vorlesung Automaten und Formale Sprachen Sommersemester Adventure-Problem -Problem Vorlesung Automaten und Formale Sprachen Sommersemester 2018 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Zum Aufwärmen: wir betrachten das sogenannte -Problem, bei dem ein Abenteurer/eine

Mehr

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische Informatik für Wirtschaftsinformatik und Lehramt Theoretische Informatik für Wirtschaftsinformatik und Lehramt Entscheidungsprobleme Priv.-Doz. Dr. Stefan Milius stefan.milius@fau.de Theoretische Informatik Friedrich-Alexander Universität Erlangen-Nürnberg

Mehr

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung! Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 23/4 ILKD Prof. Dr. D. Wagner 2. Februar 24. Klausur zur Vorlesung Informatik III Wintersemester 23/24 Mit Lösung! Beachten Sie:

Mehr

Zusammenfassung. Beispiel. 1 Wir betrachten die folgende Signatur F = {,, +, 0, 1} sodass. 3 Wir betrachten die Identitäten E. 4 Dann gilt E 1 + x = 1

Zusammenfassung. Beispiel. 1 Wir betrachten die folgende Signatur F = {,, +, 0, 1} sodass. 3 Wir betrachten die Identitäten E. 4 Dann gilt E 1 + x = 1 Zusammenfassung Zusammenfassung der letzten LVA Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele eorg Moser Michael Schaper Institut für Informatik @ UIBK Wintersemester 2016

Mehr

Informatik 3 Theoretische Informatik WS 2015/16

Informatik 3 Theoretische Informatik WS 2015/16 2. Probeklausur 22. Januar 2016 Informatik 3 Theoretische Informatik WS 2015/16 Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg Institut für Informatik Name: Matrikel-Nr.: Schreiben Sie Ihren

Mehr

Deterministischer Kellerautomat (DPDA)

Deterministischer Kellerautomat (DPDA) Deterministische Kellerautomaten Deterministischer Kellerautomat (DPDA) Definition Ein Septupel M = (Σ,Γ, Z,δ, z 0,#, F) heißt deterministischer Kellerautomat (kurz DPDA), falls gilt: 1 M = (Σ,Γ, Z,δ,

Mehr

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri Sprachanalyse WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

Einführung in die Computerlinguistik Chomskyhierarchie

Einführung in die Computerlinguistik Chomskyhierarchie Einführung in die Computerlinguistik Chomskyhierarchie Dozentin: Wiebke Petersen 14. Foliensatz Wiebke Petersen Einführung CL 1 Wiederholung: Formale Grammatik Denition Eine formale Grammatik ist ein 4-Tupel

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 4.3 Eigenschaften von L 0 /L 1 -Sprachen 1. Abschlußeigenschaften 2. Prüfen von Eigenschaften 3. Grenzen der Sprachklassen Sprachklassen Semi-entscheidbare Sprache Sprache,

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprache bedeutend für die Syntaxdefinition und -analyse von Programmiersprachen Automaten

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 5 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Jede binäre Operation hat maximal ein

Mehr

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt: 5.2 Linear beschränkte Automaten Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt: (q, c, d) δ(q, ) = c =. Ein Leerzeichen wird also nie durch ein anderes

Mehr

Einführung in die Computerlinguistik Chomskyhierarchie

Einführung in die Computerlinguistik Chomskyhierarchie Einführung in die Computerlinguistik Chomskyhierarchie Dozentin: Wiebke Petersen 14. Foliensatz Wiebke Petersen Einführung CL 1 Wiederholung: Formale Grammatik Denition Eine formale Grammatik ist ein 4-Tupel

Mehr