VORLESUNG 13 Smoothed Analysis des Simplex-Algorithmus Nach Heiko Röglin, Universität Bonn, Vorlesungsskript Introduction to Smoothed Analysis vom 9. Januar 2012 78 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Wiederholung Simplex-Algorithmus ! Korrektheit: ! ! ! ! Lokales Optimum ist globales Optimum Basiswechsel = Eckenlaufen = Multiplikation mit Eta-Matrix Wenn Pivotspalte <= 0: System unbeschränkt Bei nicht-degenerierter Ecke: Basiswechsel verbessert ZF-Wert ! Laufzeit: ! ! ! ! 79 Bisherige Version kann Endlosschleifen beinhalten Geeignete Pivotwahl kann dies verhindern Dann im schlimmsten Fall O(2m) Pivotschritte (konstruiert) In der Praxis: Polynomielles Verhalten H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Bewertung von Algorithmen 80 (Software-)Ingenieur Theoretiker ! Algorithmus muss effizient in der Praxis sein ! Algorithmus muss effizient im worst-case sein ! Instanzen der Praxis müssen in akzeptabler Zeit gelöst werden ! Alle Instanzen müssen in polynomieller Zeit gelöst werden H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Worst-case-Analyse ! Algorithmen werden in der Theorie meist anhand des schlechtesten Falles, des worst case, analysiert. ! Eine gute worst case performance ist wünschenswert, denn dann verhält sich der Algorithmus bei allen Instanzen gut ! Aber: Eine schlechte worst case performance muss nicht bedeuten, dass der Algorithmus in der Praxis schlecht ist ! Prominentes Beispiel: Simplex-Algorithmus ! Im schlimmsten Fall exponentielle Laufzeit ! In der Praxis üblicherweise ziemlich schnell ! Hier gilt: Instanzen, die zu hoher Laufzeit führen, sind meist untypisch für die Praxis 81 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Average-case-Analyse ! Ist Average-case-Analyse Alternative? ! Problem: Benötigt Wkt.verteilung über der Eingabe ! Zufällig gewählte Eingaben sind aber meist nicht typische Eingaben ! Beispiel: Zufallsgraphen nach dem ER-Modell verhalten sich ganz anders als die meisten realen Netzwerke ! Anderes Beispiel: Fernsehbild: „Kampf der Ameisen“ versus normale Sendung 82 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Worst-case vs. average-case ! Worst-case mglw. zu pessimistisch in der Praxis ! Average-case mglw. zu optimistisch in der Praxis Laufzeiten worst case average case Instanzen ! => Wie kann man beides verbinden? 83 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Notation ! ! ! ! Algorithmus A I Eingabe für A CA(I) sei ein Komplexitätsmaß von A bei Eingabe I In sei die Menge der Eingaben der Länge n ! Caworst(n) = maxI 2 In (CA(I)) ! Caavg(n) = EI ~ µ(n) (CA(I)) ! I ~ µ(n) ist eine zufällig gewählte Instanz bzgl. der Verteilung µ(n) 84 H. Meyerhenke: Kombinatorische Optimierung Caworst(n) Caavg(n) Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Smoothed Analysis Einführung ! Was passt zwischen Durchschnitt und schlimmsten Fall? ! Zwei-Schritt-Verfahren: ! Gegenspieler wählt beliebige Eingabe (z. B. schlimmsten Fall) ! Eingabe wird zufällig perturbiert mit Parameter ¾ ! Aus ! Caworst(n) = maxI 2 In (CA(I)) bzw. ! Caavg(n) = EI ~ µ(n) (CA(I)) wird dann die geglättete Komplexität (smoothed complexity) Casmooth(n, ¾) = maxI 2 In E(per¾(I)) ! per¾(I) ist die Zufallsvariable für die Instanz, die durch zufällige Perturbierung mit Stärke ¾ aus I hervorgegangen ist 85 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Veranschaulichung ! Caworst(n) = maxI 2 In (CA(I)) ! Beh.: Smoothed ist Hybrid aus worst-case und average-case! ! Casmooth(n, ¾) = maxI 2 In E(per¾(I)) ! Frage: Wie kann man worst-case ! Caavg(n) = EI ~ µ(n) (CA(I)) bzw. average-case innerhalb der neuen Methode ausdrücken? Laufzeiten Caworst(n) Casmooth(n, ¾1) Casmooth(n, ¾2) Caworst(n) Instanzen 86 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Einordnung ! Def.: Die geglättete Komplexität von A ist polynomiell, wenn Casmooth(n, ¾) polynomiell beschränkt in n und ¾-1 ist. ! Hat ein Algorithmus eine schlechte Laufzeit im worst-case, aber eine gute geglättete Laufzeit, dann ! gibt es zwar schwierige Eingabeinstanzen, aber ! diese Instanzen sind sehr anfällig gegenüber zufälligem Rauschen, ! so dass man in der Praxis großes Pech haben muss, um eine schwierige Instanz anzutreffen ! Theorem [Spielman und Teng, JACM 2004]: Der SimplexAlgorithmus hat polynomielle geglättete Laufzeit. 87 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Pivotregeln und andere Algorithmen ! Die Pivotregel gibt an, zu welcher verbessernden Nachbarecke (von mehreren) der Simplex-Algorithmus sich bewegt ! Für viele Pivotregeln lässt sich exponentielle Laufzeit im schlimmsten Fall zeigen ! Aber: In der Praxis gute Performance ! Lineare Programmierung ist in P ! Ellipsoid-Methode (Khachian, 1979) ! Innere-Punkt-Methode (Karmarkar, 1984) ! Innere-Punkt-Methode kann mit Simplex-Algorithmus mithalten in der Praxis (und ist ab und zu besser) 88 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Die Schattenknoten-Pivotregel ! Regel geht zurück auf [Gass und Saaty, 1955] ! Einfache und intuitive geometrische Interpretation ermöglicht probabilistische Analyse 8 ! x0 initiale Ecke ! Weil x0 Ecke: Es gibt eine Zielfunktion uTx, die durch x0 maximiert wird (für alle Punkte des Polytops P) ! Falls x0 nicht optimal: c und u sind linear unabhängig und spannen Ebene auf ! Pivotregel projiziert P auf diese Ebene 1. Introduction to Smoo x⇤ x0 u c [Röglin, 2012] 89 Figure 1.4: The polytope is projected onto the two-dimensional plane spanned H. Meyerhenke: Kombinatorische Optimierung c and u. Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik plane. The shadow, that is, the projection, of P onto this plane is a possibly Eigenschaften des Schattens ! Der Schatten (Projektion) 8ist ein (mglw. offenes) Polygon mit: ! Knoten x0 wird auf einen Knoten des Polygons projiziert ! Die optimale Lösung x* wird auf einen Knoten des Polygons projiziert ! Jeder Knoten des Polygons ist das Bild eines Knotens des Polytops ! Jede Kante des Polygons ist das Bild einer Kante zwischen zwei benachbarten Knoten des Polytops 1. Introduction to Smoothed x⇤ x0 u c [Röglin, 2012] Figure 1.4: The polytope is projected onto the two-dimensional plane spanned by t c and u. ! Frage: Wie können wir diese Eigenschaften ausnutzen?plane. The shadow, that is, the projection, of P onto this plane is a possibly ope (see Figure 1.4). This polygon has a few useful properties: 90 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik • The vertex x0 is projected onto a vertex of the polygon. • The optimal solution xú is projected onto a vertex of the polygon. Ausnutzen dieser Eigenschaften ! => Wir können den SimplexAlgorithmus in 2D anwenden ! Einfach den Ecken des Polygons folgen x0 ! Frage: Wie lässt sich nun die Laufzeit des Algorithmus ausdrücken? x* ! Wie viele Ecken kann das Polygon haben? Exponentiell viele im schlimmsten Fall! 91 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Geglättete lineare Programme max udN cT x (A + G)x · (b + h) wobei A und b von einem Gegenspieler gewählt werden. ! G und h unabhängige Gauß-Variablen mit ! Mittelwert 0 und ! Standardabweichung ¾ · (maxi ||(bi, ai)||2) ! OBdA: Lineares Programm des Gegenspielers kann skaliert werden ! => Annahme: Standardabweichung ist ¾ 92 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Ergebnis von Spielman und Teng ! Theorem [Spielman and Teng, STOC 2001]: Die erwartete Anzahl Kanten des Polygons ist O(poly(m, d, ¾-1). Die geglättete Laufzeit des Simplex-Algorithmus mit der Schattenknoten-Pivotregel ist O(poly(m, d, ¾-1). ! Also: ! Die Laufzeit ist polynomiell in m, d und ¾-1 ! Bereits für kleine Pertubierungen sind schwierige Instanzen unwahrscheinlich 93 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Verbesserung von Vershynin ! Theorem [Vershynin, FOCS 2006]: Die geglättete Laufzeit des Simplex-Algorithmus mit Schattenknoten-Pivotregel ist O(poly(log m, n, ¾-1)). ! Also: ! Laufzeit ist sogar nur polylogarithmisch in der Zahl der Nebenbedingungen. 94 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Zusammenfassung ! Worst-case-Analyse oft zu pessimistisch ! Average-case-Analyse oft zu optimistisch ! Aufgabe: Erklären Sie warum! ! Smoothed Analysis liegt dazwischen, ist Hybridisierung ! Simplex-Algorithmus mit Schattenknoten-Pivotregel: ! Projektion des Polytops auf Polygon ! Ablaufen der Ecken des Polygons ! Anzahl der Ecken des Polygons bestimmt Laufzeit des Gesamtalgorithmus ! Geglättete Analyse: Laufzeit ist O(poly(log m, n, ¾-1)). 95 H. Meyerhenke: Kombinatorische Optimierung Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Dualität bei linearen Programmen Def.: Es sei (L): udN cTx → max Ax ≤ b x¸0 ein LP in kanonischer Form. L heißt primales Problem Das LP (D): udN bTu → min ATu ¸ c, u¸0 uTA = (ATu)T heißt das zu L duale LP (D = dual(L)). Bsp.: a11x1 + a12 x2 ≤ b1 a21x1 + a22 x2 ≤ b2 a31x1 + a32 x2 ≤ b3 c1 x1 + c2x2 à max 97 u1a11 + u2a21 + u3a31 ¸ c1 u1a12 + u2a22 + u3a32 ¸ c2 u1 b1 + u2b2 + u3b3 à min Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Zahlenbeispiel ! Aufgabe: Stellen Sie das primale und das duale Tableau auf für folgende Problemstellung: ! Eine Ölraffinerie kann zwei Prozesse zur Weiterverarbeitung zu drei Endprodukten ei fahren: ! Prozess 1 erzeugt 2e1, 2e2 und 1*e3 bei Kosten 3 EUR ! Prozess 2 erzeugt 1*e1, 2e2 und 4e3 bei Kosten 5 EUR ! Es müssen mindestens produziert werden (Liefervertrag): ! 3e1, ! 5e2 und ! 4e3 ! Frage: Mit welcher Prozessaufteilung (P1, P2) produzieren Sie möglichst billig? 98 Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Primales und duales Problem Lemma: Es sei (L): Ax ≤ b, cTx → max ein LP. Dann ist dual(dual(L)) = L Beweis: Übung! dual(L): ATu ¸ c, bTu → min äquivalent zu D‘: (-A)Tu ≤ -c (-b)Tu → max Dann ist dual(D‘): ((-A)T)Ty ¸ -b (-c)Ty → min ⇔ Ay ≤ b cTy → max = (L) 99 Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik Schwache Dualität Satz („Schwache Dualität“): Es sei (L): Ax ≤ b, cTx → max ein LP. D := dual(L). Seien zL und zD die optimalen Zielfunktionswerte für L und D. Ist beliebiges x zulässig für L und beliebiges u zulässig für D, dann ist cTx ≤ zL ≤ zD ≤ bTu Bew: (a) Wegen x ¸ 0 und uTA ¸ cT ist cTx ≤ uTAx (b) Wegen u ¸ 0 und Ax ≤ b ist uTAx ≤ uTb = bTu, weil u,b ∈ℝm. Erinnerung: L: Ax ≤ b, cTx → max D: ATu ¸ c, bTu → min Es ist also cTx ≤ bTu für alle x und u (jeweils zulässig). Insbesondere ist damit auch zL ≤ bTu für alle zulässigen u und damit auch zL ≤ zD 100 Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik