Theoretische Informatik: Automaten und formale Sprachen
|
|
- Nikolas Boer
- vor 7 Jahren
- Abrufe
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 2016/17 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 Anwendungen 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 Probleme 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 Probleme sind mit beschränkten Ressourcen (z.b. Zeit, Speicherplatz) lösbar? Für welche Probleme 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 des Problems 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) Komplexitätsmaße Komplexitätsklassen P, NP, PSPACE 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-paare "]" 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. 11
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 volta-cropped.pdf 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? Nein Folgerungen: Alle Versuche, ein solches Programm zu schreiben, müssen fehlschlagen. 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, ist sinnvoller. Entwickler von P (Dienstleister) muss nachweisen, dass sein Programm P nach endlich vielen Schritten anhält 17
18 Komplexität Beispiel Primzahltest Problem: Ist eine gegebene Zahl n eine Primzahl? Instanz des Problems: 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. 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 eines Problemes? 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 Relationen auf Wörtern Präfix (Anfangswort): 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) 26
27 Mehr Relationen auf Wörtern Ordnungen bei gegebener Reihenfolge < auf dem Alphabet A: lexikographisch Ordnung auf 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 : 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 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 Alphabet, Wort, Sprache 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 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} : Palindrome über {a, b} c ist Hilfssymbol zur Erzeugung der Palindrome 56
57 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). 57
58 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} 58
59 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} 59
60 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 60
61 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 > 61
62 Definition Grammatik Grammatik G = (N, T, P, S) mit 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 ε } 62
63 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 63
64 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 64
65 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 ε 65
66 Ä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) 66
67 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 67
68 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: Nicht jede Sprache wird durch eine Grammatik erzeugt. 68
69 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}} 69
70 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 70
71 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 71
72 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 72
73 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 73
74 Beispiel HTML mehrere Paare öffnender und schließender Klammern (Tags) <html> <head> <title> Theoretische Informatik </title> </head> <body> <h1> Theoretische Informatik </h1>... </body> </html> 74
75 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. 75
76 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. ) 76
77 Lässt sich jede Sprache durch eine Grammatik erzeugen? Existiert für jedes endliche Alphabet A zu jeder Sprache L A eine Grammatik G mit L = L(G)? Nein (Gegenbeispiel später) Begründung: 1. Wieviele Sprachen L A gibt es? (Mächtigkeit von 2 (A ) ) überabzählbar viele 2. Wieviele Grammatiken über dem endlichen Alphabet A gibt es? abzählbar viele, weil Alphabet A = A {(, ),,, {, },, ε} endlich Menge (A ) aller Wörter über A abzählbar jede Grammatik über A ist ein Wort aus (A ) (endliche Beschreibung) Menge aller Grammatiken über A ist Teilmenge der abzählbaren Menge (A ), also selbst abzählbar Damit existieren sogar sehr viel mehr (überabzählbar viele) Sprachen, die nicht durch Grammatiken beschrieben werden können. 77
78 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
79 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
80 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
81 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
82 Was bisher geschah Alphabet, Wort, Sprache Operationen auf Wörtern und Sprachen Grammatiken, Chomsky-Hierarchie Wiederholung zweistellige Relationen, deren Verknüpfung und Darstellungen (Graph, Matrix) endlicher Automat (NFA) A = (X, Q, δ, I, F ) Eigenschaften eines NFA A = (X, Q, δ, I, F ): vollständig: für jedes Symbol a X und jeden Zustand p Q existiert mindestens ein Zustand q Q mit (p, q) δ(a) deterministisch: genau ein Startzustand und für jedes Symbol a X und jeden Zustand p Q existiert höchstens ein Zustand q Q mit (p, q) δ(a) 82
83 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)} 83
84 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 84
85 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 = = =
86 Ü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 )) 86
87 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) = ( ) ( ) ( ) = ( ) 87
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) = ( ) ( ) ( ) = ( ) 88
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 89
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? 90
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. 91
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) 92
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 daß 1. genau dann s I, wenn h(s) I, 2. genau dann f F, wenn h(f ) F und 3. für jedes a X : genau dann (p, q) δ(a), wenn (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. 93
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. 94
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. 95
96 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) 96
97 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}, δ, {0}, {2, 4}) mit δ(a) = {(0, 0), (1, 2), (3, 4), (4, 4)}, δ(b) = {(0, 1), (0, 3)} und δ(c) = {(3, 0)} 97
98 Wiederholung: 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. 98
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 99
100 NFA für Spiegelung (ÜA 5.6) Beispiel: DFA A = ({a, b}, {0, 1, 2, 3}, δ A, {0}, {2, 3}) mit δ A (a) = {(0, 1), (1, 3), (3, 3)} und δ A (b) = {(1, 2), (2, 2)} allgemeines Verfahren: gegeben: NFA A = (X, Q, δ A, I A, F A ) gesucht: NFA B mit L(B) = (L(A)) R Konstruktion: NFA B = (X, Q, δ B, I B, F B ) mit 1. I B = F A 2. F B = I A 3. a X : δ B (a) = δ A (a) 1 = {(q, p) (p, q) δ A (a)} Fakt Der oben definierte NFA B akzeptiert die Sprache (L(A)) R. Die Menge REC(NFA) ist abgeschlossen unter Spiegelung. 100
101 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 ) gesucht: NFA B mit L(B) = L(A) Konstruktion: DFA 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. 101
102 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 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. 102
103 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) 103
104 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. 104
105 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. 105
106 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. 106
107 Was bisher geschah NFA A = (X, Q, δ, I, F ) Akzeptanz von Wörtern durch NFA, DFA, ε-nfa von NFA, DFA, ε-nfa akzeptierte Sprache L(A) NFA-akzeptierbare Sprachen REC(NFA) Für jede Sprache L X sind die folgenden Aussagen äquivalent: 1. L REC(NFA), d.h. es existiert ein NFA A mit L = L(A). 2. Es existiert ein vollständiger NFA B mit L = L(B). 3. Es existiert ein DFA C mit L = L(C). 4. Es existiert ein vollständiger DFA D mit L = L(D). REC(NFA) ist abgeschlossen unter: Mengenoperationen,,, \ Sprachoperationen R, 107
108 NFA für iterierte Verkettung Beispiel: NFA A = ({a, b}, {0, 1, 2, 3}, δ A, {0}, {3}) mit δ A (a) = {(0, 1), (2, 3)} und δ A (b) = {(1, 2)} allgemeines Verfahren: gegeben: NFA A = (X, Q, δ A, I, F ) gesucht: NFA B mit L(B) = L(A) Konstruktion: 1. (A A I A = 1 F A = 1): ε-nfa A = (X, Q A {s A, f A }, δ A, {s A}, {f A }) mit a X : δ A (a) = δ A(a) und δ A (ε) = {(s A, q) q I A } {(q, f A ) q F A } 2. ( ): ε-nfa B = (X, Q A {s A, f A }, δ B, {s A }, {f A }) mit a X : δ B (a) = δ A (a) und δ B (ε) = δ A (ε) {(s A, f A ), (f A, s A )} Fakt Der oben definierte ε-nfa B akzeptiert die Sprache L(A). REC(NFA) ist abgeschlossen unter iterierter Verkettung. 108
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
MehrWas 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
MehrTheoretische 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
MehrWas 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)
MehrTheoretische 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
MehrWas 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, =,
MehrWas 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
MehrTheoretische 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
MehrFü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
MehrWas 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
MehrTheoretische 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
MehrWas 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
MehrGrundlagen 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)
MehrAutomaten 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
MehrTheoretische Informatik Mitschrift
Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=
Mehr2.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
MehrGrundlagen 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
MehrGrundlagen 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
MehrRegulä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
MehrDefinition 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,
MehrFORMALE 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
MehrTheorie 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
MehrGrammatiken. 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 /
Mehrq 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
MehrSei Σ 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
MehrFormale 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.
MehrAlphabet, 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
MehrKapitel 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
Mehr1 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
MehrFormale 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.
MehrAutomaten 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
MehrIst 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.
MehrTheoretische 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!
MehrGrammatiken. 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,
MehrBerechenbarkeit 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
MehrMaike 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
MehrSatz (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(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),
Mehr1 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
MehrKapitel: 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
MehrEinfü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
Mehr1. 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
Mehr1. 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
MehrWas 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
MehrAufgabe 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
MehrTheoretische 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.
MehrWS06/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.
MehrTheorie 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)
MehrLemma 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
MehrAutomaten 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
MehrUmformung 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Ü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
MehrKlammersprache 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
MehrKontextfreie 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
MehrZusammenfassung. 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
MehrAufgabe 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
MehrAutomaten 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
MehrTheoretische 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
MehrAutomatentheorie 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
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 16.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Organizatorisches Literatur Motivation und Inhalt Kurzer
MehrDeterministischer 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,δ,
MehrTheoretische 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
MehrHerzlich willkommen!!!
Theoretische Informatik 2 Sommersemester 2013 Prof. Dr. Georg Schnitger AG Theoretische Informatik Johann Wolfgang Goethe-Universität Frankfurt am Main Herzlich willkommen!!! 1 / 19 Kapitel 1: Einführung
MehrGrundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I
Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:
MehrDefinition 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
Mehr1 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
MehrTheoretische Informatik für Medieninformatiker
Theoretische Informatik für Medieninformatiker Jan Johannsen Lehrveranstaltung im Sommersemester 27 / 6 Organisatorisches: Jede Lehrveranstaltungsstunde gliedert sich in einen Vorlesungsteil, dessen Länge
MehrReguläre Ausdrücke. Michael Jäger. 4. April 2017
Reguläre Ausdrücke Michael Jäger 4. April 2017 Zeichenketten und Sprachen Ein Alphabet ist eine endliche Menge von Symbolen. Beispiele: 1. Σ 1 = {0, 1} 2. Σ 2 = {a, b, c, d, e, f, g, h, i, j, k, l, m,
MehrEinführung in die Theoretische Informatik. Inhalte der Lehrveranstaltung. Definition (Boolesche Algebra) Einführung in die Logik
Zusammenfassung Einführung in die Theoretische Informatik Woche 5 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung der letzten LV Jede binäre Operation hat maximal ein
MehrRekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
MehrFormale 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
MehrTheorie der Informatik
Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax
Mehr1. 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:
MehrTHIA - Übungsblatt 2.
THIA - Übungsblatt 2. Aufgabe 12 (Eine einfache Sprache). Endliche Ziffernfolgen, die mit einer 0 beginnen, auf die mindestens eine weitere Ziffer folgt, wobei nur die Ziffern 0,..., 7 vorkommen, sollen
MehrTheoretische Informatik
Theoretische Informatik Sommersemester 2004 Christoph Kreitz Theoretische Informatik, Raum 1.18, Telephon 3060 kreitz@cs.uni-potsdam.de http://www.cs.uni-potsdam.de/ti/kreitz 1. Themen und Lernziele 2.
MehrNachklausur zur Vorlesung
Lehrstuhl für Theoretische Informatik Prof. Dr. Markus Lohrey Grundlagen der Theoretischen Informatik Nachklausur Nachklausur zur Vorlesung Grundlagen der Theoretischen Informatik WS 2016/17 / 27. Februar
MehrInformatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit
Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Sommersemester 2011 Dozent: Prof. Dr. J. Rothe, Prof. Dr. M. Leuschel J. Rothe (HHU Düsseldorf)
Mehrkontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung
Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben
MehrFormale Sprachen und endliche Automaten
Formale Sprachen und endliche Automaten Formale Sprachen Definition: 1 (Alphabet) Ein Alphabet Σ ist eine endliche, nichtleere Menge von Zeichen oder Symbolen. Ein Wort über dem Alphabet Σ ist eine endliche
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Woche 4 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Modus Ponens A B B A MP Axiome für
MehrTechnische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 2. Mai HA-Lösung. TA-Lösung
Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 2. Mai 2016 HA-Lösung TA-Lösung Einführung in die theoretische Informatik Aufgabenblatt 2 Beachten Sie: Soweit
Mehr2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik
2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik Ulrich Furbach Claudia Schon Christian Schwarz Arbeitsgruppe Künstliche Intelligenz Fachbereich Informatik, Universität Koblenz-Landau
MehrÜbungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im
Mehr7 Endliche Automaten. 7.1 Deterministische endliche Automaten
7 Endliche Automaten 7.1 Deterministische endliche Automaten 7.2 Nichtdeterministische endliche Automaten 7.3 Endliche Automaten mit g-übergängen Endliche Automaten 1 7.1 Deterministische endliche Automaten
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 18. Januar 2018 INSTITUT FÜR THEORETISCHE 0 18.01.2018 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität
Mehr2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017
2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Prof. Dr. Sibylle Schwarz Hochschule für Technik, Wirtschaft und Kultur Leipzig Fakultät Informatik, Mathematik und Naturwissenschaften Gustav-Freytag-Str. 42a, 04277
MehrEinführung in die Informatik. Programming Languages
Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme
Mehr1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,
Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
Mehr1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,
Theorie der Informatik 9. März 24 7. Reguläre Sprachen I Theorie der Informatik 7. Reguläre Sprachen I Malte Helmert Gabriele Röger Universität Basel 9. März 24 7. Reguläre Grammatiken 7.2 DFAs 7.3 NFAs
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2 Lösungsblatt 2 3. Mai 2 Einführung in die Theoretische Informatik Hinweis:
MehrEinführung in die Informatik. Programming Languages
Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Cyrill Stachniss 1/15 Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens
MehrKurz-Skript zur Theoretischen Informatik I
Kurz-Skript zur Theoretischen Informatik I Inhaltsverzeichnis 1 Grundlagen 2 2 Reguläre Ausdrücke 4 3 Endliche Automaten 5 3.1 Vollständige endliche Automaten................................... 6 3.2 ε
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische
Mehr3 Syntax von Programmiersprachen
3 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ) formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmiersprache Festlegung, wie Programme
MehrKontextfreie Sprachen
Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung
MehrTheoretische Grundlagen der Informatik
Sanders: TGI October 20, 2015 1 Theoretische Grundlagen der Informatik Peter Sanders Übungen: Lorenz Hübschle-Schneider Tobias Maier Institut für theoretische Informatik Sanders: TGI October 20, 2015 2
Mehr