Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprachen bedeutend für die Syntaxdefinition von Programmiersprachen (Compilerbau) Automaten akzeptieren Sprachen enge Beziehungen zu Grammatiken B Reichel, R Stiebe: Theoretische Informatik für Lehrer 117
Beispiel für eine Grammatik <Satz> <Subjekt><Prädikat><Objekt> <Subjekt> <Artikel><Attribut><Substantiv> <Prädikat> jagt <Objekt> <Artikel><Attribut><Substantiv> <Artikel> ε der die das <Attribut> ε <Adjektiv> <Adjektiv><Attribut> <Adjektiv> kleine bissige große <Substantiv> Hund Katze B Reichel, R Stiebe: Theoretische Informatik für Lehrer 118
Syntaxbaum für den Satz der kleine bissige Hund jagt die große Katze! " #$! %&! ' () 0 " 1-!% & '+ (# *+ (, - 0 (2 /+ (, "' &!&3 4 ' / 3 3!5 6 7 * B Reichel, R Stiebe: Theoretische Informatik für Lehrer 119
Definition Grammatik Eine Grammatik ist ein 4-Tupel G = (V, Σ, P, S), wobei V ein Alphabet ist (Nichtterminalalphabet oder Alphabet der Variablen), Σ ein Alphabet ist (Terminalalphabet), V Σ = gilt, P eine endliche Teilmenge von ((V Σ) \ Σ ) (V Σ) ist (Menge der Regeln), S V ist (die Startvariable oder Axiom) Zur besseren Lesbarkeit werden wir u v P für (u, v) P schreiben B Reichel, R Stiebe: Theoretische Informatik für Lehrer 120
Definitionen direkte Ableitung einer Grammatik Sei G = (V, Σ, P, S) eine Grammatik und u, v (V Σ) Wörter Dann gilt u = G v (in Worten: u erzeugt bezüglich G direkt v) genau dann, wenn (i) u = γ 1 αγ 2 mit γ 1, γ 2 (V Σ), (ii) v = γ 1 βγ 2 und (iii) α β P ist Wenn keine Verwechslungsgefahr besteht, schreiben wir statt = G einfach = B Reichel, R Stiebe: Theoretische Informatik für Lehrer 121
Definitionen Ableitung und erzeugte Sprache Sei G = (V, Σ, P, S) eine Grammatik und u, v (V Σ) Wörter Dann gilt u = G v (in Worten: u erzeugt bezüglich G in endlich vielen Schritten v) genau dann, wenn u = v gilt oder es ein n N und Wörter w 0, w 1,, w n gibt, so dass gilt u = w 0 = G w 1 = G w 2 = G = G w n = v Sei G = (V, Σ, P, S) eine Grammatik Die von G erzeugte Sprache L(G) wird definiert als L(G) = {w Σ S = G w} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 122
Beispiel einer Grammatik Es sei G = ({S}, {a, b}, {S asb, S ab}, S) eine Grammatik, dann gilt L(G) = {a n b n n 1} Eine Ableitung für das Wort a 4 b 4 sieht dann so aus: S = asb = aasbb = aaasbbb = aaaabbbb B Reichel, R Stiebe: Theoretische Informatik für Lehrer 123
Weiteres Beispiel einer Grammatik Es sei G = ({S}, {a}, {S aas, S a}, S) eine Grammatik, dann gilt L(G) = {a 2n+1 n 0} Eine Ableitung für das Wort a 7 sieht dann so aus: S = aas = aaaas = aaaaaas = aaaaaaa B Reichel, R Stiebe: Theoretische Informatik für Lehrer 124
Weiteres Beispiel einer Grammatik Es sei G = ({S}, {a, b}, {S as, S bs, S a, S b}, S) eine Grammatik, dann gilt L(G) = {a, b} + = {w {a, b} w ε} Eine Ableitung für das Wort aaba sieht dann so aus: S = as = aas = aabs = aaba B Reichel, R Stiebe: Theoretische Informatik für Lehrer 125
Komplexeres Beispiel einer Grammatik Es sei die Grammatik G = ({S, B, C}, {a, b, c}, P, S) mit P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc} gegeben Wir können zum Beispiel die Ableitung S = asbc = aasbcbc = aaabcbcbc = aaabbccbc = aaabbcbcc = aaabbbccc = aaabbbccc = aaabbbccc = aaabbbccc = aaabbbccc = aaabbbccc = aaabbbccc aufstellen, also gehört das Wort aaabbbccc = a 3 b 3 c 3 zur erzeugten Sprache L(G), es gilt also a 3 b 3 c 3 L(G) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 126
Komplexeres Beispiel einer Grammatik Erzeugte Sprache Teil 1 Vermutung: L(G) = {a n b n c n n 1} Zunächst wird L(G) {a n b n c n n 1} gezeigt, dh S = a n b n c n für jedes n 1 Wende (n 1)-mal Regel S asbc und dann einmal S abc an, dh: S = a n (BC) n Solange wie möglich wende CB BC an, dh: a n (BC) n = a n B n C n Wende einmal ab ab und (n 1)-mal bb bb an, dh: a n B n C n = a n b n C n Wende einmal bc bc und (n 1)-mal cc cc an, dh: a n b n C n = a n b n c n B Reichel, R Stiebe: Theoretische Informatik für Lehrer 127
Komplexeres Beispiel einer Grammatik Erzeugte Sprache Teil 2 Schwieriger zu zeigen ist die Behauptung L(G) {a n b n c n n 1} Für jedes erzeugbare Wort α gilt: α a = α b + α B = α c + α C In jedem erzeugbaren Wort stehen die a s am Anfang Ein Symbol B kann nur dann in ein b umgewandelt werden, wenn unmittelbar links vor ihm ein a oder ein b steht, dh kein c steht vor einem b Mathematisch exakter Beweis erfolgt durch vollständige Induktion B Reichel, R Stiebe: Theoretische Informatik für Lehrer 128
Chomsky-Hierarchie Definition: Eine Grammatik G = (V, Σ, P, S) heißt vom Typ 0, wenn sie keinen Beschränkungen unterliegt, Typ 1 oder kontextabhängig, falls für jede Regel α β gilt: α β, mit der Ausnahme S ε, falls S nicht auf der rechten Seite einer Regel vorkommt Typ 2 oder kontextfrei, wenn jede Regel von der Form A β mit A V und β (V Σ) ist Typ 3 oder regulär, wenn jede Regel von der Form A wb oder A w mit A, B V und w Σ ist B Reichel, R Stiebe: Theoretische Informatik für Lehrer 129
Chomsky-Hierarchie Fortsetzung Definition: Eine Sprache L Σ heißt vom Typ 0 (Typ 1, Typ 2, Typ 3), falls es eine Grammatik G = (V, Σ, P, S) vom Typ 0 (Typ 1, Typ 2, Typ 3) gibt, so dass L = L(G) gilt Notation: Typ i: Familie der Sprachen vom Typ i {0, 1, 2, 3} Satz (Chomsky-Hierarchie) Es gilt: Typ 3 Typ 2 Typ 1 Typ 0 Der Beweis des Satzes wird in den folgenden Kapiteln erbracht B Reichel, R Stiebe: Theoretische Informatik für Lehrer 130
Typ-0-Grammatiken und Turingmaschinen Satz Eine Sprache ist genau dann eine Typ-0-Sprache, wenn sie von einer NTM akzeptiert werden kann, dh wenn sie rekursiv aufzählbar ist Beweisidee Ableitung einer Grammatik wird in umgekehrter Reihenfolge durch eine NTM simuliert Konfigurationenfolge eines akzeptierenden Laufs einer NTM wird in umgekehrter Reihenfolge durch eine Grammatik erzeugt B Reichel, R Stiebe: Theoretische Informatik für Lehrer 131
Simulation einer Grammatik durch eine NTM gegeben: Grammatik G = (V, Σ, P, S) Konstruiere NTM M = (Z, Σ, V Σ { }, δ, z 0,, {q}) Arbeitsweise von M in einer Phase: Rate eine Regel α β und ersetze ein Vorkommen von β durch α, dh Konfigurationsänderung: z 0 w 1 βw 2 z 0 w 1 αw 2 M akzeptiert, wenn nur noch S auf dem Band steht B Reichel, R Stiebe: Theoretische Informatik für Lehrer 132
Linear beschränkte Automaten Definition Eine nichtdeterministische Turingmaschine M heißt linear beschränkter Automat (LBA), wenn bei jedem Lauf von M nur die Speicherzellen der Eingabe benutzt werden Offenes Problem (LBA-Problem): Sind deterministische LBA so mächtig wie nichtdeterministische LBA? B Reichel, R Stiebe: Theoretische Informatik für Lehrer 133
Typ-1-Grammatiken und LBA Satz Eine Sprache ist genau dann eine Typ-1-Sprache, wenn sie von einem linear beschränkten Automaten akzeptiert werden kann Beweisidee Gleiche Konstruktionen wie für Typ-0-Grammatiken und NTM Nichtverkürzende Regeln erlauben den beschränkten Platzbedarf B Reichel, R Stiebe: Theoretische Informatik für Lehrer 134
Das Wortproblem Definition (Wortproblem) Gegeben: Grammatik G = (V, Σ, P, S) vom Typ i, i {0, 1, 2, 3}, und Wort w Σ, Frage: Gilt w L(G)? Folgerung Das Wortproblem für Typ-0-Grammatiken ist semi-entscheidbar, aber nicht entscheidbar Satz Das Wortproblem für Typ-1-Grammatiken ist entscheidbar B Reichel, R Stiebe: Theoretische Informatik für Lehrer 135
Weitere Entscheidungsprobleme Leerheitsproblem: Gegeben: Grammatik G Frage: Gilt L(G) =? Endlichkeitsproblem: Gegeben: Grammatik G Frage: Ist L(G) endlich? Schnittproblem: Gegeben: Zwei Grammatiken G 1, G 2 Frage: Gilt L(G 1 ) L(G 2 ) =? Äquivalenzproblem: Gegeben: Zwei Grammatiken G 1, G 2 Frage: Gilt L(G 1 ) = L(G 2 )? Satz: Das Leerheitsproblem, das Endlichkeitsproblem, das Äquivalenzproblem und das Schnittproblem sind unentscheidbar für Typ-1-Grammatiken B Reichel, R Stiebe: Theoretische Informatik für Lehrer 136
Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (zb lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen Äquivalenz zu endlichen Automaten Äquivalenz zu regulären Ausdrücken Grenzen der regulären Sprachen (Pumping-Lemma) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 137
Endliche Automaten Definition Ein deterministischer endlicher Automat (DEA) A ist ein 5-Tupel A = (Z, Σ, δ, z 0, E) Dabei sind Z das Zustandsalphabet, Σ das Eingabealphabet mit Z Σ =, δ : Z Σ Z die Zustandsüberführungsfunktion, z 0 Z der Anfangszustand und E Z die Menge der Endzustände B Reichel, R Stiebe: Theoretische Informatik für Lehrer 138
Interpretation der Arbeitsweise des Endlichen Automaten a 1 a 2 a i a i+1 a n a 1 a 2 a i a i+1 a n z = für δ(z, a i ) = z z Turingmaschine, die die Eingabe einmal von links nach rechts liest B Reichel, R Stiebe: Theoretische Informatik für Lehrer 139
Akzeptierte Sprache des Endlichen Automaten Definition Sei A ein deterministischer endlicher Automat A = (Z, Σ, δ, z 0, E); die erweiterte Zustandsüberführungsfunktion ˆδ : Z Σ Z wird definiert durch (i) ˆδ(z, ε) = z für alle z Z, (ii) ˆδ(z, wa) = δ(ˆδ(z, w), a) für alle z Z, a Σ, w Σ Definition Für einen DEA A = (Z, Σ, δ, z 0, E) ist die von ihm akzeptierte Sprache T (A) definiert durch T (A) = {w Σ ˆδ(z 0, w) E} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 140
Überführungsgraphen! " $#"% & ' )(*+-,/0 1 / B Reichel, R Stiebe: Theoretische Informatik für Lehrer 141
Endliche Automaten Beispiel Es sei A der deterministische endliche Automat A = ({z 0, z 1, z 2, z 3 }, {0, 1}, δ, z 0, {z 2, z 3 }), mit der Überführungsfunktion δ, gegeben durch folgende Tabelle δ z 0 z 1 z 2 z 3 0 z 0 z 3 z 3 z 0 1 z 1 z 2 z 2 z 1 B Reichel, R Stiebe: Theoretische Informatik für Lehrer 142
DEA Beispiel (Fortsetzung) Der dazugehörige Graph lautet B Reichel, R Stiebe: Theoretische Informatik für Lehrer 143
Nichtdeterministische endliche Automaten Definition Ein nichtdeterministischer endlicher Automat (NEA) A ist ein 5-Tupel A = (Z, Σ, δ, z 0, E) Dabei sind Z das Zustandsalphabet, Σ das Eingabealphabet mit Z Σ =, δ : Z Σ 2 Z die Zustandsüberführungsfunktion, z 0 Z der Anfangszustand und E Z die Menge der Endzustände B Reichel, R Stiebe: Theoretische Informatik für Lehrer 144
Akzeptierte Sprache eines NEA Definition Sei A ein NEA mit A = (Z, Σ, δ, z 0, E); die erweiterte Zustandsfunktion ˆδ : Z Σ 2 Z wird definiert durch (i) ˆδ(z, ε) = {z} für alle z Z, (ii) ˆδ(z, wa) = δ(z, a) das heißt z ˆδ(z,w) = {z Z z Z mit z ˆδ(z, w) und z δ(z, a)} für z Z, a Σ, w Σ Definition Für einen NEA A = (Z, Σ, δ, z 0, E) sei die von ihm akzeptierte Sprache T (A) definiert durch T (A) = {w Σ ˆδ(z 0, w) E } B Reichel, R Stiebe: Theoretische Informatik für Lehrer 145
Beispiel eines NEA Beispiel Sei A = ({z 0, z 1, z 2 }, {0, 1}, δ, z 0, {z 2 }) ein NEA, wobei δ durch die folgende Tabelle gegeben ist: δ z 0 z 1 z 2 0 {z 0 } {z 2 } 1 {z 0, z 1 } {z 2 } Der dazugehörige Graph ist: B Reichel, R Stiebe: Theoretische Informatik für Lehrer 146
Beispiel eines NEA Fortsetzung ˆδ(z 0, 0) = {z 0 } 0 / T (A) ˆδ(z 0, 1) = {z 0, z 1 } 1 / T (A) ˆδ(z 0, 01) = {z 0, z 1 } 01 / T (A) ˆδ(z 0, 11) = {z 0, z 1, z 2 } 11 T (A) ˆδ(z 0, 001) = {z 0, z 1 } 001 / T (A) ˆδ(z 0, 010) = {z 0, z 2 } 010 T (A) Die akzeptierte Sprache T (A) ist die Menge aller Wörter über {0, 1}, deren vorletztes Symbol eine 1 ist, d h T (A) = {w {0, 1} w = u1x mit u {0, 1}, x {0, 1}} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 147
Äquivalenz von NEA und DEA Satz Jede von einem NEA akzeptierte Sprache ist auch von einem DEA akzeptierbar Beweis (Potenzmengen-Konstruktion) Aus NEA A = (Z, Σ, δ, z 0, E) konstruiere DEA A = (Z, Σ, δ, z 0, E ): Dann gilt Z = 2 Z, z 0 = {z 0 }, E = {z Z z E }, δ (z, a) = z z δ(z, a) für alle z Z und a Σ ˆδ ({z 0 }, w) = ˆδ(z 0, w) für alle w Σ, dh T (A) = T (A ) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 148
Beispiel NEA DEA Wir betrachten den NEA von Folie 146 Wir konstruieren den äquivalenten DEA A = (Z, {0, 1}, δ, {z 0 }, E ) Bemerkung: Man braucht nur die Teilmengen von Z zu betrachten, die von {z 0 } erreichbar sind (sparsame Potenzmengenkonstruktion) δ {z 0 } {z 0, z 1 } {z 0, z 2 } {z 0, z 1, z 2 } 0 {z 0 } {z 0, z 2 } {z 0 } {z 0, z 2 } 1 {z 0, z 1 } {z 0, z 1, z 2 } {z 0, z 1 } {z 0, z 1, z 2 } Z = {{z 0 }, {z 0, z 1 }, {z 0, z 2 }, {z 0, z 1, z 2 }} E = {{z 0, z 2 }, {z 0, z 1, z 2 }} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 149
Beispiel NEA DEA Fortsetzung Zur besseren Lesbarkeit bezeichnen wir die Zustände um: {z 0 } =: q 0, {z 0, z 1 } =: q 1, {z 0, z 2 } =: q 2 und {z 0, z 1, z 2 } =: q 3 mit A = ({q 0, q 1, q 2, q 3 }, {0, 1}, δ, q 0, {q 2, q 3 }) δ q 0 q 1 q 2 q 3 0 q 0 q 2 q 0 q 2 1 q 1 q 3 q 1 q 3 B Reichel, R Stiebe: Theoretische Informatik für Lehrer 150
Endliche Automaten und reguläre Grammatiken Satz Sei A ein NEA Dann ist die von A akzeptierte Sprache T (A) regulär Beweis Aus NEA A = (Z, Σ, δ, z 0, E) konstruiere Typ-3-Grammatik G = (V, Σ, P, S) mit V = Z, S = z 0 und P = {z 1 az 2 z 2 δ(z 1, a))} {z 1 ε z 1 E} Es gilt z 1 = G wz 2 genau dann, wenn z 2 ˆδ(z 1, w) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 151
NEA Grammatik Beispiel Sei A = ({z 0, z 1, z 2, z 3 }, {a, b}, δ, z 0, {z 3 }) der DEA mit der Überführungsfunktion δ: δ z 0 z 1 z 2 z 3 a z 1 z 1 z 3 z 3 b z 0 z 2 z 0 z 3 Wir konstruieren jetzt die äquivalente Typ-3-Grammatik G = (V, Σ, P, S): V = {z 0, z 1, z 2, z 3 }, Σ = {a, b}, S = z 0, P = {z 0 az 1, z 0 bz 0, z 1 az 1, z 1 bz 2 } {z 2 az 3, z 2 bz 0, z 3 az 3, z 3 bz 3 } {z 3 ε} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 152
Eine Normalform für reguläre Grammatiken Lemma Für jede reguläre Sprache L gibt es eine Typ-3-Grammatik G = (V, Σ, P, S) mit L(G) = L, deren Regeln der folgenden Form sind: A ab, A, B V, a Σ oder A ε, A V B Reichel, R Stiebe: Theoretische Informatik für Lehrer 153
Reguläre Grammatik NEA Satz Sei G eine reguläre Grammatik; dann existiert ein NEA A mit T (A) = L(G) Beweis Für eine reguläre Grammatik G = (V, Σ, P, S) in Normalform konstruieren wir den NEA A = (Z, Σ, δ, z 0, E) wie folgt: Z = V, z 0 = S, E = {A V A ε P } δ(a, a) = {B V A ab P } für A V und a Σ B Reichel, R Stiebe: Theoretische Informatik für Lehrer 154
Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (i) ist ein regulärer Ausdruck über Σ (ii) ε ist ein regulärer Ausdruck über Σ (iii) Für jedes a Σ ist a ein regulärer Ausdruck über Σ (iv) Wenn α und β reguläre Ausdrücke über Σ sind, so sind auch αβ, (α β) und (α) reguläre Ausdrücke über Σ B Reichel, R Stiebe: Theoretische Informatik für Lehrer 155
Sprache eines regulären Ausdrucks Definition (Sprache eines regulären Ausdrucks) Sei Σ ein Alphabet und γ ein regulärer Ausdruck über Σ, dann wird die von γ beschriebene Sprache L(γ) Σ wie folgt definiert (i) Für γ = gilt L(γ) = (ii) Für γ = ε gilt L(γ) = {ε} (iii) Für γ = a mit a Σ gilt L(γ) = {a} (iv) Für γ = αβ gilt L(γ) = L(α) L(β) (v) Für γ = (α β) gilt L(γ) = L(α) L(β) (vi) Für γ = (α) gilt L(γ) = (L(α)) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 156
Beispiel eines regulären Ausdrucks L((0 (0 1) 00)) = L(0) L((0 1) 00)) = L(0) (L((0 1) 0)) L(0)) = L(0) ((L((0 1) )) L(0)) L(0)) = L(0) (((L((0 1))) L(0)) L(0)) = L(0) (((L(0) L(1)) L(0)) L(0)) = {0} ((({0} {1}) {0}) {0}) = {0} (({0, 1} {0}) {0}) = {0} ({0, 1} {00}), Das heißt, die vom Ausdruck (0 (0 1) 00) beschriebene Sprache ist die Menge aller Wörter über dem Alphabet {0, 1}, die gleich 0 sind oder auf 00 enden B Reichel, R Stiebe: Theoretische Informatik für Lehrer 157
Äquivalenz regulärer Ausdrücke Definition Zwei reguläre Ausdrücke β und γ heißen äquivalent, in Zeichen β γ, wenn L(β) = L(γ) gilt Beispiel: ((a b)) ((a b)(a b)) ((a b) ε) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 158
Rechenregeln für reguläre Ausdrücke (A (B C)) ((A B) C) A(B C) (AB AC) (B C)A (BA CA) (A B) (B A) (A A) A (A ) ( A) A A A Aε εa A ((A) ) (A) ( ) ε ((A ε)) (A) (A) (ε A)A ((ε A)) A B Reichel, R Stiebe: Theoretische Informatik für Lehrer 159
Bemerkung zu regulären Ausdrücken 1 Wir vereinbaren, dass wir Klammern, die nicht notwendigerweise gebraucht werden, weglassen können Zum Beispiel können wir statt (α (β γ)) auch (α β γ) schreiben Wir schreiben auch L(α β) statt L((α β)) sowie a statt (a) für a Σ 2 Wir benutzen die abkürzende Schreibweise α n für αα } {{ α} n-mal 3 Wir benutzen die abkürzende Schreibweise α + für α α 4 In der Literatur findet man oft auch abweichende Schreibweisen der regulären Ausdrücke Zum Beispiel findet man für (α β) auch (α + β) oder auch (α β) Auch wird natürlich oft α β für αβ zugelassen 5 Oft wird in der Literatur zwischen regulärem Ausdruck und beschriebener Sprache nicht unterschieden, das heißt, man identifiziert einen regulären Ausdruck mit der beschriebenen Sprache B Reichel, R Stiebe: Theoretische Informatik für Lehrer 160
Weitere Beispiele regulärer Ausdrücke (a b) beschreibt die Menge aller Wörter über dem Alphabet {a, b} (a b) + beschreibt die Menge aller Wörter über dem Alphabet {a, b}, die nicht dem leeren Wort entsprechen (a b) aba(a b) beschreibt die Menge aller Wörter über dem Alphabet {a, b}, die das Teilwort aba haben (a b) a(a b) 2 beschreibt die Menge aller Wörter über dem Alphabet {a, b}, deren drittletztes Symbol ein a ist ((a b)(a b)) beschreibt die Menge aller Wörter über dem Alphabet {a, b}, deren Länge gerade ist (b ε)(ab) (a ε) beschreibt die Menge aller Wörter über dem Alphabet {a, b}, die nicht das Teilwort aa und nicht das Teilwort bb enthalten B Reichel, R Stiebe: Theoretische Informatik für Lehrer 161
Satz von Kleene Satz (Kleene) Die Menge der durch reguläre Ausdrücke beschreibbaren Sprachen ist genau die Menge der regulären Sprachen Beweis (Konstruktionen) regulärer Ausdruck NEA: Induktion über Aufbau der Ausdrücke NEA regulärer Ausdruck: Lösung von Gleichungssystemen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 162
Regulärer Ausdruck NEA 1 Automaten für die Ausdrücke, ε und a: 2 Seien A α bzw A β NEA mit T (A α ) = L(α) bzw T (A β ) = L(β) Konstruiere NEA für αβ, (α β) und α (formale Konstruktion: siehe Skript) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 163
Regulärer Ausdruck NEA Fortsetzung (a) Automat für αβ: Verschmelze Endzustände von A α mit Startzustand von A β ( Reihenschaltung ) neuer Startzustand: Startzustand von A α neue Endzustände: Endzustände von A β B Reichel, R Stiebe: Theoretische Informatik für Lehrer 164
Regulärer Ausdruck NEA Fortsetzung (b) Automat für (α β): Neuer Startzustand mit Kanten zu den Nachfolgern der Startzustände von A α und A β ( Parallelschaltung ) neue Endzustände: Endzustände von A α und A β B Reichel, R Stiebe: Theoretische Informatik für Lehrer 165
Regulärer Ausdruck NEA Fortsetzung (c) Automat für (α) : Füge für jede Kante zu einem Endzustand eine gleiche Kante zum Startzustand ein neuer Endzustand: Startzustand von A α B Reichel, R Stiebe: Theoretische Informatik für Lehrer 166
NEA Regulärer Ausdruck Aufstellen eines linearen Gleichungssystems für einen NEA Auflösen des linearen Gleichungssystems regulärer Ausdruck (Wegen der besseren Lesbarkeit geben wir nicht die Ausdrücke, sondern ihre Sprachen an) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 167
Gleichungssystem zu einem NEA NEA A = (Z, Σ, δ, z 0, E) Für z Z sei A z = (Z, Σ, δ, z, E) und L z = T (A z ) Für alle z Z gilt: L z = z Z a:z δ(z,a) a L z E z mit E z = {, falls z / E {ε}, sonst Lineares Gleichungssystem mit den Variablen L z, z Z Falls eine eindeutige Lösung existiert, so ist durch L z0 der gesuchte reguläre Ausdruck bekannt B Reichel, R Stiebe: Theoretische Informatik für Lehrer 168
Gleichungssystem zu einem NEA-Beispiel L z0 = {a} L z0 {b} L z1 {ε} L z1 = {b} L z1 {a} L z2 {ε} L z2 = {a} L z0 {b} L z3 {ε} L z3 = {a, b} L z3 B Reichel, R Stiebe: Theoretische Informatik für Lehrer 169
Auflösen linearer Gleichungssysteme Lemma Für B, C Σ mit ε B gilt: Die Gleichung L = B L C besitzt die einzige Lösung L = B C Auflösung von Gleichungssytemen durch sukzessive Eliminierung der Variablen L z unter Nutzung des Lemmas B Reichel, R Stiebe: Theoretische Informatik für Lehrer 170
Auflösen linearer Gleichungssysteme - Beispiel Für das Gleichungssystem auf Folie 169 ergibt sich L z3 = {a, b} L z3 L z3 = {a, b} = L z2 = {a} L z0 {b} L z3 {ε} L z2 = {a} L z0 {ε} L z1 = {b} L z1 {a} L z2 {ε} = {b} L z1 {aa} L z0 {a, ε} L z1 = {b} {aa} L z0 {b} {a, ε} L z0 = {a} L z0 {b} L z1 {ε} = {a} L z0 {b} + {aa} L z0 {b} + {a, ε} {ε} L z0 = ({a} {b} + {aa}) ({b} + {a, ε} {ε}) Regulärer Ausdruck: (a b + aa) (b + (a ε) ε) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 171
Das Pumping Lemma Satz (Pumping Lemma) Sei L eine reguläre Sprache Dann gibt es eine Konstante k N, so dass für alle Wörter z L mit z k eine Zerlegung z = uvw existiert, so dass gilt: (i) uv k und v 1, (ii) für alle i N gilt uv i w L Bedeutung: Wichtiges Hilfsmittel um zu beweisen, dass eine Sprache nicht regulär ist B Reichel, R Stiebe: Theoretische Informatik für Lehrer 172
Pumping Lemma Beweis Reguläre Sprache L werde durch DEA A = (Z, Σ, δ, z 0, E) mit k Zuständen akzeptiert Betrachte Wort x L mit x k Es gilt ˆδ(z 0, x) = q für ein q E Nach Einlesen der ersten k Buchstaben von x wurden k + 1 Zustände angenommen Nach dem Schubfachprinzip müssen 2 dieser Zustände gleich sein, dh es gibt eine Zerlegung x = uvw mit uv k, v > 0, ˆδ(z0, u) = ˆδ(z 0, uv) = z u, ˆδ(z 0, uvw) = q Nach Definition von ˆδ gilt: ˆδ(z u, v) = z u, dh ˆδ(z u, v i ) = z u für alle i 0 Es folgt ˆδ(z 0, uv i w) = ˆδ(ˆδ(z 0, uv i ), w) = ˆδ(z u, w) = q, dh uv i w L B Reichel, R Stiebe: Theoretische Informatik für Lehrer 173
Anwendung des Pumping Lemmas Erfüllt eine Sprache nicht die Folgerung des Pumping-Lemmas, so kann sie auch nicht regulär sein Um zu beweisen, dass eine Sprache L nicht die Folgerung des Pumping- Lemmas erfüllt, muss man Folgendes zeigen: Für jede natürliche Zahl k existiert ein Wort z mit z k, so dass für jede Zerlegung z = uvw mit uv k und v 1 ein i N existiert, so dass uv i w / L gilt B Reichel, R Stiebe: Theoretische Informatik für Lehrer 174
Anwendungen des Pumping Lemmas - Beispiel Satz: Die Menge PAL der Palindrome über {a, b} ist nicht regulär Beweis Wir zeigen, dass PAL nicht die Behauptung des Pumping-Lemmas erfüllt Sei k eine beliebige natürliche Zahl Wähle z = a k ba k (Offensichtlich gilt z k und z PAL) Für jede Zerlegung z = uvw mit uv k und v 1 gilt: u = a r, v = a s, w = a k r s ba k mit r + s k und s 1 Wähle i = 2 Es gilt uv 2 w = a r a 2s a k r s ba k = a k+s ba k / PAL B Reichel, R Stiebe: Theoretische Informatik für Lehrer 175
Anwendungen des Pumping Lemmas Mit Hilfe des Pumping Lemmas kann man auch die Nichtregularität der Sprachen L = {a n2 n 1}, L = {a 2n n 1}, L = {a p p Primzahl}, L = {a n b n n 1}, L = {ww w {a, b} }, L = Menge der regulären Ausdrücke über Σ und vieler anderer zeigen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 176
Abschlusseigenschaften regulärer Sprachen Satz Sind A und B reguläre Sprachen über Σ, dann sind auch (i) A B, (ii) A B, (iii) A B, (iv) Σ \ A und (v) A reguläre Sprachen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 177
Wortproblem und andere Entscheidungsprobleme Satz Das Wortproblem für ein Wort der Länge n und einen DEA ist mit einem Zeitaufwand von O(n) entscheidbar Satz Das Wortproblem für ein Wort der Länge n und einen NEA mit k Transitionen ist mit einem Zeitaufwand von O(n k) entscheidbar Satz Das Leerheitsproblem, das Endlichkeitsproblem, das Schnittproblem für NEA sind in linearer Zeit (Leerheit, Endlichkeit) bzw in quadratischer Zeit (Schnitt) entscheidbar Satz Das Äquivalenzproblem für DEA ist in quadratischer Zeit entscheidbar Satz Das Äquivalenzproblem für NEA ist in exponentieller Zeit entscheidbar (und NP-hart, genauer: PSPACE-vollständig) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 178
Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch Kellerautomaten Deterministisch kontextfreie Sprachen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 179
Beispiel für eine kontextfreie Grammatik G = ({S, X, C}, {x, c, 0, +,, ;, :=,, LOOP, WHILE, DO, END}, P, S) mit folgenden Regeln in der Regelmenge P : S S; S S LOOP X DO S END S WHILE X 0 DO S END S X := X + C S X := X C X x C c B Reichel, R Stiebe: Theoretische Informatik für Lehrer 180
Weiteres Beispiel für eine kontextfreie Grammatik G = ({S}, {a 1, a 2, b 1, b 2 }, P, S) mit der Regelmenge P = {S SS, S a 1 Sb 1, S a 2 Sb 2, S ε} G erzeugt die Sprache D 2, die sogenannte Dyck-Sprache über zwei Klammerpaaren Induktive Definition von D 2 : 1 ε D 2 2 Aus w 1 D 2, w 2 D 2 folgt w 1 w 2 D 2 3 Aus w D 2 folgt a 1 wb 1 D 2 und a 2 wb 2 D 2 4 D 2 enthält keine weiteren Wörter B Reichel, R Stiebe: Theoretische Informatik für Lehrer 181
Syntaxbäume Jeder Ableitung eines Wortes w in einer kontextfreien Grammatik kann eindeutig ein Syntaxbaum zugeordnet werden Sei w L(G) und S = w 0 = w 1 = w 2 = = w n = w eine Ableitung für w Dann wird der Syntaxbaum folgendermaßen konstruiert: Die Wurzel hat die Beschriftung S Nach dem i-ten Schritt ergeben die Beschriftungen der Blätter von links nach rechts gelesen das Wort w i, 0 i n Wird bei der Ableitung eine Regel A α angewendet, so erhält das zugehörige Blatt (mit der Beschriftung A) α Söhne, deren Beschriftung von links nach rechts das Wort α ergibt B Reichel, R Stiebe: Theoretische Informatik für Lehrer 182
Linksableitungen Definition Eine Ableitung in einer kontextfreien Grammatik heißt Linksableitung, wenn in jedem Schritt das am weitesten links stehende Nichtterminalsymbol ersetzt wird Jedem Syntaxbaum zu einer Ableitung kann eindeutig eine Linksableitung zugeordnet werden, dh: Satz Die von einer kontextfreien Grammatik G erzeugte Sprache ist die Menge der durch Linksableitungen in G erzeugbaren Wörter B Reichel, R Stiebe: Theoretische Informatik für Lehrer 183
Chomsky Normalform Definition Eine kontextfreie Grammatik G = (V, Σ, P, S) ist in Chomsky Normalform, falls jede Regel in P in einer der Formen (i)-(iii) ist: (i) A BC mit A, B, C V, (ii) A a mit A V und a Σ, (iii) S ε, wobei S auf keiner rechten Seite einer Regel vorkommt Satz Zu jeder kontextfreien Grammatik G kann man eine kontextfreie Grammatik G in Chomsky Normalform konstruieren mit L(G) = L(G ) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 184
Der Algorithmus von Cocke, Younger und Kasami Eingabe: Ausgabe: kontextfreie Grammatik G = (V, Σ, P, S) in Chomsky NF, Wort w Σ ja, falls w L(G); nein, sonst Grundidee des CYK-Algorithmus w[s, t] sei das Teilwort von w von der Stelle s bis zur Stelle t, wobei 1 s t n = w Bestimme für 1 j n und 1 i n j + 1 die Mengen T [i, j] = {A V A = w[i, i + j 1]} Es gilt w L(G) genau dann, wenn S T [1, n] B Reichel, R Stiebe: Theoretische Informatik für Lehrer 185
CYK-Algorithmus Fortsetzung Induktive Bestimmung der Mengen T [i, j]: Für j = 1: T [i, 1] = {A V A w[i, i] P } Für j > 1: T [i, j] = {A V es gibt B, C V und 1 k < j mit A BC P, B T [i, k], C T [i + k, j k]} CYK-Algorithmus ist Beispiel für Dynamische Programmierung B Reichel, R Stiebe: Theoretische Informatik für Lehrer 186
Beispiel für CYK-Algorithmus Die Sprache L = {a n b n c m m, n 1} ist kontextfrei und wird von der Grammatik G = (V, Σ, P, S) mit den Regeln S AB, A aab ab, B cb c erzeugt Eine äquivalente Grammatik in Chomsky Normalform für L hat folgende Menge von Regeln: S AB, B EB c, C a, A CD CF, F AD, D b, E c Sei x = aaabbbcc Dann erzeugt der Algorithmus folgende Tabelle B Reichel, R Stiebe: Theoretische Informatik für Lehrer 187
Beispiel für CYK-Algorithmus Tabelle j i a a a b b b c c C C C D D D E, B E, B A S S F A F A B = x B Reichel, R Stiebe: Theoretische Informatik für Lehrer 188
Beispiel für CYK-Algorithmus Erklärung In der Tabelle stellt jedes Feld eine Menge T [i, j] von Nichtterminalen dar Die Koordinatenachsen für i und j sind eingezeichnet Der Algorithmus besteht aus drei Teilen Im ersten Teil wird die oberste Zeile (T [i, 1]) berechnet Im zweiten Teil werden zeilenweise die weiteren Mengen T [i, j] berechnet, indem immer die zugehörige Spalte von oben und die nach rechts oben führende Diagonale betrachtet werden Im dritten Teil des Algorithmus schließlich wird die Menge T [1, n] betrachtet, hier T [1, 8] Ausgabe ja genau dann, wenn S T [1, n] B Reichel, R Stiebe: Theoretische Informatik für Lehrer 189
Fortsetzung CYK-Algorithmus Noch eine Bemerkung: aus der aufgestellten Tabelle kann man auch die Ableitung für das Wort x ablesen, indem wir rückwärts die Regeln anwenden, die auf S in T [1, n] geführt haben Hier sieht die Ableitung für aaabbbc dann folgendermaßen aus (die Nonterminale, die ersetzt werden, sind jeweils unterstrichen) S = AB = CF B = CADB = CCF DB = CCADDB = CCCDDDB = accdddb = aacdddb = aaadddb = aaabddb = aaabbdb = aaabbbb = aaabbbc B Reichel, R Stiebe: Theoretische Informatik für Lehrer 190
Pumping Lemma für kontextfreie Sprachen Sei L eine kontextfreie Sprache Dann gibt es eine Konstante k N, so dass für alle Wörter z L mit z k eine Zerlegung z = uvwxy existiert, so dass gilt: (i) vwx k und vx 1, (ii) für alle i N gilt uv i wx i y L B Reichel, R Stiebe: Theoretische Informatik für Lehrer 191
Pumping Lemma Anwendung Mit Hilfe des Pumping Lemmas kann man zeigen, dass folgende Sprachen nicht kontextfrei sind: {a n b n c n n 1}, {ww w {a, b} }, {a m b n a m b n m, n 1}, {a 2n n 0}, {a m b n 0 m, 1 n 2 m } B Reichel, R Stiebe: Theoretische Informatik für Lehrer 192
Abschlusseigenschaften Satz Die Menge der kontextfreien Sprachen ist unter den Operationen (i) Vereinigung, (ii) Produkt (Konkatenation) und (iii) Kleene-Stern abgeschlossen Sie ist unter den Operationen (iv) Durchschnitt und (v) Komplement nicht abgeschlossen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 193
Weitere Entscheidungsprobleme Satz Das Leerheitsproblem und das Endlichkeitsproblem für kontextfreie Grammatiken sind entscheidbar Satz Das Schnittproblem und das Äquivalenzproblem für kontextfreie Grammatiken sind unentscheidbar B Reichel, R Stiebe: Theoretische Informatik für Lehrer 194
Kellerautomaten endliche Automaten besitzen nur begrenzten Speicherplatz (ihre Zustände) Turingmaschinen besitzen unbegrenzten Speicherplatz mit im Prinzip wahlfreiem Zugriff Kellerautomaten besitzen unbegrenzten Speicherplatz in Form eines Kellerspeichers (Stack) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 195
Definition Kellerautomat Definition Ein (nichtdeterministischer) Kellerautomat (kurz PDA von pushdown automaton) M ist ein 6-Tupel M = (Z, Σ, Γ, δ, z 0, #) Dabei ist Z das Zustandsalphabet, Σ das Eingabealphabet, Γ das Kelleralphabet, z 0 Z der Anfangszustand, δ : Z (Σ {ε}) Γ 2 Z Γ E die Zustandsüberführungsfunktion bedeutet dabei die Menge der endlichen Teilmengen von X), (2 X E # Γ das Kelleranfangssymbol B Reichel, R Stiebe: Theoretische Informatik für Lehrer 196
Arbeitsweise von Kellerautomaten Der PDA startet im Zustand z 0 und mit dem Kellerinhalt # Bei (z, B 1 B 2 B k ) δ(z, a, A) mit a Σ befindet sich der PDA im Zustand z, liest auf dem Eingabeband ein a und im Keller ein A (das oberste Symbol) Er entfernt dieses A aus dem Keller, geht in den Zustand z über, bewegt den Lesekopf auf dem Eingabeband einen Schritt nach rechts und schreibt auf den Keller das Wort B 1 B 2 B k derart, dass B 1 das neue oberste Symbol des Kellers ist Bei (z, B 1 B 2 B k ) δ(z, ε, A) liest er im Gegensatz zur obigen Aktion auf dem Eingabeband nichts ein und bewegt den Lesekopf auf dem Eingabeband nicht Der PDA akzeptiert die Eingabe, wenn er sie vollständig eingelesen hat und der Keller leer ist (auch # steht nicht mehr im Keller) B Reichel, R Stiebe: Theoretische Informatik für Lehrer 197
Kellerautomat: Arbeitsweise für (z, B 1 B 2 B k ) δ(z, a i, A 1 ) a 1 a 2 a i a i+1 a n a 1 a 2 a i a i+1 a n z A 1 A 2 A r # z B 1 B k A 2 A r # B Reichel, R Stiebe: Theoretische Informatik für Lehrer 198
Kellerautomat: Arbeitsweise für (z, B 1 B 2 B k ) δ(z, ε, A 1 ) a 1 a 2 a i a i+1 a n a 1 a 2 a i a i+1 a n z A 1 A 2 A r # z B 1 B k A 2 A r # B Reichel, R Stiebe: Theoretische Informatik für Lehrer 199
Konfiguration von Kellerautomaten Definition Sei M = (Z, Σ, Γ, δ, z 0, #) ein Kellerautomat Eine Konfiguration von M ist ein Tripel k Z Σ Γ Anschaulich beschreibt eine Konfiguration k = (z, v, γ) folgende augenblickliche Situation des PDA: er befindet sich im Zustand z, v ist die noch nicht verarbeitete Eingabe auf dem Eingabeband und im Keller steht das Wort γ, wobei das erste Symbol von γ das oberste Kellersymbol sein soll B Reichel, R Stiebe: Theoretische Informatik für Lehrer 200
PDA Konfigurationsübergänge und akzeptierte Sprache k 1 k 2 bedeutet, dass der Kellerautomat die Konfiguration k 1 in genau einem Schritt in die Konfiguration k 2 überführt k 1 k 2 bedeutet, dass der Kellerautomat k 1 in endlich vielen Schritten (auch null) in k 2 überführt Definition Für einen PDA M = (Z, Σ, Γ, δ, z 0, #) sei die von ihm akzeptierte Sprache T (M) definiert durch T (M) = {w Σ (z 0, w, #) (z, ε, ε) für ein z Z} B Reichel, R Stiebe: Theoretische Informatik für Lehrer 201
Beispiel eines PDA Es sei M = ({z 0, z 1 }, {a, b}, {A, B, #}, δ, z 0, #) ein Kellerautomat, mit δ(z 0, a, X) = {(z 0, AX)} für X {B, #}, δ(z 0, a, A) = {(z 0, AA), (z 1, ε)}, δ(z 0, b, X) = {(z 0, BX)} für X {A, #}, δ(z 0, b, B) = {(z 0, BB), (z 1, ε)}, δ(z 0, ε, #) = {(z 1, ε)}, δ(z 1, a, A) = {(z 1, ε)}, δ(z 1, b, B) = {(z 1, ε)}, δ(z 1, ε, #) = {(z 1, ε)} Dann gilt T (M) = {ww R w {a, b} } B Reichel, R Stiebe: Theoretische Informatik für Lehrer 202
Kellerautomaten und kontextfreie Sprachen Satz Eine Sprache L ist kontextfrei genau dann, wenn ein (nichtdeterministischer) Kellerautomat M mit T (M) = L existiert B Reichel, R Stiebe: Theoretische Informatik für Lehrer 203
Deterministisch kontextfreie Sprachen Definition Ein Kellerautomat M = (Z, Σ, Γ, δ, z 0, #) heißt deterministisch, wenn: δ(z, a, A) + δ(z, ε, A) 1 für alle z Z, a Σ, A Γ Definition Eine Sprache L Σ heißt deterministisch kontextfrei, wenn L$ von einem deterministischen Kellerautomaten akzeptiert wird, wobei $ / Σ ein Sondersymbol ist Satz Die Menge der deterministisch kontextfreien Sprachen ist eine echte Teilmenge der Menge der kontextfreien Sprachen B Reichel, R Stiebe: Theoretische Informatik für Lehrer 204
Beispiel eines deterministischen PDA M = ({z 0 }, {a 1, a 2, b 1, b 2, $}, {A 1, A 2, #}, δ, z 0, #) ein Kellerautomat mit δ(z 0, a 1, X) = {(z 0, A 1 X)} für X {A 1, A 2, #}, δ(z 0, a 2, X) = {(z 0, A 2 X)} für X {A 1, A 2, #}, δ(z 0, b 1, A 1 ) = {(z 0, ε)}, δ(z 0, b 2, A 2 ) = {(z 0, ε)}, δ(z 0, $, #) = {(z 0, ε)} T (M) = {w$ w D 2 }, dh die Dyck-Sprache D 2 ist deterministisch kontextfrei B Reichel, R Stiebe: Theoretische Informatik für Lehrer 205
Weiteres Beispiel eines deterministischen PDA Sei M = ({z 0, z 1 }, {a, b, c, $}, {A, B, #}, δ, z 0, #) ein Kellerautomat mit δ(z 0, a, X) = {(z 0, AX)} für X {A, B, #}, δ(z 0, b, X) = {(z 0, BX)} für X {A, B, #}, δ(z 0, c, X) = {(z 1, X)} für X {A, B, #}, δ(z 1, a, A) = {(z 1, ε)}, δ(z 1, b, B) = {(z 1, ε)}, δ(z 1, $, #) = {(z 1, ε)} Dann gilt T (M) = {wcw R $ w {a, b} } B Reichel, R Stiebe: Theoretische Informatik für Lehrer 206
Bedeutung der deterministisch kontextfreien Sprachen Wortproblem entscheidbar in linearer Zeit (gegenüber kubischer Laufzeit des CYK-Algorithmus) Ausdruckskraft hinreichend für syntaktische Analyse im Compilerbau Bei realen Programmiersprachen kommen LR(k)-Grammatiken und deren Varianten zum Einsatz B Reichel, R Stiebe: Theoretische Informatik für Lehrer 207
Formale Sprachen Übersichten Chomsky-Hierarchie: Typ 3 Typ 2 Typ 1 Typ 0 Beispiele für die Echtheit der Inklusionen {a n b n n 1} Typ 2 \ Typ 3, {a n b n c n n 1} Typ 1 \ Typ 2, K Typ 0 \ Typ 1, wobei K {0, 1} das spezielle Halteproblem ist B Reichel, R Stiebe: Theoretische Informatik für Lehrer 208
Charakterisierungen der Sprachfamilien der Chomsky Hierarchie Sprache Grammatik Automat Andere Regulär Typ 3 Endlicher Automat (EA) Regulärer Ausdruck Deterministisch LR(k) Deterministischer kontextfrei Kellerautomat (DPDA) Kontextfrei Typ 2 (Nichtdeterministischer) Kellerautomat (PDA) Kontextabhängig Typ 1 (Nichtdeterministischer) Linear beschränkter Automat (LBA) Rekursiv Typ 0 Turingmaschine (TM) aufzählbar B Reichel, R Stiebe: Theoretische Informatik für Lehrer 209
Determinismus vs Nichtdeterminismus Nichtdeterminismus Determinismus Äquivalenz NEA DEA ja PDA DPDA nein LBA DLBA? NTM DTM ja B Reichel, R Stiebe: Theoretische Informatik für Lehrer 210
Abschlusseigenschaften Typ 3 Det kf Typ 2 Typ 1 Typ 0 Vereinigung ja nein ja ja ja Durchschnitt ja nein nein ja ja Komplement ja ja nein ja nein Konkatenation ja nein ja ja ja Kleene-Stern ja nein ja ja ja B Reichel, R Stiebe: Theoretische Informatik für Lehrer 211
Entscheidbarkeitsprobleme Typ 3 Det kf Typ 2 Typ 1 Typ 0 Wortproblem ja ja ja ja nein Leerheitsproblem ja ja ja nein nein Schnittproblem ja nein nein nein nein Äquivalenzproblem ja ja nein nein nein B Reichel, R Stiebe: Theoretische Informatik für Lehrer 212