Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 29.4.

Ähnliche Präsentationen


Präsentation zum Thema: "Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 29.4."—  Präsentation transkript:

1 Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 29.4.

2 Approximationsalgorithmen Viele wichtige Optimierungsprobleme sind NP-schwer TSP, Clique, Vertex Cover.... Statt exakter Optimierung nur approximative Lösung Optimierungsproblem: Eingabeinstanz (z.B. Graph) Lösungen (z.B. Cliquen) Kostenfunktion c (z.B. Grösse der Clique) Berechne eine Lösung mit maximaler/minimaler Kostenfunktion

3 Approximationsalgorithmen Konzentrieren auf Maximierungsprobleme auf Graphen Qualität einer Lösung P auf einem Graphen G mit optimaler Lösung O sei c(P)/c(O) Definition 6.1.: Ein Algorithmus ist ein -Approximationsalgorithmus, wenn er für ein Graphmaximierungsproblem zu jedem Eingabegraphen G eine Lösung mit Qualität mindestens findet. Interessant, wenn Algorithmus effizient, aber exakte Optimierung schwer

4 Beispiel Clique problem Eingaben: Graphen Lösungen: Cliquen Optimum: Grösse der grössten Clique NP-schwer Approximation mit Faktor 1/n 1- is immer noch schwer [Hastad97] Letzte Vorlesung: Finden grosse approximative Cliquen in linearer Zeit in der Anzahl der Knoten

5 Max Cut Max Cut Problem: Eingabe: Graph Lösung: Partition der Knoten in zwei Mengen Kostenfunktion: Anzahl der kreuzenden Kanten NP-schwer Sei für eine Partition (V 1, V 2 ) der Knoten e(V 1, V 2 ) die Anzahl der Kanten mit einem Endpunkt in V 1, einem in V 2 (V 1,V 2 )=e(V 1,V 2 )/n 2 Maximiere: (G)=max (V 1,V 2 )

6 Max Cut Sei für eine Partition (V 1, V 2 ) der Knoten e(V 1, V 2 ) die Anzahl der Kanten mit einem Endpunkt in V 1, einem in V 2 (V 1,V 2 )=e(V 1,V 2 )/n 2 Maximiere: (G)=max (V 1,V 2 ) Insbesondere ist immer (G) < 0.5

7 Max Cut Lange bekannt: Polynomieller Approximationsalgorithmus mit Qualität 1/2. [Goemans Williamson 94]: Polynomieller Algorithmus mit Qualität 0.878 Darstellung als semidefinites Programm, Lösung, Randomisiertes Runden der reellwertigen Lösung PCP-Theorie: Kein polynomieller Algorithmus ist besser als 0.944 Wahrscheinlich 0.878 optimal

8 Berliebig nahe Approximation? Auf dichten Graphen: Wenn es (n 2 ) Kanten gibt, ist eine 1- -Approximation in polynomieller Zeit möglich [AKK96, dlV96] Ein PTAS [polynomial time approximation scheme] ist eine Familie von Algorithmen, abhängig von, die für jedes konstante eine 1- Approximation in polynomieller Zeit erlauben

9 Max Cut Max Cut hat allgemein kein PTAS Auf dichten Graphen aber doch

10 Property Tester Eigenschaft p-Cut: G hat (G)>p p-Cut: Akzeptiere, wenn (G)>p, verwerfe, wenn G -weit entfernt, d.h., wenn n 2 Kanten hinzugegeben werden müssen, um (G)>p zu erreichen Offensichtlich sind das Kanten über den Cut! Also weit weg: (G)<p-

11 Property Testing vs. Approximation Normalerweise: Begriff -weit ergibt ganz neues Problem (vergl. Clique) Hier: Tester entscheidet mit Gap Übung: Tester (Entscheidung mit Gap für alle p) erlaubt auch Approximation des optimalen Wertes der Kostenfunktion Kann man p-Cut testen?

12 Property Testing für Max Cut Theorem 6.2: Es gibt einen Property Tester für p-Cut, für p<1/2- (1), der mit poly(1/ ) Fragen und Zeit exp(1/ ) auskommt. In Zeit exp(1/ )+O(n/poly(1/ )) kann ein Cut gefunden werden, der nur n 2 Kanten weniger als der maximale Cut hat Auf Graphen mit (n 2 ) Kanten hat Max Cut ein Approximationsschema (PTAS)

13 Plan Zeigen den zweiten Punkt (mit schlechterer Laufzeit), und folgern dann den Property Tester Dritter Punkt: wenn G mindestens cn 2 Kanten hat, hat der maximale cut mindestens cn 2 /2 Kanten, und wenn wir einen Cut mit (G)n 2 - n 2 Kanten finden, ergibt ein Algorithmus mit = c/2 fehlenden Kanten eine Approximation mit Qualität

14 Ein Greedy Algorithmus Starte mit einem Cut Wenn es einen Knoten gibt, der mehr Nachbarn auf seiner Seite als auf der anderen hat, verschiebe ihn Etc. Sei (v,S) der Grad von Knoten v in Knotenmenge S, d.h. die Anzahl der Nachbarn von v in S Partition V 1, V 2 Wechsel für v in V 1 also wenn (v,V 1 )> (v,V 2 )

15 Schnelle Approximation für Max Cut Problem: Greedy Algorithmus liefert keine sehr gute Approximation Weiterhin: Wollen nicht Grade exakt berechnen, da im Tester nicht möglich Approximiere Grad durch Sampling

16 Schnelle Approximation für Max Cut Orakel-Algorithmus: Gegeben sei ein Orakel, dass für einen Knoten anzeigt, wieviele Nachbarn er auf einem maximalen cut in der Menge V 1 und wieviele in V 2 hat. Plaziere den Knoten entsprechend Klar: Es ergibt sich ein maximaler Cut Problem 1: Haben so ein Orakel nicht Lösungsansatz: Ziehen Samplemenge S, nehmen an wir haben optimalen Cut auf S hoffen auf gute Approximation der Grade, teilen v danach auf Tatsächlich: durchlaufe alle cuts aus S

17 Schnelle Approximation für Max Cut: Erster Ansatz Also: Ziehe kleine Samplemenge S aus V Betrachte alle Partitionen S 1, S 2 Erzeuge jeweils Partition V 1, V 2, wobei v in V 1, gdw. (v,S 2 )> (v,S 1 ) Wähle besten Cut Hoffnung: für richtige Partition S 1, S 2 werden Grade in S repräsentativ sein

18 Schnelle Approximation für Max Cut Problem mit dem Ansatz: Kanten ausserhalb von S unberücksichtigt Beispiel: Gebe es eine grosse Clique mit p 2 n 2 Kanten Max Cut zerschneide Clique S wird m.h.Ws. Clique sampeln, d.h. ca. pS Knoten aus der Clique haben. Max Cut in S zerschneidet die Teilclique in zwei gleiche Teile Wenig Information, auf welche Seite restliche Knoten der Clique sollen, Grad in beiden Hälften gleich!

19 Schnelle Approximation für Max Cut Problem des Ansatzes ist, dass eine Menge S für zu viele (nämlich alle) Knoten verwendet wird! Eigentliche Umsetzung der sampling Idee wäre es für jedes v eine eigene Menge S zu nehmen! Kompromiss: Verwende 4/ Mengen von n/4 Knoten Für jede Menge verwende eine Samplemenge S, durchlaufe alle Partitionen von S und bestimme Grade von den Knoten bezüglich S Immer noch konstant viele Iterationen

20 Schnelle Approximation für Max Cut Vergesse Approximation der Grade im Moment Was passiert, wenn viele Knoten gleichzeitig die Seite wechseln?

21 Schnelle Approximation für Max Cut Im maximalen Cut gilt, dass für jeden einzelnen Knoten ein Wechsel der Seite keine Verschlechterung/Verbesserung des Cuts ergibt Betrachte Knotenmenge der Grösse n/4, und wechsele jeden Knoten anhand seines Grades im Restgraphen: H 1,H 2 sei der maximale Cut X sei Menge von n/4 Knoten, W sei V-X Partition W 1,W 2 auf W Für alle v in X tue v nach W 1, wenn Grad in W 1 kleiner als in W 2 Dabei kann der Cut verkleinert werden! Aber nur um |X| 2, wenn Kanten nach W optimal gewählt Also Verschlechterung nur 2 n 2 /16, nicht ( n 2 ) 1/ solche Schritte vertretbar, Verlust ( n 2 ) gesamt

22 Schnelle Approximation für Max Cut Neuer Orakel-Algorithmus: Knoten seien in l=4/ Teilmengen der Grösse n/4 partitioniert, beliebig, Mengen V 1, V l Fixiere einen Max Cut H 1, H 2 Für jede Menge V i durchlaufe alle Knoten in V i, Orakel gibt an Grad in W i 1, W i 2, dem von H 1, H 2 induzierten Cut in V-V i, partitioniere so V I Ergebnis: höchstens (1/ )¢ 2 n 2 /16= n 2 /16 Kanten weniger im Cut als in H 1, H 2

23 Schnelle Approximation für Max Cut Weiteres Vorgehen: Ersetze jetzt Orakel durch Sample ansatz, wähle Mengen U 1,…,U l Benutze U i für V i, U i µ V-V i Durchlaufe alle Partitionen von U i, partitioniere Knoten in V i entsprechend nach Grad

24 Schnelle Approximation für Max Cut Also angenommen U i erlaubt gute Approximation Max Cut sei H 1, H 2, induziert cut W 1,W 2 auf V –V i U i sei in U i 1,U i 2 partitioniert V 2 V i wird nach Grad aufgeteilt Verlust |V i | 2 wie im Orakel Algorithmus Zusätzlich: Balancierte Knoten, bei denen der Grad in W 1, W 2 fast gleich (bis auf n/8) werden schlecht approximierten Grad haben, bei beliebiger Aufteilung ergibt sich ein Verlust von (4/ )( n/4)( n/8)= n 2 /8 Kanten, also OK Müssen zeigen, dass Us so gewählt werden können, dass bei Gradunterschied > n/8 richtig approximiert wird

25 Der Algorithmus Verwende beliebige feste Partition von V in l=4/ gleich grosse Mengen V 1,…,V l Ziehe U 1,…, U l, wobei U i uniform aus V-V i ist, mit Grösse O(1/ 2 ¢ log(1/ )) Durchlaufe alle Tupel U 1 1,U 1 2,…,U l 1,U l 2 von Partitionen der U i Partitioniere V i, indem jeder Knoten v nach V 1 i geht, wenn (v,S i 1 )< (v,S i 2 ) Bestimme die Partition mit dem besten Cut

26 Analyse Laufzeit ist 2 poly(1/ ) mal O(n 2 ) Korrektheit: Lemma 6.3.: Sei H 1,H 2 eine beliebige Partition von V Dann existiert mit Wahrscheinlichkeit 5/6 über Wahl der U i eine Partition U 1 1,U 1 2,…,U l 1,U l 2, auf der der Algorithmus eine Partition V 1,V 2 berechnet, die (V 1,V 2 )¸ (H 1,H 2 )- ¾ erfüllt


Herunterladen ppt "Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 29.4."

Ähnliche Präsentationen


Google-Anzeigen