Universität Heidelberg / Institut für Informatik 7. Juli 24 Prof. Dr. Klaus Ambos-Spies Nadine Losert Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 2 LÖSUNGEN Aufgabe Verwenden Sie das in der Vorlesung angegebene Verfahren, um die kontextfreie Grammatik G = ({S, A, B, C, D}, {, }, P, S) mit den Regeln in Chomsky-Normalform zu überführen. S AB A A CD C C λ D D λ B B LÖSUNG. Zunächst geben wir eine zu G äquivalente separierte Grammatik G an: G = ({S, A, B, C, D,, }, {, }, P, S) mit den Regeln S AB A A CD C C λ D D λ B B Zur Bestimmung der Menge der eliminierbaren Variablen E = {X N : X λ P } von G deniert man nun induktiv die Mengen E = {X N : X λ P }
E n+ = E n {X N : w E n(x w P )} Für das kleinste n mit E n = E n+ gilt dann E = E n. Für die gegebene Grammatik G erhält man: E = {X N : X λ P } = {C, D} Also: E 2 = {C, D} {X N : w {C, D} (X w P )} = {C, D} {A, C, D} = {A, C, D} E 3 = {A, C, D} {X N : w {A, C, D} (X w P )} = {A, C, D} {A, C, D} = {A, C, D} E = E 2 = {A, C, D}. Eine zu G äquivalente λ-treue kontextfreie Grammatik G 2 ist dann: wobei P 2 folgende Regeln enthält: G 2 = ({S, S, A, B, C, D,, }, {, }, P 2, S ) S S S AB B A A CD C D C C D D B B Im dritten Schritt beseitigt man nun zu lange Regel D D und erhält die Grammatik mit den Regeln G 3 = ({S, S, A, B, C, D, Z, }, {, }, P 3, S ) S S S AB B A A CD C D C C D Z Z D B B Zuletzt müssen noch die Variablenumbenennungen beseitigt werden. Für die aus einer Variable X durch Umbenennungen erreichbaren Variablenmengen U(X) erhalten wir: U(S ) = {S, S, B, }, U(S) = {S, B, }, U(A) = {A, C, D, }, U(B) = {B, }, U(C) = {C, }, U(D) = {D} U(Z) = Z,
U() = {} und U() = {}. Wir erhalten die Grammatik mit den Regeln G 4 = ({S, S, A, B, C, D, Z, }, {, }, P 4, S ) S AB B S AB B A A C CD Z C C D Z Z D B B. Diese Grammatik ist in Chomsky-Normalform. Aufgabe 2 (a) Zeigen Sie mit Hilfe des Pumpinglemmas für kontextfreie Sprachen, dass die Sprache nicht kontextfrei ist. L = {ww : w Σ 2} (b) Geben Sie eine Grammatik vom Erweiterungstyp an, die L erzeugt. Zeigen Sie mit Hilfe des Pumpinglemmas für kontextfreie Sprachen, dass die Sprache nicht kontextfrei ist. L = {ww : w Σ 2} LÖSUNG. (a) Der Beweis ist indirekt. Widerspruchsannahme: L sei kontextfrei. Nach dem Pumpinglemma gibt es dann eine Zahl p, sodass jedes Wort z in L, dessen Länge p ist, sich in 5 Teile, z = uvwxy, zerlegen lässt, wobei diese Zerlegungen die folgenden Eigenschaften hat: (i) vx λ (ii) vwx < p (iii) Für alle n gilt: uv n wx n y L. Da das Wort z = p p p p in L liegt und z = 4p p gilt, gibt es also eine Zerlegung p p p p = z = uvwxy mit den obigen Eigenschaften. Vergleichen wir diese Zerlegung mit der Zerlegung z = z z 2 z 3 z 4 in die 4 Blöcke z = z 3 = p und z 2 = z 4 = p, so liegt wegen (ii) das Teilwort vwx von z entweder komplett in einem der Blöcke z i oder ist Teil von zwei benachbarten Blöcken z i z i+. Betrachtet man daher das Wort z = uwy = uv wx y, so hat dieses wegen (i) und (ii) eine der folgenden Gestalten: q p p p oder p q p p oder p p q p oder p p p q wobei q < p
bzw. q q p p oder p q q p oder p p q q wobei min(q, q ) < p. Wie man unmittelbar sieht, erhält man also in jedem Fall ein Wort z, das nicht von der Gestalt w w ist, also nicht in L liegt. Das widerspricht aber der Eigenschaft (iii) der Zerlegung z = uvwxy. (b) Eine Grammatik vom Erweiterungstyp, die L erzeugt, ist mit den Regeln G = ({S, A, B, C, C, C, C, C, C }, {, }, P, S) S λ AB A AC AC C C C C C x C x für x {,,,,, } C x C x für x {,,,,, } C x B BC x für x {,,,,, } BC B BC B BC BC BC BC. Die Funktionsweise der Grammatik ist wie folgt: Wörter ww der Länge höchstens 2 werden direkt generiert. Für längere Wörter wird zunächst mittels der Regel S AB das Wort AB generiert. A kennzeichnet fortan den Anfang des ersten Vorkommens, B den Anfang des zweiten Vorkommens von w in ww. Sukzessive können nun Buchstaben vorne an das erste Teilwort angehängt werden, indem diese von A erzeugt werden. Dabei erzeugt A jeweils gleichzeitig eine Variable C x, die sich merkt, welcher Buchstabe erzeugt wurde und mittels des dritten Regelblocks dann nach rechts durch das bereits erzeugte Wort wandert, bis sie direkt hinter B steht. Dort kann dann der gleiche Buchstabe im zweiten Teilwort erzeugt werden. Damit die Grammatik vom Erweiterungstyp ist, müssen dabei die letzten zwei Buchstaben des Teilworts w gemeinsam erzeugt werden, so dass es möglich ist, die Variablen B und C x später gemeinsam zu löschen bzw. durch die zwei zu erzeugenden Buchstaben im zweiten Teilwort zu ersetzen. Aufgabe 3 Die rechtslineare Grammatik G = ({S, X, Y, Z}, {,, 2}, P, S) verfüge über die folgenden Regeln: S X X Y Y 222Z Z S λ
(a) Bestimmen Sie die von G erzeugte Sprache L(G). (b) Geben Sie eine zu G äquivalente rechtslineare Grammatik in Chomsky-Normalform an. (c) Geben Sie einen deterministischen endlichen Automaten an, der L(G) akzeptiert. LÖSUNG: (a) Die Regeln - 3 müssen im Paket gefolgt von einer Anwendung der Regel 4 bzw. Regel 5 angewendet werden. Die Regeln S 222S 222 sind also zu dem gegebenen Produktionensystem äquivalent. Es wird daher die Sprache erzeugt. L(G) = {(222) n : n } (b) Man könnte das in der Vorlesung angegebene Verfahren zur Bestimmung der Chomsky- Normal-form auf die gegebene Grammatik G anwenden. Einfacher ist es, von L(G) ausgehend eine L(G) erzeugende rechtslineare Grammatik in Chomsky-Normalform direkt anzugeben. Unter Verwendung der in der Lösung von (a) angegebenen einfacheren zu P äquivalenten Regeln erhalten wir so: wobei P aus folgenden Regeln besteht: (c) Folgender DEA akzeptiert L(G): G = ({S, X, X 2, X 3, X 4, X 5 }, {,, 2}, P, S), S X X X 2 X 2 X 3 X 3 2X 4 X 4 2X 5 X 5 2S 2 z start S z X z Y z Y2 2 z Z3 2 z Z2 2 z Z Aufgabe 4 Die Sprache L bestehe aus allen nichtleeren Binärwörtern, in denen das Teilwort höchstens einmal vorkommt.
(a) Geben Sie eine rechtslineare Grammatik G an, die L erzeugt. (b) Geben Sie einen nichtdeterministischen endlichen Automaten M mit vier Zuständen an, der L akzeptiert. LÖSUNG. (a) Ein Wort, das höchstens ein Vorkommen des Teilwortes enthält, muss von der Form m n k l mit m, n, k, l sein. Eine rechtslineare Grammatik G, die genau die nichtleeren Wörter dieser Form erzeugt, ist G = ({S, A, B, C}, {, }, P, S) mit Regelmenge P = {S S A, A A B, B B C, C C }. (b) z start z 2 z 4 z 3 Aufgabe 5 Es sei L die reguläre Sprache L = {w {,, 2} : w enthält das Teilwort 22}. (a) Geben Sie eine rechtslineare Grammatik an, die L erzeugt. (b) Geben Sie einen nichtdeterministischen endlichen Automaten an, der L erkennt. Stellen Sie hierbei den Automaten durch sein Übergangsdiagramm dar. LÖSUNG: s. Klausur 22.