Prof. Dr. Rolf Wanka Bernd Bassimir, Alexander Raß, Sebastian Tschuppik, Jeanette Wohnig Erlangen, 22. Dezember 2016 Abgabe bis Do., 12.01.17, 23:59 Uhr Übungen zur Vorlesung Berechenbarkeit und Formale Sprachen WS 2016/2017 Blatt 9 Je mehr Plus-Zeichen +, desto wichtiger, je mehr Sterne ?, desto schwieriger. AUFGABE 44 (4 Punkte): [+ + +, ?] Nach dem großen Beispiel für SAT am Ende von Blatt 8 ist jetzt nur ein ? übriggeblieben., (a) Beschreiben Sie das Knotenüberdeckungsproblem VC als binäres Programm. (b) Beschreiben Sie C LIQUE als binäres Programm. AUFGABE 45 (4 Punkte): [+, ??] Diese Aufgabe holt aus der Reduktion von 3SAT auf 3COL (Blatt 8, Aufgabe 43) das Letzte heraus. Ziel ist es, den Graphen, für den man eine Knoten-3-Färbung berechnen soll, möglichst einfach zu machen, die Frage nach der 3-Färbbarkeit aber weiterhin NP-vollständig zu halten. In der Reduktion von 3SAT auf 3COL in Aufgabe 43 auf Blatt 8 hängen die Grade der Knoten des konstruierten Graphen GΦ von der Anzahl t der Klauseln und der Anzahl n der Variablen der Eingabe-KNF Φ ab: Der Knoten T RUE hat den Grad 2t + 2, der Knoten E GAL den Grad 2n + 2 und die Knoten xi bzw. x̄i können einen Grad von bis zu t + 2 haben. Benutzen Sie den rechts dargestellten Graphen als (mehrfach baumartig“ ” angewandten) Baustein, um den maximalen Knotengrad auf 6 zu senken. Hinweis: Welche Farbe muß vom linken und vom rechten Knoten angenommen werden? Damit ist gezeigt: Das Problem zu entscheiden, ob die Knoten eines Graphen mit maximalem Grad 6 mit drei Farben gefärbt werden können, ist NP-vollständig. AUFGABE 46 (4 Punkte): [+ + +, ??] Sei Σ ein Alphabet, und für a ∈ Σ und w ∈ Σ∗ bezeichne #a (w), wie oft a in w auftaucht. Also ist z. B. #1 (01100) = 2. Seien Σ = {a, b, c} und die Sprache L = {w | w ∈ Σ∗ , #a (w) = 2 · #b (w) = #c (w)} gegeben. (a) Geben Sie eine Grammatik G = (V, Σ, P, S) an, die L erzeugt. Vergessen Sie nicht zu beweisen, daß Ihre Grammatik korrekt ist, also L ⊆ L(G) und L ⊇ L(G) gilt. (b) Leiten Sie das Wort acbac ∈ L mit Ihrer Grammatik her. AUFGABE 47 (4 Bonus- Punkte): [++, ? ? ?] Seien ā = (a1 , . . . , an ) und b̄ = (b1 , . . . , bn ) zwei 0-1-Folgen. Der Hamming-Abstand zwischen ā und b̄ ist h(ā, b̄) = ∑ni=1 |ai − bi |, d. h. die Anzahl der Stellen, an denen sich ā und b̄ unterscheiden. Die Hamming-Kugel mit Radius d um ā ist H (ā, d) = {b̄ | h(ā, b̄) ≤ d}. Sei Φ eine 3-KNF über den Variablen V = {x1 , . . . , xn }, wobei jede Klausel aus genau drei Literalen besteht, und sei ā : V → {0, 1} eine Belegung der Variablen, wobei 0 die Bedeutung FALSE und 1 die Bedeutung T RUE hat. Betrachten Sie den folgenden Algorithmus function L OCAL S EARCH(ā, d): {FALSE, T RUE} begin if ā erfüllt Φ then return T RUE; if d = 0 then return FALSE; sei C = `1 ∨ `2 ∨ `3 eine Klausel, die von ā nicht erfüllt wird; für i ∈ {1, 2, 3} sei ā0i die Belegung, in der in ā die Variable von `i invertiert wird; return L OCAL S EARCH(ā01 , d − 1) ∨ L OCAL S EARCH(ā02 , d − 1) ∨ L OCAL S EARCH(ā03 , d − 1); end (a) Zeigen Sie: Wenn Sie mit einer beliebigen Variablen-Belegung ā starten, dann durchmustert L OCAL S EARCH(ā, d) den Hamming-Ball H (ā, d) und gibt genau dann T RUE aus, falls es in H (ā, d) mindestens eine erfüllende Belegung gibt. (b) Geben Sie die Laufzeit in der O∗ -Notation an. (c) Sei ā0 = (0, . . . , 0) und ā1 = (1, . . . , 1). Wie müssen Sie d setzen, so daß L OCAL S EARCH(ā0 , d) ∨ L OCAL S EARCH(ā1 , d) die Antwort auf die Frage Φ ∈ 3-SAT?“ ” ist. Welche Laufzeit ergibt sich damit zur Lösung von 3-SAT? Und wenn Sie diesen Ansatz für 4-SAT wiederholen? AUFGABE 48 (4 Bonus- Punkte): [+ + +, ??] Gegeben ist die folgende Grammatik G = (V, Σ, P, S) mit V = {S, X, õ, $}, Σ = {,} und der Menge P der folgenden sechs Produktionen: S → $X$ õ$ → XX$ (a) Leiten Sie das Wort ,,,, her. $X → $õ X → , k õX → XXõ $ → ε (b) Sei L := {,2 | k ≥ 0}. Begründen Sie, warum L(G) = L ist, indem Sie die Arbeitsweise von G erklären. Dazu gehört auch die Erklärung dafür, warum G keine anderen Wörter als die aus L erzeugen kann! In LATEX bekommen Sie den Pfeil õ“ wie folgt: ” \usepackage{pifont} \newcommand{\pfeil}{\text{\ding{245}}} AUFGABE 49 (8 Bonus- Punkte): [+ + +, ? ? ?] Abgabe bis 19.01.17 In dem in Aufgabe 35 auf Blatt 6 erwähnten Aufsatz schreibt Martin Grötschel über das NPschwere TSP: Exakte und approximative Lösungsverfahren werden an Beispielen skizziert, und es wird angedeutet, dass man, obwohl TSPs zu den theoretisch schweren Problemen zählen, in der Praxis TSPs von atemberaubender Größe optimal lösen kann. Ziel dieser Aufgabe ist es, ein ziemlich kleines Problem kennenzulernen, das sich gegen Holzhammeransätze hartnäckig zu wehren versteht, die sog. 17 × 17 Challenge. Das Grid Coloring Problem GCP kann sehr einfach beschrieben werden: The n × n grid is 4” colorable if there is a way to 4-color the vertices of the n × n grid so that there is no rectangle with all four corners the same color.“ Wir schreiben dann: GCP := {n | das n × n-Gitter ist 4-färbbar}. Z. B. ist 7 ∈ GCP, da das 7 × 7-Gitter 4-färbbar ist, wie die folgende Abbildung links zeigt: 1324234 1323443 2214343 2123424 3423334 2434433 4341344 Eines der Rechtecke ist markiert, es geht bei diesem Problem nur um die Farben in den vier Ecken der Rechtecke. Es müssen mindestens zwei verschiedene Farben sein. Eine mögliche Kodierung dieser Färbung sehen Sie rechts. Einfach mit Computer-Power zu zeigen ist, daß {2, . . . , 16} ⊆ GCP, und daß 19 6∈ GCP und damit n 6∈ GCP für alle n ≥ 19 kann man durch Nachdenken beweisen. Die Fälle n=17 und n=18 waren lange unbekannt. Erst seit Februar 2012 weiß man, daß 18 ∈ GCP (und damit auch 17 ∈ GCP) (veröffentlicht in: B. Steinbach, C. Posthoff. Extremely Complex 4-Colored Rectangle-Free Grids Solution of Open Multiple-Valued Problems. doi:10.1109/ISMVL.2012.12). Nachdenken und die computergestützte Suche nach Symmetrien führte erst zum Erfolg. GCP ist also eine endliche Menge. (a) Modellieren Sie die Aufgabe, eine 4-Färbung für das n × n-Gitter zu berechnen, durch eine KNF Φn , so daß gilt: n ∈ GCP ⇐⇒ Φn ∈ SAT Aus einer erfüllenden Belegung soll also eine Färbung abgeleitet werden können und umgekehrt. Mit anderen Worten: Zeigen Sie GCP ≤p SAT. Wieviele Variablen benötigen Sie? Geben Sie size(Φn ) an. (b) Implementieren Sie ein Programm, das für n = 8, n = 10 und n = 16 Färbungen berechnet. Und wie ist es mit 17 und 18 ? Auf der Webseite der Vorlesung finden Sie die Datei GCP.txt, in die sie Ihre mutmaßlichen Lösungen eingeben können. Schicken Sie die Dateien (Lösung und Programm) per Email an Alexander Raß ([email protected]) mit dem Betreff: GridColoring (kein Blank)