Abbildung 1: Reduktion: CLIQUE zu VERTEX

Werbung
u
u
v
z
w
y
v
z
x
w
y
x
Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V 0 =
{u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V 0 = {w, z}
Definition 0.0.1 (Vertex Cover (VC)). Gegeben: Ein ungerichteter Graph
G = (V, E), k ∈ N.
Frage: Existiert eine Knotenüberdeckung der Grösse k? D.h. ∃V 0 ⊂ V , |V 0 | = k,
∀(u, v) ∈ E: u ∈ V 0 oder v ∈ V 0 (oder beides).
Satz 0.0.2. VC ist NP-vollständig.
Beweis. 1) Wir zeigen zunächst, dass VC in NP liegt. Gegeben sei hierzu ein
Graph G = (V, E) und ein k ∈ N. Ein Zeuge ist V 0 ⊂ V . Der Verifikationsalgorithmus bestätigt, ob |V 0 | = k und überprüft, ob für jeder Kante(u, v) ∈ E gilt,
dass u ∈ V 0 oder v ∈ V 0 . Dies kann offenbar in O(|E|) durchgeführt werden. 2)
Nun zeigen wir, dass VC NP-schwer ist, indem wir CLIQUE darauf reduzieren,
d.h. CLIQUE≤p VC
(Zur Erinnerung: CLIQUE
Gegeben: Ein ungerichteter Graph G = (V, E)
Frage: Existiert ein vollständiger Teilgraph (Clique) der Grösse k?)
In der Reduktion konstruieren wir in polynomieller Zeit aus einer Eingabe (G, k)
für CLIQUE eine Eingabe (G0 , k 0 ) für VC, sodass gilt: G enthält eine k-Clique ⇔
G0 hat einen VC der Grösse k 0 . Wir wählen als G0 das Komplement Ḡ von G und
k 0 = n − k mit n = |V |. (Erinnerung: Ḡ = (V, Ē) mit Ē = {(u, v)|(u, v) ∈
/ E}).
Dies ist in polynomieller Zeit möglich. Es bleibt nun also noch zu zeigen: G
enthält eine k-Clique ⇔ Ḡ hat einen VC der Grösse n−k. Wir betrachten hierzu
V 0 ⊂ V , eine k-Clique von G. Per Definition heißt das: ∀u, v ∈ V 0 : (u, v) ∈ E
und |V 0 | = k. Da Ē das Komplement von E ist, bedeutet dies nichts anderes als:
∀u, v ∈ V 0 : (u, v) ∈
/ Ē und |V 0 | = k . Das heißt, entweder u oder v liegen nicht
0
in V , ∀(u, v) ∈ Ē : u ∈ V \V 0 oder v ∈ V \V 0 (oder Beides) und |V \V 0 | = n−k.
Es wird also jede Kante aus Ē von V \ V 0 bedeckt, was genau der Definition
eines VC entspricht: V \ V 0 ist n − k-VC in Ḡ.
Definition 0.0.3 (SUBSET-SUM). Gegeben: Eine Menge S = {a1 , . . . , ar } ⊂
N und eine Zahl b ∈ N.
P
Frage: Existiert eine Teilmenge S 0 ⊂ S mit a∈S a = b?
Satz 0.0.4. SUBSET-SUM ist NP-vollständig.
Beweis. 1) Dass SUBSET-SUM ∈ NP ist, wurde bereits gezeigt. 2) Nun zeigen
wir, dass SUBSET-SUM NP-schwer ist, durch VERTEX-COVER≤p SUBSETSUM. Die Reduktion funktioniert wie folgt: Wir konstruieren in polynomieller Zeit aus einer Eingabe (G, k) für VC eine Eingabe a1 , . . . , an , b ⊂ N für
1
v1
e5
e0
v2
e3
e4
e2
v0
e1
v4
v3
Abbildung 2: Der Graph V ertex − Cover mit Vertex-Cover {v0 , v1 , v2 }
x0
x1
x2
x3
x4
y0
y1
y2
y3
y4
y5
b
1
1
1
1
1
0
0
0
0
0
0
k
e5
0
1
0
0
1
1
0
0
0
0
0
2
e4
1
1
0
0
0
0
1
0
0
0
0
2
e3
1
0
1
0
0
0
0
1
0
0
0
2
e2
0
0
1
1
0
0
0
0
1
0
0
2
e1
1
0
0
1
0
0
0
0
0
1
0
2
e0
1
0
0
0
1
0
0
0
0
0
1
2
v0
v1
v2
v3
v4
Tabelle 1: Die fertige Matrix zum Graphen V ertex − Cover.
SUBSET-SUM,
sodass gilt: G hat einen VC der Grösse k ⇔ ∃I ⊂ {1, . . . , n}
P
mit i∈I ai = b.
Man betrachte hierzu die Inzidenzmatrix von G: Sei
( V = {v0 , . . . , vn−1 } und
0 falls vj ∈ ei
E = {e0 , . . . , em−1 }, M = (bij ) i=m−1,...,0 mit bij =
j=0,...,n−1
1 sonst
M wird zuerst um eine Einheitsmatrix Em mit Dimension m nach unten erweitert. Dann wird eine zusätzliche linke Spalte hinzugefügt, deren oberen n
Einträge Einsen enthalten und die unteren m Nullen. Zuletzt wird die unterste
Zeile angehängt, die k als ersten Eintrag und an den übrigen Stellen Zweien
enthält. Alle Zeilen der Matrix werden nun als 4äre Zahlen interpretiert, wobei
k beliebige Werte aus N annehmen darf.
Nun identifizieren wir die SUBSET-SUM Eingabe
S = {a0 , . . . , ar } mit {x0 , . . . , xn−1 , y0 , . . . , ym−1 }, wobei
Pm−1
xi = 4m + j=0 bij ∗ 4j
y j = 4j
Pm−1
und b = k ∗ 4m + j=0 2 ∗ 4j
Dies ist in polynomieller Zeit möglich.
Wir zeigen nun die Behauptung für die so konstruierte Eingabe:
⇒: Sei V 0 ⊂ V mit V 0 = {vi1 , . . . , vik } ein VC von G. Wählt man nun ein
S 0 ⊂ S mit S 0 = {xi1 , . . . , xik } ∪ {yi genau ein Knoten ei ist in V 0 }, so ist nach
2
Konstruktion
P
a∈S 0
a = b.
⇐: Sei umgekehrt S 0 = {xi1 , . . . , xik } ∪ {yj1 , . . . , yjl } sodass
ist V 0 = {vi1 , . . . , vik } ein VC von G.
P
a∈S 0
a = b. Dann
Definition 0.0.5 (PARTITION). Gegeben: EineP
Menge R =P{a1 , . . . , ar } ⊂
˙ 2 mit a∈R a = a∈R a?
N. Frage: Existiert eine Zerlegung R = R1 ∪R
1
2
Satz 0.0.6. PARTITION ist NP-vollständig.
Beweis. 1) Dass PARTITION ∈ NP ist, wurde schon gezeigt. 2) Nun zeigen wir
noch, dass PARTITION auch NP-schwer ist durch SUBSET-SUM≤p PARTITION.
Um die Reduktion durchzuführen,konstruieren wir also polynomieller Zeit aus
einer Eingabe (S, b)
R für PARTITION,
sodass
Pfür SUBSET-SUM eine EingabeP
P
˙ 2 mit a∈R a = a∈R a.
gilt: ∃S 0 ⊂ S mit a∈S 0 a = b ⇔ ∃R = R1 ∪R
1
2
Wir wählen hierzu R = {a0 , . . . , ar , x, y} = S ∪ {x, y} wobei
x = 2P
∗ A − b und y = A + b
A = a∈S 0 a
Dies ist in polynomieller Zeit möglich. Wir beobachten nun Folgendes: x und
y können nicht in der gleichen Menge der P
Zerlegung von R liegen, denn es ist
x + y = 2 ∗ A − b + A − b = 3 ∗ A, aber a∈R a = A + x + y = 4 ∗ A, jede
Zerlegungsmenge muss also die Grösse 2 ∗ A haben. Demnach müssen R1 und
R2 folgende Form haben: R1 = S 0 ∪ {x} und R2 = S \ S 0 ∪ {y} für ein S 0 ⊂ S.
Wir zeigen jetzt die Behauptung
für die so konstruierte Eingabe: P
P
0
0
⇒:
Für
S
⊂
S
mit
0 a = b wähle R1 = S ∪ {x}. Dann ist
a∈S
a∈R1 a =
P
a∈S 0 a + 2 ∗ A − b = 2 ∗ A.
⇐: Aus der Beobachtung folgt, dass R1 und R2 von genau dieser Form sein
müssen, d.h. S 0 ist Lösung für SUBSET-SUM.
Definition 0.0.7 (3-FÄRBBARKEIT). Gegeben: Ein ungerichteter Graph
G = (V, E). Frage: Ist G 3-färbbar?
Definition 0.0.8 (k-Färbung). Sei G = (V, E) ungerichteter Graph. Eine
Funktion c : V → {1, . . . , k} heißt k-Färbung von G, wenn gilt: ∀(u, v) ∈ E :
c(u) 6= c(v).
Satz 0.0.9. 3-FÄRBBARKEIT ist NP-vollständig.
Beweis. Wir zeigen zunächst, dass 3-FÄRBBARKEIT in NP liegt. Ein Zeuge
ist eine Färbung c mit |c| ∈ O(n). Ob c eine gültige Färbung ist lässt sich einfach
in O(|E|) Zeit überprüfen. Nun zeigen wir noch, dass 3-FÄRBBARKEIT NPschwer ist durch 3-SAT≤p 3-FÄRBBARKEIT. Als Reduktion konstruieren wir
in polynomieller Zeit aus einer Eingabe Φ für 3-SAT eine Eingabe G = (V, E)
für 3-FÄRBBARKEIT, sodass gilt: G ist 3-färbbar ⇔ ∃ erfüllende Belegung
φ vpn Φ. Hierbei ist Φ = c1 ∧ . . . ∧ cm mit Klauseln ci = xi1 ∨ xi2 ∨ xi3 und
Literalen xij ∈ {v1 , . . . , vm , v¯1 , . . . , v¯m }. Eine Belegung φ ist eine Abbildung
φ : {v1 , . . . , vm } → 0, 1.
3
False
True
T
F
Base
B
v¯3
v1
v3
v¯1
v2
v¯2
Abbildung 3: 1. Schritt der Reduktion für 3-Färbung
Wir konstruiere nun G in zwei Schritten: 1) Sei G = (V, E) ein Graph mit V =
{v1 , . . . , vm , v¯1 , . . . , v¯m , T, F, B} Man assoziiert also die Knoten des Graphen
mit den Variablen und ihren Negationen. T, F und B sind spezielle Knoten, die
mit True, False und Base bezeichnet werden. Zuerst verbinden wir jedes Paar
von Knoten vi und v¯i mit einer Kante und jeden von ihnen mit Base. Ebenso
verbinden wir True, False und Base zu einem Dreieck.
Dieser Graph hat einige hilfreiche Eigenschaften: (i) In jeder 3-Färbung von
G müssen vi und v¯i verschiedene Farben haben, und beide müssen sich von
B unterscheiden. (ii) In jeder 3-Färbung von G müssen die Knoten T,F und
B die 3 verschiedenen Farben annehmen, insofern können wir die Farben als
True, False und Base-Farbe auffassen. Insbesondere bekommen die Knoten vi
und v¯i die Farben True oder False. Wir haben jetzt einen Graph G, in dem jede
3-Färbung eine gültige Belegung der Variablen in 3-SAT definiert.
2)Nun müssen wir G so erweitern, dass nur erfüllende Belegungen (d.h. solche die
als Antwort true haben) von Φ zu einer 3-Färbung führen. Sei ci = xi1 ∨xi2 ∨xi3
eine beliebige Klausel von Φ. ci ist erfüllt, wenn mindestens eins der Literale mit
true belegt ist. (Es muss also gelten: ¬(φ(xi1 ) = φ(xi2 ) = φ(xi3 ) = f alse) Wir
benötigen also einen Teilgraphen, den wir so in G einbauen, dass jede 3-Färbung
von G zu einer wahren Belegung von mindestens einem der Knoten vi1 , vi2 , vi3
führt.
Der in Abbildung 4 gezeigte Teilgraph wird in G an den fünf markierten Knoten
eingefügt, indem T, F, vi1 , vi2 und vi3 mit denselbigen im schon bestehenden
Graphen G identifiziert werden. Dies wird füer alle Klauseln aus Φ durchgeführt.
Diesen Graphen nennen wir G’. Dies ist in polynomieller Zeit möglich. Nach
obiger Konstruktion gilt also: G0 ist 3-färbbar ⇔ ∃ erfüllende Belegung φ von
Φ.
Satz 0.0.10 (VIERFARBEN-THEOREM). Alle planaren Graphen lassen
sich mit 4 Farben färben.
Bemerkung. Planaren Graphen lassen sich in der Ebene zeichnen, ohne dass
sich ihre Kanten kreuzen. Für k ≥ 4 ist das k-Färbproblem für planare Graphen
trivial.
4
vi2
F
T
vi1
vi3
Abbildung 4: 2.Schritt: Dieser Teilgraph wird an den bereits bestehenden Graphen angehanngt. Der obere Knoten kann nicht gefärbt werden, wenn alle 3
Literale False gefärbt werden.
5
Herunterladen