Standard-/kanonische Form Simplex Dualität Kompl./Sensitivität Spaltengen. Schnittebenen Welchen? Inhalt

Ähnliche Dokumente
Inhaltsübersicht für heute:

Optimierung für Nichtmathematiker

Optimierung für Wirtschaftsinformatiker: Dualität, Ganzzahlige lineare Optimierung

Optimierung für Wirtschaftsinformatiker: Lineare Programme

Optimierung. Optimierung. Vorlesung 8 Lineare Programmierung III: Simplex Algorithmus Fabian Kuhn

1 Der Simplex Algorithmus I

6. Einführung 43. gilt. Dann soll also A B x B = b eindeutig lösbar sein, also A B vollen Rang haben, d. h. invertierbar (regulär) sein.

VORLESUNG 11 Lineare Optimierung (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

Optimierung. Vorlesung 02

VORLESUNG 14 Lineare Optimierung, Dualität (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

4.3.3 Simplexiteration

Computer Science Department - High Performance and Web Computing Group. Optimierungsprobleme

Kombinatorische Optimierung

Teil I. Lineare Optimierung

VORLESUNG 12 Lineare Optimierung (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

Dualitätssätze der linearen Optimierung

Das Lagrange-duale Problem

Kap. 4.3: Das Dualitätstheorem der linearen Optimierung

Optimierung. Vorlesung 08

Eigenschaften von LPs

Vorlesung Wirtschaftsmathematik I WS 2007/2008, Wirtschaftingenieurwesen. Kapitel IV: Grundlagen der Linearen Optimierung

Wiederholung. Wir gehen von LP s in Standardform aus, wobei A R m n vollen Zeilenrang hat: minc T x A x = b

Studientag zur Algorithmischen Mathematik

Schnittebenenverfahren von Gomory. Stefan Allescher 30. Juni 2005

3.2.5 Dualität der linearen Optimierung I

Operations Research. Die Simplexmethode. LP-Dualität. Die Simplexmethode. Rainer Schrader. 18. Juni Zur Erinnerung: Gliederung

Inhaltsübersicht für heute:

Kap. 4: Lineare Programmierung

Optimierung für Nichtmathematiker (für Master) Vorlesung: Christoph Helmberg Übung: Anja Lau

Minimumproblem. Definition 4.7. Ein LP der Form. unter den Nebenbedingungen. d ij x j b i (i =1,...,m)

Optimale Steuerung 1 Prozessoptimierung 1

mit. Wir definieren (Skalarprodukt = Winkel).

Numerische Lineare Algebra

Übung 3, Simplex-Algorithmus

1. Lineare Optimierungsaufgaben (LOA) als Teilklasse konvexer Optimierungsprobleme. f(x) min, x G (1.1) (Legende)

Kapitel 5. Peter Becker (H-BRS) Operations Research I Sommersemester / 298

3.1. Existenzsatz und Struktur der Lösungsmenge

Die duale Simplexmethode

Kap. 4.2: Simplex- Algorithmus

Kapitel 7 : Lineare Programmierung Die Simplexmethode (G.B.Dantzig, 1947) Beispiel:

Lineare Optimierung: Simplexverfahren Phase Ⅰ

Vorlesung Lineare Optimierung (Sommersemester 2009)

Inhaltsverzeichnis Grundlagen der Linearen Optimierung

Mathematische Grundlagen für Wirtschaftswissenschaftler Lösungshinweise zu den Übungsaufgaben aus Kapitel 3 - Lineare Optimierung

Lösung allgemeiner linearer Programme

Operations Research. Ganzzahlige lineare Programme. ganzzahlige lineare Programme. Ganzzahlige lineare Programme. Rainer Schrader. 25.

6 Korrektheit des Simplexalgorithmus

Diskrete Optimierung

Dr. Anita Kripfganz SS 2014

Über- und unterbestimmte

Sattelpunkte und Optimalitätsbedingungen bei restringierten Optimierungsproblemen

KAPITEL 3. Konvexe Funktionen

Modellprädiktive Regelung auf Grundlage Linearer Programmierung

Innere-Punkt-Methoden

Hauptsatz und Optimalitätskriterium der Simplexmethode

1 Lineare Optimierung, Simplex-Verfahren

Grundlagen der Optimierung. Übung 6

Simplex-Verfahren. Kapitel 4. Simplex-Verfahren. Peter Becker (H-BRS) Operations Research I Sommersemester / 298

Effiziente Algorithmen Lineares Programmieren 216. Schwache Dualität

Optimierung. Vorlesung 04

Operations Research. Konvexe Funktionen. konvexe Funktionen. konvexe Funktionen. Rainer Schrader. 4. Juni Gliederung

Zuordnungsproblem. Beispiele. Mathematisches Modell. Lösungsmethoden. auch Ernennungs-, Zuweisungs-, Assignmentproblem

Chinese Postman Problem Hamiltonsche Graphen und das Traveling Salesman Problem Max-Flow-Min-Cut...151

Lineare Optimierung Teil 2

1 Einführung in Lineare Programme und Dualität

Einführung in Operations Research Vorlesung 9:

10. Die Berücksichtigung nicht vorzeichenbeschränkter Variablen

4. Dualität Dualität 4.1 Dualität von LPs und der Dualitätssatz. Die duale Form eines LP in allgemeiner Form. Herleitung der dualen Form

Die Lagrange-duale Funktion

Ganzzahlige lineare Programme

Kap. 4.2: Simplex- Algorithmus

(Technisch: Setze alle Skalarprodukte der allgemeinen Lösung mit den Basisvektoren des Kerns gleich Null eindeutige leastsqares Lösung)

Klausurrepetitorium ABWL

Die lineare Programmierung. Die Standardform 1 / 56

4 Lineare Optimierung

Vortrag 20: Kurze Vektoren in Gittern

Sattelpunkte und Optimalitätsbedingungen bei restringierten Optimierungsproblemen

Vorlesung Einführung in die Mathematische Optimierung (Wintersemester 2013/14)

Vorlesung Einführung in die Mathematische Optimierung (Wintersemester 2013/14)

Kap. 3: Exakte Lösungsverfahren für NPschwierige. Optimierungsprobleme VO Algorithm Engineering

Proseminar Lineare Algebra WS 08/09 Prof. Dr. O. Bogopolski 1. Vortrag: Lineare Gleichungen. am 11. März von Maximilian Wahner

z = c T x : Ax = b, x 0 }, - die Darstellung der Nichtbasisvektoren durch die Basis ist

Optimalitätsbedingungen

4.4 Quadratische Optimierungsprobleme

Seminar Ausgewählte Kapitel des Operations Research Die Allgegenwärtigkeit von Lagrange (Teil 1)

Lineare Optimierung Dantzig 1947

Lineare Programmierung

Schnittebenenverfahren und Heuristiken

Übungsblatt 6 Lösungsvorschläge

8. Lineare Optimierung

Optimierungstheorie Scheinklausur Sommersemester Juli 2007

ist ein Polyeder. c) Sei F eine Seite von P. Wann ist f 1 (F ) eine Seite von f 1 (P )? Begründen Sie Ihre Antwort. x 1. x = max{ x i i N n }.

Die Lagrange - duale Optimierungsaufgabe und ihre geometrische Interpretation

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

1. Transport- und Zuordnungsprobleme

Mathematische Methoden der Algorithmik

10.2 Dualitätstheorie Operations Research. In der Standardform eines Maximierungsproblem: b e ) mit ( w) + a ej ) x j + x g = ( b g + g G

Optimierung I. Dr. Ulf Lorenz F2.413

Seminar Optimierung - Approximation and fitting. Christian Bretzke

Transkript:

Inhalt Lineare Optimierung Standardform und kanonische Form Der Simplex-Algorithmus Dualität Komplementarität und Sensitivitätsanalyse Spaltengenerierung Schnittebenenverfahren Welchen Simplex wann? 54: 54 [54,54]

3 Lineare Optimierung Zwei typische Schreibweisen für ein Lineares Programm (LP) LP in Standardform min s.t. c T x Ax = b x 0 LP in kanonischer Form max s.t. c T x Ax b x 0 Wenn nicht anders erwähnt, dann c R n, A R m n, b R m. x 0 und Ax b sind jeweils elementweise zu vestehen, also x 0 : x R n + = {x R n : x i 0, i = 1,... n} Egal ob man minimieren oder maximieren will, Gleichungen oder Ungleichungen hat, Variablen mit oder ohne Nichtnegativitätsbedingungen hat, man kann jedes LP in so eine Form bringen. 55: 55 [55,55]

Umformen von LPs maximieren minimieren: max c T x s.t. Ax = b, x 0 min( c) T x s.t. Ax = b, x 0 Gleichungen Ungleichungen: [ A Ax = b A ] [ x b b Ungleichungen Gleichungen: durch Schlupfvariablen s 0 max s.t. c T x Ax b x 0 max c T x [ ] x s.t. [A, I ] = b s x 0, s 0 ] [I Identität] Statt jeder freien Variable x i R zwei vorzeichenbeschränkte: x + i 0 und x i 0 mit x i = x + i x i 56: 56 [56,56]

Kleines Beispiel zur Illustration: Mozart-Problem Maximiere den Gewinn bei Produktion von Mozart-Kugeln und -Talern: Marzipan Nougat Edelherb Gewinn Pro Kugel: 2 Teile 1 Teil 1 Teil 3 Euro Pro Taler: 1 Teil 1 Teil 2 Teile 2 Euro verfügbar: 10 Teile 6 Teile 9 Teile Variablen: x K... Anzahl Kugeln x T... Anzahl Taler max 3x K + 2x T s.t. 2x K + 1x T 10 1x K + 1x T 6 1x K + 2x T 9 x K 0, x T 0 min [ 3, 2, 0, 0, 0]x 2 1 1 0 0 s.t. 1 1 0 1 0 x = 1 2 0 0 1 x 0 [x R 5 +] 10 6 9 57: 57 [57,57]

Anwendung: Tschebyscheff-Approximation z.b. in der Filtersynthese (hier stark vereinfacht): Eine gewünschte Impulsantwort (geg. Funktion) h : [0, 1] R soll möglichst gut durch gewichtete Addition verfügbarer Impulsantworten h i : [0, 1] R, i = 1,..., n dargestellt werden. Modellierung: h(t) n i=1 x ih i (t) für gegebene t j [0, 1], Variable x i R, i = 1,..., n als Gewicht von h i, Diskretisierung von [0, 1] z.b. in Schritte t j := j 1 m 1, j = 1,..., m min s [max. Abweichung über alle t j ] s.t. 58: 58 [58,58] s h(t j ) n i=1 x ih i (t j ) s, j = 1,..., m, x R n, s R h(t j ) und h i (t j ) sind mit Diskretisierung t j gegebene Konstanten! Mathematisches Problem: Minimiere Ax b über x R n [ d := max i=1,...,m d i Unendlich-Norm für d R m ] min s s.t. 1s Ax b 1s 1 = [1, 1,..., 1] T x R n, s R

Ähnlich: 1-Norm Minimierung Mathematisches Problem: Minimiere Ax b 1 über x R n [ d 1 := m i=1 d i 1-/Manhattan-Norm für d R m ] Variable s i d i s i d i s i (i {1,..., m}) Formulierung als LP: min s.t. 1 T s I s Ax b I s x R n, s R m Im Gegensatz zur -Norm ist es bei der 1-Norm egal, wo die Abweichung groß ist, solange die Summe klein bleibt. Ausreißer fallen weniger ins Gewicht (aber es gibt meist auch ein paar Koordinaten mit starker Abweichung). 59: 59 [59,59]

Geometrische LP-Interpretation: WH Skalarprodukt c T x c T x = c x cos α mit α Winkel zw. c und x. Für c = 1 ist (wie im Bild) c T x die Länge der Projektion von x auf die Gerade {γc : γ R} {x : c T x γ} ist der Halbraum aller Punkte, deren Projektion auf c kleiner gleich γ ist. c ist Gradient der linearen Fkt. c T x (zeigt in Richtung steilster Anstieg) Für A = a T 1. a T m x α c T x T c x< γ T c x= γ ist Zeile j von Ax b gerade a T j x b j T c c x> γ 60: 60 [60,60]

Geometrische Interpretation: am Mozart-Problem Wegen x K 0 x K 0 ist [ max 3 2 ] x c T 2 1 a1 T 1 1 [ ] s.t. 1 2 xk a2 T x T a3 T 1 0 0 1 wieder das Mozart-Problem. 10 6 9 0 0 e T 1 e T 2 Definition Ein Polyeder ist der Schnitt endlich vieler Halbräume. Die zulässige Menge jedes LPs ist also ein Polyeder. e 1 x T a 2 a 1 e 2 c a 3 x K 61: 61 [61,61]

Geometrische Interpretation: Optimallösung Wegen x K 0 x K 0 ist [ max 3 2 ] x c T 2 1 a1 T 1 1 [ ] s.t. 1 2 xk a2 T x T a3 T 62: 62 [62,62] 1 0 0 1 wieder das Mozart-Problem. 10 6 9 0 0 e T 1 e T 2 Offensichtlich ist eine Ecke des Polyeders eine Optimallösung, sie erfüllt Dimension viele Ungleichungen mit Gleichheit, hier: a1 T [ ] [ ] [ ] 2 1 xk 10 a2 T = x 1 1 x T 6 K = 4, x T = 2 Ecken sind besonders wichtig! Interpretation in Standardform? e 1 x T a 2 a 1 e 2 c a 3 x K

Interpretation einer Ecke in Standardform (Standardform: nur Gleichungsnebenbed. durch Schlupfvariablen) max s.t. [ ] 3 2 0 0 0 x 2 1 1 0 0 10 1 1 0 1 0 x = 6 1 2 0 0 1 9 x K 0, x T 0, s 1 0, s 2 0, s 3 0 In dieser Darstellung ist n = 5, m = 3. Jeder Ungleichung ist genau eine Schlupfvariable zugeordnet! (s i Zeile i, x K für x K 0 und x T für x T 0) Wegen der m Gleichungen hat das Polyeder Dimension n m. Jede Ecke erfüllt n m weitere Ungleichungen als Gleichungen ( Schlupfvariablen sind 0), die eindeutig diesen Punkt festlegen, der sich ergebende Wert der anderen Schlupfvariablen (= Abstand zu Ungleichungen) muss dabei nichtnegativ sein (sonst unzul. ). e 1 x T a 2 a 1 e 2 c a 3 x K 63: 63 [63,63]

Inhalt Lineare Optimierung Standardform und kanonische Form Der Simplex-Algorithmus Dualität Komplementarität und Sensitivitätsanalyse Spaltengenerierung Schnittebenenverfahren Welchen Simplex wann? 64: 64 [64,64]

3.2 Der Simplex-Algorithmus (für Standardform) Gegeben A R m n, b R m, c R n, mit Rang A = m, bestimme 65: 65 [65,65] min c T x s.t. Ax = b, x 0 Idee: Gehe von der aktuellen Ecke zu einer benachbarten besseren. Notation: Für B {1,..., n} m sei A B := [A,B(1),..., A,B(m) ] R m m. B {1,..., n} m heißt Basis, falls A B regulär ist. Wir fassen eine Basis B auch als Menge von Spaltenindices auf, definieren eine dazupassende Nichtbasis N ({1,..., n} \ B) n m mit B N = {1,..., n}, dann teilt sich das System in Ax = b A B x B + A N x N = b x B = A 1 B (b A Nx N ). Jede Wahl x N R n m erzwingt ein eindeutiges x B zu einer gemeinsamen Lösung x von Ax = b. Gilt für x N = 0, dass x B = A 1 B b 0, heißt die Basis zulässig. Die Nichtbasisvariablen x i, i N, werden auf 0 gesetzt, die Basisvariablen x i, i B, durch x B = A 1 B b bestimmt.

Eine benachbarte bessere Ecke finden 66: 66 [66,66] B sei nun eine zulässige Basis, also 0 x B := A 1 B (b A N x N ) für x N := 0 Benachbarte Ecke: Eine Gleichung x i = 0 mit i N aufgeben und x i vergrößern bis die nächste Ungleichung erreicht wird. Veränderung der Zielfunktion abhängig von x N : e1 x T a1 a 2 x K ++ c T x = cb T x B + cn T x N = cb T A 1 B b + (c N A T N A T B c B) }{{} =: z N e 2 c T xn Die reduzierten Kosten z N zeigen die Veränderung abh. von x N an. Ist z N 0 Ecke nicht verbesserbar, Optimallösung gefunden. Sonst wähle im Pricing-Schritt ein î N mit zî < 0 xî ist die (in die Basis) eintretende Variable und wird vergrößert. a3 x K

Zur Zulässigkeit muss x B = A 1 B (b A îxî) 0 bleiben, [Aî Spalte î] mit w := A 1 B A î muss wxî x B erfüllt sein. Ist w 0 darf xî beliebig groß werden Problem unbeschränkt. Sonst wähle im Ratio-Test { } xb(j) ĵ Argmin j=1,...,m : w j > 0 w j x B(ĵ) ist die (aus der Basis) austretende Variable. Sie wird nun im Basisaustauschschritt durch xî ersetzt, N N \ {î} {B(ĵ)}, B(ĵ) î, und der Algorithmus wird von dieser neuen Ecke aus fortgesetzt. 67: 67 [67,67]

Das (primale revidierte) Simplex-Verfahren Input: zulässige Basis B, x B = A 1 B b 0 1. BTRAN: Bestimme ȳ := A T B c B durch Lösen von A T B y = c B. 2. PRICE: z N := c N A T Nȳ. Ist z N 0, STOP (Optimallösung), sonst wähle î N mit zî < 0. 3. FTRAN: Bestimme w := A 1 B A î durch Lösen von A B w = Aî. 4. RATIO: Ist w 0, STOP (Problem { unbeschränkt), } sonst wähle xb(j) ĵ Argmin j=1,...,m w j : w j > 0, ξ := x B(ĵ) wĵ 5. Update: x B := x B ξ w, xî := ξ, N := (N \ {î}) {B(ĵ)}, B(ĵ) := î, GOTO 1. (Lösung der Glgssysteme nutzt sparsity etc., nicht invertieren!) Das Paar (ĵ, î) wird auch Pivot-Element genannt. 68: 68 [68,68]

Endlichkeit und Kreisen In jeder Iteration mit ξ > 0 wird der Zielfunktionswert strikt besser, und der Algorithmus besucht diese Ecke nie wieder. 69: 69 [69,69] Ist ξ = 0, wechselt man nur zu einer anderen Basisdarstellung derselben Ecke (sie liegt auf mehr als n m Ungleichungen). Bei ungünstiger Wahl in Pricing und Ratio-Test wird die gleiche Basis später wieder besucht der Algorithmus kreist. Mit den Auswahlregeln von Bland (wähle aus den erlaubten Variablen jeweils die mit kleinstem Index) wird jede Basis höchstens einmal besucht und der Algorithmus endet nach endlich vielen Iterationen. (In der Praxis nimmt man andere Auswahlregeln und nutzt Bland nur, wenn Kreisen beobachtet wird.) Hat ein LP zwei unterschiedliche Basen, die den gleichen Punkt beschreiben, nennt man das LP und derartige Basen degeneriert oder entartet. Für entartete LPs kann der Simplex-Algorithmus sehr langsam sein, dann sind Innere-Punkte-Verfahren (s. dort) meist besser.

Finden einer zulässigen Ausgangsbasis Die 2-Phasen-Methode Löse in Phase 1 das Hilfsproblem (o.b.d.a. b 0) zul. Anfangs-Basis: die Spalten von s min 1 T s Ist Optimalwert=0 zul. Basis des Originalproblems gefunden, löse dieses in Phase s.t. Ax + Is = b x 0, s 0 2. Liefert überprüfbaren Nachweis (Zertifikat) für (Un-)Zulässigkeit! Die Big-M Methode (o.b.d.a. b 0) min s.t. c T x + M1 T s Ax + Is = b x 0, s 0 zul. Basis: die Spalten von s Ist M > 0 groß genug, werden die s i = 0. Vorteil: sucht gleich gute Basis Nachteil: Wie groß muss M sein? 70: 70 [70,70] In Standard-Software muss man sich darum nicht kümmern!

Mit dem Simplex-Algorithmus zeigt man Satz (Hauptsatz der Linearen Optimierung) Hat ein LP in Standardform einen endlichen Optimalwert, so wird dieser auch in einer Ecke angenommen. 71: 71 [71,71]

Inhalt Lineare Optimierung Standardform und kanonische Form Der Simplex-Algorithmus Dualität Anwendung: Spieltheorie Komplementarität und Sensitivitätsanalyse Spaltengenerierung Schnittebenenverfahren Welchen Simplex wann? 72: 72 [72,72]

3.3 Dualität Mit jedem konvexen Minimierungsproblem löst man automatisch ein verwandtes konvexes Maximierungsproblem, das als die Bestimmung einer besten Schranke für den Optimalwert des Originalproblems interpretiert werden kann. Die duale Optimallösung (wenn sie existiert) gibt wichtige Zusatzinformation über das Originalproblem. Für Lineare Optimierung ist das besonders einfach und anschaulich. 73: 73 [73,73]

Untere Schranken, algebraisch 74: 74 [74,74] Eine Ungleichung a T x α heißt gültig für ein Optimierungsproblem mit zulässiger Menge X, wenn sie für alle x X erfüllt ist. a T Betrachte X := {x : Ax b} mit A = 1.. Nichtneg. Linearkombination der Zeilen Ax b und r.s. verkleinern a T m a T 1 x b 1 y 1 ( 0). amx T b m y m ( 0) 0 T x 1 η( 0) : (y T A)x y T b η [ x X ] liefert eine gültige Ungleichung für X (und man erhält alle so!). Für ein ȳ 0 mit A T ȳ = c folgt min{c T x : Ax b} b T ȳ. Die größte untere Schranke? max{b T y : A T y = c, y 0}

Das Duale in Normalform Betrachte min c T x s.t. Ax = b, x 0. Erlaubte Linearkombination der Zeilen Ax = b und Ix 0 a T 1 x = b 1 y 1 ( R). amx T = b m y m ( R) e1 T x 0 z 1( 0). en T x 0 z n ( 0) : (y T A + z T I )x y T b Die beste untere Schranke liefert das Duale LP in Normalform: max b T y max b T y s.t. A T y + z = c y R m, z 0 s.t. A T y c y R m, 75: 75 [75,75] y und z sind die Dualvariablen.

Dualisierungsregeln Nach dem gleichen Muster ergibt sich min c T x max b T y Ax b y 0 Ax b y 0 Ax = b y frei x 0 A T y c x 0 A T y c x frei A T y = c Insbesondere ist das Duale des Dualen LPs wieder das Primale LP. 76: 76 [76,76]

Mozart: das Duale geometrisch (P M ) (D M ) A = 77: 77 [77,77] 2 1 1 1 1 2 [ ] 3 max s.t. c T x Ax b x 0 min b T y s.t. A T y c y 0 e1, b =, 10 6 9 c = 2 1 ȳ = 0 A T ȳ = 2 [ 4 5 x T a 2 a 1 e 2 ] c, b T ȳ = 28 c a 1+ 2a 3 a 3 x K

Mozart: das Duale optimal (P M ) max s.t. c T x Ax b x 0 min b T y (D M ) s.t. A T y c a 2 y 0 a 1+a 2 = c A = 2 1 1 1, b = 10 e1 6, a3 1 2 9 [ ] 3 c = 2 e2 1 [ ] [ ȳ = 1 3 4 A T ȳ = = c, b 2 T ȳ = 16, x = 2 0 78: 78 [78,78] x T a 1 ] x K

Wo ist das Duale im Simplex-Algorithmus? Input: zulässige Basis B, x B = A 1 B b 1. BTRAN: Bestimme ȳ := A T B c B durch Lösen von A T B y = c B. 2. PRICE: z N := c N A T Nȳ, ist z N 0, STOP (Optimallösung), sonst wähle î N mit zî < 0.. (P) 79: 79 [79,79] min c T x s.t. [A B, A N ] x 0 [ xb x N ] =b (D) max b [ T y A T s.t. B A T N ] [ zb y + y R m, z 0 1. Schritt: Setze z B = 0 und löse 1. duale Block-Zeile ȳ 2. Schritt: Bestimme z N aus der 2. dualen Block-Zeile Ist die duale Lösung zulässig ( z N 0), ergibt das die Schranke z N ] [ cb = c N min x X ct x ȳ T b = c T B A 1 B b = c B x B = c T x [ OL] Beachte: PRICE sucht einfach ein dual unzulässiges z i mit i N! ]

(D) max b T y s.t. Das duale Simplex-Verfahren [ A T B A T N ] y + [ zb z N ] = [ cb c N ], y R m, z 0 Dual zulässige Basis: z B = 0, y = A T B (c B z B ), z N = c N A T N y 0 Kostenänderung in Abh. von z B : y T b = cb T c B zb T A 1 B }{{ b } =: x B Input: dual zulässige Basis B, ȳ = A T B c b, z N = c N A T Nȳ 0 1. FTRAN: Bestimme x B := A 1 B b durch Lösen von A Bx B = b. 2. PRICE: Ist x B 0, STOP (Optimallösung), sonst wähle ĵ {1,..., m} mit x B(ĵ) < 0. 3. BTRAN: Bestimme w := A T ĵ und berechne ω N := A T N w B 4. RATIO: Ist ω N 0 STOP (Duales unbeschränkt), sonst wähle î Argmin i N { z i ω i : ω i > 0}, ζ := z î ωî 5. Update: ȳ := ȳ ζ w, z N := z N ζ ω, z B(ĵ) := ζ N := (N \ {î}) {B(ĵ)}, B(ĵ) := î, GOTO 1. 80: 80 [80,80]

81: 81 [81,81] (P) min s.t. Schwache und Starke Dualität c T x Ax = b x 0 (D) max s.t. b T y A T y + z = c y R m, z 0 Ist x primal zulässig und (y, z) dual zulässig, dann gilt c T x b T y = (A T y + z) T x b T y = (Ax b) T y + z T x = z T x 0 Schwache Dualität: Der Wert jeder zulässigen Lösung beschränkt den Optimalwert des jeweils Dualen. [gilt immer!] Ist ein LP unbeschränkt, ist dessen Duales unzulässig. Dualitätslücke: Differenz aus primalem und dualem Optimalwert. Starke Dualität: Primaler und dualer Optimalwert sind gleich, (beide werden angenommen). [gilt i.a. nicht für Konv. Opt.] Satz (Starke Dualität in der Linearen Optimierung) Hat ein LP einen endlichen Optimalwert, so wird dieser sowohl primal als auch dual angenommen. Beweis: Simplex-Alg. mit Auswahlregeln von Bland.

Es können beide unzulässig sein! (P u ) max x 1 s.t. x 1 x 2 1 x 1 + x 2 0 x 1 0, x 2 0 (D u ) (P u ) Es kann nicht x 2 1 + x 1 und x 2 x 1 sein. (D u ) Es kann nicht y 1 1 + y 2 und y 1 y 2 sein. max y 1 s.t. y 1 y 2 1 y 1 + y 2 0 y 1 0, y 2 0 82: 82 [82,82]

Anwendung: Spieltheorie 2-Personen Matrix-Spiel: Für eine gegebene Auszahlungsmatrix M R m n wählt Spieler 1 (S1) eine Zeile i und Spieler 2 (S2) eine Spalte j. Spieler 1 zahlt an Spieler 2 den Betrag M ij. 83: 83 [83,83] Wenn S2 weiß, dass S1 Zeile i wählt, wählt S2 max j=1,...,n (M T e i ) j. S1 bestimmt eine optimale Wahrscheinlichkeits-Verteilung für eine zufällige Zeilenwahl, um nicht so leicht voraussagbar zu sein: min max j=1,...,n (M T min s x) j s.t. 1 T s.t. s (M x = 1 (P 1 ) T x) j j = 1,..., n 1 x 0 T x = 1 x 0, s R S2 tut das gleiche für sich max min i=1,...,m (My) i s.t. 1 T y = 1 y 0 (P 2 ) max t s.t. t (My) j i = 1,..., m 1 T y = 1 y 0, t R (P 2 ) ist das Duale zu (P 1 ), beide sind zul., also ist v(p 1 ) = v(p 2 ). Man muss die Strategie des Gegners gar nicht kennen!

Inhalt Lineare Optimierung Standardform und kanonische Form Der Simplex-Algorithmus Dualität Komplementarität und Sensitivitätsanalyse Spaltengenerierung Schnittebenenverfahren Welchen Simplex wann? 84: 84 [84,84]

85: 85 [85,85] (P) min s.t. c T x Ax = b x 0 Komplementarität (D) max s.t. b T y A T y + z = c y R m, z 0 c T x b T y = z T x 0 gilt für bel. primal und dual zul. Lösungen. Satz (vom komplementären Schlupf) Primal und dual zulässige Lösungen x und (ȳ, z) sind genau dann optimal, wenn x i z i = 0 für i = 1,..., n. Eine Ungleichung heißt aktiv in einem Punkt, wenn sie in dem Punkt mit Gleichheit erfüllt ist, sonst nicht aktiv oder inaktiv. Folgerungen: Ist in einer OL eine Variable in x oder z > 0, ist deren duale Ungleichung in jeder OL des jeweiligen dualen aktiv! Ist in einer OL eine Unglg. des LPs inaktiv, ist deren Dualvariable in jeder OL des jeweiligen dualen gleich Null! Tatsächlich gibt die Größe der Dualvariablen wesentliche Information über den Einfluss der Unglg. auf den Optimalwert...

e 1 Geometrische Interpretation der Komplementarität x T e 2 a 2 a 1 (P M ) a +a =c 1 2 a 3 max s.t. x K c T x Ax b x 0 A = 2 1 1 1 1 2 (D M ) min s.t., b = b T y A T y c y 0 10 6 9 [ ] 3, c = 2 Inaktive Ungleichungen können nicht zur besten Schranke beitragen, die aktiven Restr. halten die OL. (Gleichungen sind immer aktiv!) y j a j (bzw. z i ) ist Kraftanteil von Restriktion i im Kräftegleichgewicht. Der Gradient der Zielfunktion liegt im Kegel der Gradienten der aktiven Restriktionen. (Die Vorzeichen sind je nach Richtungen anzupassen!) 86: 86 [86,86]

Sensitivitätsanalyse Wie sensibel reagiert die OL auf Änderungen in welchen Daten? (P) min s.t. c T x Ax = b x 0 (D) max s.t. b T y A T y + z = c y R m, z 0 Wie weit ist b veränderbar bei gleicher optimaler Basis B? x B = A 1 B b 0, y = A T B c B, z N = c N A T N y 0 b(t) := b + t b erhält duale Zul. für t R, primale aber nur wenn x B (t) = xb +t A 1 B }{{ b 0 max } [x B ] i [ x B ] i >0 [ x B ] i t max =: x B Für diese t ist der Optimalwert = b T y + t b T y (Kompl.!), sonst ist dieser Wert auf jeden Fall eine untere Schranke. 87: 87 [87,87] [x B ] i [ x B ] i <0 [ x B ] i Für b = e j beziffert yj die marginalen Kosten der Veränderung, bei Ressourcennebenbed. heißen die yj oft Schattenpreise.

Sensitivitätsanalyse für die Kostenkoeffizienten Wie weit ist c veränderbar bei gleicher optimaler Basis B? x B = A 1 B b 0, y = A T B c B, z N = c N A T N y 0 c(t) := c + t c erhält primale Zul. für t R, duale aber nur wenn z N (t) = zn + t ( c N A T N A T B c B) 0 }{{} =: z N max [ z N ] i >0 [z N ] i [ z N ] i t max [ z N ] i <0 [z N ] i [ z N ] i Für diese t ist der Optimalwert = c T x + t c T x (Kompl.), sonst ist dieser Wert eine obere Schranke. 88: 88 [88,88]

Inhalt Lineare Optimierung Standardform und kanonische Form Der Simplex-Algorithmus Dualität Komplementarität und Sensitivitätsanalyse Spaltengenerierung Schnittebenenverfahren Welchen Simplex wann? 89: 89 [89,89]

3.5 Spaltengenerierung Was tun, wenn es zu viele Variablen gibt um das LP aufzustellen? Das Simpex-Verfahren benötigt je Iteration nur die Basis-Variablen (x N = 0!), solange eine verbessernde Nichtbasis-Spalte in PRICE erzeugt werden kann. Das nutzt die Spaltengenerierung. Am Beispiel: Zuschnittproblem: Aus möglichst wenigen Metern von Standardblechrollen der Breite (b 0 = 1000mm) sollen kleinere Breiten b j (in mm) mit Gesamtlänge h j, j = 1,..., m geschnitten werden. 90: 90 [90,90]

Modellierung des Zuschnittproblems 91: 91 [91,91] Daten: Länge h j der Breite b j N (j = 1,..., m) aus Breite b 0 Modell: Schnittmuster s N m 0 enthält die Breite b j genau s j mal. { Menge der zul. Schnittmuster: S = s N m 0 : } m j=0 s jb j b 0 Variable x s gibt die Länge an, mit der s S geschnitten wird. [sx s ] j ist der Beitrag von Schnittmuster s zum Bedarf h j. min s S x s max h T y (P S ) s.t. s S sx s h (D S ) s.t. s T y 1 s S x 0 y 0 sucht die minimal notwendige Gesamtlänge um alle h j zu erfüllen. Schwierigkeit: S ist riesig! Idee: Starte mit Ŝ = {e j : j = 1,..., m}, löse (PŜ) ŷ, bestimme, wie in PRICE, s S mit kleinsten red. Kosten s Argmin s S ẑ }{{} s := 1 s T ŷ setze Ŝ := Ŝ { s}, iteriere. Pricingproblem

Das Pricingproblem des Zuschnittproblems Für ŷ 0, b j N (j = 0,..., m), bestimme s Argmin s S {1 s T ŷ} 92: 92 [92,92] max ŷ T s s.t. b T s b 0, s N m 0 Dieses ganzzahlige Optimierungsproblem heißt Rucksackproblem. Falls b 0 nicht zu groß, gut rekursiv lösbar (dynamic programming). Die beste Füllung bis Kapazität b mit Objekten 1,..., k hat den Wert k k F ( b, k) := max ŷ j s j : b j s j b, s j N 0 für b = 0,..., b 0, k = 0,..., m, j=1 j=1 wobei F (0, 0) := 0 und F ( b, k) := für ( b) N, k = 0,..., m. Nun gilt F ( b, k) = max { } b = 1,..., b F ( b, k 1), F ( b b k, k) + ŷ k für 0, k = 1,..., m. (Entweder k nicht verwenden oder k einmal verwenden und Rest bestmöglich füllen)

Beispiel Rucksackproblem b 0 = 10, b 1 = 3, b 2 = 5, b 3 = 6, ŷ 1 = 2, ŷ 2 = 4, ŷ 3 = 5 F ( b, k) = max { F ( b, k 1), F ( b b k, } b = 1,..., b k) + ŷ k für 0, k = 1,..., m. b F ( b, 0) F ( b, 1) F ( b, 2) F ( b, 3) 10 0 6(1) 8 (2) 8 (2) 9 0 6(1) 6 (1) 7 (3) 8 0 4(1) 6 (2) 6 (2) 7 0 4(1) 4 (1) 5 (3) 6 0 4(1) 4 (1) 5 (3) 5 0 2(1) 4 (2) 4 (2) 4 0 2(1) 2 (1) 2 (1) 3 0 2(1) 2 (1) 2 (1) 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 Rekonstruktion der Lösung durch Objektindices. 93: 93 [93,93]

Zusammenfassung Spaltengenerierung Zuschnittproblem 94: 94 [94,94] Daten: Länge h j der Breite b j (j = 1,..., m) aus Breite b 0 0. Schritt: Ŝ = {e j : j = 1,..., m} (pro j: Breite j einmal) 1. Schritt Ermittle OLen ˆx, ŷ von (PŜ) min s.t. s Ŝ x s s Ŝ sx s h x 0 (DŜ) max h T y s.t. s T y 1 s Ŝ y 0 2. Schritt: Löse das Pricingprobelm als Rucksack max (ŷ ) T s s.t. b T s b 0, s N m 0 s 3. Schritt: Ist 1 s T ŷ 0 (oder beinahe) STOP (gut genug) sonst Ŝ := Ŝ { s}, GOTO 1. (auch Entfernen ungebrauchter Muster möglich) Bemerkungen zur Praxis: Anfangsmenge Ŝ muss Zulässigkeit und endliche OL garantieren Verwendet m verschiedene Schnittmuster (# Basisvar.). Oft zu viele! Längen ˆx S nicht ganzzahlig, oft wenige lange, einige sehr kurze Anfangs gute Verbesserung, dann SEHR langsam (tailing off effect)

Inhalt Lineare Optimierung Standardform und kanonische Form Der Simplex-Algorithmus Dualität Komplementarität und Sensitivitätsanalyse Spaltengenerierung Schnittebenenverfahren Welchen Simplex wann? 95: 95 [95,95]

3.6 Schnittebenenverfahren Gleiche Idee, wenn es zu viele Ungleichungen a T j x b j, j I gibt: 96: 96 [96,96] 0. Schritt: Wähle Î I, die endliche OL garantiert 1. Schritt Ermittle OLen ˆx, ŷ von (PÎ) min max ct x s.t. aj T (DÎ) s.t. x b j j Î j Î b jy j j Î a jy j c y 0 2. Schritt: Löse das Separierungsproblem: Finde eine (maximal) verletzte Ungleichung j Argmax j I {b j a T j ˆx } 3. Schritt: Ist b j a T j ˆx 0 (oder beinahe) STOP (gut genug) sonst Î := Î { j}, GOTO 1. (auch Entfernen inaktiver Ungleichungen möglich) Bemerkungen: Schnittebenenvefahren = Spaltengenerierung im Dualen gute Erfolge in kombinatorischer/ganzz. Optimierung Eher ungünstig: Linearisierung konvexer Nebenbedingungen Je nach separierter Unglg.-Klasse starker tailing off effect

Konvexe Nebenbedingungen mit Schnittebenen 1. 2. 3. 4. Problem: Schleifende Schnitte numerisch ungünstig, ungenau 97: 97 [97,97]

Inhalt Lineare Optimierung Standardform und kanonische Form Der Simplex-Algorithmus Dualität Komplementarität und Sensitivitätsanalyse Spaltengenerierung Schnittebenenverfahren Welchen Simplex wann? 98: 98 [98,98]

3.7 Wann primalen, wann dualen Simplex verwenden? Für ein festes LP: Für viele LPs aus der Praxis scheint der duale Simplex etwas schneller zu sein (vermutlich weil viele LPs nach ähnlichen Denkmustern erstellt werden). Innere-Punkte-Verfahren (s. später) sind bei großen Instanzen oft schneller und weniger anfällig bzgl. Degeneriertheit, aber ein Test lohnt sich. Spaltengenerierung: Nach Einfügen von Variablen bleibt die primale Basis zulässig (die alte Duale Lösung nicht), also setzt man mit dem primalen Simplex direkt fort! (Innere-Punkte-Verfahren sind dafür ungeeignet) Schnittebenen-Verfahren: Nach Einfügen einer Schnittebene bleibt die duale Basis zulässig (die alte primale Lösung nicht), also setzt man mit dem dualen Simplex direkt fort! (Innere-Punkte-Verfahren sind dafür ungeeignet) 99: 99 [99,99]