690 likes | 831 Vues
Methoden des Algorithmenentwurfs Kapitel 1.2: Approximation mit absoluter Güte . Christian Scheideler SS 2009. Übersicht. Notation Graphfärbbarkeit Ein Unmöglichkeitsergebnis für das Rucksackproblem und MaxClique. Notation.
E N D
Methoden des AlgorithmenentwurfsKapitel 1.2: Approximation mit absoluter Güte Christian Scheideler SS 2009 Kapitel 1
Übersicht • Notation • Graphfärbbarkeit • Ein Unmöglichkeitsergebnis für das Rucksackproblem und MaxClique Kapitel 1
Notation 2.1 Definition: Sei P ein Optimierungsproblem und A ein Approximationsalgorithmus für P. • A hat bei Eingabe I eine absolute Güte vonkA(I) = |A(I) – OPT(I)| • Die absolute worst-case Güte von A ist die FunktionkAwc(n) = max { kA(I) | ID, |I| n} • Sei kA:IN IN eine Funktion. Agarantiert eine absolute Güte von kA(n) falls für alle n gilt: kAwc(n) kA(n). Kapitel 1
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 giltk´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. Kapitel 1
Notation Ziele: • Finde Approximationsalgorithmen mit möglichst kleiner absoluter Güte. • Zeige (asymptotisch) übereinstimmende Werte für die absolute Güte und absolute Abweichung. Kapitel 1
Graphfärbbarkeit • G=(V,E): ungerichteter Graph • 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} u Kapitel 1
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. Kapitel 1
Graphfärbung 2.2 Definition: Gegeben sei ein Graph G=(V,E). • Eine Abbildung cV:VIN heißt Knotenfärbung von G, falls für alle {u,v}E gilt: cV(u)cV(v). Kapitel 1
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 aufein- andertreffenden Kanten {u,v},{u,w}E gilt: cE({u,v})cE({u,w}). u Kapitel 1
Graphfärbung • cV(u) und cE({u,v}) werden in diesem Zusam-menhang 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 bezeich-net. Die beiden Begriffe aus Definition 2.2 werden dann als korrekte Färbungen bezeichnet. Es ergeben sich folgende Optimierungsprobleme: Kapitel 1
Graphfärbung 2.3 Definition: Das Knoten- bzw. Kantenfär-bungsproblem 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 | cEist Kantenfärbung von G} • f(cV) = |cV(V)| bzw. f(cE) = |cE(E)| • min Kapitel 1
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ärb-bar? Kapitel 1
Graphfärbung 2.4 Bemerkung: • Es gibt Graphen G, die mindestens D(G)+1 Farben zur Knotenfärbung benötigen. • Es gibt Graphen G, die mindestens D(G)+1 Farben zur Kantenfärbung benötigen. • Es sind nie mehr als D(G)+1 Farben nötig. Kapitel 1
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 docV(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. Kapitel 1
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. Kapitel 1
Knotenfärbung 2.6 Satz: Algorithmus GreedyCol garantiert eine absolute Güte vonkGreedyCol(G) = D(G)-1 Beweis: • Da wir annehmen, dass G mindestens eine Kante enthält, ist OPT(G) 2. • Also istkGreedyCol(G) = GreedyCol(G) – OPT(G) D(G)+1-2 = D(G)-1 Kapitel 1
Knotenfärbung Ist die Schranke in Satz 2.6 bestmöglich? Betrachte folgenden Graph G: GreedyCol(G) = D(G)+1, aber OPT(G)=2 u1 u3 u5 u7 u2 u4 u6 u8 Kapitel 1
Knotenfärbung Worin liegt das Scheitern von GreedyCol? Reihenfolge der Knoten war ungünstig. Dann GreedyCol(G) = 2 u1 u2 u3 u4 u5 u6 u7 u8 Kapitel 1
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! Kapitel 1
Knotenfärbung • Algorithmenklasse zu GreedyCol:Algorithmus GreedyCol_Var:for (alle Knoten u) do cV(u):=while (es gibt Knoten u mit cV(u):=) docV(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. Kapitel 1
Knotenfärbung • Ein Graph G=(V,E) heißt planar, wenn man ihn kreuzungsfrei in die Ebene (bzw. Kugel) einbetten kann. • Beispiel: Facette Kapitel 1
Knotenfärbung • Graphen, die nicht kreuzungsfrei in die Ebene eingebettet werden können: K5 K3,3 Kapitel 1
Knotenfärbung 2.7 Fakt: • Jeder planare Graph kann in Polynomialzeit mit 5 Farben knotengefärbt werden. • [4-Farben-Satz] Jeder planare Graph kann mit 4 Farben knotengefärbt werden. • Das Entscheidungsproblem „Ist der planare Graph G knoten-3-färbbar?“ ist NP-hart. • 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. Kapitel 1
Knotenfärbung • Der Beweis des 4-Farben-Satzes kann in einen Algorithmus zur Konstruktion einer Knoten-4-Fä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-2- fä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. Kapitel 1
Knotenfärbung 2.8 Satz: ColPlan garantiert eine absolute Güte von kColPlan(G) 2. • Würden wir den Algorithmus vom 4-Farben-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. Kapitel 1
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. Kapitel 1
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. Kapitel 1
Knotenfärbung 2.10 Lemma: Sei G=(V,E) ein planarer und zusammenhängender Graph mit n3 Knoten und e Kanten. Dann gilt: • 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. Kapitel 1
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. Kapitel 1
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>35-6=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). Kapitel 1
Knotenfärbung 2.13 Satz: Jeder planare Graph G=(V,E) ist 5-fä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} Kapitel 1
Knotenfärbung • Fall 2:v hat Grad 5. Seien x1,..., x5seine Nachbarn. • Da G keinen K5 enthält, gibt es zwei Nachbarn xi und xj, die nicht über eine Kante verbunden sind. x1 x2 x3 x4 x5 v Kapitel 1
Knotenfärbung • Betrachte nun den Graphen G´=(V´,E´) mitV´= V \ {v,xi} undE´= (E \ {e | ve oder xie}) { {t, xj} | tG(xi)} xi xj x1 x2 x3 x4 x5 v Kapitel 1
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 xjgleich gefärbt sind, da xi und xjnicht 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. Kapitel 1
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. • Wir haben also genügend Platz, um Kanten nach xi nach xj fortzusetzen. x1 x2 x3 x4 x5 xi xj v Kapitel 1
Knotenfärbung Daraus ergibt sich folgender Algorithmus: Algorithmus PlanarCol:if |V|5 then for i:=1 to |V| do c(vi):=i return celse if vV: deg(v)4 thenG´:=G-vc:=PlanarCol(G´)c(v):=min({1,...,5} \ {c(w) : wG(v)}) return celse // kein Knoten mit Grad 4 Kapitel 1
Knotenfärbung else // kein Knoten mit Grad 4 wähle vV mit deg(v)=5 undxi,xjG(v) mit {xi,xj}EG´:=(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. Kapitel 1
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 cfehlt 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 Kapitel 1
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 Kapitel 1
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:=1while es gibt mit ci gefärbte Kante {u,vi}Emit vi{v1,..., vi-1} doci+1:=eine an vi fehlende Farbei:=i+1 Kapitel 1
Kantenfärbung c4 c5 c3 • Da nur Nachbarn von u betrachtet werden, wird while-Schleife höchstens (D(G)-1)-mal durchlaufen. Zwei Fälle für ch+1. c2 ..... ch+1 c4 c3 v v v v v c2 h 4 3 2 1 c1 ch c1 s u v Kapitel 1
Kantenfärbung c4 c5 c3 • Es gibt keine zu u inzidente Kante mit Farbe ch+1. • Es gibt eine Kante {u,vj} mit cj=ch+1. c2 ..... ch+1 c4 c3 v v v v v c2 h 4 3 2 1 c1 ch c1 u v Kapitel 1
Kantenfärbung c4 c5 c3 • Es gibt keine zu u inzidente Kante mit Farbe ch+1:Verschiebe Farben, damit c1 bei u fehlt c2 ..... ch+1 c5 c4 c4 c3 v v v v v c2 c3 1 4 h 3 2 c1 c2 ch+1 ch c1 c1 u v Kapitel 1
Kantenfärbung c4 c5 c3 (b) Es gibt eine Kante {u,vj} mit cj=ch+1:Etwas komplizierter... c2 ..... ch+1 c4 c3 v v v v v c2 h 4 3 2 1 c1 ch c1 u v Kapitel 1
Kantenfärbung c4 c5 c3 • Zuerst führen wir Farbverschiebung wie in (a) für v1,..,vj-1durch und entfärben {u,vj}. Dadurch fehlt c1 wieder bei u. c2 ..... ch+1=cj c4 c3 c4 v v v v v c3 c2 2 3 1 h j c2 c1 ch c1 c1 u v Kapitel 1
Kantenfärbung s c5 • 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 s ..... ch+1=cj c4 v v v v v c3 h 3 2 j 1 s c2 ch c1 s, c1 u v Kapitel 1
Kantenfärbung s c5 • 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) s ..... ch+1=cj c4 v v v v v c3 1 2 h j 3 s c2 ch c1 s, c1 u v Kapitel 1
Kantenfärbung s c5 • u, vj und vh können also nicht alle in derselben Zusammenhangskomponente in H(s,ch+1) sein. Wir betrachten 2 Fälle. s ..... ch+1=cj c4 v v v v v c3 1 2 h j 3 s c2 ch c1 s, c1 u v Kapitel 1
Kantenfärbung s c5 (b1) u und vj liegen in verschiedenen ZHKs (b2) u und vh liegen in verschiedenen ZHKs s ..... ch+1=cj c4 v v v v v c3 1 2 h j 3 s c2 ch c1 s, c1 u v Kapitel 1
Kantenfärbung s c5 (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. s c4 ..... ch+1=cj c4 v v v v v s c3 j 1 h 3 2 s c2 ch c1 s, c1 c1 u v Kapitel 1