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]