Theoretische Informatik 2 Sommersemester 2016 Noleen Köhler Georg Schnitger Hannes Seiwert Institut für Informatik AG Theoretische Informatik Ausgabe: 02.05.16 Abgabe: 09.05.16 Übung 3 Vier „Extrapunkte“ können in Aufgabe 3.3 d) erzielt werden: Extrapunkte zählen nicht in der Bestimmung der Gesamtpunktzahl. Aufgabe 3.1. Abschlusseigenschaften (2+4 Punkte) a) Seien R, S ⊆ Σ∗ Sprachen. Wir definieren die Quotientensprache R/S := { u ∈ Σ∗ : es gibt v ∈ S, so dass uv ∈ R }. Zeigen Sie, dass R/S regulär ist, wenn R regulär ist. (Die Sprache S ist mglw. nicht regulär!) b) Seien Σ und ∆ Alphabete. Eine Funktion h : Σ∗ → ∆∗ heißt Homomorphismus, falls h(ε) = ε und h jedem Buchstaben a ∈ Σ ein Wort h(a) ∈ ∆∗ zuweist, sodass h(x) = h(a1 ) · · · h(an ) für jedes Wort x = a1 · · · an ∈ Σn gilt. Zeigen Sie: Wenn L ⊆ Σ∗ eine reguläre Sprache und h : Σ∗ → ∆∗ ein Homomorphismus ist, dann ist auch h(L) := { h(w) : w ∈ L } ⊆ ∆∗ eine reguläre Sprache. Hinweis: Beschreiben Sie einen NFA für h(L). Aufgabe 3.2. Nicht-reguläre Sprachen (4+4 Punkte) a) Wenden Sie in den nächsten beiden Teilaufgaben entweder den Satz von Myhill-Nerode oder das Pumping-Lemma an. Zeigen Sie: i) Die Sprache L1 = {a, b}∗ ∪ {ck an bn : k, n ∈ N} ist nicht regulär. ii) Die Sprache L2 = {1n : n ist das Produkt von zwei Primzahlen } ist nicht regulär. b) Die Klasse der regulären Sprachen ist unter anderem abgeschlossen unter Komplement, Vereinigung, Durchschnitt, Konkatenation, Stern-Operation, Homomorphismen, inversen Homomorphismen und Quotientenbildung. Wir möchten mit Hilfe dieser Abschlusseigenschaften zeigen, dass eine vorgegebene Sprache L nicht regulär ist. Dazu dürfen wir allerdings nur ausnutzen, dass die Sprache K := { an bn : n ∈ N } nicht regulär ist. Um beispielsweise zu zeigen, dass die Sprache L = { w ∈ {a, b}∗ : |w|a = |w|b } nicht regulär ist, führen wir einen indirekten Beweis und nehmen an, dass L doch regulär ist. Dann ist auch K = L ∩ ({a}∗ · {b}∗ ) als Durchschnitt der beiden regulären Sprachen L und {a}∗ · {b}∗ regulär: Widerspruch. Zeigen Sie mit Hilfe der Abschlusseigenschaften regulärer Sprachen: Die Sprache D aller wohlgeformten Klammerausdrücke zu dem Klammerpaar ( , ) ist nicht regulär. 1 Aufgabe 3.3. Alternierende endliche Automaten (2+4+4+4 Punkte) Seien Q∃ und Q∀ disjunkte, endliche Mengen von Zuständen. Wir führen alternierende endliche Automaten (AFAs) als Verallgemeinerung von NFAs ein. Definition: Ein AFA wird durch ein Tupel A = (Q∃ , Q∀ , Σ, δ, q0 , F ) beschrieben. Sei Q := Q∃ ∪ Q∀ . Die Zustandsübergangsfunktion δ hat die Form δ : Q × Σ → P(Q). Für einen beliebigen Zustand q ∈ Q geben wir eine rekursive Definition der Sprache L(A)q aller Worte an, die A mit q als Anfangszustand akzeptiert. Basisregel : ε ∈ L(A)q gilt genau dann, wenn q ∈ F . Rekursive Regeln: Für jeden Buchstaben a ∈ Σ und jedes Wort w ∈ Σ∗ gilt ( S w ∈ p∈δ(q,a) L(A)p falls q ∈ Q∃ , T aw ∈ L(A)q :⇐⇒ w ∈ p∈δ(q,a) L(A)p falls q ∈ Q∀ . In Worten: In einem „existentiellen“ Zustand q ∈ Q∃ wird aw akzeptiert, wenn w in mindestens einem Nachfolgezustand p akzeptiert wird. In einem „universellen“ Zustand q ∈ Q∀ hingegen wird aw genau dann akzeptiert, wenn w in allen Nachfolgezuständen akzeptiert wird. Wir definieren L(A) := L(A)q0 als die von A akzeptierte Sprache. Im Folgenden wollen wir untersuchen, wie mächtig AFAs sind. a) Sei N = (Q, Σ, δ, q0 , F ) ein NFA. Definieren Sie die einzelnen Komponenten eines AFAs A so, dass L(A) = L(N ) gilt. b) Entwerfen Sie einen AFA A mit O(k) Zuständen, der die Sprache EQk = { xy : x, y ∈ {0, 1}k und x = y } akzeptiert. (Auf Blatt 2 haben wir gesehen, dass NFAs mindestens 2k Zustände benötigen, um EQk zu akzeptieren.) c) Alice und Bob spielen das ZZ-Spiel – das Zweizeilen-Spiel – auf der Knotenmenge V = {0, 1}×N. Sei Σ die Menge aller bipartiten Graphen mit den „linken“ Knoten (0, links), (1, links) und den „rechten“ Knoten (0, rechts), (1, rechts). Ein Wort w = w1 · · · wn ∈ Σn definiert die Kantenmenge Ew : Für b, c ∈ {0, 1} wird der Knoten (b, i − 1) aus V genau dann mit dem Knoten (c, i) aus V durch eine Kante verbunden, wenn der Knoten (b, links) mit dem Knoten (c, rechts) durch eine Kante in dem durch wi bezeichneten bipartiten Graphen verbunden ist. Mit der Menge Ew kennen wir das Spielbrett. Wie sehen die Spielregeln aus? Anfänglich befindet sich genau ein Steinchen auf dem Brett und zwar in Position (0, 0). Alice beginnt und danach alternieren beide Spieler. Der ziehende Spieler muss das Steinchen über eine der eingesetzten Kanten zu einem Knoten der nächsten Spalte ziehen; ist das nicht möglich, wird das Spiel beendet. Wer hat gewonnen? Spätestens nach |w| Zügen wird das Spiel abgebrochen. Liegt das Steinchen nach Spielende in Zeile 0, hat Alice und ansonsten Bob gewonnen. Beschreiben Sie einen AFA A = (Q∃ , Q∀ , Σ, δ, q0 , F ), der ein Wort w ∈ Σ∗ genau dann akzeptiert, wenn Alice eine Gewinnstrategie für das von w definierte Spielbrett besitzt. Geben Sie eine anschauliche Begründung, warum Ihre Konstruktion funktioniert. d) Sei A = (Q∃ , Q∀ , Σ, δ, q0 , F ) ein AFA. Zeigen Sie: Die Sprache L(A) ist regulär. Geben Sie eine anschauliche Begründung Ihrer Konstruktion. Hinweis: Konstruieren Sie einen NFA N = (Q∗ , Σ, δ ∗ , q0∗ , F ∗ ), der A simuliert, d.h. für den L(N ) = L(A) gilt. Wählen Sie die Zustandsmenge Q∗ := P(Q). 2