Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Axel Kerner Geändert vor über 9 Jahren
1
Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2
2
Überblick Lineare Programmierung Dualität Simplex Algorithmus Grundlagen der Polyedertheorie Exakte Lösungsmethoden für ILPs Branch-and-Bound Schnittebenenverfahren Branch-and-Cut Kombinatorische vs. Ganzzahlige Optimierung
3
Lineare Programmierung Für den Zulässigkeitsbereich P eines Linearen Programms gibt es drei verschiedene Möglichkeiten: P= es existiert keine einzige zulässige Lösung LP ist unlösbar P≠ und inf{ c T x | x P } existiert nicht (z.B. 0 x ≥-1) LP ist lösbar, aber es gibt keine optimale Lösung P≠ und min{ c T x | x P } existiert LP ist lösbar und hat eine endliche Lösung x * mit c T x *=min{ c T x | x P }, x* ist die optimale Lösung
4
Dualität der Linearen Programmierung Es ist vorteilhaft, Schranken für Lineare Programme angeben zu können Ein Punkt, der (2)-(4) erfüllt, erfüllt auch die Ungleichung: 2(2)+(3) sowie (2)+(4) Wir suchen die besten Schranken: Dualität
5
Dualität der Linearen Programmierung Primales Programm: Duales Programm:
6
Dualität der Linearen Programmierung Primales Programm (P): Duales Programm (D): Schwacher Dualitätssatz: Sei x´ein zulässiger Punkt für (P) und y´ zulässig für (D). Dann gilt: y ´ T b ≤ c T x ´
7
Dualität der Linearen Programmierung Primales Programm (P): Duales Programm (D): Korollar: Ist (P) unbeschränkt, dann ist (D) unlösbar. Sei x´ein zulässiger Punkt für (P) und y´ zulässig für (D). Dann gilt: y ´ T b ≤ c T x ´
8
Dualität der Linearen Programmierung Primales Programm (P): Duales Programm (D): Starker Dualitätssatz: Sei x* ein zulässiger Punkt für (P) und y* zulässig für (D). Dann gilt: y * T b = c T x * beide Lösungen x* und y* sind optimal
9
max 5x 1 + 4x 2 + 3x 3 subject to 2x 1 + 3x 2 + x 3 5 4x 1 + x 2 + 2x 3 11 3x 1 + 4x 2 + 2x 3 8 x 1, x 2, x 3 0. Einblick in den Simplex-Algorithmus
10
Einführung von Schlupf-Variablen um Gleichungen zu erhalten max 5x 1 + 4x 2 + 3x 3 subject to 2x 1 + 3x 2 + x 3 + x 4 = 5 4x 1 + x 2 + 2x 3 + x 5 = 11 3x 1 + 4x 2 + 2x 3 + x 6 = 8 x 1, x 2, x 3, x 4, x 5, x 6 0. Simplex-Algorithmus
11
Start Zunächst setzen wir x 1 =x 2 =x 3 =0, und schreiben das System um, so dass die Nicht-Null Elemente links stehen; nun können wir direkt die Werte der anderen Variablen ablesen: x 4 =5, x 5 =11, x 6 =8, z=0. z = 5x 1 + 4x 2 + 3x 3 x 4 = 5 - 2x 1 - 3x 2 - x 3 x 5 = 11 - 4x 1 - x 2 - 2x 3 x 6 = 8 - 3x 1 - 4x 2 - 2x 3 Simplex-Algorithmus
12
Erste Iteration Wir wollen den Wert z erhöhen, mometan ist er 0. Erhöhe z.B. den Wert von x 1. Wie weit können wir erhöhen? z = 5x 1 + 4x 2 + 3x 3 x 4 = 5 - 2x 1 - 3x 2 - x 3 x 5 = 11 - 4x 1 - x 2 - 2x 3 x 6 = 8 - 3x 1 - 4x 2 - 2x 3 x 4 0 5 – 2x 1 0 5 2x 1 x 1 5/2 x 5 0 11 – 4x 1 0 11 4x 1 x 1 11/4 x 6 0 8 – 3x 1 0 8 3x 1 x 1 8/3 Simplex-Algorithmus Wir setzen: x 1 =5/2 x 4 =0
13
Zweite Iteration Wir wollen den Zielfunktionswert weiter erhöhen. Dies geht momentan nur durch Erhöhung von x 3. z = 25/2 - 7/2x 2 + 1/2x 3 - 1/2x 4 x 1 = 5/2 - 3/2x 2 - 1/2x 3 - 1/2x 4 x 5 = 1 + 5x 2 + 2x 4 x 6 = 1/2 + 1/2x 2 - 1/2x 3 + 3/2x 4 x 1 0 5/2 – 1/2x 3 0 5/2 1/2x 3 x 3 5 x 5 0 x 3 unbeschränkt x 6 0 1/2 – 1/2x 3 0 1/2 1/2x 3 x 3 1 Simplex-Algorithmus
14
z = 13 - 3x 2 - x 4 - x 6 x 1 = 2 - 2x 2 - 2x 4 + x 6 x 5 = 1 + 5x 2 + 2x 4 x 3 = 1 + x 2 + 3x 4 - 2x 6 Optimal!!! Simplex-Algorithmus Denn: die Koeffizienten des z-Vektors sind alle kleiner gleich 0. Es kann also zu keiner Verbesserung der Zielfunktion kommen.
15
Graphische Interpretation Max 3x 1 + 2x 2 + 2x 3 Subject to x 1 + x 3 8 x 1 + x 2 7 x 1 + 2x 2 12 x 1, x 2, x 3 0 Simplex-Algorithmus
16
x1x1 x2x2 x3x3 (0,0,8) (0,6,8) (2,5,6) (0,6,0) (2,5,0) (7,0,1) (7,0,0) Max z = 3x 1 + 2x 2 + 2x 3 z = 0 z = 21 z = 23 Optimal! z = 28 Simplex-Algorithmus
17
Log started (V8.2.0a1) Tue Apr 8 21:59:46 2003 Problem name: supply_chain.lp.gz Constraints : 10810259 Variables : 19916187 Reduced LP has 3140439 rows, and 7314332 variables. Presolve time = 339.43 sec. Iteration log... Iteration: 0 Infeasibility = 1534390803.049594 Iteration: 1247301 Infeasibility = 437397607.938387... Iteration: 2348954 Infeasibility = 10965.599999 Elapsed time = 3776.48 sec. (2349000 iterations) Iteration: 2349222 Objective = 1775629743606097400.000000... Elapsed time = 5396.65 sec. (2687000 iterations) Iteration: 2687616 Objective = 1403833763253068800.000000 Removing shift (10). Primal simplex - Optimal: Objective = 1.4038337633e+18 Solution time = 5410.00 sec. Iterations = 2687616 (2348954) Typischer Beispiellauf (CPLEX)
18
Überblick Lineare Programmierung Dualität Simplex Algorithmus Grundlagen der Polyedertheorie Siehe pdf-file
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.