Optimierung Optimization Vorlesung 01
Organisatorisches skopalik@mail.upb.de Büro: F1.209 (Sprechstunde nach Vereinbarung) Vorlesung: Freitags, 11:15 12:45, F0 053 Übungen: Dienstags, 13:15 14:00, F0 053 (*) Freitags, 13:00 13:45, F0 053 (Beachte: s.t.) Übungen starten nächste Woche. 2
Organisatorisches Homework Assignments: for (1 i end of term 1) { List handed out in week i will be discussed in week i + 1. } Lösungen werden nicht benotet. Aber es wird sehr empfohlen alle Übungen zu lösen. Das ist eine sehr hilfreiche Vorbereitung für die Klausur! Es gibt einen Bonus von 0,3 in der Klausur für das vorstellen einer richtigen Lösung einer Übungsaufgabe. Maximal eine Reduktion um 0,3. Gilt nur bei Bestehen. Beste Gesamtnote bleibt die 1,0. 3
Organisatorisches Prüfung: Klausur Ende Februar und März. Genauere Informationen folgen in Kürze. Vorlesungsstil: Die Folien enthalten nur die wichtigsten Ergebnisse. Es wird sie online auf der Webseite geben. Beweise und Beispiele werden an der Tafel präsentiert. Machen Sie sich Notizen! Stellen Sie Fragen! Webseite: https://www.hni.unipaderborn.de/en/alg/teaching/ws1415/optimization/ 4
Voraussetzungen Lineare Algebra: Matrizen, Vektoren. Lineare Abbildungen DuA, EBKFS: Polynomzeit, Eingabegröße, O- Notation, Graphen Flussprobleme? MaxCut? Das ist eine Theorievorlesung! Anschauung und Intuition helfen beim Verständnis, ersetzen aber keinen Beweis! 5
Credits und weitere Literatur Auf den Webseiten zu finden: Folien und Skript von Rainer Feldmann (2010). Folien von Patrick Briest (2011). Ein sehr gutes Skript von Berthold Vöcking (RWTH-Aachen): http://www-i1.informatik.rwth-aachen.de/lehre/ss05/vous.php Diverse Bücher: B. Korte, J. Vygen. Combinatorial Optimization: Theory and Algorithms, 2nd Edition, Springer, 2002. E. Lawler. Combinatorial Optimization: Networks and Matroids. Dover Publications, 1976. C. Papadimitriou und K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Prentice Hall, 1982. A. Schrijver. Combinatorial Optimization: Polyhedra and Efficiency. Springer, 2003. Dimitris Alevras, Manfred W.Padberg : Linear Optimization and Extensions, Springer 2001, TLG 2186 Robert J.Vanderbei : Linear Programming, Kluwer 2001, TLG 2102 Jiri Matousek, Bernd Gärtner : Undertsanding and Using Linear Programming, Springer 2007, TVX 3577 Kurt Marti, Detlef Gröger : Einführung in die lineare und nichtlineare Optimierung, Physica 2000, TLG 2144 6
Optimization Inhalt: 1. Lineare Programmierung, Modellierung 2. The Simplex Algorithmus: Idee & Implementation 3. Die Ellipsoid Methode 4. Dualität & der Duale Simplex Algorithmus 5. Kombinatorische Optimierung, Integrality, Gaps & Approximierung 6. 7
1. LINEARE PROGRAMMIERUNG, MODELLIERUNG 8
Lineare Programme Ein Lineares Programm (LP) ist ein Optimierungsproblem bestehend aus Variablen mit Wertebereich R, einer linearen Zielfunktion und linearen Nebenbedingung. 9
Beispiel Gegeben seien 1000 qm Gartenfläche, davon 600 qm für Anbau von Blumen geeignet. Der Erlös pro qm Blumen sei 100 Euro, der Erlös pro qm Gemüse 50 Euro. Bestimme eine Verteilung der Anbauflächen, die den Erlös maximiert. 10
LPs in kanonischer Form Für i = 1,, m und j = 1,, d seien c j, b i und a ij reele Zahlen. Gesucht wird eine Belegung der Variablen x 1,, x d, so das die Zielfunktion d c j x j j=1 maximiert wird unter den Nebenbedingungen d j=1 a ij x j b i x j 0 für i = 1,, m für j = 1,, d 11
Kurzform Seinen die Vektoren x = (x j ), c = (c j ) und b = (b i ) sowie die Matrix A = (a ij ). Ein LP läßt sich dann schreiben als Maximiere c T x unter Ax b, x 0. 12
Geometrische Interpretation Eine Belegung der Variablen x = (x 1,, x d ) entspricht einem Punkt im d-dimensionalen Raum R d. Jede Nebenbedingung a i x b i bzw. a i x b i definiert einen Halbraum. Die Grenze ist die Hyperebene a i x = b i. Der Halbraum besteht aus den Punkten auf eienr Seite dieser Hyperebene. (Beachte a i ist der Zeilenvektor der i-ten Zeile von A.) Schnittmenge aller Halbräume über alle Nebenbed. ist der Raum der zulässigen Lösungen. Dieser wird auch als Lösungspolyhedron bezeichnet. 13
Finden der optimalen Lösung (Anschaulich) Der Vektor c der Zielfunktion gibt eine Richtung im R d an. Alle Lösungen (Punkte) auf einer zu c orthogonalen Hyperebene haben den selben Zielfunktionswert. Verschiebe eine solche Hyperebene in Richtung des Vektors c so lange diese Hyperebene eine zulässige Lösung beinhaltet. Warum funktioniert das und geht das immer? Geht das algorithmisch effizient? Auf bei vielen Dimensionen? Was können wir alles als LP modellieren? 14
LPs in kanonische Form bringen Was ist mit Beispielen wie: unter Minimiere x 1 3x 2 + 2x 3 2x 1 + x 2 5 x 2 16 x 1 + x 3 = 17 x 1 1 x 3 0 15
LPs in kanonische Form bringen Ein Minimierungsproblem kann durch Vorzeichenwechsel der Zielfunktion in ein Maximierungsproblem transformiert werden. Eine Ungleichung a T x b kann durch a T x b ersetzt werden. Eine Gleichung a T x = b kann durch zwei Ungleichungen a T x b und a T x b ersetzt werden. Eine möglicherweise negative Variable x R wird ersetzt durch den Ausdruck x x für zwei Variablen x 0 und x 0. 16
Konvexität des Lösungsraums Behauptung 1.1 Die durch ein Polyhedron P beschriebene Punktmenge ist konvex. D.h. für jedes Paar von Punkten x, y P sind auch alle Punkte auf der Verbindungslinie l x, y = λx + 1 λ y λ [0,1]} zwischen x und y in P enthalten. 17
Lokales Optimum = globales Optimum Behauptung 1.2 Zu x P gebe es ein z P mit c T z > c T x. Dann existiert für jedes ε > 0 ein Punkt mit x y < ε und c T y > c T x. D.h. für jeden nicht optimalen Punkt gibt es einen beliebig nahen Punkt, der besser ist. 18
Zusammenfassung für heute Was sie nächste Woche wissen sollten Was sind LPs Wie sieht die kanonische Form aus Wie kann ich jedes LP in kanonische Form bringen. Geometrische Darstellung. Stellen sie sich Hyperebenen (in 2D: Kanten, in 3D Ebenen) vor. Polyhedron, Lösungsraum, Konvexität, Lokales=Globales Optimum (Das ist sehr wichtig!) 19
CPLEX Lineare Programme kommen häufig in der Praxis vor. Zahlreiche Softwarelösungen wie z.b. CPLEX, Gurobi, CPLEX ist auf Poolrechnern im F1 Pool (erster Stock) installiert. Aufruf durch cplex. 20
Beispieldatei test.lp \ Das ist eine Beispiel \ Datei fuer ein LP. Max 100 x_1 + 50 x_2 Subject To x_1 + x_2 <= 1000 x_1 <= 600 x_1 >= 0 x_2 >= 0 End 21
Aufruf von CPLEX 22