Lösung - ITI Wagner

Werbung
Institut für Theoretische Informatik
Lehrstuhl Prof. Dr. D. Wagner
Übungsblatt 5
Vorlesung Theoretische Grundlagen der Informatik im WS 16/17
Ausgabe 9. Dezember 2016
Abgabe 20. Dezember 2016, 11:00 Uhr (im Kasten im UG von Gebäude 50.34)
Bitte nutzen Sie den WebInScribe Deckblattgenerator
und heften Sie das Deckblatt an Ihr Übungsblatt.
https://webinscribe.ira.uka.de/deckblatt/index.php?course=10588.
Aufgabe 1
(2 + 3 = 5 Punkte)
Der ebenso geniale, wie auch frustrierte Wissenschaftler und Superbösewicht Doktor Meta ist in Geldnot. Es ist zum aus der Haut fahren! Sven
van Hagen befindet sich in seiner Gewalt, Turing-Man ist in einer Endlosschleife gefangen und die schöne Elsa unterstützt Metas Pläne. Doch
nach dem Bau seines neuen Hauptquartiers ist der Doktor finanziell in
Schwierigkeiten. Schon seit langem hofft Doktor Meta deswegen auf die
Unterstützung der Allianz für Diktatoren, die unter Superbösewichten sehr
bekannt ist. Dort wird eine Liste von Bösewichten geführt, die einer (sehr
größzügigen) Spende würdig sind. Offensichtlich steht Metas Name nicht
darauf. Um sich in die Liste eintragen zu lassen muss man dieses Jahr allerdings nur ein dort noch nicht bekanntes co-N P-Vollständiges Problem
einschicken. Das ist seine Chance. Elsa erinnert sich, dass das Problem Sat
co-N P-vollständig ist.
Das Problem Sat ist folgendermaßen definiert:
Gegeben: Menge U von Variablen, Menge C
von Klauseln.
Frage: Existiert keine Wahrheitsbelegung von
U , so dass C erfüllt wird? Das heißt, nimmt für
jede Wahrheitsbelegung von U mindestens eine
Klausel aus C den Wahrheitswert falsch an?
Da Doktor Meta aufgrund der Bekanntheit von SAT befürchtet, dass Sat bereits bekannt ist, denkt
er sich ein neues Problem aus. Die Sprache Lreg ist über einem endlichen Alphabet Σ folgendermaßen
definiert:
Lreg = {(R, S) | R, S sind einfache reguläre Ausdrücke mit L(R) = L(S)}
In einfachen regulären Ausdrücken wird der Kleensche Abschluss nicht verwendet.
Helfen Sie Dr. Meta und beweisen Sie, dass Lreg co-N P-vollständig ist,
indem Sie wie folgt vorgehen:
(a) Zeigen Sie Lreg ∈ co-N P. Sie dürfen davon ausgehen, dass ein Algorithmus existiert, der zu einem einfachen regulären Ausdruck R der
Länge m und einem Wort w der Länge n in O(mn) Zeit entscheidet,
ob w ∈ L(R).
(b) Zeigen Sie, dass Lreg co-N P-schwer ist, indem Sie Sat ∝ Lreg zeigen.
Lösung:
(a) Seien R, S einfache reguläre Ausdrücke mit (R, S) 6∈ Lreg . Dann existiert ein Wort w, so dass
gilt w ∈ L(R) und w 6∈ L(S), oder w 6∈ L(R) und w ∈ L(S). Also ist w ein Zeuge dafür,
dass R und S nicht dieselben Sprachen beschreiben. Zu einem gegebenen Wort kann mit dem
in der Aufgabenstellung genannten Algorithmus mit polynomialem Zeitaufwand entschieden
werden, ob es ein Zeuge dafür ist, dass (R, S) 6∈ Lreg . Somit ist Lreg ∈ co-N P.
(b) Definiere ϕ : C × U → {{0}, {1}, {0, 1}} durch ϕ : (c, u) 7→ {0} falls u ein positives Literal in
c ist, ϕ : (c, u) 7→ {1}, falls ¬u ein negiertes Literal in c ist, und schließlich ϕ : (c, u) 7→ {0, 1},
falls u kein Literal in c ist. Sei U = {u1 , u2 , . . . , un } und C = {c1 , c2 , . . . , cm }. Konstruiere
dann die einfachen regulären Ausdrücke
R=
m
[
(ϕ(ci , u1 ) · ϕ(ci , u2 ) · . . . · ϕ(ci , un ))
i=1
und
S=
mn
[
{0, 1} .
j=1
Sowohl R als auch S können durch eine deterministische Turingmaschine mit polynomialem
Zeitaufwand berechnet werden.
Weiter gilt L(R) = L(S) genau dann, wenn C durch keine Wahrheitsbelegung von U erfüllt
wird. Die Sprache L(R) enthält nämlich genau die kodierten Wahrheitsbelegungen von U ,
die C nicht erfüllen. Um eine einzelne Klausel zu erfüllen reicht es aus, dass ein einziges
enthaltenes Literal den Wahrheitswert wahr erhält. Dies wird dadurch verhindert, dass ϕ alle
vorkommenden Literale mit dem Wahrheitswert falsch belegt. Alle anderen Variablen spielen
für die Wahrheitsbelegung der Klausel keine Rolle und bekommen also keinen Wahrheitswert
zugewiesen.
Aufgabe 2
(3 + 1 = 4 Punkte)
Zeigen Sie, dass aus P = N P folgt, dass alle Sprachen in P, bis auf ∅ und Σ? , N P-vollständig sind.
Wieso gilt die Aussage nicht für ∅ und Σ? ?
Lösung:
Sei L ∈ P. Da P = N P folgt direkt L ∈ N P. Es bleibt zu zeigen, dass zu jeder Sprache L0 ∈ N P
eine polynomiale Transformation f existiert, so dass x ∈ L0 ⇐⇒ f (x) ∈ L. Da L0 ∈ N P und
deshalb auch L0 ∈ P, existiert eine deterministische Turingmaschine M mit polynomialer Laufzeit,
die L0 entscheidet. Wähle w+ ∈ L und w− 6∈ L, was genau dann möglich ist, wenn ∅ ( L ( Σ? . Die
Tranformation f simuliert zur einer Eingabe x dann einfach M. Akzeptiert M, setze f (x) = w+ .
Lehnt M die Eingabe x ab, setze f (x) = w− . Da M in polynomialer Zeit läuft existiert ebenfalls
eine deterministische Turingmaschine M0 , die in polynomialer Zeit die Funktion f berechnet. Somit
ist f eine geeignete polynomiale Transformation.
Die Aussage gilt nicht für ∅ und Σ? , da dann Ja“-Instanzen nicht mehr von Nein“-Instanzen
”
”
unterschieden werden können.
Aufgabe 3
(3 + 3 = 6 Punkte)
w ∈ LJΠ ⇐⇒ ∃x ∈ Σ? : M akzeptiert hw, xi,
wobei die Laufzeit von M polynomial in n = |w| ist.
Hinweis: dies ist die Zeugendefinition“ der Klasse N P, da x die Zugehörigkeit von w zu L bezeugt.
”
(a) Beweisen Sie, dass jede Sprache L ∈ N P von einer deterministischen Turingmaschine in
O(2p(n) ) entschieden werden kann, wobei p(n) ein Polynom über n ist.
(b) Nehmen Sie nun an, dass sie für eine N P-vollständige Sprache L die Turingmaschine M so
modifizieren können, dass M für jedes w ∈ L höchstens 42 Zeugen x ablehnt. Zeigen Sie, dass
dann P = N P gilt.
Lösung:
(a) Aufgrund der polynomialen Laufzeit von M gilt die Aussage auch für x ∈ Σp(n) mit einem
Polynom p(n). Dann kann eine deterministische Turingmaschine M0 bei Eingabe von w für
jeden möglichen Zeugen x ∈ Σp(n) ausprobieren, ob M die Eingabe hw, xi akzeptiert. Ist
dies der Fall, akzeptiert M0 die Eingabe w. Werden alle Zeugen abgelehnt lehnt auch M0 die
Eingabe w ab. Dies entspricht genau der obigen Definition von N P . Insgesamt gibt es 2p(n)
mögliche Zeugen. Die Gesamtlaufzeit beträgt dann O(2p(n) · poly(n)) = O(2p(n) ).
(b) Konstruiere eine deterministische Turingmaschine M0 , die zunächst 43 paarweise verschiedene
Zeugen xi ∈ Σ? wählt. Für i = 1, 2, . . . , 43 simuliert M0 dann die Turingmaschine M auf der
Eingabe hw, xi i. Akzeptiert M, so gilt w ∈ L. Lehnt M alle 43 Zeugen ab, so gilt w 6∈ L,
denn M lehnt im Fall w ∈ L höchstens 42 Zeugen ab. Da M polynomiale Laufzeit hat, hat
auch M0 polynomiale Laufzeit. Mit der N P-Volltändigkeit von L folgt dann P = N P.
Aufgabe 4
(2 + 2 + 3 + 1 + 1 = 9 Punkte)
Das Problem 3-Sum ist wie folgt definiert.
Gegeben: Eine endliche Menge S ⊂ R.
Frage: Existieren drei nicht notwendigerweise unterschiedliche
Zahlen a, b, c ∈ S, so dass a + b + c = 0?
Es ist offen, ob ein Algorithmus existiert der das Problem 3-Sum in der Laufzeit O(n2− ), > 0
löst. Ein Problem Π heißt 3-Sum-schwer, wenn ein subquadratischer Algorithmus für Π impliziert,
dass 3-Sum in subquadratischer Zeit lösbar ist.
Das Problem 3-Linienschnitt ist wie folgt definiert:
Gegeben: Eine endliche Menge L von Linien in der euklidischen
Ebene.
Frage: Existieren drei Linien aus L die sich in genau einem
Punkt schneiden?
Im Folgenden sollen Sie zeigen, dass 3-Linienschnitt 3-Sum-schwer ist. Gehen Sie dafür davon
aus, das Sie eine Linie y = mx + b als Paar (m, b) kodieren. Sie wissen außerdem, dass die Steigung
m nur die Werte {−1, 0, 1} annehmen kann.
(a) Geben Sie für jede Zahl x ∈ S eine Menge von Linien Lx an, so dass für drei Zahlen a+b+c = 0
genau dann gilt, wenn drei Linien la ∈ La , lb ∈ Lb und lc ∈ Lc existieren, die sich in genau
einem Punkt schneiden.
Lösung:
Lx = {(−1, x), (0, −x/2), (1, x)}.
(b) Konstruieren Sie zu der Instanz S = {1, 2, −3, −4} die Mengen La , a ∈ S graphisch. Kennzeichnen Sie die Mengen La eindeutig. Geben Sie zwei Lösungen der Form
{(m1 , b1 ), (m2 , b2 ), (m3 , b3 )} für die 3-Linienschnitt Instanz an. Entspricht Ihre Lösung der
3-Linienschnitt Instanz einer Lösung der 3-Sum Instanz?
Lösung:
L1 ∩ L2 ∩ L−3 =
L2 ∩ L2 ∩ L−4 =
1+2-3 = 0
2+2-4 = 0
(c) Zeigen Sie die Korrektheit Ihrer Transformation aus (a).
Lösung:
Drei Linien schneiden sich genau dann in genau einem Punt, wenn sie unterschiedliche Steigungen haben. Ein Lösungstripel ist also immer der Form {(−1, x), (0, y), (1, z)}.
Wir wählen für drei Zahlen a, b, c ∈ S aus den Mengen Lx , x = a, b, c je eine Linie mit noch
nicht verwendeter Steigung. Wir zeigen, dass die Geraden (−1, a), (0, −b/2, 1, c) sich genau
dann in einem Punkt schneiden, wenn a + b + c = 0.
y = −1x + a
∧y = −b/2
∧y = 1x + c
⇐⇒
2y = a + c
∧y = −b/2
⇐⇒
−b = a + c
⇐⇒
0=a+b+c
(d) Benötigt Ihre Transformation subquadratische Zeit?
Lösung:
Die Transformation benötigt tatsächlich nur lineare Zeit, da für jede Zahl a ∈ S nur drei
Linien erzeugt werden.
(e) Der sogenannte Sweep-Line Algorithmus zum Schnitt von Linien benötigt O(n log n + k)
Laufzeit, wobei k ∈ N die Anzahl der Schnittpunkte ist. Warum impliziert dies noch keinen
subquadratischen Algorithmus für das 3-Sum Problem? Welche Voraussetzungen muss die
Transformation von S nach L erfüllen, damit Sie mit Hilfe des Sweep-Line Algorithmus einen
subquadratischen Algorithmus für 3-Sum erhalten?
Lösung:
Die in (a) angegebene Transformation erzeugt eine quadratische Anzahl an Schnittpunkten.
Um den Sweep-Line Algorithmus verwenden zu können, müssen Sie sicher stellen, dass die
Ihre Transformation nur eine geringe Anzahl an Schnittpunkten erzeugt.
Aufgabe 5
(3 + 3 + 3 = 9 Punkte)
Beweisen Sie die N P-vollständigkeit der folgenden Probleme.
• Gegeben: Zwei Graphen G1 = (V1 , E1 ), G2 = (V2 , E2 ) und eine Zahl K ∈ N.
Frage: Gibt es zwei Teilmengen E10 ⊂ E1 , E20 ⊂ E2 , mit |E10 | = |E20 | ≥ K, so dass die Graphen
G01 = (V (E10 ), E10 ), G02 = (V (E20 ), E20 ) isomorph sind?
Nutzen Sie, dass das Problem Hamiltonischer Kreis N P-vollständig ist.
Lösung:
Largest Common Subraph ∈ N P:
Sei (G01 , G02 , φ) mit φ einer Bijektion von V10 nach V20 eine Zeuge für die Largest Common
Subgraph Instanz. In O(|E||V |) Zeit kann überprüft werden
– |E10 | = |E20 | < K
– Vi0 ⊂ Vi , Ei0 ⊂ Ei
– {u, v} ∈ E10 genau dann, wenn {φ(u), φ(v)} ∈ E20
Polynomiale Transformation:
Sei G = (V, E) eine Instanz für das Hamiltonischer Kreis Problem. Wir wählen G1 = G,
G2 sei ein Zyklus der Länge |V | und K = |V |. Die Transformation ist offenbar in polynomieller
Zeit berechenbar.
Korrekheit:
Sei Π (eine Permutation der Knotenmenge) ein Hamiltonischer Kreis in G. Sei φ : V1 → V2
eine beliebige Bijektion. Dann ist (V, φ ◦ Π) eine Zeuge dafür das G2 ein Subgraph von G1 .
Desweiteren ist K ≥ |V | erfüllt.
Sei G0 der größte gemeinsame Subgraph von G1 und G2 . Da |E 0 | ≥ K = |V | gefordert ist,
folgt das G = G2 . G ist also ein Hamiltonischer Kreis.
• Gegeben: Ein gerichteter Graph G = (V, E), eine positive Zahl K ∈ N.
Frage: Gibt es eine Teilmenge V 0 ⊂ V , mit |V 0 | ≤ K, so dass für jeden gerichteten Zyklus C
in G, V (C) ∩ V 0 6= ∅ gilt.
Nutzen Sie das Problem Vertex Cover für die Reduktion.
Hinweis: V (C) bezeichnet die Knotenmenge des Zyklus C.
Lösung:
Feedback Vertex Set ∈ N P:
Es kann wie folgt in polynomial Zeit überprüft werden, ob eine Menge V 0 eine Feedback
Vertex Set ist. Es müssen folgende Bedingungen geprüft werden.
– V0 ⊂V
– |V 0 | ≤ K
– Markiere mit Hilfe einer Tiefensuche jeden Zyklus der von v ∈ V 0 erreichbar ist. Überprüfe für jeden nicht markierten Knoten, ob ein nicht markierter Zyklus existiert.
Polynomiale Transformation der Transformation:
G0 = (V, E 0 ) mit E 0 = {(u, v) | {u, v} ∈ E} ∪ {(v, u) | {u, v} ∈ E}. Wir verwenden für
beide Probleme dasselbe K. Die Transformation ist offensichtlich in polynomial Zeit, da für
jede Kante e ∈ E zwei Kanten e1 , e2 zu E 0 hinzugefügt werden und sonst keine weiteren
Veränderungen an dem Graphen vorgenommen werden.
Korrektheit:
Im Folgenden bezeichnen wir mit Ce den Kreis der beiden Kanten e, e−1 ∈ E 0 der durch die
Transformation von der Kante e ∈ E entsteht.
Wer zeigen zu erst, das ein Vertex Cover V 0 der Größe K für G ein Feedback Vertex
Set für G0 ist. Sei V 0 ⊂ V ein Vertex Cover von G. Es existiert somit zu jeder Kante
in e ∈ E ein inzidenter Knoten v ∈ V 0 . Da der Knoten v überdeckt, überdeckt er auch den
Zyklus Ce . Somit werden alle Zyklen Ce , e ∈ E von V 0 überdeckt. Sei C ein Zyklus der Länge
mindestens drei. Dann existiert zu jeder Kante f ∈ E(C) eine inverse Kante f −1 ∈ E 0 . Die
Kanten f und f −1 bilden einen Zyklus der schon von einem Knoten v 0 ∈ V 0 überdeckt wird
und somit überdeckt v 0 auch C.
Sei V 0 ⊂ V ein Feedback Arc Set in G0 . Wir zeigen das V 0 ein Vertex Cover für G ist.
Die Menge V 0 überdeckt jeden gerichteten Zyklus in G0 und somit insbesondere jeden Zyklus
Ce , damit wird auch jede Kante e ∈ E von einem Knoten v 0 ∈ V überdeckt.
• Gegeben: Eine Menge S und eine Menge A = {A1 , A2 , . . . , An } von Teilmengen Ai von S.
˙ 1 = S, so dass kein Ai vollständig in S0 oder S1 enthalten
Frage: Gibt es eine Partition S0 ∪S
ist?
Nutzen Sie das Problem 3-SAT zur Reduktion.
Lösung:
Wir zeigen Set-Splitting ∈ N P.
Sei (S0 , S1 ) ein Zeuge zu einer Set-Splitting Instanz (S, A). Der Zeuge kann in
O(Σni=1 |Ai ||S|) Zeit wie folgt überprüft werden. Es können in polynomial Zeit Validität des
Zeugens überprüft werden.
– Si ⊂ S
– S0 ∪ S1 =
– S0 ∪ S1 = S
– Für jedes Ai kann in O(|Ai ||Sj |) Zeit überprüft werden, ob alle Element in Sj Zeit
enthalten sind.
Polynomiale Transformation:
Im Folgenden bezeichnen wir mit U = {x : x ∈ U }. Wähle S = {f } ∪ U ∪ U . Die Menge
A konstruieren wir wie folgt. Für jede Variable x ∈ U , setze Ax = {x, x}. Für eine Klausel
Ci = (x ∨ y ∨ z) konstruiere Ai = {x, y, z, f } wobei, x, y, z ∈ U ∪ U . Die Transformation ist
offensichtlich polynomial.
Korrektheit der Transformation:
Zu einer erfüllten 3-SAT Instanz konstruieren wir eine gültige Set-Splitting Instanz wie
folgt: SFalse = {x ∈ U | x = False} ∪ {x ∈ U | x = True} ∪ {f } , STrue = {x ∈ U | x =
True} ∪ {x ∈ U | x = False}. SFalse enthält somit die Literale die zu False auswerten
und STrue enthält die Literale die zu True auswerten. Somit ist die Menge Ax in keiner der
beiden Menge vollständig enthalten. Da in einer Klausel Ci mindestens ein Literal zu True
auswertet, ist dieses Literal in STrue enthalten. Da f ∈ SFalse , ist keine Menge Ai vollständig
in einer der beiden Mengen enthalten.
˙ 1 = S ein Zeuge einer Ja-Instanz (A, S) der Splitting-Set Problems. Sei ohne
Sei S0 ∪S
Beschränkung der Allgemeinheit f ∈ S0 . Wir weisen jedem Literal x ∈ S1 den Wert True
(x = True, falls x ∈ U , x = False, falls x ∈ U ). In jeder Menge Ai existiert ein x, mit
x ∈ S1 somit wertet jede Klausel zu wahr aus. Die Menge Ax stellt sicher, dass x und x eine
konsistente Wahrheitsbelegung haben.
Herunterladen