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) | ID, |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 ID´ 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 uV 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) | uV} 14.02.2017 Kapitel 1 6 Graphfärbbarkeit • G heißt r-regulär, wenn degG(v)=r für alle Knoten vV. • 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:VIN 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:EIN 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:VIN bzw. cE:EIN 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 k3.) • 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 n3 Knoten und e Kanten. Dann gilt: (a) (b) e 3n-6 und SvV (6-deg(v)) 12 Beweis von (a): • Sei F die Menge der Facetten. • Für jedes gF 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 SgF d(g) 3f • Einsetzen in die Eulersche Formel liefert die Behauptung. 14.02.2017 Kapitel 1 28 Knotenfärbung Beweis von (b): • Beachte, dass SvV deg(v) = 2e ist. • Also gilt wegen (a): SvV (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>356=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 SvV (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 | ve oder xie}) { {t, xj} | tG(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 vV: deg(v)4 then G´:=G-v c:=PlanarCol(G´) c(v):=min({1,...,5} \ {c(w) : wG(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 vV mit deg(v)=5 und xi,xjG(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) : wG(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 PNP ist, gibt es keine Konstante kIN, 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 sS(I) sind: fI(s) = Sws p(w) fI´(s) = Sws (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 PNP ist, gibt es keine Konstante kIN, 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 mIN. 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} | vVi und wVj für ein ij} • 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 im die Menge Ci:=CVi 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 mn Knoten hat • D.h. mOPT(G) = OPT(Gm) 14.02.2017 Kapitel 1 64 Maximale Clique • Angenommen, es existiert ein kIN 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:EIN 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