Was bisher geschah: Formale Sprachen I Alphabet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen I reguläre Ausdrücke: Syntax, Semantik, Äquivalenz I Wortersetzungssysteme I Wortersetzungsregeln und -systeme I Ableitungen, Ableitungsgraph I durch Wortersetzungssysteme definierte Sprachen I Wortproblem in Wortersetzungssystemen im Allgemeinen nicht algorithmisch lösbar, aber algorithmisch lösbar für I I I nichtverlängernde Systeme nichtverkürzende Systeme Grammatiken I Terminal-, Nichtterminalsymbole I Ableitungen in Grammatiken I durch Grammatiken definierte Sprachen I Äquivalenz von Grammatiken I Chomsky-Hierarchie für Grammatiken und Sprachen 70 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 I T ein endliches Alphabet, I w ∈ T ∗ und I 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 Dyck-Sprache Klammerpaar ( und ) Dyck-Sprache: Menge aller korrekt geklammerten Ausdrücke erzeugt durch Grammatik = ({S}, {(, )}, P, S) mit S → ε S → SS P = S → (S) G Beispiele: I ()(()()) ∈ L(G ) I ())(6∈ L(G ) I ε ∈ L(G ) Achtung: I G hat Chomsky-Typ 0 I Dyck-Sprache hat Chomsky-Typ 2 72 Allgemeine Dyck-Sprachen Menge aller korrekt geklammerten Ausdrücke mit n Paaren von Klammern: (i , )i für i ∈ {1, . . . , n} erzeugt durch Grammatik = ({S}, {(i , )i | i ∈ {1, . . . , n}}, P, S) mit S → ε P = ∪ {S → (i S)i | i ∈ {1, . . . , n}} S → SS G 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 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 Wiederholung: abzählbare Mengen (Mathematik 1. Semester) Eine Menge M heißt genau dann abzählbar, wenn sie höchstens so mächtig wie ist. (also eine surjektive Funktion f : → M existiert) N N Mit dem ersten Diagonalverfahren von Cantor lässt sich z.B. zeigen: I Z und Q sind abzählbar. I Für jedes endliche Alphabet A ist die Menge A∗ aller Wörter über A abzählbar. I Für jedes endliche Alphabet A ist jede Sprache L ⊆ A∗ abzählbar. Mengen, die nicht abzählbar sind, heißen überabzählbar. 75 Beispiele überabzählbarer Mengen Mit dem zweiten Diagonalverfahren von Cantor lässt sich zeigen: R N ist überabzählbar (mächtiger als ). (Es gibt überabzählbar viele reelle Zahlen.) R [0, 1] ⊂ ist überabzählbar. (Intervall [0, 1] enthält überabzählbar viele reelle Zahlen.) 2N (Menge aller Mengen natürlicher Zahlen) ist mächtiger als . (Überabzählbarkeit der Menge 2N ) Es gibt überabzählbar viele Mengen natürlicher Zahlen. N 2{0,1} 2(A ∗ ∗ ) Menge aller Sprachen L ⊆ {0, 1}∗ ist mächtiger als {0, 1}∗ . (Es gibt überabzählbar viele Sprachen über dem Alphabet {0, 1}.) 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 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 I I I I Alphabet A0 = A ∪ {(, ), , , {, }, →, ε} endlich ∗ Menge (A0 ) aller Wörter über A0 abzählbar ∗ jede Grammatik über A ist ein Wort aus (A0 ) (endliche Beschreibung) Menge aller Grammatiken über A ist Teilmenge der ∗ abzählbaren Menge (A0 ) , also selbst abzählbar Damit existieren sogar sehr viel mehr (überabzählbar viele) Sprachen, die nicht durch Grammatiken beschrieben werden können. 77 Zustandsübergangssystem Münzschließfach fg S b O fo A G Z S bg bo 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 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 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 a 0 c 3 b 1 a 2 c c 4 80 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 b a 0 b a b b 1 a vollständig nicht deterministisch 0 b 1 nicht vollständig deterministisch 0 1 a vollständig deterministisch 81