Theoretische Informatik und Logik Übungsblatt 5 (WS 2008) Lösungen Aufgabe 5.1 Geben Sie für jede der folgenden Grammatiken und die von der jeweiligen Grammatik erzeugte Sprache an, ob Sie regulär, kontextfrei und/oder monoton ist: a) G1 = h{A, B, C}, {0, 1}, {A → 0A | 1B, b) G2 = h{S, T }, {a, b}, {S → aT | b, B → 1C, C → 0C | ε}, Ai T → Sb}, Si c) G3 = h{A, B}, {0}, {A → ABA | B | ε, B → 0 0 | ε}, Ai Lösung a) G1 ist eine reguläre, und somit auch kontextfreie Grammatik. G1 ist jedoch nicht monoton, da in einer monotonen Grammatik C → ε nicht erlaubt wäre, nachdem C auch auf der rechten Seite einer Produktion (C → 0C) vorkommt. L(G1 ), nachdem von einer regulären Grammatik erzeugt, ist sicher regulär, und somit, nach der Chomsky-Hierarchie auch kontextfrei und monoton. (Bemerkung: L(G1 ) = {0}∗ {1 1}{0}∗ .) b) G2 ist eine kontextfreie und monotone Grammatik. (Wegen der Produktionen T → Sb und S → b ist G2 nicht regulär.) L(G2 ) = {an bn+1 | n ≥ 0} ist keine reguläre, aber eine kontextfreie, und somit auch monotone Sprache. c) G3 ist eine kontextfreie Grammatik. (Wegen der Produktionen A → ABA | B und B → 0 0 ist G2 nicht regulär, wegen A → ε und B → ε ist G3 auch nicht monoton, nachdem A und B auch auf der rechten Seite einer Produktion (A → ABA | B) vorkommen.) L(G3 ) = {00}∗ ist aber regulär, und somit auch eine kontextfreie und monotone Sprache. Insgesamt erhalten wir also: G1 L(G1 ) G2 L(G2 ) G3 L(G3 ) regulär × × × kontextfrei × × × × × × monoton × × × × Aufgabe 5.2 Zeigen Sie mittels entsprechender Abschlusseigenschaften (ohne direkte Zuhilfenahme des Pumping Lemmas für kontextfreie Sprachen), dass die Sprache {a3n b28 c2n b2n | n ≥ 1} nicht kontextfrei ist. (Sie können dabei nur davon ausgehen, dass {0kn 1ln 2mn | n ≥ 1} für beliebige Konstanten k, l, m ≥ 1 nicht kontextfrei ist.) Lösung Beweis indirekt. Angenommen, die Sprache L = {a3n b28 c2n b2n | n ≥ 1} ist kontextfrei. Sei dann M = ({q0 , q1 }, {a, b, c}, {0, 1, 2}, δ, q0 , {q1 }) die (deterministische) gsm mit δ(q0 , a) = (q0 , 0), δ(q1 , b) = (q1 , 2). δ(q0 , b) = (q0 , ε), δ(q0 , c) = (q1 , 1), 1 δ(q1 , c) = (q1 , 1), a/0, b/ε c/1, b/2 ? c/1 ? } - m j q0 q1 Da die Familie der kontextfreien Sprachen gegenüber beliebigen gsm-Abbildungen abgeschlossen ist, müsste auch M (L) = {03n 12n 22n | n ≥ 1} kontextfrei sein, was aber nicht der Fall ist. Widerspruch! Somit kann auch L nicht kontextfrei sein. (Man beachte, dass in diesem Falle die Verwendung eines Homomorphismus nicht ausreicht, da der erste Block von Symbolen b gelöscht werden muss, während der zweite Block auf eine entsprechende Anzahl von Symbolen 2 abgebildet werden muss.) Aufgabe 5.3 Zeigen Sie mittels entsprechender Abschlusseigenschaften (ohne direkte Zuhilfenahme des Pumping Lemmas für kontextfreie Sprachen), dass die Sprache {a2n b2008 c3n b3n d2n | n ≥ 1} nicht kontextfrei ist. (Sie können dabei nur davon ausgehen, dass {a6n b6n c6n | n ≥ 1} nicht kontextfrei ist.) Lösung Beweis indirekt. Angenommen, die Sprache L = {a2n b2008 c3n b3n d2n | n ≥ 1} ist kontextfrei. Sei dann h der Homomorphismus mit h : {a, b, c, d}∗ → {a, b, c}∗ sowie h(a) = a3 , h(c) = b2 , h(b) = ε, h(d) = c3 Da die Familie der kontextfreien Sprachen gegenüber beliebigen Homomorphismen abgeschlossen ist, müsste auch h({a2n b2008 c3n b3n d2n | n ≥ 1}) = {a6n b6n c6n | n ≥ 1} kontextfrei sein, was aber nicht der Fall ist. Widerspruch! Somit kann auch L nicht kontextfrei sein. Aufgabe 5.4 Definieren Sie eine deterministische Turingmaschine M , welche die Sprache L = {0n 12n−1 | n ≥ 1} akzeptiert. M soll dabei die Kellerautomatenbedingung erfüllen und in Normalform sein. Lösung Wir definieren eine (deterministische) Turingmaschine M = ({q0 , q1 , q2 , qf }, {0, 1}, {A, Z0 , B}, δ, q0 , {Z0 Z1 , Z2 }, B, {qf }) in Normalform, welche L akzeptiert; die Übergangsfunktion δ kann z.B. folgendermaßen definiert werden: 1 : δ(q0 , 0, B) = (q1 , A, R, R) 2 : δ(q1 , 0, B) = (q0 , A, S, R) 3 : δ(q1 , 1, B) = (q2 , B, R, L) 4 : δ(q2 , 1, A) = (q1 , B, S, L) 5 : δ(q2 , Z2 , Z0 ) = (qf , Z0 , S, R) Erläuterung: 1, 2 : Für jedes (bis auf das letzte) eingelesene Symbol 0 werden zwei Symbole A in den Keller (bzw. auf das Arbeitsband) geschrieben. (Für das letzte eingelesene Symbol 0 wird nur ein Symbol A in den Keller geschrieben) 3, 4 : nun wird für jedes eingelesene Symbol 1 ein Symbol A im Keller gelöscht; 5 : wird gleichzeitig mit dem Ende der Eingabe (dem Erreichen von Z2 auf dem Eingabeband) das Kellergrundsymbol Z0 auf dem Arbeitsband erreicht, geht M in den Enzustand qf über und akzeptiert somit die Eingabe. 2 Aufgabe 5.5 Geben Sie jeweils ein 0L-System für folgenden Sprachen an. n n a) L1 = {a5 c5 a5 | n ≥ 0} n n n n b) L2 = {a2 b3 c5 d8 | n ≥ 0} c) L3 = {ε, a, a2 } Lösung a) G1 = ({a, c}, {a → a5 , c → c}, a c5 a) b) G2 = ({a, b, c, d}, {a → a2 , b → b3 , c → c5 , d → d8 }, a bc d) c) G3 = ({a}, {a → a, a → ε}, aa) 3