¨Ubungen zur Vorlesung Berechenbarkeit und Formale Sprachen

Werbung
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)
Herunterladen