Prof. Dr. Rolf Wanka Bernd Bassimir, Alexander Raß, Sebastian Tschuppik, Jeanette Wohnig Erlangen, 12. Januar 2017 Abgabe bis 19.1.17, 23:59 Uhr Übungen zur Vorlesung Berechenbarkeit und Formale Sprachen WS 2016/2017 Blatt 10 Je mehr Plus-Zeichen +, desto wichtiger, je mehr Sterne ?, desto schwieriger. AUFGABE 50: [Präsenzaufgabe,++, ?] Sei G = (V, Σ, P, S) eine beliebige kontextfreie Grammatik. Eine Variable A ∈ V ∗ heißt nützlich, falls es ein Wort w ∈ Σ∗ gibt, so daß A → w. Anderenfalls wird A nutzlos genannt. (a) Geben Sie einen Algorithmus an, der die nutzlosen Variablen von G berechnet, beweisen Sie seine Korrektheit und bestimmen Sie seine Laufzeit in Abhängigkeit der Komponenten von G. (b) Folgern Sie daraus, daß es zu gegebener kontextfreier Grammatik G entscheidbar ist, ob L(G) = 0/ ist oder nicht. AUFGABE 51 (4 Punkte): [+ + + + +, ??] (Alte Klausuraufgabe) (a) Aus der Vorlesung kennen Sie das NP-vollständige Knotenüberdeckungsproblem (engl.: Vertex Cover) VC := {hG, ki | k ∈ IN, G = (V, E) ist ein ungerichteter Graph, für den es eine Knotenmenge U, U ⊆ V , gibt mit |U| = k, so daß für jede Kante {u, v} ∈ E gilt: u ∈ U oder v ∈ U}. bin(a) bezeichne die Binärdarstellung der natürlichen Zahl a. Sei n S UMME = bin(a1 )# · · · #bin(an ) | n ≥ 2, a1 = ∑ ai . i=2 Zeigen Sie: S UMME ≤p VC Hinweis: Vergessen Sie nicht, die Laufzeit der Berechnung der Reduktionsfunktion zu begründen. (b) Angenommen, P = NP. Zeigen Sie, daß S UMME dann NP-vollständig ist, indem Sie zeigen: VC ≤p S UMME Begründen Sie insbesondere durch Hinweis auf die Definition des Begriffs NP-Vollständigkeit, warum S UMME damit NP-vollständig ist (was gilt dann für alle NP-vollständigen Probleme wie (nur als Beispiel) SAT?). AUFGABE 52 (4 Punkte): [+ + +, ?] Sei Σ ein Alphabet. (a) Zeigen Sie: Jede endliche Sprache L über Σ (also Sprachen L mit |L| 6= ∞) ist regulär. (b) Sei L1 , L2 , . . . eine unendliche Aufzählung regulärer Sprachen. Ist L = [ i∈IN Li grundsätzlich regulär? AUFGABE 53 (4 Punkte): [++, ? ? ?] Sei L = {w | w ∈ {a, b}∗ , #a (w) = #b (w)} . Geben Sie eine kontextfreie Grammatik G an, die L erzeugt. Beweisen Sie die Korrektheit Ihrer Grammatik. (#a (w) gibt die Anzahl an, wie oft das Zeichen a in w vorkommt) Hinweis: Die Lösungsidee besteht darin, eine rekursive Beziehung der Wörter in L zu finden. Ist z. B. w ∈ L von der Form aw0 b, dann ist auch w0 ∈ L. Dieser Beziehung würde die Produktion S → aSb entsprechen. Schwieriger ist der Fall für Wörter wie aababbbbaa ∈ L. Zählen Sie positionsweise von links nach rechts den Überschuß“ an as (der auch negativ sein kann ,). Was muß passieren? ” Vergessen Sie nicht, daß das leere Wort ε auch in L ist. AUFGABE 54 (6 Bonus- Punkte): [+ + +, ? ? ?] Geben Sie für die beiden folgenden Sprachen Grammatiken vom Typ Chomsky-3 an und begründen Sie die Korrektheit. (a) L1 = {w | w ∈ {0, 1}∗ , w enthält nicht die Teilfolge 011} (b) L2 = {w | w ∈ {0, 1}∗ , w ist Binärdarstellung einer Zahl n ∈ IN mit n mod 5 = 3}