Optimierung für Wirtschaftsinformatiker: Lineare Programme
Transcription
Optimierung für Wirtschaftsinformatiker: Lineare Programme
Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Optimierung für Wirtschaftsinformatiker: Lineare Programme Dr. Nico Düvelmeyer Dienstag, 31. Mai 2011 1: 1∈[1,1] Lineare Programme Spezielle Darstellungen Inhaltsübersicht für heute 1 Lineare Programme Allgemeine Form 2 Spezielle Darstellungen Normalform Standardform Einfache Umformungen 3 Geometrie Lineare Optimierungsprobleme 2-Dimensionale LOA 2: 2∈[2,2] Geometrie Lineare Optimierungsprobleme Lineare Programme Spezielle Darstellungen Inhaltsübersicht für heute 1 Lineare Programme Allgemeine Form 2 Spezielle Darstellungen Normalform Standardform Einfache Umformungen 3 Geometrie Lineare Optimierungsprobleme 2-Dimensionale LOA 3: 3∈[3,3] Geometrie Lineare Optimierungsprobleme Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Erkennungsmerkmale Lineares Programm Lineare Optimierungsaufgabe (LOA) Zielfunktion: linear linear: f (x) = cx = c1 x1 + · · · + cn xn affin-linear: f (x) = cx + d weglassen von +d ändert nur Optimalwert, aber nicht die Optimallösungen Nebenbedingungen: alles (affin) linear aiT x = bi aiT x ≤ bi aiT x ≥ bi Nebenbedingungen nie in der strengen Form (damit ist die zulässige Menge abgeschlossen) nur endlich viele Nebenbedingungen keine weiteren Einschränkungen (Ω = Rn ) 4: 4∈[4,4] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Allgemeine Form Minimieren/Maximiere cx unter Ax = b Cx ≤ d Ex ≥ g gelegentlich auch noch x ≥ l (lower-bound) mit l ∈ (R ∪ {−∞})n x ≤ u (upper-bound) mit u ∈ (R ∪ {∞})n 5: 5∈[5,5] the model description and translates it into internal data structures, which may Darstellungen Geometrie Lineare Optimierungsprobleme be then used either forSpezielle generating mathematical programming problem instance or directly by a program called the solver to obtain numeric solution of the problem. Lineare Programme Die allgemeine Form in GNU MathProg 1.1 Linear programming problem In MathProg the linear programming (LP) problem is stated as follows: minimize (or maximize) z = c1 x1 + c2 x2 + . . . + cn xn + c0 (1.1) subject to linear constraints L1 ≤ a11 x1 + a12 x2 L2 ≤ a21 x1 + a22 x2 . . . . . Lm ≤ am1 x1 + am2 x2 + . . . + a1n xn ≤ U1 + . . . + a2n xn ≤ U2 . . . . + . . . + amn xn ≤ Um (1.2) and bounds of variables l1 ≤ x1 l2 ≤ x2 . . . ln ≤ xn 6: 6∈[6,6] ≤ u1 ≤ u2 . . ≤ un (1.3) where x1 , x2 , . . . , xn are variables; z is the objective function; c1 , c2 , . . . , cn are objective coefficients; c0 is the constant term (“shift”) of the objective function; a , a , . . . , a are constraint coefficients; L , L , . . . , L are lower Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Wie erkennt man lineare Nebenbedingungen? Viele beschränkte Ressourcen entsprechen linearen Nebenbedingungen Der Verbrauch der Ressource verdoppelt sich mit doppelter Produktionsmenge. Für die einzelnen Optimierungsvariablen ist der Verbrauch jeweils proportional. (→ Koeffizienten) Der Gesamtverbrauch ist die Summe der Verbräuche der einzelnen Variablen. Es gibt einen konstanten Wert (=) oder eine konstante Schranke (≤ b) für den Gesamtverbrauch. 7: 7∈[7,7] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Keine lineare Nebenbedingung Preis * Menge ≥ Mindestumsatz Preis ist eine Variable x1 Menge ist eine Variable x2 Mindestumsatz ist eine Konstante (z.B. 1000) x1 x2 ≥ 1000 8: 8∈[8,8] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Aufstellen der formalen Nebenbedingungen “Beschränkungen” identifizieren =, ≤, ≥ und Konstante herausfinden pro Variable den Koeffizient ermitteln (auf Einheiten achten!) Kontrolle, dass Summe wirklich richtig ist! Einfache Bedingungen (Vorzeichen) nicht vergessen! 9: 9∈[9,9] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Beispiel Mozart-Problem Max. den Gewinn bei Prod. von Mozart-Kugeln und -Talern Pro Kugel: Pro Taler: verfügbar: Marzipan 2 Teile 1 Teil 10 Teile Nougat 1 Teil 1 Teil 6 Teile Edelherb 1 Teil 2 Teile 9 Teile Variablen xK . . . Anzahl Kugeln xT . . . Anzahl Taler 10: 10∈[10,10] max 3xK + 2xT unter 2xK + 1xT 1xK + 1xT 1xK + 2xT x ≥ 0, x ≤ 10 ≤6 ≤9 ≥0 Gewinn 3 Euro 2 Euro Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Variablen richtig wählen Maximiere abc unter a ≤ 10 b ≤ 20 c ≤ 15 a2 b/c ≥ 30 abc 2 ≤ 1000 a, b, c > 0 11: 11∈[11,11] Lineare Programme Spezielle Darstellungen Inhaltsübersicht für heute 1 Lineare Programme Allgemeine Form 2 Spezielle Darstellungen Normalform Standardform Einfache Umformungen 3 Geometrie Lineare Optimierungsprobleme 2-Dimensionale LOA 12: 12∈[12,12] Geometrie Lineare Optimierungsprobleme Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Normalform Minimiere c T x unter Ax ≤ b, x ≥ 0. gesucht: optimales x ∈ Rn (n ∈ N) c ∈ Rn Zielfunktionsvektor A ∈ Rm×n Koeffizientenmatrix (m Zeilen, n Spalten) b ∈ Rm Rechte-Seite(n)-Vektor Verboten: Gleichungsnebenbedingungen Variablen, die (theoretisch) negative Werte annehmen dürfen Nebenbedingungen aiT ≥ bi Maximierungsaufgaben 13: 13∈[13,13] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Standardform Minimiere c T x unter Ax = b, x ≥ 0. gesucht: optimales x ∈ Rn (n ∈ N) c ∈ Rn Zielfunktionsvektor A ∈ Rm×n Koeffizientenmatrix (m Zeilen, n Spalten) b ∈ Rm Rechte-Seite(n)-Vektor Verboten: Ungleichungsnebenbedingungen außer x ≥ 0 Variablen, die (theoretisch) negative Werte annehmen dürfen Maximierungsaufgaben 14: 14∈[14,14] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Vergleich Zwei typische Schreibweisen für ein “ ‘Lineares Programm” ’ (LP) LP in Standardform min cT x unter Ax = b x ≥0 LP in kanonischer Form min cT x unter Ax ≥ b x ≥0 Wenn nicht anders erwähnt, dann c ∈ Rn , A ∈ Rm×n , b ∈ Rm . x ≥ 0 und Ax ≥ b sind jeweils elementweise zu verstehen, also x ≥ 0 :⇔ x ∈ Rn+ = {x ∈ Rn : xi ≥ 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. 15: 15∈[15,15] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Wann sind Umformungen „erlaubt“ Optimalwerte von Original und Umformung stehen in fester (einfacher) Beziehung zulässige Punkte des einen können zulässigen Punkten des anderen zugeordnet werden optimale Punkte werden optimalen Punkten zugeordnet 16: 16∈[16,16] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Maximierung vs. Minimierung (MAX) Maximiere f (x) unter x ∈ X X = {x ∈ Rn : x erfüllt gewisse Bedingungen} (MIN) Minimiere g (x) unter x ∈ X mit g : X → R gegeben durch g = −f , d.h. g (x) = −f (x). Jetzt f (x) = c T x mit c ∈ Rn gegeben, −c1 −c2 dann ist g (x) = d T x mit d := −c = . . . wieder eine −cn lineare Funktion zulässige Punkte bleiben unverändert Zielfunktionswerte wechseln nur das Vorzeichen 17: 17∈[17,17] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Größer zu Kleiner (Orig) a(x) ≥ b (Kleiner) −a(x) ≤ −b zulässige Punkte bleiben gleich Zielfunktion bleibt gleich Eine Ungleichung wird durch eine andere ersetzt lineare Ungleichungen werden durch lineare Ungleichungen ersetzt 18: 18∈[18,18] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Gleichungen mithilfe von Ungleichungen (Gleichung) h(x) = 0 (Ersatz) h(x) ≥ 0 und h(x) ≤ 0 zulässige Punkte bleiben gleich Zielfunktion bleibt gleich Eine Bedingung vom Typ “=” wird durch 2 Bedingungen von Typ “≤” ersetzt (von Standardform) Ax = b ⇐⇒ Ax ≤ b und ≥ b ⇐⇒ Ax ≤ b und (−A)x ≤ −b Ax A b (in Normalform) x≤ −A −b Also (m,n, A,b, c) - Standardform-Problem wird zu A b (2m, n, , , c)-Normalform-Problem −A −b 19: 19∈[19,19] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Ungleichungen mit Gleichungen und Schlupfvariablen (Ungleichung) gi (x) ≤ 0 (Ersatz) gi (x) + si = 0, si ≥ 0 neue (Schlupf-)Variable si für den Spielraum Alte Ungleichung wird zu Gleichung, aber si ≥ 0 Dimension wird größer x x zulässig ⇒ zulässig mit selbem ZF-Wert si = −gi (x) x zulässig ⇒ x zulässig mit selben ZF-Wert si (von Normalform in Standardform) x T T 0 min c x= c s min cT x x unter Ax ≤ b ⇔ unter A I =b s x ≥0 x ≥ 0, s ≥ 0 20: 20∈[20,20] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Beispiel Mozart-Problem in Standardform max 3xK + 2xT unter 2xK + 1xT 1xK + 1xT 1xK + 2xT xK ≥ 0, xT ≤ 10 ≤6 ≤9 ≥0 − min −3 −2 0 0 0 x − min −3 −2 x 2 1 10 2 1 1 0 0 10 1 1 x≤ 6 1 1 0 1 0 x = 6 ⇔ unter unter 1 2 9 1 2 0 0 1 9 2 5 x ≥0 [x ∈ R ] x ≥0 [x ∈ R ] 21: 21∈[21,21] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Freie Variable mithilfe vorzeichenbeschränkter Variablen Statt jeder freien Variable xi ∈ R zwei vorzeichenbeschränkte: xi+ ≥ 0 und xi− ≥ 0 mit xi = xi+ − xi− ersetze sowohl in der Zielfunktion als auch in jeder Nebenbedingung jedes xi durch xi = xi+ − xi− (Ausmultiplizieren, alles bleibt linear) zulässiger Punkt x ist als (x + , x − ) zulässig mit selben ZF-Wert mit xi+ := xi und xi− := 0 für xi ≥ 0 xi+ := 0 und xi− := −xi für xi < 0 damit ist x = x + − x − es gibt weitere solche Punkte im neuen System wenn (x + , x − ) zulässiger Punkt ist, so auch x = x + − x − mit selben ZF-Wert 22: 22∈[22,22] Lineare Programme Spezielle Darstellungen Inhaltsübersicht für heute 1 Lineare Programme Allgemeine Form 2 Spezielle Darstellungen Normalform Standardform Einfache Umformungen 3 Geometrie Lineare Optimierungsprobleme 2-Dimensionale LOA 23: 23∈[23,23] Geometrie Lineare Optimierungsprobleme Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Geometrische Interpretation: WH Skalarprodukt c T x c T x = kckkxk cos α mit α Winkel zw. c und x. Für kck = 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. x c T cx T c x>g T c x<g c ist Gradient der linearen Fkt. c T x (zeigt in Richtung steilster Anstieg) 24: 24∈[24,24] T c x=g Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Bedeutung Skalarprodukt für LOA a1T Für A = ... ist Zeile j von Ax ≤ b gerade ajT x ≤ bj T am Definition (Polyeder) Ein Polyeder ist der Schnitt endlich vieler Halbräume. Die zulässige Menge jedes LPs ist also ein Polyeder. 25: 25∈[25,25] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Geometrische Interpretation: am Mozart-Problem xT a1 Wegen xK ≥ 0 ⇔ −xK ≤ 0 ist 2 max 3 x 2 1 10 1 6 1 xK 2 unter 1 xT ≤ 9 −1 0 0 0 −1 0 a2 c −e1 a3 xK wieder das Mozart-Problem. −e2 26: 26∈[26,26] Lineare Programme Spezielle Darstellungen Geometrie Lineare Optimierungsprobleme Geometrische Interpretation: Optimallösung xT a1 Wegen xK ≥ 0 ⇔ −xK ≤ 0 ist 2 max 3 x 2 1 10 1 6 1 xK 2 unter 1 xT ≤ 9 −1 0 0 0 −1 0 a2 c −e1 a3 xK wieder das Mozart-Problem. −e2 “Offensichtlich” ist eine Ecke des Polyeders eine Optimallösung, sie erfüllt Dimension viele Ungleichungen mit Gleichheit, hier: 2 1 xK 10 = ⇒ xK = 4, xT = 2 1 1 xT 6 27: 27∈[27,27]