1 / 69

Methoden des Algorithmenentwurfs Kapitel 1.2: Approximation mit absoluter Güte

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.

gomer
Télécharger la présentation

Methoden des Algorithmenentwurfs Kapitel 1.2: Approximation mit absoluter Güte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Methoden des AlgorithmenentwurfsKapitel 1.2: Approximation mit absoluter Güte Christian Scheideler SS 2009 Kapitel 1

  2. Übersicht • Notation • Graphfärbbarkeit • Ein Unmöglichkeitsergebnis für das Rucksackproblem und MaxClique Kapitel 1

  3. 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) | ID, |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

  4. 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 ID´ gilt: kA(I)  k´A(|I|). Eine solche Eingabe nennen wir dann einen k´A(n)-Zeugen. Kapitel 1

  5. 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

  6. Graphfärbbarkeit • G=(V,E): ungerichteter Graph • 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} u Kapitel 1

  7. 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. Kapitel 1

  8. Graphfärbung 2.2 Definition: Gegeben sei ein Graph G=(V,E). • Eine Abbildung cV:VIN heißt Knotenfärbung von G, falls für alle {u,v}E gilt: cV(u)cV(v). Kapitel 1

  9. 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 aufein- andertreffenden Kanten {u,v},{u,w}E gilt: cE({u,v})cE({u,w}). u Kapitel 1

  10. 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:VIN bzw. cE:EIN 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

  11. 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

  12. 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ärb-bar? Kapitel 1

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. Knotenfärbung • Graphen, die nicht kreuzungsfrei in die Ebene eingebettet werden können: K5 K3,3 Kapitel 1

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. Knotenfärbung 2.10 Lemma: Sei G=(V,E) ein planarer und zusammenhängender Graph mit n3 Knoten und e Kanten. Dann gilt: • 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. Kapitel 1

  29. 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. Kapitel 1

  30. 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5-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 SvV (6-deg(v))  0 ist, ein Widerspruch zu Lemma 2.10 (b). Kapitel 1

  31. 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

  32. 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

  33. Knotenfärbung • Betrachte nun den Graphen G´=(V´,E´) mitV´= V \ {v,xi} undE´= (E \ {e | ve oder xie})  { {t, xj} | tG(xi)} xi xj x1 x2 x3 x4 x5 v Kapitel 1

  34. 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

  35. 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

  36. 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 vV: deg(v)4 thenG´:=G-vc:=PlanarCol(G´)c(v):=min({1,...,5} \ {c(w) : wG(v)}) return celse // kein Knoten mit Grad 4 Kapitel 1

  37. Knotenfärbung else // kein Knoten mit Grad 4 wähle vV mit deg(v)=5 undxi,xjG(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) : wG(v)}) return c Die Laufzeit von PlanarCol ist polynomiell. Kapitel 1

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

  44. 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

  45. 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

  46. 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

  47. 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

  48. 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

  49. 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

  50. 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

More Related