Theoretische Informatik: Automaten und formale Sprachen
|
|
- Imke Feld
- vor 5 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 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 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: 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
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
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
MehrInhalt 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
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: 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
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
MehrTheoretische Informatik Mitschrift
Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=
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
MehrBerechenbarkeitstheorie 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
MehrWiederholung: 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
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
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,
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
Mehr(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
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
MehrEinfü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
MehrDas 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.
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
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 /
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
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
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
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
Mehr3. 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
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.
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
MehrDisMod-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
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,
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.
MehrTheoretische 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
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
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),
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!
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
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
MehrKontextfreie 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
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
MehrGrundlagen 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
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
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
MehrVorlesung 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
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.
MehrMusterlö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
MehrModellierung. 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
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
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 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.
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 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
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
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
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
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
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
MehrTheoretische 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
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
MehrInformatik 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
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
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
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
MehrAutomaten 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
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)
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
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
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
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
MehrAdventure-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
MehrTheoretische 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
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:
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
MehrInformatik 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
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,δ,
MehrSprachanalyse. 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
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
MehrEinfü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
MehrTheoretische 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,
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
MehrEinfü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
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
MehrEinfü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