Grundlagen der Algorithmen und Datenstrukturen Kapitel 3.3-3.5

Werbung
Methoden des
Algorithmenentwurfs
Kapitel 1.2: Approximation mit
absoluter Güte
Christian Scheideler
SS 2009
14.02.2017
Kapitel 1
1
Übersicht
• Notation
• Graphfärbbarkeit
• Ein Unmöglichkeitsergebnis für das
Rucksackproblem und MaxClique
14.02.2017
Kapitel 1
2
Notation
2.1 Definition: Sei P ein Optimierungsproblem
und A ein Approximationsalgorithmus für P.
(a) A hat bei Eingabe I eine absolute Güte von
kA(I) = |A(I) – OPT(I)|
(b) Die absolute worst-case Güte von A ist die
Funktion
kAwc(n) = max { kA(I) | ID, |I|  n}
(c) Sei kA:IN  IN eine Funktion. A garantiert
eine absolute Güte von kA(n) falls für alle n
gilt: kAwc(n)  kA(n).
14.02.2017
Kapitel 1
3
Notation
2.1 Definition (Forsetzung):
(d) Sei k´A:IN  IN eine Funktion. A hat eine
absolute Abweichung von k´A(n), falls für
unendlich viele n gilt
k´A(n)  kAwc(n).
Eine unendlich große Menge D´, D´D, heißt
k´A(n)-Zeugenmenge gegen A, wenn für alle
ID´ gilt: kA(I)  k´A(|I|). Eine solche Eingabe
nennen wir dann einen k´A(n)-Zeugen.
14.02.2017
Kapitel 1
4
Notation
Ziele:
• Finde Approximationsalgorithmen mit
möglichst kleiner absoluter Güte.
• Zeige (asymptotisch) übereinstimmende
Werte für die absolute Güte und absolute
Abweichung.
14.02.2017
Kapitel 1
5
Graphfärbbarkeit
• G=(V,E): ungerichteter Graph
u
• Für uV ist GG(u) = { v | {u,v}E} die Menge der
Nachbarn von u und degG(u) = |GG(u)| der Grad
von u.
• Der Grad von G ist
D(G) = max {degG(u) | uV}
14.02.2017
Kapitel 1
6
Graphfärbbarkeit
• G heißt r-regulär, wenn degG(v)=r für alle
Knoten vV.
• Wenn aus dem Zusammenhang klar wird,
welcher Graph gemeint ist, lassen wir den
Index G weg.
14.02.2017
Kapitel 1
7
Graphfärbung
2.2 Definition: Gegeben sei ein Graph G=(V,E).
(a) Eine Abbildung cV:VIN heißt Knotenfärbung
von G, falls für alle {u,v}E gilt: cV(u)cV(v).
14.02.2017
Kapitel 1
8
Graphfärbung
2.2 Definition (Fortsetzung):
(b) Eine Abbildung cE:EIN heißt Kantenfärbung
von G, falls für alle an einem Knoten u aufeinandertreffenden Kanten {u,v},{u,w}E gilt:
cE({u,v})cE({u,w}).
u
14.02.2017
Kapitel 1
9
Graphfärbung
• cV(u) und cE({u,v}) werden in diesem Zusammenhang auch Farben genannt. |cV(V)| bzw.
|cE(E)| ist die Anzahl der benutzten Farben.
• Oft wird auch eine beliebige Abbildung
cV:VIN bzw. cE:EIN als Färbung bezeichnet. Die beiden Begriffe aus Definition 2.2
werden dann als korrekte Färbungen
bezeichnet.
Es ergeben sich folgende Optimierungsprobleme:
14.02.2017
Kapitel 1
10
Graphfärbung
2.3 Definition: Das Knoten- bzw. Kantenfärbungsproblem ist charakterisiert durch
• D = { G | G=(V,E) ist ein ungerichteter
Graph mit nichtleerem V und E }.
• S(G) = {cV | cV ist Knotenfärbung von G}
bzw.
S(G) = {cE | cE ist Kantenfärbung von G}
• f(cV) = |cV(V)| bzw. f(cE) = |cE(E)|
• min
14.02.2017
Kapitel 1
11
Graphfärbung
Kleinstmögliche Farbanzahl:
• Knotenfärbung: chromatische Zahl (G)
• Kantenfärbung: chromatischer Index ´(G)
Die folgenden Probleme sind NP-hart:
• Ist der Graph G mit k Farben knotenfärbbar?
(Sofern k3.)
• Ist der Graph G mit D(G) Farben kantenfärbbar?
14.02.2017
Kapitel 1
12
Graphfärbung
2.4 Bemerkung:
(a)Es gibt Graphen G, die mindestens
D(G)+1 Farben zur Knotenfärbung
benötigen.
(b)Es gibt Graphen G, die mindestens
D(G)+1 Farben zur Kantenfärbung
benötigen.
(c)Es sind nie mehr als D(G)+1 Farben
nötig.
14.02.2017
Kapitel 1
13
Knotenfärbung
• Gegeben: Graph G=(V,E) mit V={u1,...,un}
• Betrachte folgenden Algorithmus:
Algorithmus GreedyCol:
for i:=1 to n do cV(ui):=
for i:=1 to n do
cV(ui) := min(IN \ {cV(G(ui))})
gib cV aus
2.5 Satz: GreedyCol berechnet in Zeit O(|V|+|E|)
eine Knotenfärbung aus höchstens D(G)+1
Farben.
14.02.2017
Kapitel 1
14
Knotenfärbung
Beweis:
Laufzeit: 
Obere Schranke für Anzahl der Farben:
• Für jedes ui können höchstens deg(ui) der
Farben verbraucht sein.
• ui kann also Farbe aus der Menge
{1,...,deg(ui)+1} wählen.
14.02.2017
Kapitel 1
15
Knotenfärbung
2.6 Satz: Algorithmus GreedyCol garantiert
eine absolute Güte von
kGreedyCol(G) = D(G)-1
Beweis:
• Da wir annehmen, dass G mindestens
eine Kante enthält, ist OPT(G)  2.
• Also ist
kGreedyCol(G) = GreedyCol(G) – OPT(G)
 D(G)+1-2 = D(G)-1
14.02.2017
Kapitel 1
16
Knotenfärbung
Ist die Schranke in Satz 2.6 bestmöglich?
Betrachte folgenden Graph G:
u1
u3
u5
u7
u2
u4
u6
u8
GreedyCol(G) = D(G)+1, aber OPT(G)=2
14.02.2017
Kapitel 1
17
Knotenfärbung
Worin liegt das Scheitern von GreedyCol?
Reihenfolge der Knoten war ungünstig.
u1
u2
u3
u4
u5
u6
u7
u8
Dann GreedyCol(G) = 2
14.02.2017
Kapitel 1
18
Knotenfärbung
• Tatsächlich gibt es für jeden Graphen eine
Reihenfolge der Knoten, so dass
GreedyCol optimal ist.
Beweis: Übung
• Diese Reihenfolge zu finden ist leider hart!
14.02.2017
Kapitel 1
19
Knotenfärbung
• Algorithmenklasse zu GreedyCol:
Algorithmus GreedyCol_Var:
for (alle Knoten u) do cV(u):=
while (es gibt Knoten u mit cV(u):=) do
cV(u) := min(IN \ {cV(G(u))})
gib cV aus
• Absolute Güte von GreedyCol_Var ist dieselbe wie
GreedyCol, da der Nachweis reicht, dass ein
schlechter Graph und eine schlechte Reihenfolge
der Knoten im Algorithmus existiert.
14.02.2017
Kapitel 1
20
Knotenfärbung
• Ein Graph G=(V,E) heißt planar, wenn
man ihn kreuzungsfrei in die Ebene (bzw.
Kugel) einbetten kann.
• Beispiel:
Facette
14.02.2017
Kapitel 1
21
Knotenfärbung
• Graphen, die nicht kreuzungsfrei in die
Ebene eingebettet werden können:
K5
14.02.2017
K3,3
Kapitel 1
22
Knotenfärbung
2.7 Fakt:
(a) Jeder planare Graph kann in Polynomialzeit
mit 5 Farben knotengefärbt werden.
(b) [4-Farben-Satz] Jeder planare Graph kann
mit 4 Farben knotengefärbt werden.
(c) Das Entscheidungsproblem „Ist der planare
Graph G knoten-3-färbbar?“ ist NP-hart.
(d) Es kann in Polynomialzeit entschieden
werden, ob ein Graph G knoten-2-färbbar ist
und, falls ja, dann kann eine solche Färbung
berechnet werden.
14.02.2017
Kapitel 1
23
Knotenfärbung
• Der Beweis des 4-Farben-Satzes kann in einen
Algorithmus zur Konstruktion einer Knoten-4Färbung mit Laufzeit O(|V|2) umgewandelt werden.
• Wir begnügen uns mit Knoten-5-Färbung.
Betrachte zunächst den folgenden Algorithmus:
Algorithmus ColPlan:
(1) Teste gemäß Fakt 2.7 (d), ob G knoten-2färbbar ist. Falls ja, färbe ihn mit 2 Farben.
(2) Falls nicht, dann färbe die Knoten gemäß Fakt
2.7 (a) mit 5 Farben.
14.02.2017
Kapitel 1
24
Knotenfärbung
2.8 Satz: ColPlan garantiert eine absolute
Güte von kColPlan(G)  2.
• Würden wir den Algorithmus vom 4Farben-Satz verwenden, könnten wir eine
absolute Güte von 1 erreichen.
• Für die 5-Färbung brauchen wir zunächst
einige Aussagen über planare Graphen.
14.02.2017
Kapitel 1
25
Knotenfärbung
2.9 Satz (Eulersche Polyederformel): Sei G
ein planarer und zusammenhängender
Graph mit n Knoten, e Kanten und f
Facetten. Dann gilt n+f-e=2.
Beweis:
• Wir beweisen den Satz per Induktion über
die Anzahl der Facetten.
• f=1: dann muss G ein Baum sein, d.h.
e=n-1, und es folgt n+f-e=2.
14.02.2017
Kapitel 1
26
Knotenfärbung
• Sei nun f  2. Dann ist G kein Baum.
• Es gibt also Kreis entlang der Kanten
{v1,v2},{v2,v3},...,{vk,v1}E in G.
• Löschen wir eine Kante {vi,vi+1} aus
diesem Kreis, so erhalten wir einen
Graphen mit f-1 Facetten.
• Nach Induktionsvoraussetzung gilt
n+(f-1)-(e-1) = 2 und damit n+f-e = 2.
14.02.2017
Kapitel 1
27
Knotenfärbung
2.10 Lemma: Sei G=(V,E) ein planarer und
zusammenhängender Graph mit n3 Knoten und e Kanten.
Dann gilt:
(a)
(b)
e  3n-6 und
SvV (6-deg(v))  12
Beweis von (a):
• Sei F die Menge der Facetten.
• Für jedes gF sei d(g) die Anzahl der Kanten, aus denen g
besteht.
• Da |V|3 und G zusammenhängend ist, gilt d(g)3 für jede
Facette g.
• Da jede Kante maximal zwei Facetten begrenzt, gilt
2e  SgF d(g)  3f
• Einsetzen in die Eulersche Formel liefert die Behauptung.
14.02.2017
Kapitel 1
28
Knotenfärbung
Beweis von (b):
• Beachte, dass SvV deg(v) = 2e ist.
• Also gilt wegen (a):
SvV (6-deg(v)) = 6n-2e
 6n-2(3n-6)
= 12
Lemma 2.10 hat zwei wichtige Konsequenzen.
14.02.2017
Kapitel 1
29
Knotenfärbung
2.11 Korollar: Jeder Graph, der K5 als Teilgraph
enthält, ist nicht planar.
Beweis: K5 hat 5 Knoten und 10 Kanten. Da 10>356=9 ist, folgt die Behauptung aus Lemma 2.10 (a).
2.12 Korollar: Jeder planare zusammenhängende
Graph G=(V,E) hat einen Knoten v mit deg(v)5.
Beweis:
Angenommen, alle Knoten hätten Grad 6. Dann
folgt, dass SvV (6-deg(v))  0 ist, ein Widerspruch
zu Lemma 2.10 (b).
14.02.2017
Kapitel 1
30
Knotenfärbung
2.13 Satz: Jeder planare Graph G=(V,E) ist 5färbbar.
Beweis:
• Wir beweisen den Satz durch Induktion über die
Anzahl der Knoten.
• Anfang: Für |V|5 ist Satz 2.13 trivial.
• Induktionsschritt: Sei |V|>5.
• Nach Korollar 2.12 besitzt G Knoten v mit Grad
maximal 5.
• Fall 1: v hat Grad <5. 5-färbe G-v (nach Induktion
möglich) und dann v mit beliebiger freier Farbe in
{1,...,5}
14.02.2017
Kapitel 1
31
Knotenfärbung
• Fall 2: v hat Grad 5. Seien x1,..., x5 seine
Nachbarn.
x1
x2
x3
x4
x5
v
• Da G keinen K5 enthält, gibt es zwei
Nachbarn xi und xj, die nicht über eine Kante
verbunden sind.
14.02.2017
Kapitel 1
32
Knotenfärbung
• Betrachte nun den Graphen G´=(V´,E´) mit
V´= V \ {v,xi} und
E´= (E \ {e | ve oder xie}) 
{ {t, xj} | tG(xi)}
x1
xi
xj
x2
x3
x4
x5
v
14.02.2017
Kapitel 1
33
Knotenfärbung
• Nach der Induktionsvoraussetzung existiert
eine 5-Färbung für G´
• Das induziert eine Färbung für G-v, in der die
Knoten xi und xj gleich gefärbt sind, da xi und
xj nicht durch eine Kante verbunden sind.
• v´s Nachbarn verwenden also höchstens 4
Farben, so dass v eine Farbe aus {1,...,5}
wählen kann.
• Es bleibt zu zeigen: G´ ist planar.
14.02.2017
Kapitel 1
34
Knotenfärbung
Behauptung: G´ ist planar.
• Wir müssen die Kanten, die in G in xi enden,
geschickt in xj enden lassen, ohne dass es zu
Kantenkreuzungen kommt.
• Da G planar ist, gibt es ein Gebiet A, das nur von
den Kanten von v, xi und xj geschnitten wird.
x1
x2
x3
x4
xi
x5
xj
v
• Wir haben also genügend Platz, um Kanten nach
xi nach xj fortzusetzen.
14.02.2017
Kapitel 1
35
Knotenfärbung
Daraus ergibt sich folgender Algorithmus:
Algorithmus PlanarCol:
if |V|5 then
for i:=1 to |V| do c(vi):=i
return c
else
if vV: deg(v)4 then
G´:=G-v
c:=PlanarCol(G´)
c(v):=min({1,...,5} \ {c(w) : wG(v)})
return c
else // kein Knoten mit Grad 4
14.02.2017
Kapitel 1
36
Knotenfärbung
else // kein Knoten mit Grad 4
wähle vV mit deg(v)=5 und
xi,xjG(v) mit {xi,xj}E
G´:=(V \{v, xi}),(E\...(s.o.)...))
c:=PlanarCol(G´)
c(xi):=c(xj)
c(v):=min({1,...,5} \ {c(w) : wG(v)})
return c
Die Laufzeit von PlanarCol ist polynomiell.
14.02.2017
Kapitel 1
37
Kantenfärbung
2.14 Satz: Jeder Graph G braucht mindestens D(G)
und höchstens D(G)+1 Farben für eine
Kantenfärbung.
Beweis:
• Mindestens D(G) Farben: klar
• Höchstens D(G)+1 Farben: Beweis über
Algorithmus, der höchstens D(G)+1 Farben
benötigt
• Farbe c fehlt an Knoten v, falls keine der Kanten
von v Farbe c besitzt
• Für jede (partielle) Kantenfärbung fehlt an jedem
Knoten mindestens eine der D(G)+1 Farben
14.02.2017
Kapitel 1
38
Kantenfärbung
2.15 Lemma: Sei G kantengefärbt mit
Farben 1,...,D(G)+1 und seien u und v
Knoten mit {u,v}E und deg(u),deg(v) <
D(G). Dann kann G so umgefärbt werden,
dass an u und v dieselbe Farbe fehlt.
Beweis:
• An u fehle Farbe s, an v Farbe c1
• Wir sorgen dafür, dass c1 auch an u fehlt
14.02.2017
Kapitel 1
39
Kantenfärbung
• Betrachte den folgenden Algorithmus, der
eine Folge (v1,...,vh) von Nachbarn von u und
eine Farbfolge (c1,...,ch+1) generiert mit:
{u,vi} ist mit ci gefärbt und an vi fehlt ci+1.
i:=1
while es gibt mit ci gefärbte Kante {u,vi}E
mit vi{v1,..., vi-1} do
ci+1:=eine an vi fehlende Farbe
i:=i+1
14.02.2017
Kapitel 1
40
Kantenfärbung
c4
c5
v3
v4
ch+1
c3
c4
vh
v2
c2
v1
c3
c2
c1
ch
u
s
c1
v
• Da nur Nachbarn von u betrachtet werden,
wird while-Schleife höchstens (D(G)-1)-mal
durchlaufen. Zwei Fälle für ch+1.
14.02.2017
Kapitel 1
41
Kantenfärbung
c4
c5
v3
v4
ch+1
c3
c4
vh
v2
c3
c2
v1
c2
c1
ch
c1
u
v
(a)Es gibt keine zu u inzidente Kante mit
Farbe ch+1.
(b)Es gibt eine Kante {u,vj} mit cj=ch+1.
14.02.2017
Kapitel 1
42
Kantenfärbung
c4
c5
v3
v4
ch+1
c3
c54
vh
v2
c2
v1
c43
c32
c21
cch+1
h
u
c1
c1
v
(a)Es gibt keine zu u inzidente Kante mit
Farbe ch+1:
Verschiebe Farben, damit c1 bei u fehlt
14.02.2017
Kapitel 1
43
Kantenfärbung
c4
c5
v3
v4
ch+1
c3
c4
vh
v2
c3
c2
v1
c2
c1
ch
c1
u
v
(b) Es gibt eine Kante {u,vj} mit cj=ch+1:
Etwas komplizierter...
14.02.2017
Kapitel 1
44
Kantenfärbung
c4
c5
v3
vj
ch+1=cj
c3
c4
vh
v2
c2
v1
c43
c32
c21
ch
u
c1
c1
v
• Zuerst führen wir Farbverschiebung wie
in (a) für v1,..,vj-1 durch und entfärben
{u,vj}. Dadurch fehlt c1 wieder bei u.
14.02.2017
Kapitel 1
45
Kantenfärbung
s
s
c5
vj
v3
ch+1=cj
s
v2
c4
vh
v1
c3
c2
ch
u
•
•
s, c1
c1
v
Wir müssen {u,vj} färben.
Betrachte Teilgraph H(s,ch+1) von G, der nur
aus Kanten mit Farben s und ch+1 besteht
14.02.2017
Kapitel 1
46
Kantenfärbung
s
s
c5
vj
v3
ch+1=cj
s
v2
c4
vh
v1
c3
c2
ch
u
•
•
s, c1
c1
v
H(s,ch+1) besteht nur aus Kreisen und
Pfaden, da jeder Knoten max. Grad 2 hat
u, vj und vh haben max. Grad 1 in H(s,ch+1)
14.02.2017
Kapitel 1
47
Kantenfärbung
s
s
c5
vj
v3
ch+1=cj
s
v2
c4
vh
v1
c3
c2
ch
u
s, c1
c1
v
• u, vj und vh können also nicht alle in
derselben Zusammenhangskomponente
in H(s,ch+1) sein. Wir betrachten 2 Fälle.
14.02.2017
Kapitel 1
48
Kantenfärbung
s
s
c5
vj
v3
ch+1=cj
s
v2
c4
vh
v1
c3
c2
ch
u
s, c1
c1
v
(b1) u und vj liegen in verschiedenen ZHKs
(b2) u und vh liegen in verschiedenen ZHKs
14.02.2017
Kapitel 1
49
Kantenfärbung
sc4
s
c5
v3
vj
ch+1=cj
s
c4
s
vh
v2
v1
c3
c2
ch
u
s,c1c1
c1
v
(b1) u und vj liegen in verschiedenen ZHKs:
Vertausche Farben s und ch+1 in ZHK von
vj. Dann fehlt Farbe s bei vj und u.
14.02.2017
Kapitel 1
50
Kantenfärbung
s
s
c5
vj
v3
ch+1=cj
cs4
c4
c5
vh
v2
v1
c3
c2
csh
u
s,c1c1
c1
v
(b2) u und vh liegen in verschiedenen ZHKs:
Verschiebe Farben von {u,vh},...,{u,vj+1}
nach {u,vh-1},...{u,vj}. Dadurch haben wir
Fall (b1) für {u,vh}, da {u,vh} ungefärbt.
14.02.2017
Kapitel 1
51
Kantenfärbung
• Mit Lemma 2.15 können wir nun einfach Satz 2.14 mit
folgendem Algo beweisen:
Algorithmus FärbeKanten(G=(V,E))
if |E|= then return
else
wähle eine beliebige Kante {u,v}E
G´:=G\{u,v}
FärbeKanten(G´)
if D(G´)<D(G) then
färbe {u,v} mit verfügbarer Farbe in {1,...,D(G)+1}
else
färbe G´ gemäß Lemma 2.15 um, so dass an u und
v dieselbe Farbe c fehlt, und färbe dann {u,v} mit c
14.02.2017
Kapitel 1
52
Kantenfärbung
2.16 Satz: Algorithmus FärbeKanten kann in
Zeit O(|V||E|) ausgeführt werden und
garantiert absolute Güte 1.
Eine Güte 0 ist nicht in poly Zeit erreichbar.
Selbst die Frage, ob ein 3-regulärer Graph
mit 3 Farben kantengefärbt werden kann,
ist NP-hart.
14.02.2017
Kapitel 1
53
Übersicht
• Notation
• Graphfärbbarkeit
• Ein Unmöglichkeitsergebnis für das
Rucksackproblem und MaxClique
14.02.2017
Kapitel 1
54
Rucksackproblem
Für viele Probleme gibt es keinen Polynomialzeit-Algorithmus, der eine konstante Güte
erreichen kann. Eines davon ist das
Rucksackproblem.
2.17 Satz: Falls PNP ist, gibt es keine
Konstante kIN, so dass es einen polynomiellen Approximationsalgorithmus A für das
Rucksackproblem gibt mit
|A(I)-OPT(I)|  k.
14.02.2017
Kapitel 1
55
Rucksackproblem
• Wir nehmen an, dass es ein k und Algo A
gibt.
• Damit wollen wir zeigen, dass es dann
sogar einen exakten Algorithmus A´ mit
polynomieller Laufzeit für das Rucksackproblem gibt.
• Das ist aber nicht möglich (es sei denn,
P=NP), da das Rucksackproblem NP-hart
ist.
14.02.2017
Kapitel 1
56
Rucksackproblem
• Sei I=<W,vol,p,B> Instanz des Rucksackproblems
• Betrachte I´=<W´,vol´,p´,B´> mit W´=W,
vol´=vol, B´=B und p´(w)=(k+1)p(w).
• Offensichtlich ist S(I)=S(I´)
• Die Werte von sS(I) sind:
fI(s) = Sws p(w)
fI´(s) = Sws (k+1)p(w) = (k+1)fI(s)
• Also ist sOPT für I auch sOPT für I´
14.02.2017
Kapitel 1
57
Rucksackproblem
• Wir stellen uns die Lösungen ansteigend
nach ihren Werten angeordnet vor
• D.h. S(I)={s1,...,s|S(I)|} mit fI(si)  fI(si+1) für
alle i
• Sei j der Index mit fI(sj-1)<OPT(I) und
fI(sj)=OPT(I). Dann ist
fI(sj)-fI(sj-1)  1
d.h. fI´(sj)-fI´(sj-1) = (k+1) (fI(sj)-fI(sj-1)) > k
14.02.2017
Kapitel 1
58
Rucksackproblem
• Verwende nun den folgenden Algo A´:
1. berechne die Instanz I´
2. bestimme mittels A eine Lösung s für I´
3. gib sA´ = s aus
• A´ läuft offensichtlich in polynomieller Zeit
• Nach Annahme über A gilt OPT(I´)-fI´(s)  k
• Da es für I´ keine Lösungen s mit OPT(I´)fI´(s)  k außer einem sOPT gibt, gibt A´ immer
die optimale Lösung aus  Widerspruch!
(zur Annahme, dass Rucksack NP-hart ist)
14.02.2017
Kapitel 1
59
Rucksackproblem
• Die im Beweis angewandte Technik, um die
Lücke zum Optimalwert zu vergrößern, wird
auch Scaling oder Gap Amplification
genannt. Das ist generell immer anwendbar,
wenn beliebige Zahlen in der Eingabe erlaubt
sind.
• Die Strategie, ein Problem auf sich selbst zu
reduzieren, wird auch Selbstreduktion
genannt.
• Der Beweis klappt nicht nur für konstantes
k.Wie hoch kann k gewählt werden?
14.02.2017
Kapitel 1
60
Maximale Clique
Zur Erinnerung:
• Clique = {(G,k) | G=(V,E) ist ein Graph, der
einen vollständigen Teilgraphen aus
mindestens k Knoten besitzt}
• Das zugehörige Optimierungsproblem (finde
Clique maximaler Größe) nennen wir
MaxClique
• MaxClique ist NP-hart. Wir beweisen nun,
dass sich auch MaxClique nicht additiv
approximieren lässt
14.02.2017
Kapitel 1
61
Maximale Clique
2.18 Satz: Falls PNP ist, gibt es keine
Konstante kIN, so dass es einen polynomiellen Approximationsalgorithmus A für
MaxClique gibt mit |A(I)-OPT(I)|  k.
Beweis:
• Wir führen wieder geeigenete Selbstreduktion durch
• Sei G=(V,E) ein Graph und mIN.
14.02.2017
Kapitel 1
62
Maximale Clique
• Seien G1=(V1,E1),...,Gm=(Vm,Em) Kopien von G
• Wir bauen daraus den Graph Gm=(Vm,Em) mit
Vm := i=1 m Vi und
Em := i=1 m Ei  {{v,w} | vVi und wVj für ein ij}
• Beispiel für G2:
14.02.2017
Kapitel 1
63
Maximale Clique
• Ist nun C eine Clique in Gm mit n=|C| Knoten,
dann ist für jedes im die Menge Ci:=CVi
eine Clique in Gi
• Mit t:=argmax{|C1|,...,|Cm|} ist damit Ct eine
Clique der Größe mindestens n/m
• Aus obiger Aussage folgt, dass eine größte
Clique in G genau dann n Knoten hat, wenn
eine größte Clique in Gm genau mn Knoten
hat
• D.h. mOPT(G) = OPT(Gm)
14.02.2017
Kapitel 1
64
Maximale Clique
• Angenommen, es existiert ein kIN und
ein Approximationsalgorithmus A mit
|A(G)-OPT(G)|  k
• Betrachte dann den folgenden Algo A´:
1. Konstruiere Gk+1
2. Finde eine Clique C in Gk+1 mit A
3. Partitioniere C in C1,...,Cm
4. t:=argmax{|C1|,...,|Cm|}
5. Gib Ct aus
14.02.2017
Kapitel 1
65
Maximale Clique
• Nach Annahme über A gilt
A(Gk+1)  OPT(Gk+1)-k
• Weiterhin ist A´(G)  A(Gk+1) / (k+1) und
damit (k+1)A´(G)  OPT(Gk+1)-k
• Da OPT(Gk+1) = (k+1)OPT(G) ist, folgt
(k+1)A´(G)  (k+1)OPT(G)-k
d.h.
A´(G)  OPT(G) – k/(k+1)
• Da k/(k+1)<1 ist und A´(G) nur ganzzahlige
Werte annehmen kann, muss A´(G)=OPT(G)
sein, ein Widerspruch! (zur Annahme, das
MaxClique NP-hart ist)
14.02.2017
Kapitel 1
66
Traveling Salesperson
Zur Erinnerung: Im Traveling Salesperson
Problem (TSP) haben wir Instanzen der
Form (Kn,c), wobei Kn der vollständige
Graph auf n Knoten ist und c:EIN eine
Kantengewichtsfunktion. Das Ziel ist es,
einen Hamilton-Kreis in Kn mit minimalen
Kosten zu finden.
Auch TSP kann nicht mit absoluter Güte k für
jede Konstante k in poylnomieller Zeit
approximiert werden. Wie beweist man das?
14.02.2017
Kapitel 1
67
Färbungsprobleme
Warum erlaubt das Kantenfärbungsproblem
keine Amplifikation?
14.02.2017
Kapitel 1
68
Fragen?
14.02.2017
Kapitel 1
69
Herunterladen