Optimierung für Wirtschaftsinformatiker: Dualität, Ganzzahlige lineare Optimierung Dr. Nico Düvelmeyer Freitag, 24. Juni 2011 1: 1 [1,1]
Inhaltsübersicht für heute 1 Dualität Motivation Duales LP Dualitätssätze Sensitivität und Schattenpreise 2 Problemdefinition 2: 2 [2,2]
Inhaltsübersicht für heute 1 Dualität Motivation Duales LP Dualitätssätze Sensitivität und Schattenpreise 2 Problemdefinition 3: 3 [3,3]
Einführung 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 Zusatzinforamtion über das Originalproblem. geometrische Dualität Punkt - Gerade/Ebene Partnerschaft als Dualität 4: 4 [4,4]
Notation Ursprungsproblem = Primalproblem zugeordnetes Problem = Dualproblem (Problem der besten Schranke) 5: 5 [5,5]
Beispiel mit offensichtlicher Schranke max x K + x T unter 2x K + 1x T 10 1x K + 1x T 6 1x K + 2x T 9 x K 0, x T 0 hat vermutlich 6 als Optimalwert, keinesfalls aber mehr als 6. 6: 6 [6,6]
weitere Schranken Addition 1.+3. Restriktion liefert max x K + x T unter 2x K + 1x T 10 1x K + 1x T 6 1x K + 2x T 9 x K 0, x T 0 3x K + 3x T 19 x K + x T 19/3 Also ist auch 19/3 eine obere Schranke, aber schlechter als die 6. 7: 7 [7,7]
Untere Schranken, algebraisch 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. Betrachte X := {x : Ax b} mit A = a T 1.. 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 η liefert eine gültige Ungleichung für X (und man erhält alle so!). 8: 8 [8,8]
Das Duale von der Standardform (mit dualen Schlupf) 9: 9 [9,9] Betrachte min c T x unter Ax = b, x 0. Erlaubte Linearkombionation 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 (Form mit Schnlupfvariablen) (y und z sind die Dualvariablen) max b T y max b T y unter A T y + z = c y R m, z 0 unter A T y c y R m
Das Duale von der Standardform (ohne dualen Schlupf) Betrachte min c T x unter Ax = b, x 0. Erlaubte Linearkombionation der Zeilen Ax = b a T 1 x = b 1 y 1 ( R). amx T = b m y m ( R) : y T Ax = y T b Dies liefert eine untere Schranke y T b, falls y T A c T (unter x 0). Denn dann ist max c T x y T Ax = y T b. Die beste untere Schranke liefert das Duale LP: max unter b T y A T y c y R m, 10: 10 [10,10] y enthält die Dualvariablen.
Dualisierungsregeln allgemein 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. 11: 11 [11,11]
Bsp. Mozart max unter c T x Ax b x 0 (P M ) min b T y unter A T y c y 0 (D M ) 2 1 10 e1 A = 1 1, b = 6 1 2 9 ( ) 3 c = 2 1 ( ) ȳ = 0 4 A T ȳ = c, b 5 ȳ = 28 2 12: 12 [12,12] x T a 2 a 1 e 2 c a 1+ 2a 3 a 3 x K
Mozart: das Duale optimal max unter c T x Ax b x 0 (P M ) x T a 1 min b T y unter A T y c y 0 2 1 10 A = 1 1, b = 6 1 2 9 ( ) 3 c = 2 1 ȳ = 1 A T ȳ = 0 13: 13 [13,13] (D M ) e 1 a 2 e a +a = c 2 1 2 ( ) 3 = c, b 2 T ȳ = 16, x = a 3 ( ) 4 2 x K
Dualer Simplex Simplex-Verfahren für das duale Problem brauche dazu dual zulässige Startlösung beachte Komplementarität: primal: x N = 0, x B daraus berechnen dual: z B = 0, y und z N daraus berechnen wenn dual optimale Basislösung gefunden, so gleichzeitig primal optimale notwendig z.b. bei Schnittebenenverfahren 14: 14 [14,14]
Zusammenfassung duales LP jedes LP hat ein duales LP dafür gibt es Regeln Restriktionen wechseln mit Variablen Zielfunktion wechselt mit Rechter Seite Duales von Dualem ist Primales Standardform: (P) min c T x, Ax = b, x 0 dual dazu: (D) max b T y, A T y c, y R m oder mit Schlupf: (D ) max b T y, A T y + z = c, y R m, z 0 15: 15 [15,15]
Schwacher Dualitätssatz Satz 2.4.3 (Schwacher Dualitätssatz) Für alle primal zulässigen Punkte x (mit Ax = b, x 0) und alle dual zulässigen Punkte y (mit A T y c) gilt Beweis b T y c T x. b T y = (Ax) T y = x T A T y = x T (A T y) x T c = c T x Der Wert einer zulässigen Lösung beschränkt den Optimalwert des dualen Problems! 16: 16 [16,16]
Folgerung 1 Falls 1 b T y = c T x und 2 x primal zulässig und 3 y dual zulässig so ist x primal optimal y dual optimal 17: 17 [17,17]
Komplementarität b T y = c T x gilt genau dann, wenn 0 = c T x b T y = c T x y T b = c T x y T Ax = (c A T y) T x = z T x bzw. (da z = 0, x 0) jeder Summand des Skalarproduktes Null ist: j = 1,..., n : z j x j = 0 für alle j ist je mindestens eine der Bed. z j 0 (d.h. A T,j y c j) und x j 0 mit = erfüllt 18: 18 [18,18]
Aktive Restriktionen 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... 19: 19 [19,19]
Simplex und dual zulässige Lösung Sei x primal optimale BL x N = 0, x B = A 1 B b = β, c T x = d = cb T x B = cb T A 1 B b = y T b = b T y. es zeigt sich: y = A T B c B ist dual zulässig A T y c A T B y c B und A T N y c N A T B y = AT B A T B c B = c B A T N y = AT N A T B c B = ζ + c N c N Dies zeigt Teil vom folgenden Satz 20: 20 [20,20]
Starker Dualitätssatz Satz 2.4.6 (Starker Dualitätssatz) Das primale Problem (min. c T x unter Ax = b, x 0) besitzt genau dann eine optimale Lösung, wenn das duale Problem (max. b T y unter A T y c) eine optimale Lösung besitzt. Darüber hinaus stimmen dann die Zielfunktionswerte überein, d.h. es gilt c T x = b T y. Hat ein LP einen endlichen Optimalwert, so wird dieser sowohl primal als auch dual angenommen. Es gibt keine Dualitätslücke (Unterschied primaler dualer Optimalwert) außer wenn beide Systeme unzulässig sind! 21: 21 [21,21]
Satz vom komplementären Schlupf (P) min unter c T x Ax = b x 0 (D) max unter 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 (siehe 2.4.4) 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. 22: 22 [22,22]
Sensitivität (d von b) Frage Wie hängen die Ausgabegrößen bei (kleinen) Änderungen von den Eingabegrößen ab? Ausgabegrößen Optimalwert d Optimalvektor ˆx Eingabegrößen Matrix A Rechte Seite b ZF-Vektor c 23: 23 [23,23]
Gestörte Probleme Problem 2.4.7 (Gestörtes primales lineares Optimierungsproblem) Für Störungen b R m lautet das gestörte Standardproblem: Minimiere c T x unter Ax = b + b, x 0. b = 0: ungestörtes Problem, Nominalproblem optimale Wertefunktion w( b) := inf{c T x Ax = b + b, x 0} Zusatzvoraussetzung: Eine Optimallösung x B (0) = A 1 B b > 0, x N(0) = 0 des ungestörten Problems ist nicht entartet! (sonst schwieriger) 24: 24 [24,24]
Schattenpreise gestörte Basislösung: x B ( b) = A 1 B (b + b) = x B(0) + A 1 B b, x N (0) = 0. zulässig, wenn b klein genug ist! bleibt optimal, da ζ = (c T B Γ ct N )T unverändert damit Optimalwert w( b) = c T B x B(0) + c T B A 1 B b = w(0) + y T b für die eindeutig duale Optimallösung y = A T B m w = y i b i y i heißt daher Schattenpreis für Änderungen bei Ressourcen. Schattenpreisformel i=1 c B 25: 25 [25,25] w ( b) = y
Inhaltsübersicht für heute 1 Dualität Motivation Duales LP Dualitätssätze Sensitivität und Schattenpreise 2 Problemdefinition 26: 26 [26,26]
Das Heiratsproblem Bilde möglichst viele Paare! 27: 27 [27,29]
Das Heiratsproblem Bilde möglichst viele Paare! Maximal (nicht vergrößerbar), aber kein Kardinalitätsmaximum 27: 28 [27,29]
Das Heiratsproblem Bilde möglichst viele Paare! Maximum Cardinality Matching (sogar perfekt) 27: 29 [27,29]
Bipartites Matching Ein (ungerichteter) Graph G = (V, E) ist ein Paar bestehend aus Knotenmenge V und Kantenmenge E {{u, v} : u, v V, u v}. Zwei Knoten u, v V heißen adjazent/benachbart, falls {u, v} E. Ein Knoten v V und eine Kante e E heißen inzident, falls v e. Zwei Kanten e, f V heißen inzident, falls e f. Eine Kantenmenge M E heißt Matching/Paarung, falls für e, f M mit e f stets e f =. Das Matching heißt perfekt, falls V = 2 M. G = (V, E) heißt bipartit, falls V = V 1 V 2 mit V 1 V 2 = und E {{u, v} : u V 1, v V 2 }. 28: 30 [30,30]
Modellierung: kardinalitätsmaximales bipartites Matching gegeben: G = (V 1 V 2, E) bipartit gesucht: Matching M E mit M { maximal Variablen: x {0, 1} E 1 falls e M mit x e = für alle e E 0 sonst. Nebenbedingung: Ax 1, A {0, 1} V E ist Knoten-Kanten-Inzidenzmatrix zu G: { 1 falls v e A v,e = (v V, e E) 0 sonst. (a) (b) (c) (d) A a (A) 1 1 0 0 b D B A = (B) 0 0 1 0 c E (C) 0 0 0 1 (D) 1 0 0 0 C d (E) 0 1 1 1 29: 31 [31,32]
Modellierung: kardinalitätsmaximales bipartites Matching gegeben: G = (V 1 V 2, E) bipartit gesucht: Matching M E mit M { maximal Variablen: x {0, 1} E 1 falls e M mit x e = für alle e E 0 sonst. Nebenbedingung: Ax 1, A {0, 1} V E ist Knoten-Kanten-Inzidenzmatrix zu G: { 1 falls v e A v,e = (v V, e E) 0 sonst. max 1 T x Optimierungsproblem: unter Ax 1 x {0, 1} E So kein LP! x {0, 1} E zu x [0, 1] E vergrößern LP Für G bipartit gilt: Simplex liefert immer eine Optimallösung x {0, 1} E! (Für allgemeine Graphen G i.a. aber nicht!) 29: 32 [31,32]