Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Ausgewählte Randomisierte Algorithmen Hilfreiche Literatur: • Motwani, Raghavan: Randomized Algorithms, Cambridge University Press, 1995. • Mitzenmacher, Upfal: Probability and Computing, Cambridge University Press, 2005. • Hromkovic: Design and Analysis of Randomized Algorithms: Introduction to Design Paradigms, Springer 2005. • Kleinberg, Tardos: Algorithm Design, Addison Wesley, 2005. 1 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Lineare Programme in linearer Zeit In der algorithmischen Geometrie untersucht man Probleme im Rd , wobei d typischerweise als relativ kleine Konstante angesehen wird, z.B. d=2, 3 oder 4. Wir betrachten das folgende Problem: Es soll der Extrempunkt eines Polyhedrons bezüglich einer vorgegebenen Richtung (bzw. Zielfunktion) bestimmt werden. Dieses Problem entspricht einem LP mit d Variablen und, sagen wir, m Nebenbedingungen (NB). Natürlich kann man dieses Problem mit der Simplex- oder Ellipsoidmethode erschlagen, aber wenn die Anzahl der Dimensionen klein ist, so gibt es auch andere, effizientere Methoden. m Beispielsweise kann man alle d ≤ md Basislösungen (= Schnittpunkte von jeweils d linear unabh¨ angigen NBHyperebenen) aufz¨ ahlen und dann diejenige Basislösung ausgeben, die die Zielfunktion maximiert. Dieser Ansatz liefert eine Laufzeitschranke der Größenordnung ungef¨ ahr md . Wir pr¨ asentieren jetzt einen sehr eleganten randomisierten Algorithmus von Seidel (1991), dessen erwartete Laufzeit linear in m beschr¨ ankt ist. 2 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Problembeschreibung: Gebeben sei ein zul¨ assiges LP mit d Variablen x1 , . . . , xd und insgesamt m NB der Form ≤“ oder ≥“. Zu jeder NP ” ” können wir eine Hyperebene assoziieren, die die Begrenzung des entsprechenden Halbraums festlegt. In etwas nachl¨ assiger Schreibweise unterscheiden wir im Folgenden nicht immer zwischen den NB und ihren Hyperebenen und verwenden diese Begriffe synonym. Sei H die Menge der NB bzw. Hyperebenen. Wir nehmen an, dass wir eine genügend große Zahl t kennen, so dass die Absolutwerte aller Variablen in jeder Basislösung echt kleiner als t sind. Sollte das LP unbeschr¨ ankt sein, so soll unser Algorithmus eine Lösung ausgeben, die die Zielfunktion unter den zus¨ atzlichen Bedingungen −t ≤ xi ≤ t, 1 ≤ i ≤ d, maximiert. Auf diese Art und Weise kann man ein unbeschr¨ anktes LP daran erkennen, dass mindestens eine Variable in der ausgegebenen Lösung den Wert t annimmt. 3 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Der Algorithmus von Seidel (1991) Der Algorithmus berechnet die optimale Lösung des LPs rekursiv durch Entfernen der Nebenbedingungen in einer zuf¨ alligen Reihenfolge. Für jede Teilmenge H 0 ⊆ H, sei LP (H 0 ) das LP, das wir erhalten, wenn wir alle Nebenbedingungen aus H \ H 0 aus dem gegebenen LP streichen. Mit opt(H 0 ) bezeichnen wir eine optimale Basislösung für LP (H 0 ). Algorithmus SeideLP 1 2 3 4 falls d = 0 oder m = 0, so gib opt(H) aus; sonst w¨ ahle uniform zuf¨ allig eine Bedingung h ∈ H, und berechne opt(H \ {h}) rekursiv; falls opt(H \ {h}) die Bedingung h nicht verletzt, so gib opt(H \ {h}) aus; sonst löse das LP, das durch den Schnitt des Lösungsraums mit der Hyperebene h entsteht, rekursiv. Am Rekursionsende d = 0 entspricht die optimale Lösung dem leeren Wort . Am Rekursionsende m = 0 sind alle NB entfernt worden. In der optimalen Basislösung haben dann alle Variablen entweder den Wert t oder −t, je nachdem, ob sie mit positivem oder negativem Vorzeichen in der Zielfunktion vorkommen. 4 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Warum findet der Algorithmus die optimale Lösung? – Entweder ist die zuf¨ allig ausgew¨ ahlte NB h ∈ H eine derjenigen NB, die sich an der optimalen Lösung schneiden, oder das Entfernen von h hat keinen Einfluss auf die optimale Lösung des LPs. Falls h nicht relevant für die optimale Lösung ist, so gibt der Algorithmus die optimale Lösung opt(H \ {h}) in Schritt 3 aus. Falls h jedoch zu denjenigen NB gehört, die sich an opt(H) schneiden, so wissen wir, dass sich opt(H) auf der zu dieser NB gehörenden Hyperebene befindet. In diesem Fall berechnet der Algorithmus in Schritt 4 den Schnitt des Lösungsraums mit der Hyperbene h und bestimmt die optimale Lösung rekursiv. Die Berechnung des Schnitts erfolgt in dem wir die NB h als Gleichung auffassen. Diese Gleichung wird zu einer der Variablen des LPs aufgelöst. Diese Variable wird dann in den anderen Bedingungen und der Zielfunktion substituiert. Für jede der m − 1 Bedingungen benötigt das Zeit O(d), also insgesamt Zeit O(dm). Durch diese Substitution wird eine Variable eliminiert und dadurch die Dimension des LPs um eins verringert. 5 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Laufzeitanalyse: Sei T (m, d) eine obere Schranke für die erwartete Laufzeit von Algorithmus SeideLP. Die erwartete Laufzeit für die einzelnen Schritte kann wie folgt nach oben abgesch¨ atzt werden: • Schritt 1: O(d + 1) • Schritt 2: T (m−1, d) • Schritt 3: O(d) • Schritt 4: T (m−1, d−1) + O(dm). Schritt 4 wird jedoch nicht immer ausgeführt. 6 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Lemma 1 Die Wkeit, dass Schritt 4 ausgeführt wird, ist d höchstens m . Beweis: Die optimale Lösung opt(H) befindet sich auf dem Schnitt von mindestens d Hyperebenen, die entweder zu H oder den zus¨ atzlichen Bedingungen −t ≤ xi ≤ t gehören. Unter diesen Bedingungen gibt es höchstens d, deren Entfernung die optimale Lösung ver¨ andern würde. Alle anderen Bedingungen haben keinen Einfluss auf die optimale Lösung. Schritt 4 wird ausgeführt, wenn opt(H \{h}) die Bedingung h verletzt, also wenn opt(H) 6= opt(H \ {h}) . Die Wkeit, dass h eine der höchstens d Hyperebenen aus H ist, deren Entfernen die optimale Lösung ver¨ andern, ist somit d . t u höchstens m 7 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Insgesamt ist die erwartete Laufzeit T (m, d) somit d T (m−1, d) + O(d + 1) + (T (m−1, d−1) + O(dm)) . m Unter Vernachl¨ assigung konstanter Faktoren, erhalten wir somit die folgende Rekursionsgleichung: d T (m, d) ≤ T (m−1, d) + · T (m−1, d−1) + d2 , m falls m > 0 und d > 0; T (m, d) = d + 1, sonst. 8 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Wir lösen nun die Rekursionsgleichung. Definiere dazu f (d) = d f (d − 1) + d2 + 1 , für d ≥ 1; und f (0) = 1. Lemma 2 T (m, d) ≤ (m + 1) · f (d) . Beweis: Wir beweisen das Lemma per Induktion. Induktionsanfang: Für m = 0 gilt T (m, d) = d + 1 ≤ f (d) = (m + 1) · f (d). Für d = 0 gilt T (m, d) = 1 = f (d) ≤ (m + 1) · f (d). Induktionsschritt: Es gelte m > 0 und d > 0. Die Aussage des Lemmas gelte für T (m0 , d0 ) mit m0 < m und d0 ≤ d. Es folgt T (m, d) ≤ T (m−1, d) + ≤ m · f (d) + d m d m · T (m−1, d−1) + d2 + 1 · m · f (d−1) + d2 + 1 = m · f (d) + d · f (d)−d2 −1 d + d2 + 1 = (m + 1) · f (d) . t u 9 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Eine Übungsaufgabe liefert nun f (d) = O(d!). Somit erhalten wir den folgenden Satz. Satz 3 Algorithmus SeideLP löst ein zul¨ assiges d-dimensionales LP mit m ≥ 1 Nebenbedingungen in erwarteter Zeit O(md!). Damit können wir LPs mit kleiner Dimension sehr effizient lösen. Wenn wir die Anzahl der Dimensionen als konstant auffassen, so hat der Algorithmus eine lineare Laufzeit. Für LPs zweistelliger Dimension ist dieses Verfahren aber wohl nicht mehr zu empfehlen. 10 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Min-Cut in Fast Quadratischer Zeit Gegeben sei ein Multigraph G = (V, E), d.h. ein Graph in dem es mehrere Kanten zwischen zwei Knoten geben darf. Sei n = |V |. Im Speicher repr¨ asentieren wir den Multigraphen durch eine Adjazenzmatrix mit Eintr¨ agen aus N0 , die angeben wieviele Kanten zwischen den jeweiligen Knotenpaaren verlaufen. Der Multigraph sei zusammenh¨ angend. Ein Schnitt bzw. Cut in G ist als eine Zerlegung der Knotenmenge V in zwei nicht-leere Teilmengen U und V \ U definiert. Im Folgenden identifizieren wir den Schnitt mit der Kantenmenge C = {{u, v} ∈ E | u ∈ U, v ∈ V \ U }, also mit der Menge der Kanten zwischen diesen beiden Teilmengen. Die Größe des Schnitts C entspricht der Kardinalit¨ at dieser Kantenmenge. Ein Min-Cut ist ein Schnitt kleinstmöglicher Größe. Wir können einen Min-Cut durch Lösen von n − 1 Max-FlowProblemen berechnen (Übung). Wir werden zun¨ achst einen randomisierten Algorithmus von Karger (1993) beschreiben, der einen Min-Cut in Zeit O(n4 ) berechnet, also zun¨ achst eigentlich nicht besser als der Max-Flow-Ansatz ist. 11 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Die Kontraktion von Kanten: Bei der Kontraktion einer Kante {u, v} werden • die beiden Knoten u und v zu einem neuen Knoten w zusammengezogen, • u und v sowie alle Kanten zwischen u und v aus dem Graphen entfernt, und • jede Kante der Form {u, x} bzw. {v, x} durch eine Kante der Form {w, x} ersetzt. Eine Kontraktion kann in Zeit O(n) durchgeführt werden. 12 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Algorithmus Contract(G) 1 2 3 4 5 H := G; solange H mehr als zwei Knoten hat w¨ ahle uniform zuf¨ allig eine der Kanten von H; kontrahiere diese Kante; sei C die Menge der überlebenden Kanten, gebe C aus. Die Idee des Algorithmus ist einfach. Wir kontrahieren solange bis nur noch zwei Knoten übrigbleiben. Die Kanten zwischen diesen zwei Knoten von H verbinden zwei Teilmengen der Knoten von G und sind somit ein Schnitt in G. In anderen Worten, genau ein Schnitt überlebt die Kontraktionssequenz. Dieser Schnitt wird ausgegeben. Ein Min-Cut hat dabei größere Chancen zu überleben als andere Schnitte, weil er nur wenige Kanten enth¨ alt. Die Laufzeit des Algorithmus ist O(n2 ). Wir werden zeigen, dass dieser Schnitt mit Wkeit größer als 2/n2 ein Min-Cut ist. Um konstante Erfolgswkeit zu erhalten, werden wir den Algorithmus Θ(n2 ) mal wiederholen. Das ergibt dann eine Laufzeit von O(n4 ). 13 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Exkursion: Unabhängkeit von Zufallsereignissen: Für ein Zufallsereignis E sei Pr [E] die Wkeit von E. ( Pr“ steht für Probability“.) ” ” Zwei Ereignisse E1 und E2 heißen unabh¨ angig, falls gilt Pr [E1 ∩ E2 ] = Pr [E1 ] · Pr [E2 ]. Für möglicherweise abh¨ angige Ereignisse E1 und E2 gilt die Formel Pr [E1 ∩ E2 ] = Pr [E1 ] · Pr [E2 |E1 ], wobei Pr [E2 |E1 ] die bedingte Wkeit von E2 unter E1 ist. Eine Kollektion von Ereignissen {Ei : i ∈ I} heißt unabh¨ angig, falls für alle Teilmengen S ⊆ I gilt " # \ Y Pr Ei = Pr [Ei ] . i∈S i∈S Im allgemeinen Fall, also wenn E1 , E2 , . . . , Ek möglicherweise abh¨ angig sind, gilt " k # k Y \ \ i−1 Pr Ei Ei = Ej . Pr j=1 i=1 i=1 14 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Satz 4 Pr [C ist ein Min-Cut von G] > 2n−2 . Beweis: • Sei ei die i-te Kante, die kontrahiert wird (1 ≤ i ≤ n−2). • Sei H0 = G und Hi der Graph H nach der i-ten Kontraktion. • Sei K ein beliebiger Min-Cut von G. Pr [C ist ein Min-Cut von G] ≥ Pr [C = K] \ = Pr ei 6∈ K 1≤i≤n−2 Y \ = Pr ei 6∈ K ei ∈ 6 K . 1≤j<i 1≤i≤n−2 15 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Lemma 5 Für 1 ≤ i ≤ n − 2 gilt, \ 2 ej 6∈ K ≥ 1 − Pr ei 6∈ K . n−i+1 1≤j<i Beweis: Sei k = |K|. Jeder Schnitt in Hj (0 ≤ j ≤ n − 2) ist auch ein Schnitt in G. Deshalb ist der Min-Cut-Wert in Hj mindestens so groß wie der Min-Cut-Wert in G, also mindestens k. Sei nj die Anzahl der Knoten in Hj und mj die Anzahl der k Kanten. Die Wkeit für das Ereignis ei ∈ K ist mi−1 , weil alle mi−1 Kanten in Hi−1 gleichwahrscheinlich sind. Der Wert von mi−1 h¨ angt irgendwie von dem Ereignis T 1≤j<i ej 6∈ K ab. Aber es gilt immer mi−1 ≥ kni−1 /2, denn ansonsten g¨ abe es einen Knoten mit Grad kleiner als k und der Min-Cut-Wert von Hi−1 w¨ are, entgegen unserer obigen Feststellung, kleiner als k. Außerdem gilt ni−1 = n−i+1. Wir fassen zusammen: \ 2 2 k ≤ = . Pr ei ∈ K ej 6∈ K = m n n − i + 1 i−1 i−1 1≤j<i t u 16 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Fortsetzung des Beweises von Satz 4: Wir setzen das Lemma ein und erhalten Pr [C ist ein Min-Cut von G] Y 2 ≥ 1− n−i+1 1≤i≤n−2 n−i−1 = n−i+1 1≤i≤n−2 n−2 n−3 n−4 3 2 1 = ··· n n−1 n−2 5 4 3 2 2 = > 2 , n(n − 1) n Y wobei sich die letzte Gleichung nach einigen einfachen Kürzungen ergibt. t u 17 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Wkeitsamplifikation: • Um eine bessere Erfolgswkeit zu erhalten, wenden wir den Contract-Algorithmus wiederholt an, und geben dann den kleinsten Schnitt aus, den wir gefunden haben. • Bei (n2 · t)-facher Wiederholung des Algorithmus ist die Wkeit den Min-Cut in allen Wiederholungen zu verpassen höchstens 1− 2 n2 n2 ·t 2t 1 ≤ , e wobei e = 2.718 . . . die Eulersche Konstante ist. Die letzte Ungleichung folgt weil (1 − x1 )x ≤ 1e für jedes x ≥ 1. • Das bedeutet, auf Kosten der Laufzeit können wir die Fehlerwkeit beliebig klein machen. Um eine konstante Erfolgswkeit zu erhalten, reichen n2 Wiederholungen. Das ergibt eine Gesamtlaufzeit von O(n4 ). • Hat man einmal konstante Erfolgswkeit erreicht, kann man die Fehlerwkeit sehr effizient reduzieren. Bemerkenswert ist, dass die Fehlerwkeit exponentiell in t sinkt. Schon bei t = 7 ist die Fehlerwkeit nur e−2t = e−14 und damit kleiner als 1 zu 1 Million. 18 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Der folgende Algorithmus von Karger und Stein (1993) berechnet in Zeit O(n2 log n) einen Schnitt, der mit Wkeit Ω( log1 n ) ein Min-Cut ist. Algorithmus Fastcut(G) 1. falls n ≤ 6 dann berechne einen Min-Cut durch vollst¨ andiges Aufz¨ ahlen und gebe ihn aus; 2. erzeuge zwei unabh¨ angige Kontraktionssequenzen √ der L¨ ange n − t, wobei t := d1 + n/ 2e; 3. die dabei entstehenden Graphen mit jeweils t Knoten nennen wir HA und HB ; a) CA := fastcut(HA ); b) CB := fastcut(HB ); 4. gib den kleineren der beiden Schnitte CA und CB aus. 19 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Satz 6 Algorithmus Fastcut hat Laufzeit O(n2 log n). Beweis: Die Laufzeit ist durch die folgende Rekursionsgleichung nach oben beschr¨ ankt: n T (n) = 2T 1+ √ + O(n2 ) , 2 falls n > 6, und T (n) = O(1), falls n ≤ 6. Wir lösen diese Rekursionsgleichung zun¨ achst recht grob und verfeinern dann die einzelnen Argumente. 20 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 ... grobe Laufzeitabschätzung ... Zun¨ achst nehmen wir vereinfachend an √ T (n) = 2T (n/ 2) + O(n2 ) . Dann erhalten wir die folgende grobe Laufzeitabsch¨ atzung: • Die Tiefe der Rekursion ist D = O(log n), weil die Problemgröße jeweils um einen konstanten Faktor abnimmt. • Auf Rekursionslevel ` (0 ≤ ` ≤ D) sind 2` Teilprobleme √ ` der Größe n` ≈ n/( 2) zu lösen. • Die Laufzeitkosten, die wir einem derartigem Problem zurechnen müssen sind O(n2` ) = O(n2 /2` ). • Damit sind die Laufzeitkosten, die wir einem Level zurechnen müssen gleich 2` O(n2 /2` ) = O(n2 ). Aufsummiert über alle Rekursionslevel erg¨ abe diese grobe Rechnung eine Laufzeit von (D + 1) · O(n2 ) = O(n2 log n). Für einen formalen Beweis müssen wir jedoch berücksichtigen, dass sich die Teilprobleme nicht genau um den Faktor √ 2 verkleinern, sondern etwas größer sind. 21 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Details der Laufzeitanalyse Wir beschreiben ein Kochrezept“ zum Erstellen eines detai” lierten, formalen Beweises. 1. Sei n` die Größe der Teilprobleme auf Rekursionslevel ` ≥ 0, also die Anzahl der Knoten in den auf diesem Level vorliegenden Graphen. Zeige per Induktion n` ≤ n2−`/2 + 2 `−1 X 2−i/2 . i=0 2. Zeige, es folgt n` ≤ n2−`/2 + 6.83. 3. Das Rekursionsende ist erreicht, wenn n` < 7. Löse deshalb die Ungleichung n2−`/2 + 6.83 ≥ 7 nach ` auf. Zeige, es gilt ` ≤ 2 log2 n + 5.12. Also ist die Rekursionstiefe D = 2 log2 n + O(1). 4. Die dem Rekursionslevel ` zugerechneten Laufzeitkosten sind durch 2` · O(n2` ) beschr¨ ankt. Zeige, dass dieser Term durch O(n2 ) beschr¨ ankt ist. Fazit: Die Rekursionstiefe ist O(log n). Die Laufzeitkosten je Rekursionslevel sind O(n2 ). Damit ist die Gesamtlaufzeit durch O(n2 log n) beschr¨ ankt. t u 22 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Satz 7 Algorithmus Fastcut berechnet einen Min-Cut mit Wkeit Ω(1/ log n). Natürlich können wir die Erfolgswkeit durch Amplifikation auf Kosten der Laufzeit beliebig weiterverbessern. Um eine konstante Erfolgswkeit zu erreichen benötigen wir O(log n) Wiederholungen. Das ergibt eine Laufzeit von O(n2 log2 n). 23 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Beweis von Satz 7: Fixiere einen Min-Cut K. Aus Lemma 5 erhalten wir die folgende untere Schranke für die Wkeit, dass der Schnitt K eine Kontraktionssequenz der L¨ ange n − t überlebt. Y 2 1− n−i+1 1≤i≤n−t = = = = ≥ n−i−1 n−i+1 1≤i≤n−t n−2 n−3 t t−1 ··· n n−1 t+2 t+1 t(t − 1) n(n − 1) √ √ d1 + n/ 2e dn/ 2e n n−1 1 . 2 Y Mit Wkeit mindestens 12 hat der Graph HA also den gleichen Min-Cut-Wert wie G. Das gleiche Ergebnis gilt für den Graphen HB . 24 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Wir bezeichnen Algorithmus f astcut(G) als erfolgreich, wenn er einen Min-Cut berechnet. Sei k der Min-Cut-Wert von G. Die folgenden Bedingungen sind hinreichend für den Erfolg von f astcut(G). A) HA hat Min-Cut-Wert k und f astcut(HA ) ist erfolgreich, oder B) HB hat Min-Cut-Wert k und f astcut(HB ) ist erfolgreich. Für einen Graphen H, sei P (H) die Wkeit, dass f astcut(H) erfolgreich ist. Dann ist die Wkeit, dass Bedingung A eintritt, mindestens 12 P (HA ), weil HA mit Wkeit mindestens 12 den Min-Cut-Wert k hat. Die Wkeit, dass Bedingung A nicht eintritt, ist damit höchstens 1 − 21 P (HA ). Bedingung B verh¨ alt sich analog. Nur wenn beide Bedingungen nicht eintreten, ist f astcut(G) möglicherweise nicht erfolgreich. Wir erhalten die folgende untere Schranke: P (HA ) P (HB ) P (G) ≥ 1 − 1 − 1− . 2 2 25 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Die Tiefe des Rekursionsbaumes von f astcut(G) ist D = O(log n). Die Rekursionsb¨ aume von f astcut(HA ) bzw. f astcut(HB ) haben Tiefe D − 1. Dadurch erhalten wir eine Rekursionsgleichung p(·) für die Erfolgswahrscheinlichkeit von f astcut, die von der Tiefe des jeweiligen Rekursionsbaumes abh¨ angt. 2 p(d − 1) , p(d) ≥ 1 − 1 − 2 falls d ≥ 1 und p(0) = 1. Behauptung: Für d ≥ 0 gilt p(d) ≥ 1 d+1 . Aus dieser Behauptung folgt 1 P (G) = p(D) ≥ = Ω D+1 1 log N . Damit folgt Satz 7 unmittelbar aus dieser Behauptung. 26 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Die Behauptung gilt offensichtlich für d = 0, weil in diesem Fall die vollst¨ andige Suche immer (d.h. mit Wkeit 1) den Min-Cut berechnet. Für d ≥ 1 verwenden wir eine Induktion. 2 p(d − 1) p(d) ≥ 1 − 1 − 2 2 1 ≥ 1− 1− 2d 1 1 = − d 4d2 4d − 1 = 2 4d (4d − 1)(d + 1) 1 = 4d2 d+1 2 4d + 4d − d − 1 1 = 4d2 d+1 1 ≥ . d+1 t u Damit ist Satz 7 bewiesen. 27 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Monte Carlo vs. Las Vegas Wir unterscheiden zwei Arten von randomisierten Algorithmen. • Las-Vegas-Algorithmen berechnen immer die korrekte Antwort bzw. eine optimale Lösung, nur die Laufzeit h¨ angt vom Ausgang der Zufallsexperimente ab. Algorithmus SeideLP ist ein Beispiel für einen Las Vegas Algorithmus, weil er immer eine optimale Lösung berechnet. Die Laufzeit des Algorithmus ist jedoch eine Zufallsvariable. • Monte-Carlo-Algorithmen sind durch eine positive, aber beschr¨ ankte Fehlerwahrscheinlichkeit gekennzeichnet. Typischerweise h¨ angt die Laufzeit nicht von den Zufallsexperimenten ab, sondern ist deterministisch. Die pr¨ asentierten Min-Cut-Algorithmen sind gute Beispiele für randomisierte Algorithmen vom Typ Monte-Carlo. Wir untersuchen, unter welchen Bedingungen Las-Vegasin Monte-Carlo-Algorithmen überführt werden können und umgekehrt. 28 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Exkursion: Markov-Ungleichung Lemma 8 Sei X eine Zufallsvariable mit nicht-negativem Wertebereich. Für alle t ∈ R+ gilt E [X] Pr [X ≥ t] ≤ t oder, in etwas anderer Schreibweise, Pr [X ≥ t E [X]] ≤ 1 . t Beweis: Der Einfachheit halber nehmen wir an der Wertebereich von X ist N0 . Dann gilt X E [X] = i Pr [X = i] i≥0 ≥ X t Pr [X = i] i≥t = t Pr [X ≥ t] . t u 29 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Satz 9 Gegeben sei ein Las-Vegas-Algorithmus A mit einer erwarteten Laufzeit von maximal f (n) Rechenschritten für Eingaben der L¨ ange n. Sei α > 1. Falls wir die Rechnung von A bei Eingaben der L¨ ange n nach αf (n) Schritten abbrechen, so erhalten wir einen Monte-Carlo-Algorithmus B mit Fehlerwahrscheinlichkeit höchstens α1 . Beweis: Sei x eine Eingabe der L¨ ange n. Sei T die Zufallsvariable, welche die Laufzeit von A auf x beschreibt. Es gilt E [T ] ≤ f (n). Algorithmus B macht nur dann einen Fehler, wenn wir Algorithmus A vorzeitig abbrechen. Aus der MarkovUngleichung folgt somit, dass die Fehlerwahrscheinlichkeit von B nach oben beschr¨ ankt ist durch Pr [T ≥ αf (n)] ≤ Pr [T ≥ αE [T ]] ≤ 1 . α t u 30 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Satz 10 Gegeben sei ein Monte-Carlo-Algorithmus B mit Laufzeit maximal f (n) für Eingaben der L¨ ange n. Sei p(n) eine untere Schranke für die Wkeit, dass B eine korrekte Antwort ausgibt. Wir nehmen an, wir haben eine Testroutine, die die Korrektheit der Ausgabe in Zeit höchstens g(n) verifiziert. Dann können wir einen Las-Vegas-Algorithmus A mit erwarteter Laufzeit höchstens (f (n) + g(n))/p(n) konstruieren. Beweis: Algorithmus A ruft Algorithmus B solange auf, bis die Testroutine die Ausgabe von B als korrekt klassifiziert. Die Laufzeit pro Iteration ist höchstens f (n) + g(n). Die Wkeit, dass wir den Algorithmus k mal wiederholen müssen ist nicht größer als (1 − p(n))k−1 p(n). Die erwartete Anzahl von Wiederholungen ist somit höchstens ∞ X k=1 da ∞ X k=1 k(1 − p(n))k−1 p(n) = x . kx = (1 − x)2 k 1 , p(n) t u 31 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Las-Vegas-Algorithmen sind somit Monte-Carlo-Algorithmen überlegen, denn • ein effizienter Las-Vegas-Algorithmus kann ohne Weiteres in einen effizienten Monte-Carlo-Algorithmus überführt werden, • w¨ ahrend zur Transformation eines effizienten MonteCarlo-Algorithmus in einen effizienten Las-VegasAlgorithmus ein effizienter, deterministischer Verifizierer benötigt wird. Gibt es möglicherweise zu jedem Monte-Carlo-Algorithmus einen effizienten Verifizierer? - Die Frage können wir nicht beantworten. Die im Folgenden vorgestellte FingerprintingMethode ist jedoch ein Beispiel für ein Monte-Carlo-Verfahren, welches nicht auf sinnvolle Art und Weise durch Verwendung eines deterministischen Verifizierers in einen Las-VegasVerfahren transformiert werden kann. 32 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Randomisiertes Runden f ür ein Routing-Problem Gegeben seien • ein stark zusammenh¨ angender gerichteter Multigraph G = (V, E) sowie • k Knotenpaare (ui , vi ) ∈ V 2 , ui 6= vi mit einem Kommunikationsbedarf (Demand) di ∈ N. Berechne einen congestion-minimalen Routingplan, d.h. verbinde jedes Knotenpaar (ui , vi ) durch einen einfachen Weg Pi in G, so dass die Congestion (engl: Stau) minimal ist. Für einen gegebenen Routingplan mit Wegen P1 , . . . , Pk ist die Congestion wie folgt definiert. • Für eine Kante e ∈ E definieren wir X di . C(e) = i∈[k]:e∈Pi • Die Congestion des Routingplans ist definiert als C = max(C(e)) . e∈E Das Routingproblem ist NP-schwer. Das folgende sehr a¨hnliche Problem hat jedoch einen Polynomialzeitalgorithmus. 33 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Mehrgüterflussproblem (Multicommodity Flow): Gegeben seien • ein stark zusammenh¨ angender gerichteter Multigraph G = (V, E) sowie • k Güter (Commodities) mit jeweils einem (Quelle,Ziel)Knotenpaar (ui , vi ) ∈ V 2 und einem Demand di ∈ N. Statt jedes Knotenpaar durch einen Weg zu verbinden, suchen wir jetzt für jedes Paar (ui , vi ) einen Fluss fi von ui nach vi . Formal definieren wir dieses Problem als LP mit den Variablen C und fi,e für jedes i ∈ [k] und e ∈ E. minimiere C unter den Nebenbedingungen ∀i ∈ [k] : ∀e ∈ E : ∀i ∈ [k], e ∈ E : die Variablen fi,∗ beschreiben einen Fluss mit Wert 1 von ui nach vi X fi,e di ≤ C i∈[k] fi,e ∈ [0, 1] Die Variable C entspricht dabei der Congestion des Mehrgüter” flussproblems“, die minimiert werden soll. 34 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Die Größe des LPs ist polynomiell in der Eingabel¨ ange des Mehrgüterflussproblems. Damit hat dieses Problem einen Polynomialzeitalgorithmus. Ersetzen wir die Bedingung fi,e ∈ [0, 1] durch fi,e ∈ {0, 1} so entspricht jeder Fluss genau einem Weg Wir erhalten also ein ILP, das dem Routing-Problem entspricht. In anderen Worten: das Mehrgüterflussproblem ist eine realwertige Relaxierung des ganzzahligen Routing-Problems. Idee: Berechne in Polynomialzeit eine optimale realwertige Lösung für das Mehrgüterflussproblem und transformiere sie in eine gute ganzzahlige Lösung für das Routing-Problem. 35 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Schritt 1: Pfadzerlegung Die Ford-Fulkerson-Methode berechneten einen maximalen Fluss durch Aggregation von flussvergrößernden Wegen. Andersherum betrachtet, kann man einen Fluss in einzelne Pfade zerlegen. Tats¨ achlich kann jeder Fluss in nicht mehr als m Pfade zerlegt werden. (Warum?) Wir berechnen eine derartige Flusszerlegung für jede Commodity. • Für jedes i ∈ [k], zerlege den Fluss fi in bis zu m Wege. Um die Notation einfach zu halten, nehmen wir o.B.d.A. an, wir erhalten genau m Wege je Commodity. Die Wege für Commodity i werden mit Pi1 , . . . , Pim bezeichnet. • Sei xji der Wert des Flusses fi entlang von Weg Pij . Da gem¨ aß der LP-Formulierung der Fluss für jede Commodity den Wert 1 hat, gilt xji ∈ [0, 1] und P j x j∈[m] i = 1. 36 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Schritt 2: Randomisiertes Runden In diesem Schritt transformieren wir die realwertigen Variablen xji in {0, 1}-wertige Indikatorvariablen Xij , die anzeigen welchen Routingweg wir für das Quelle-/Zielpaar (ui , vi ) w¨ ahlen, d.h. 1 falls Knotenpaar (u , v ) den Weg P j nimmt, i i i Xij = 0 sonst. Idee von Raghavan & Thompson (1986): Interpretiere die Variablen xji als Wahrscheinlichkeiten. • Die Variablen x1i , . . . , xm i definieren eine Wahrscheinlichkeitsverteilung. • Gem¨ aß dieser Verteilung w¨ ahle zuf¨ allig einen Index j ∗ j∗ aus [m]. Setze Xi = 1, und Xij = 0 falls j 6= j ∗ . Dieser Vorgang wird als randomisiertes Runden bezeichnet. 37 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Berechnung der erwarteten Congestion: Betrachte eine beliebige Kante e. Sei I(e) = {(i, j) | i ∈ [k], j ∈ [m], e ∈ Pij } , also die Indexmenge derjenigen Wege, die über e verlaufen. Für jede Kante e ∈ E ist die Congestion C(e) eine Zufallsvariable. Es gilt X C(e) = Xij di (i,j)∈I(e) E [C(e)] ist die erwartete Congestion auf Kante e. Es gilt X E [C(e)] = xji di . (i,j)∈I(e) Beachte, die erwarte Congestion auf Kante e ist genau so groß wie die Congestion auf dieser Kante in der zugrundeliegenden Lösung des Mehrgüterflussproblems. Sei optf die optimale Congestion des Mehrgüterflussproblems. Für jede Kante e gilt somit E [C(e)] ≤ optf . 38 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Zwei Eigenschaften: Sei opt die Congestion, die ein optimaler (ganzzahliger) Routingplan liefern würde. Sei dmax = maxi∈[k] (di ). (A) Es gilt opt ≥ dmax , weil der maximale Demand mindestens eine Kante überschreiten muß. (B) Für jede Kante e ∈ E gilt opt ≥ E [C(e)], weil opt ≥ optf und optf ≥ E [C(e)]. 39 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Exkursion: Gewichtete Chernoff-Schranke Lemma 11 Seien X1 , . . . , Xn unabh¨ angige Zufallsvariablen mit Pr [Xi = 1] = pi und Pr [Xi = 0] = 1 − pi für jedes i. Seien w1 , . . . , wn ∈ [0, W ] für ein beliebiges W > 0. Pn Sei X eine Zufallsvariable mit X = i=1 Xi wi und sei Pn µ ≥ i=1 pi wi = E [X]. Dann gilt für jedes > 0, Pr [X ≥ (1 + ) · µ] ≤ e (1 + )1+ µ/W . Vereinfachte Variante: Für = 2 ergibt sich beispielsweise µ/W 4 Pr [X ≥ 3µ] ≤ . 9 In dieser Form werden wir die Chernoff-Schranke auf die Variable die Zuallsvariable C(e), e ∈ E, anwenden. 40 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Warum können wir die gewichtete Chernoff-Schranke auf die Zun¨ achst müssen wir uns überlegen, dass C(e) eine Summe von unabh¨ angigen 0/1-wertigen Zufallsvariablen ist. Es gilt P C(e) = (i,j)∈I(e) Xij di . Also ist C(e) eine Summe von gewichteten 0/1-wertigen Zufallsvariablen. Aber sind diese Variablen unabh¨ angig? – Nein, denn ist z.B. X11 = 1 so folgt X12 = 0, weil nur genau ein Weg für das Knotenpaar (u1 , v1 ) ausgew¨ ahlt wird. Also h¨ angt der Wert von X12 vom Wert von X11 ab. Mmmmh? 41 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Trotzdem ist C(e) eine Summe von unabh¨ angigen 0/1wertigen Zufallsvariablen. Diese Variablen sind allerdings etwas anders definiert, n¨ amlich folgendermaßen: • Für i ∈ [k] und e ∈ E definiere eine Zufallsvariable Xi (e), so dass Xi (e) = 1 falls der zuf¨ allig ausgew¨ ahlte Weg für das Knotenpaar (ui , vi ), also Pi , über e verl¨ auft, sonst setze Xi (e) = 0. • Die Zufallsvariablen X1 (e), . . . , Xk (e) sind unabh¨ angig, weil die zuf¨ allige Auswahl des Weges Pi unabh¨ angig vom Ausgang der Zufallsexperimente für die Wege Pj , j 6= i, durchgeführt wird. P Es gilt C(e) = i∈[k] Xi (e) di . Also können wir die Chernoff-Schranke auf C(e) anwenden. 42 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Anwendung der Chernoff-Schranke: Unsere Zufallsvariable ist X = C(e). Wir setzen W = dmax und (B) µ = opt + W · log m ≥ E [C(e)] . Die Chernoff-Schranke in vereinfachter Form liefert (opt+W ·log m)/W 4 Pr [C(e) ≥ 2opt + W · log m] ≤ 9 1+log m (A) 4 ≤ 9 4 1 ≤ · . 9 m 43 Berthold Vöcking, RWTH Aachen, 31. Dezember 2006 Die sogenannte Union Bound besagt Pr [E1 ∨ E2 ] ≤ Pr [E1 + E2 ] für beliebige Zufallsereignisse E1 und E2 . Durch Anwendung der Union Bound können wir jetzt die Congestion C des Routingplans beschr¨ anken: Pr [C ≥ 2opt + W · log m] ≤ Pr [∃e ∈ E : C(e) ≥ 2opt + W · log m] X ≤ Pr [C(e) ≥ 2opt + W · log m] e∈E ≤ X 4 1 4 · = . 9 m 9 e∈E Es folgt Satz 12 Mit konstanter Wkeit ist die Congestion des Routingplans durch O(opt + dmax · log m) beschr¨ ankt. t u 44