Theoretische Informatik: Automaten und formale Sprachen

Größe: px
Ab Seite anzeigen:

Download "Theoretische Informatik: Automaten und formale Sprachen"

Transkript

1 Theoretische Informatik: Automaten und formale Sprachen Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakultät IMN Gustav-Freytag-Str. 42a, Leipzig Zimmer Z 411 (Zuse-Bau) sibylle.schwarz@htwk-leipzig.de Wintersemester 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 Was bisher geschah Alphabet, Wort, Sprache Wörter w A Operationen: Spiegelung R, Verkettung Palindrome Relationen: Präfix, Infix, Postfix, lexikographische, quasi-lexikographische Ordnung Sprachen L A

Mehr

Was bisher geschah Alphabet, Wort, Sprache

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

Mehr

Theoretische Informatik Automaten und formale Sprachen

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

Mehr

Was bisher geschah: Formale Sprachen

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

Mehr

Theoretische Informatik

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

Mehr

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

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

Mehr

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

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

Mehr

Theoretische Informatik

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

Mehr

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

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

Mehr

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

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

Mehr

Theoretische Informatik

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

Mehr

Was bisher geschah: Formale Sprachen

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

Mehr

Grundlagen der theoretischen Informatik

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

Mehr

Automaten und formale Sprachen Klausurvorbereitung

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

Mehr

Theoretische Informatik Mitschrift

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

Mehr

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

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

Mehr

Grundlagen der Theoretischen Informatik

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

Mehr

Grundlagen der Theoretischen Informatik

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Alphabet, formale Sprache

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

Mehr

Kapitel IV Formale Sprachen und Grammatiken

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

Mehr

1 Automatentheorie und Formale Sprachen

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

Mehr

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

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

Mehr

Automaten und Formale Sprachen

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Berechenbarkeit und Komplexität

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

Mehr

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

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

Mehr

Satz (Abschluß unter der Stern-Operation)

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

Mehr

(Prüfungs-)Aufgaben zu formale Sprachen

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

Mehr

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

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

Mehr

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

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

Mehr

Einführung in die Theoretische Informatik

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Theoretische Informatik I (Grundzüge der Informatik I)

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

Mehr

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

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

Mehr

Theorie der Informatik

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

Mehr

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

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

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

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

Mehr

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

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

Mehr

Übungsaufgaben zu Formalen Sprachen und Automaten

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

Mehr

Klammersprache Definiere

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

Mehr

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

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

Mehr

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

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

Mehr

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

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

Mehr

Automaten und Formale Sprachen ε-automaten und Minimierung

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

Mehr

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

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

Mehr

Automatentheorie und formale Sprachen

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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Deterministischer Kellerautomat (DPDA)

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

Mehr

Theoretische Grundlagen der Informatik

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

Mehr

Herzlich willkommen!!!

Herzlich 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

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen 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:

Mehr

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

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

Mehr

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

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

Mehr

Theoretische Informatik für Medieninformatiker

Theoretische 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

Mehr

Reguläre Ausdrücke. Michael Jäger. 4. April 2017

Regulä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,

Mehr

Einführung in die Theoretische Informatik. Inhalte der Lehrveranstaltung. Definition (Boolesche Algebra) Einführung in die Logik

Einfü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

Mehr

Rekursiv aufzählbare Sprachen

Rekursiv 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

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

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

Mehr

Theorie der Informatik

Theorie 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

Mehr

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

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

Mehr

THIA - Übungsblatt 2.

THIA - Ü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

Mehr

Theoretische Informatik

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

Mehr

Nachklausur zur Vorlesung

Nachklausur 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

Mehr

Informatik 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 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)

Mehr

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

kontextfreie 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

Mehr

Formale Sprachen und endliche Automaten

Formale 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

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen 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

Mehr

Einführung in die Theoretische Informatik

Einfü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

Mehr

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

Mehr

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

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

Ü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

Mehr

7 Endliche Automaten. 7.1 Deterministische endliche Automaten

7 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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017

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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Einführung in die Informatik. Programming Languages

Einfü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

Mehr

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

1 Σ 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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

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

1 Σ 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

Mehr

Einführung in die Theoretische Informatik

Einfü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:

Mehr

Einführung in die Informatik. Programming Languages

Einfü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

Mehr

Kurz-Skript zur Theoretischen Informatik I

Kurz-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 ε

Mehr

Einführung in die Theoretische Informatik

Einfü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

Mehr

3 Syntax von Programmiersprachen

3 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

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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