operations research die simplexmethode · lp-dualität beispiel für (i): max x1 + x2 x1 x2 0 x1 +...
Post on 31-Aug-2019
8 Views
Preview:
TRANSCRIPT
Operations Research
Rainer Schrader
Zentrum für Angewandte Informatik Köln
18. Juni 2007
1 / 1
Die Simplexmethode
2 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
3 / 1
LP-DualitätZur Erinnerung:
• wir haben ein lineares Programm (LP) wie folgt definiert:
max cT xAx ≤ b
(1)
• Dualisierung führt auf das folgende duale Programm
min bT yyT A = c
y ≥ 0(2)
• wir schreiben das duale Programm in der folgenden Form:
max − bT y24 A−A−I
35 y ≤
24 c−c0
35 .(3)
4 / 1
LP-Dualitätmax − bT y24 A
−A−I
35 y ≤
24 c−c0
35 .(3)
• das dazu duale Programm lautet:
min cu− cv + 0wAu− Av − Iw = −b
u, v, w ≥ 0
• mit x = v − u ergibt sich daraus
min − cx−Ax ≥ −b
• und dies ist äquivalent zumax cxAx ≤ b
• damit ist das Duale des Dualen wieder das Primale.
5 / 1
LP-Dualität
Beispiel:Wir betrachten das Problem
min 2x1 − x2 + 13 x3
s.d x1 + x2 − 2x3 ≥ 13x1 + 4x2 − 2x3 ≤ 2/3x1 ≥ 0.
Dieses lineare Programm ist äquivalent zu
max −2x1 + x2 − 13 x3
s.d −x1 − x2 + 2x3 ≤ −13x1 + 4x2 − 2x3 ≤ 2/3−x1 ≤ 0.
6 / 1
LP-Dualität
Dieses lineare Programm ist äquivalent zu
max −2x1 + x2 − 13 x3
s.d −x1 − x2 + 2x3 ≤ −13x1 + 4x2 − 2x3 ≤ 2/3−x1 ≤ 0.
Dual dazu ist das lineare Programm
min −y1 + 23 y2
s.d −y1 + 3y2 − y3 = −2−y1 + 4y2 = 12y1 − 2y2 = −1/3y1 , y2 , y3 ≥ 0
7 / 1
LP-Dualität
Dual dazu ist das lineare Programm
min −y1 + 23 y2
s.d −y1 + 3y2 − y3 = −2−y1 + 4y2 = 12y1 − 2y2 = −1/3y1 , y2 , y3 ≥ 0
Das letzte lineare Programm ist z.B. äquivalent zu
max y1 − 23 y2
s.d y1 − 3y2 ≤ 2−y1 + 4y2 = 1−2y1 + 2y2 = 1/3
y1 , y2 ≥ 0
8 / 1
LP-Dualitätallgemeine Form linearer Programme:
• wir betrachten das folgende primale Programm:
max cT x + dT yAx + By ≤ aCx + Dy = b
y ≥ 0
• das zugehörige duale Programm lautet
min uT a + vT buT A + vT C = cT
uT B + vT D ≥ dT
u ≥ 0
• Beweis: Übungsaufgabe
9 / 1
LP-Dualität
max cT xAx ≤ b
min bT yAT y = c
y ≥ 0(4)
• seien x primal und y dual zulässig
• nach der schwachen Dualität gilt cT x ≤ bT y
• die KKT-Bedingungen lauten
AT y = ccT x − bT y = 0Ax ≤ b
y ≥ 0
• damit ergibt sich:
10 / 1
LP-Dualität
Satz 1 (Starke Dualität)
Eine primal zulässige Lösung x ist genau dann optimal, wenn es eine dualzulässige Lösung y gibt mit der Eigenschaft
cT x = bT y.
In diesem Fall ist y notwendigerweise dual optimal.
Beweis:
• nach Satz 3.15 ist x genau dann optimal, wenn es zusammen miteinem y die KKT-Bedingungen erfüllt
• dann ist genau dann der Fall, wenn gilt:
• x ist primal zulässig• y ist dual zulässig
• cT x = bT y
• dann ist aber auch y notwendigerweise dual optimal.
11 / 1
LP-Dualität
Korollar 2Seien (P) und (D) ein Paar primal-dualer linearer Programme. Dann giltgenau eine der folgenden Alternativen:
(i) (P) und (D) sind unzulässig
(ii) eines der beiden ist unbeschränkt, das andere unzulässig
(iii) beide besitzen zulässige und damit auch optimale Lösungen
Beweis:
• ist ein Programm unbeschränkt, so muss das andere wegen derschwachen Dualität unzulässig sein
• sind beide zulässig, so sind beide beschränkt und besitzen damitoptimale Lösungen.
12 / 1
LP-Dualität
Beispiel für (i):
max x1 + x2
x1 − x2 ≤ 0−x1 + x2 ≤ −1
min −y2
y1 − y2 = 1−y1 + y2 = 1
y1, y2 ≥ 0
(5)
• die beiden Programme sind dual zueinander
• beide Polyeder sind offensichtlich leer.
13 / 1
LP-Dualität
Korollar 3 (Satz vom komplementären Schlupf)
Eine primal zulässige Lösung x ist genau dann optimal, wenn es eine dualzulässige Lösung y gibt mit der Eigenschaft
yT (b− Ax) = 0. (6)
y ist dann notwendigerweise dual optimal.
Beweis:
• es gilt cT x − bT y = (AT y)T x − bT y = yT (Ax − b)
• damit folgt die Behauptung aus Satz 1.
• es gilt stets y ≥ 0 und b− Ax ≥ 0,
• damit gilt (6) nur, wenn yi = 0, falls bi − aTi x > 0.
14 / 1
LP-Dualität
Beispiel:primales Problem:
min 2x1 − x2 + 13 x3
s.d x1 + x2 − 2x3 ≥ 13x1 + 4x2 − 2x3 ≤ 2/3x1 ≥ 0.
das dazu duale Problem:
max y1 − 23 y2
s.d y1 − 3y2 ≤ 2−y1 + 4y2 = 1−2y1 + 2y2 = 1/3
y1 , y2 ≥ 0
• optimale Lösungen sind x1 = 0, x2 = − 19 , x3 = − 5
9 , y1 = 19 , y2 = 5
18
• mit cT x = − 227 = yT b
15 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
16 / 1
lineares Produktionsmodell
• es sollen n Güter der Typen P1, P2, . . . , Pn produziert werden
• dazu werden die Rohstoffe R1, . . . , Rm verwendet
• die ökonomischen Produktionsparameter seien
aij = benötigte Menge von Ri zur Produktion einer Einheit von Pj
cj = Gewinn pro Einheit bei Produktion von Pj
bi = Anzahl Einheiten von Ri im Vorrat
• gesucht ist ein Produktionsplan, der den Gewinn maximiert
17 / 1
lineares Produktionsmodell
• der optimale Produktionsplan ergibt sich als Lösung des folgendenlinearen Programms:
max c1x1 + . . . + cnxn
s.d . a11x1 + . . . + a1nxn ≤ b1...
...am1x1 + . . . + amnxn ≤ bm
x1, . . . , xn ≥ 0
(7)
• was, wenn wir anstatt zu produzieren, den Vorrat an Rohstoffeverkaufen?
• welche Preise sollten die Rohstoffe mindestens erzielen?
18 / 1
lineares Produktionsmodell
• der Preis der Rohstoffe sollte mindestens so groß sein wie der bei ihrerVerarbeitung erzielte Gewinn
• dies lässt sich durch das folgende lineare Programm ausdrücken:
min b1y1 + . . . + bmym
s.d . a11y1 + . . . + am1ym ≥ c1...
...a1ny1 + . . . + amnym ≥ cn
y1, . . . , ym ≥ 0
(8)
• die beiden Programme (7) und (8) sind dual zueinander:
19 / 1
lineares Produktionsmodell• Problem (7) ist in Matrixschreibweise
max cT x»A−I
–x ≤
»b0
–• das dazu duale Problem ist
min bT yAT y − Iz = cy ≥ 0, z ≥ 0.
(9)
• wegen z ≥ 0 ist letzteres aber äquivalent mit (8):
min bT yAT y ≥ cy ≥ 0.
(10)
• die Preise y ∗1 , . . . , y ∗
m , die sich als Optimallösung von (8) ergeben, sinddie sog. Schattenpreise der Güter R1, . . . , Rm .
20 / 1
lineares Produktionsmodell
Interpretation des komplementären Schlupfes:
• xi > 0 =⇒ (yT A)i = ci :
• wird im Optimum das i -te Produkt produziert
• dann kann durch den Verkauf der Rohstoffe nicht mehr Gewinnerzielt werden.
• (yT A)i > ci =⇒ xi = 0:
• kann durch den Verkauf der Rohstoffe mehr Gewinn erzielt werden
• so sollte das i -te Produkt nicht produziert werden.
21 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
22 / 1
SimplexalgorithmusZur Erinnerung:
• wir betrachten ein lineares Optimierungsproblem der Form:
min cT xAx = bx ≥ 0
(11)
• das dazu duale lineare Programm ergibt sich als:
max bT yAT y ≤ c
(12)
• seien x primal und y dual zulässig
• nach der schwachen Dualität gilt cT x ≥ bT y
• nach der starken Dualität gilt cT x = bT y genau dann, wenn beideoptimal sind
23 / 1
Simplexalgorithmus
• es gilt eine der drei Alternativen:
• das Problem ist unzulässig ({x ≥ 0 | Ax = b} = ∅)• die Zielfunktion ist unbeschränkt (min cT x = −∞)
• das Optimum wird in einer Ecke angenommen
• Ecken entsprechen Basislösungen
• sei r = rg A und v ≥ 0
• v ist genau dann eine Ecke von P , wenn gilt:
• es existiert eine Indexmenge N mit |N | = n − r
• vj = 0 für alle j ∈ N ;
• die Teilmatrix AB der r Spalten A·j mit Index j /∈ N bildet eineSpalten-Basis von A (Basislösung)
• ABvB = b, A−1B b ≥ 0
24 / 1
Simplexalgorithmus
• zentrale Idee des Simplexalgorithmus:
• untersuche die Basislösungen der beiden Zulässigkeitsbereiche
P = {x ∈ Rn | Ax = b, x ≥ 0}P∗ = {y ∈ Rm | AT y ≤ c}
• wir nehmen oBdA an, dass A vollen Zeilenrang m = rg A hat
• sei B·∪ N = {1, . . . , n} eine Partition der Spaltenindices mit |B| = r
• die Partition der Indexmenge induziert eine Zerlegung des Problems
25 / 1
Simplexalgorithmus
• dann lässt sich das primale System schreiben als
min cTB xB + cT
N xN
ABxB + AN xN = bxB , xN ≥ 0
• wir nehmen weiter an, dass AB vollen Rang hat
• dann ist eine Lösung des Gleichungssystems gegeben durch:
x = (xB , xN ) mit xB = A−1B b xN = 0
• weiter ist x eine Ecke von P , falls zusätzlich xB = A−1B b ≥ 0
• in diesem Fall bildet AB eine zulässige Basislösung
• wir nennen die Indexmenge B dann auch selber eine Basis
26 / 1
Simplexalgorithmus
• entsprechend lässt sich das duale System schreiben als:
max bT y»AT
B
ATN
–y ≤
»cB
cN
–
• dann erfüllt y = (ATB )−1cB das erste Teilsystem
• weiter ist y zulässig für P∗, falls zusätzlich ATN y = AT
N (ATB )−1cB ≤ cN
• da rg A = rg AB , ist y dann auch Ecke von P∗
27 / 1
Simplexalgorithmus
• wir haben B die folgenden Kandidaten für Lösungen zugeordnet:
x ∈ Rn mit xB = A−1B b, xN = 0N .
y ∈ Rm mit y = (ATB )−1cB .
• es gilt:
(Z) x ∈ P ⇐⇒ xB ≥ 0B
(Z∗) y ∈ P∗ ⇐⇒ ATN y ≤ cN
• weiter gilt
cT x = cTB xB + cT
N xN = (ATB y)T xB = yT ABxB = yT b.
• wegen der starken Dualität sind x, y optimal, falls sie zulässig sind
• gesucht: eine Basis B so, dass sowohl x als auch y zulässig sind
28 / 1
Simplexalgorithmus
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• das Simplexaltableau• die primale Strategie• ein Beispiel
• Bemerkungen zum Simplexalgorithmus
• die revidierte Simplexmethode
• Sensitivitätsanalyse
• die primal-duale Methode
29 / 1
Das Simplextableau• traditionell wird in der Analyse des Simplexalgorithmus immer ein
Basiswechsel vorgenommen
• d.h. die Spaltenvektoren werden bzgl. der jeweiligen BasisAB dargestellt
• die Restriktion werden nicht dargestellt als:
Ax = ABxB + AN xN = b
• sondern in der Form:
A−1B Ax = IBx + AN xN = b mit AN = A−1
B AN , b = A−1B b
• mit anderen Worten: sei A = A−1B A
• dann erhalten wir eine äquivalente Formulierung des primalenProblems (11) in der Form
min cT x s.d. Ax = b, x ≥ 0
30 / 1
Das Simplextableau
• analog für das duale System
AT y =
»AT
B
ATN
–y ≤
»cB
cN
–= c
• sei y = (ATB )−1cB
• wir definieren die reduzierten Kosten c als den dualen Schlupf»cB
cN
–= c = c− AT y =
»cB
cN
–−
»AT
B
ATN
–(AT
B )−1cB =
»0B
cN − ATN (AT
B )−1cB
–
• dann haben wir cB = 0B
• und cN = cN − ATN (AT
B )−1cB = cN − ATN cB
31 / 1
Das Simplextableau• die ursprünglichen Zulässigkeitsbedingungen
(Z) x ∈ P ⇐⇒ xB ≥ 0B
(Z∗) y ∈ P∗ ⇐⇒ ATN y ≤ cN
• gehen dann über in :
(Z) xB = b ≥ 0
(Z∗) cTN = cT
N − cTB AN = cT
N − yT AN ≥ 0TN .
• erfüllt x die Bedingung (Z ), so ist x primal zulässig
• erfüllt y die Bedingung (Z ∗), so ist y dual zulässig
32 / 1
Das Simplextableau• wir setzen z = cT x,
• dann bedeutet der Basiswechsel:
• von den Ausgangsdaten
z = cT xb = Ax
←→»
0 cTB cT
Nb AB AN
–
• geht man über zu dem Koeffizientenschema»−z 0T
B cTN
b IB AN
–(13)
• hierbei istz = cT
B b = cT x = cTB A−1
B b = bT y
33 / 1
Das Simplextableau
• das Parameterschema (13) ist das Simplextableau bzgl. derIndexmenge B
• rechnerisch ist es einfach zu ermitteln:
• führe auf den Ausgangsdaten Pivotoperationen (elementareZeilenoperationen) aus,
• bis in den B-Spalten die Teilmatrix»0T
BIB
–erreicht ist.
• die reduzierten Kosten entsprechen der ersten Zeile des Tableaus
34 / 1
Das Simplextableau
man beachte:
• links oben steht der negative Zielfunktionswert bzgl. der geradebetrachteten Basisvektoren x und y
• in der Literatur wird das Simplextableau daher oft mit dennegativen Kostenkoeffizienten angegeben:»
0 −cTB −cT
Nb AB AN
–−→
»z 0T
B −cTN
b IB AN
–
35 / 1
Das Simplextableau
• die Variablen xi mit Index i ∈ B heißen Basisvariablen (bzgl. B)
• die xj mit j ∈ N sind die Nichtbasisvariablen
• bei einem Simplextableau gehen wir immer von einerProblemformulierung vom Typ (11) aus:
min cT xAx = bx ≥ 0
(14)
• insbesondere unterstellen wir automatisch, dass x nichtnegativ sein soll
36 / 1
Das Simplextableau
Idee des Simplexverfahrens:
• wir starten mit einer Basis gegeben durch die Indexmenge B
• sind die zugehörigen Basislösungen x, y primal und dual zulässig: stop
• andernfalls verändern wir B zu B ′ = B r i ∪ j und iterieren
• dabei versuchen wir, von einer Ecke zu einer Nachbarecke zu gehen
• und zwar so, dass die Zielfunktionswerte in den Ecken schwachmonoton steigen
37 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• das Simplexaltableau• die primale Strategie• ein Beispiel
• Bemerkungen zum Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
38 / 1
Die primale Strategie
• wir unterscheiden im wesentlichen zwei Strategien
primale Strategie:
• x ist stets primal zulässig
• das Verfahren stoppt, wenn y dual zulässig ist
duale Strategie:
• y ist stets dual zulässig
• das Verfahren stoppt, wenn x primal zulässig ist
• wir werden diese beiden Strategien im folgenden beschreiben
39 / 1
Die primale Strategie
• wir nehmen an, wir hätten (irgendwie) eine Basis B gefunden derart,dass das zugehörige Simplextableau primal zulässig ist,
• d.h.b = A−1
B b = xB ≥ 0B .
• sei Aj der j te Spaltenvektor von A
• falls gilt:c j = cT
B Aj = cTB A−1
B Aj ≥ 0 für alle j ∈ N
• so ist y dual zulässig
• und wir haben eine Optimallösung gefunden
40 / 1
Die primale Strategie
• sei also c j < 0 für ein j ∈ N
• der einfachen Notation wegen nehmen wir an, wir hätten die Indices soumnumeriert, dass gilt:
B = {1, . . . , m}
• das Simplextableau sieht dann wie folgt aus:
41 / 1
Die primale Strategie26666666666666664
−z 0 0 . . . 0 . . . 0 cm+1 cm+2 . . . c j . . . cn
b1 1 0 . . . 0 . . . 0 a1,m+1 a1,m+2 . . . a1j . . . a1n
b2 0 1 . . . 0 . . . 0 a2,m+1 a2,m+2 . . . a2j . . . a2n...
. . .. . . 0
. . ....
. . . . . .. . .
...bk 0 · · · 0 1 · · · 0 ak ,m+1 ak ,m+2 . . . akj . . . akn...
. . .. . .
. . ....
. . .. . .
. . ....
bm 0 · · · 0 0. . . 1 am,m+1 am,m+2 · · · amj · · · amn
37777777777777775
• es ist x j = 0
• wir wollen x j erhöhen, da dadurch der Zielfunktionswert sinkt
• als Ausgleich müssen wir die Basisvariablen verändern
• wir unterscheiden die Fälle Aj ≤ 0 und Aj � 0
42 / 1
Die primale Strategie26666666666666664
−z 0 0 . . . 0 . . . 0 cm+1 cm+2 . . . c j . . . cn
b1 1 0 . . . 0 . . . 0 a1,m+1 a1,m+2 . . . a1j . . . a1n
b2 0 1 . . . 0 . . . 0 a2,m+1 a2,m+2 . . . a2j . . . a2n...
. . .. . . 0
. . ....
. . . . . .. . .
...bk 0 · · · 0 1 · · · 0 ak ,m+1 ak ,m+2 . . . akj . . . akn...
. . .. . .
. . ....
. . .. . .
. . ....
bm 0 · · · 0 0. . . 1 am,m+1 am,m+2 · · · amj · · · amn
37777777777777775
• ist Aj ≤ 0, so können wir
• xj beliebig erhöhen• die Basisvariablen zum Ausgleich ebenfalls erhöhen
• den Zielfunktionswert beliebig klein machen
43 / 1
Die primale Strategie26666666666666664
−z 0 0 . . . 0 . . . 0 cm+1 cm+2 . . . c j . . . cn
b1 1 0 . . . 0 . . . 0 a1,m+1 a1,m+2 . . . a1j . . . a1n
b2 0 1 . . . 0 . . . 0 a2,m+1 a2,m+2 . . . a2j . . . a2n...
. . .. . . 0
. . ....
. . . . . .. . .
...bk 0 · · · 0 1 · · · 0 ak ,m+1 ak ,m+2 . . . akj . . . akn...
. . .. . .
. . ....
. . .. . .
. . ....
bm 0 · · · 0 0. . . 1 am,m+1 am,m+2 · · · amj · · · amn
37777777777777775
• andernfalls: es existieren i mit aij > 0:
• wenn wir x j erhöhen,• müssen wir x i um aij x j senken
• bis die erste dieser Variablen auf Null gefallen ist
44 / 1
Die primale Strategie• ist Aj ≤ 0, so können wir
• xj beliebig erhöhen• die Basisvariablen zum Ausgleich ebenfalls erhöhen
• den Zielfunktionswert beliebig klein machen
• andernfalls: es existieren i mit aij > 0:
• wenn wir x j erhöhen,• müssen wir x i um aij x j senken
• bis die erste dieser Variablen auf Null gefallen ist
• d.h. wir suchen einen Koeffizienten akj > 0 mit der Eigenschaft
bk
akj= min
i
b i
aij| aij > 0
ff(15)
• das nach (15) bestimmte Element akj heißt Pivotelement45 / 1
Die primale Strategie
Lemma 4Sei B primal zulässig.
(i) Ist Aj ≤ 0, dann ist das Problem (11) unbeschränkt.
(ii) Wird andernfalls der Index k gemäß der Pivotregel (15) definiert,dann ist B ′ = (B ∪ {j}) \ {k} primal zulässig.
Beweis:
(i) im Fall Aj ≤ 0 betrachten wir ein beliebiges λ > 0 und setzen
x ′j = λ
x ′i = b i − aij λ (i ∈ B)
x ′` = 0 (` ∈ N \ {j}).
• dann ist x′ ∈ Rn wieder primal zulässig
46 / 1
Die primale Strategie
x ′j = λ
x ′i = b i − aij λ (i ∈ B)
x ′` = 0 (` ∈ N \ {j}).
• der Zielfunktionswert ist
cT x′ = cTB b− cT
B Aj λ + cj λ = cTB b + c j λ → −∞ (wenn λ→ +∞).
(ii) führe elementare Zeilenoperationen auf dem Simplextableau so aus,
• dass die j te Spalte in den k ten Einheitsvektor überführt wird
• alle Spalten bzgl. B \ {k} bleiben dann Einheitsvektoren und dieFortschreibung von b ergibt
b′k = bk /akj ≥ 0
b′i = b i − aij bk /akj ≥ 0 .
47 / 1
Die primale Strategie
Simplexalgorithmus
(1) bestimme eine primal zulässige Basis B
(2) sind alle reduzierten Kosten cj , j ∈ N nichtnegativ:
(3) dann ist eine Optimallösung gefunden mit
xB = b und xN = 0N .
(4) andernfalls wähle j ∈ N mit cj < 0
(5) ist Aj ≤ 0: stop (das Problem ist unbeschränkt)
(6) andernfalls berechne gemäß (15) eine neue Basis B und gehe zu (2)
48 / 1
Die primale Strategie
An dieser Stelle bleiben noch zwei Fragen offen:
1. wie findet man anfänglich eine primal zulässige Basis?
2. terminiert die primale Strategie nach endlich vielen Iterationen?
Bevor die Fragen beantworten, ein Beispiel und einige Bemerkungen zum Sim-plexverfahren.
49 / 1
Simplexalgorithmus
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• das Simplexaltableau• die primale Strategie• ein Beispiel
• Bemerkungen zum Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
50 / 1
Beispiel
Beispiel:Wir betrachten das Problem
min −x1 −2x216 x1 + 2
3 x2 ≤ 100x1 +x2 ≤ 300x1 ≤ 240
x2 ≤ 120x1 ≥ 0, x2 ≥ 0
x
x240120
120
60
100
200 1
2
51 / 1
Beispiel
Nach Einführen von Schlupvariabeln lautet es:
min −x1 −2x216 x1 + 2
3 x2 +x3 = 100x1 +x2 +x4 = 300x1 +x5 = 240
x2 +x6 = 120x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
• wir stellen das Problem weiterhin im Raum der ursprünglichen Variablendar
• zu leichteren Lesbarkeit erweitern wir die Tableaus um eine Zeile mitden Variablennamen
• offensichtlich ist die Basis B = {3, 4, 5, 6} eine zulässige Basislösung
52 / 1
Beispiel
min −x1 −2x216 x1 + 2
3 x2 +x3 = 100x1 +x2 +x4 = 300x1 +x5 = 240
x2 +x6 = 120x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
mit der Basis B = {3, 4, 5, 6} hat das Tableau folgende Form:
2666666664
0 0 0 0 0 −1 −2
100 1 0 0 0 16
23
300 0 1 0 0 1 1240 0 0 1 0 1 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775
53 / 1
Beispiel2666666664
0 0 0 0 0 −1 −2
100 1 0 0 0 16
23
300 0 1 0 0 1 1240 0 0 1 0 1 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775die Basislösung entspricht der Ecke (0, 0) in den ursprünglichen Variablen
x
x240120
120
60
100
200 1
2
54 / 1
Beispiel2666666664
0 0 0 0 0 −1 −2
100 1 0 0 0 16
23
300 0 1 0 0 1 1240 0 0 1 0 1 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775• wir wählen z.B. die letzte Spalte als Pivotspalte
• nach Regel (15) ist min {100)/ 23 , 300/1, 120/1} = 120
• damit ist die 4. Zeile die Pivotzeile
• wir führen Zeilenoperationen aus, die die 2. Spalte in den Einheitsvektore4 überführen:
55 / 1
Beispiel
Mit der Basis B = {3, 4, 5, 6} hat das Tableau folgende Form:2666666664
0 0 0 0 0 −1 −2
100 1 0 0 0 16
23
300 0 1 0 0 1 1240 0 0 1 0 1 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
37777777752666666664
240 0 0 0 2 −1 0
20 1 0 0 − 23
16 0
180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775
56 / 1
Beispiel2666666664
240 0 0 0 2 −1 0
20 1 0 0 − 23
16 0
180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1z x3 x4 x5 x6 x1 x2
3777777775• die Basis besteht jetzt aus 3, 4, 5, 2
• es ist x1 = 0, x2 = 120, z = −240x
x240120
120
60
100
200 1
2
57 / 1
Beispiel2666666664
240 0 0 0 2 −1 0
20 1 0 0 − 23
16 0
180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775• Spalte 5 ist jetzt die eindeutige Pivotspalte
• ebenfalls eindeutig ist die Pivotzeile2666666664
240 0 0 0 2 −1 0
20 1 0 0 − 23
16 0
180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
377777777558 / 1
Beispiel2666666664
240 0 0 0 2 −1 0
20 1 0 0 − 23
16 0
180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775das neue Tableau lautet:2666666664
360 6 0 0 −2 0 0
120 6 0 0 −4 1 060 −6 1 0 3 0 0
120 −6 0 1 4 0 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775
59 / 1
Beispiel2666666664
360 6 0 0 −2 0 0
120 6 0 0 −4 1 060 −6 1 0 3 0 0
120 −6 0 1 4 0 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775• die Basis besteht jetzt aus 1, 2, 4, 5
• es ist x1 = 120, x2 = 120, z = −360
x
x240120
120
60
100
200 1
2
60 / 1
Beispiel2666666664
360 6 0 0 −2 0 0
120 6 0 0 −4 1 060 −6 1 0 3 0 0
120 −6 0 1 4 0 0120 0 0 0 1 0 1
z x3 x4 x5 x6 x1 x2
3777777775Das neue Tableau lautet:
2666666664
400 2 23 0 0 0 0
200 −2 43 0 0 1 0
20 −2 13 0 1 0 0
40 2 − 43 1 0 0 0
100 −2 13 0 0 0 1
z x3 x4 x5 x6 x1 x2
3777777775
61 / 1
Beispiel2666666664
400 2 23 0 0 0 0
200 −2 43 0 0 1 0
20 −2 13 0 1 0 0
40 2 − 43 1 0 0 0
100 −2 13 0 0 0 1
z x3 x4 x5 x6 x1 x2
3777777775• die Basis besteht aus 1, 2, 5, 6 und ist optimal
• es ist x1 = 200, x2 = 100, z = −400
x
x240120
120
60
100
200 1
2
62 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• das Simplexaltableau• die primale Strategie• ein Beispiel
• Bemerkungen zum Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
63 / 1
BemerkungenBemerkung 1:
• falls c j < 0 für mehrere j ∈ N , so haben wir noch Wahlfreiheit
• dies führt zu verschiedenen Pivotregeln:
• wähle j ∈ N mit cj minimal (steilster Abstieg)• wähle j ∈ N mit größter Änderung der Zielfunktion (größter
Fortschritt)• wähle j ∈ N mit j minimal
• …
• ebenso kann es bei der Wahl des die Basis verlassenden ElementsFreiheiten geben
• es ist keine Regel bekannt, die in solchen Fällen (mathematischbeweisbar) immer „die beste Wahl“ trifft.
64 / 1
BemerkungenBemerkung 2:
• seien B und B ′ zwei primal zulässige Basislösungen
• B und B ′ sind benachbart, falls B ′ = B r k ∪ j
• damit erzeugt der Simplexalgorithmus eine Folge von jeweilsbenachbarten Basislösungen
• zwischen je zwei benachbarten Basislösungen fällt derZielfunktionswert schwach
• dabei kann es passieren, dass
• die zu benachbarten Basislösungen gehörigen Ecken identischsind
• eine Folge von Ecken zyklisch durchlaufen wird
• in beiden Fällen könnte das Verfahren im Kreis laufen
• und nicht terminieren
65 / 1
BemerkungenBemerkung 3:
• sei B jetzt nicht primal sondern dual zulässige Basislösungen
• dann können wir die primale Simplexstrategie auf dem dualenProgramm ausführen
• die Vorgehensweise jedoch auf dem primalen Simplextableauinterpretieren
• dies führt zur dualen Simplexstrategie
• es ergeben sich die analogen Aussagen
• die reduzierten Kosten c` sind alle nichtnegativ
• ist B nicht optimal, so existiert ein bk < 0
• wir wählen die Spalte j (und folglich das Pivotelement akj < 0) nachder Pivotregel
c j
akj= max
`
c`
ak`| ak` < 0
ff(16)
66 / 1
Bemerkungen
Lemma 5
(i) Gilt ak` ≥ 0 für ` = 1, . . . , n, dann besitzt Problem (11) keinezulässige Lösung.
(ii) Ist der Index j gemäß der Pivotregel (16) bestimmt, dann istB ′ = (B ∪ {j}) \ {k} dual zulässig.
Beweis:
(i) eine zulässige Lösung x1, . . . , xn ist nichtnegativ,
• also hätte man im Fall ak` ≥ 0:
0 > bk =nX
`=1
ak`x` ≥ 0,
was nicht sein kann.
67 / 1
Bemerkungen(ii) sei nun akj gemäß (16) gewählt
• wir datieren das Simplextableau wieder so auf, dass die j te Spalte zumj ten Einheitsvektor wird,
• dann ergibt sich die erste Zeile des aufdatieren Tableaus so:
• subtrahiere c j mal die neue Zeile k vom reduziertenKostenvektor cT ≥ 0T .
• der Koeffizient in Spalte ` ist also
c ′` = c` − c j ak`/akj ≥ 0.
68 / 1
BemerkungenBemerkung 4:
• die duale Strategie kann wie folgt hilfreich sein:
• sei B eine optimale Basislösungen für ein lineares Programm
max cT xAx ≤ b
• wir fügen eine weitere Ungleichung hinzu
max cT xAx ≤ bdx ≤ t
• dann bleibt B dual, aber nicht primal zulässig
• und wir können mit B dual weiteriterieren
• diese Situation tritt u.a. bei Verfahren der ganzzahligen Optimierung auf
69 / 1
BemerkungenBemerkung 5:
• es ist nicht notwendig, immer das gesamte Simplextableau zuberechnen
• zu der Basis B ⊆ {1, . . . , n} kann man immer die notwendigeInformation direkt aus den Ausgangsparametern gewinnen:
• berechne b = A−1B b als Lösung der Gleichung ABx′ = b.
• berechne yT = cTB A−1
B als Lösung der Gleichung ATB y′ = cB .
• dann ergeben sich die reduzierten Kosten als
c j < 0 ⇐⇒ cj − yT Aj < 0 d.h. cj <
mXi=1
yi aij .
70 / 1
Bemerkungen
• die j -te Spalte Aj ergibt sich dann als Aj = A−1B Aj
• damit kann z.B. bei der primalen Strategie ein Pivotelement akj nachder Regel (15) bestimmt werden
• und der Basiswechsel vorgenommen werden
B → B ′ = (B ∪ {j}) \ {k}
• hierbei kann die Basisinverse A−1B′ leicht fortgeschrieben werden
• diese kompakte Version der Simplexmethode ist als revidierteSimplexmethode bekannt
• wir wenden uns jetzt der Frage zu, wie wir eine primal-zulässigeStartbasis bestimmen
• dies geschieht in einem vorgelagerten Schritt, der Phase I heißt
71 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
72 / 1
Phase 1• wir betrachten das System
Ax = bx ≥ 0 (17)
• gesucht ist eine Basis B derart, dass xB = A−1B b ≥ 0
• wir können b ≥ 0 annehmen (ansonsten multipliziere mit (−1))
• wir betrachten das erweiterte lineare Programm
minPm
i=1 zi
Iz + Ax = bx ≥ 0, z ≥ 0
(18)
• (18) hat die Teilmatrix I als primal zulässige Basislösung
• damit können wir das Simplexverfahren für (18) durchführen
73 / 1
Phase 1Ax = bx ≥ 0 (17)
minPm
i=1 zi
Iz + Ax = bx ≥ 0, z ≥ 0
(18)
• (17) besitzt genau dann eine zulässige Lösung, wenn (18) eineOptimallösung (x, z) mit Zielfunktionswert 0 besitzt, d.h.
z1 = . . . = zm = 0
• die Basis B einer solchen Optimallösung ergibt b als nichtnegativeLinearkombination von linear unabhängigen Spalten von A
• diese können folglich zu einer zulässigen Spaltenbasis AB vonA erweitert werden
• damit ist das gesuchte B gefunden (sofern (17) überhaupt lösbar ist).
74 / 1
Phase 1
• wir haben geklärt, wie wir eine primal-zulässige Basislösung finden
• es bleibt zu zeigen, dass das Verfahren terminiert
• insbesondere müssen wir das Zykeln vermeiden
• wir betrachten dazu die primale Strategie
• und verwenden eine modifizierte Pivotregel
• (für die duale Strategie gelten analoge Aussagen)
75 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
76 / 1
Endlichkeit
• wir starten mit einer primal-zulässigen Basislösung B
• wir nehmen am, dass B aus den ersten m Koordinaten besteht
• dann sieht das Tableau wie folgt aus:26666666666666664
−z 0 0 . . . 0 . . . 0 cm+1 cm+2 . . . c j . . . cn
b1 1 0 . . . 0 . . . 0 a1,m+1 a1,m+2 . . . a1j . . . a1n
b2 0 1 . . . 0 . . . 0 a2,m+1 a2,m+2 . . . a2j . . . a2n...
. . .. . . 0
. . ....
. . . . . .. . .
...bk 0 · · · 0 1 · · · 0 ak ,m+1 ak ,m+2 . . . akj . . . akn...
. . .. . .
. . ....
. . .. . .
. . ....
bm 0 · · · 0 0. . . 1 am,m+1 am,m+2 · · · amj · · · amn
37777777777777775
77 / 1
Endlichkeit• sei
αi = (b i , ai1, . . . , aim) (i = 0, 1, . . . , m)
• d.h. in jeder Iteration besteht αi aus b i und den ersten m Einträgender i -ten Zeile des Simplextableaus
• zu Beginn ist also (mit b0 = −z = b1 + . . . + bm):
26664α0
α1...
αm
37775 =
26664b0 0 . . . 0b1 1 . . . 0...
.... . .
...bm 0 . . . 1
37775
• die Vektoren α1, . . . , αm sind am Anfang linear unabhängig
• sie bleiben auch nach jedem Pivotschritt linear unabhängig
78 / 1
Endlichkeit
• ein Vektor x heißt lexikographisch positiv, wenn die kleinsteKoordinate 6= 0 positiv ist
• z.B. sind die Vektoren α1, . . . , αm alle lexikographisch positiv
• y ist lexikgraphisch größer als x, wenn der Differenzvektory − x lexikographisch positiv ist
• für je zwei Vektoren x und y gilt somit:
• x ist lexikographisch größer als y oder• y ist lexikographisch größer als x oder
• x = y
79 / 1
Endlichkeit
• die lexikographische (primale) Pivotregel bestimmt dasPivotelement akj in der Spalte j des Simplextableaus nun so, dass
αk
akj= lex-min
αi
aij| aij > 0
ff(19)
• d.h. wir wählen die Pivotzeile so, dass der Vektor 1akj
αk lexikographischminimal ist
• da dann insbesondere die erste Komponente minimal ist, verschärft(19) die alte Regel
bk
akj= min
i
b i
aij| aij > 0
ff(15)
• der Index k ist eindeutig, da andernfalls die lineare Unabhängigkeit derαi verletzt wäre
80 / 1
EndlichkeitBeispiel:wir betrachten das folgende Tableau:266664
12 3 4 −2 0 0 010 20 86 2 1 0 0
100 9 12 1 0 1 050 100 50 10 0 0 1z x3 x4 x5 x1 x2 x6
377775
• die Pivotspalte ist eindeutig: j = 3
• als Pivotzeilen kommen i = 1 und i = 3 in Frage
• für die Vektoren 1aij
αi folgt:
• 1a13
α1 = (5, 10, 43, 1)
• 1a33
α3 = (5, 10, 5, 1)
• nach der lexikographischen Regel wird Zeile 3 als Pivotzeile gewählt
81 / 1
Endlichkeit
Lemma 6Sind α1, . . . , αm lexikographisch positiv, dann auch die entsprechendenα′
1, . . . , α′m nach dem Pivotieren gemäß (19).
Beweis:
• Division durch eine positive Zahl erhält die lexikographische Positivität
• also ist α′k = αk /akj lexikographisch positiv
• für i 6= k und aij ≤ 0 ist α′i lexikographisch positiv, da
α′i = αi −
aij
akjαk
• für i 6= k und aij > 0 folgt die Aussage aus
α′i = aij
„αi
aij− αk
akj
«
82 / 1
Endlichkeit
Satz 7Bei Anwendung der lexikographischen Pivotregel wird keine Basis wiederholt.Damit ist die Anzahl der Iterationen endlich.
Beweis:
• der reduzierte Kostenkoeffizient c j ist negativ und αk lexikographischpositiv
• der erste Vektor α′0 ergibt sich als:
α′0 = α0 − c j αk
• daher ist α′0 lexikographisch (echt) größer als α0
• damit sind alle Vektoren α0 voneinander verschieden
• da das Tableau eindeutig von der Basis bestimmt wird, müssen auchalle Basen voneinander verschieden sein.
83 / 1
Endlichkeit
Zwischenfazit:
• in der Phase 1 stellen wir entweder fest, dass das lineare Programm(11) keine zulässige Lösung besitzt,
• oder wir können (z.B. mit der lexikographischen Regel) eine zulässigeBasis B berechnen.
• haben wir B, dann können wir nun das Simplextableau zurtatsächlichen Zielfunktion aufstellen und weiterrechnen
• um Endlichkeit zu garantieren, kann man wieder die lexikographischeRegel verwenden (nun relativ zur Startbasis B und nicht mehr zu I).
• damit ergibt sich:
84 / 1
Endlichkeit
Satz 8Ein lineares Programm ist entweder unzulässig oder unbeschränkt oderbesitzt eine (optimale) Basis, die primal und dual zulässig ist.
Beweis: Wenn der Simplexalgorithmus stoppt, ist genau eine der im Satz be-
haupteten Eigenschaften nachgewiesen.
85 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
86 / 1
Sensitivitätsanalyse• sei B eine primal zulässige Basis für das lineare System
Ax = b, x ≥ 0
• für welche Zielfunktionsparameter c ∈ Rn ist die zu B gehörigeBasislösung x optimal?
• wir wissen: B ist optimal, wenn die reduzierten Kosten nichtnegativsind:
cTN = cT
N − cTB A−1
B AN ≥ 0TN bzw. (A−1
B AN )T cB − IN cN ≤ 0N .
• die dieser Ungleichung genügenden c sind genau die Elemente despolyedrischen Kegels
P([A−1B AN )T | − IN ], 0).
• d.h. für alle c, die in diesem Kegel liegen, bleibt B optimal.
87 / 1
Sensitivitätsanalyse
• ist B dual zulässig bzgl. der festen Zielfunktionsparameter c, so stelltsich dual die Frage:’
• für welche Restriktionsparameter b ∈ Rm ist die zu B gehörigeBasislösung x optimal?
• nach der primalen Zulässigkeit von b = A−1B b ≥ 0.
• wieder erhalten wir einen polyedrischen Kegel:
P(−A−1B , 0).
• d.h. für alle b, die in diesem Kegel liegen, bleibt B optimal.
88 / 1
Die Simplexmethode
Gliederung
• LP-Dualität
• ein lineares Produktionsmodell
• der Simplexalgorithmus
• Phase I
• Endlichkeit des Simplexalgorithmus
• Sensitivitätsanalyse
• die primal-duale Methode
89 / 1
Die primal-duale Methode• wir betrachten wieder das folgende Paar dualer linearer Programme:
min cT xAx = bx ≥ 0
←→max bT y
AT y ≤ c
• wir wollen jetzt das Konzept des komplementären Schlupfes ausnutzen
Idee des Verfahrens:
Wir erzeugen eine Folge (xi , yi ) von Vektoren, für die gilt:
• xi ≥ 0
• yi ist dual zulässig
• xi und yi erfüllen die Komplementarität
• xi ist primal zulässig oder byi > byi−1
d.h. entweder sind (xi , yi ) optimal oder wir verbessern die duale Lösung
90 / 1
Die primal-duale Methode
• Annahme: wir kennen eine dual zulässige Lösung y und einen Vektorx ≥ 0 mit der Eigenschaft
xj > 0 =⇒ yT Aj = cj (j = 1, . . . , n).
• z.B. hat x = 0 trivialerweise diese Eigenschaft
• sei oBdA b ≥ 0
• ist b = 0, so ist x = 0 optimal
• wir nehmen daherPm
i=1 bi > 0 an
• sei A die Teilmatrix aller Spalten Aj von A mit der Eigenschaft
yT Aj = cj
• wir betrachten das folgende lineare Optimierungsproblem
min 1T zAu + Iz = b
u, z ≥ 0(20)
91 / 1
Die primal-duale Methode
min 1T zAu + Iz = b
u, z ≥ 0(20)
mit yT Aj = cj für jede Spalten Aj von A
• offensichtlich ist I eine primal zulässige Anfangsbasis für Problem (20)
• es kann somit mit der primalen Strategie gelöst werden
• sei (u∗, z∗) eine Optimallösung
• falls ζ∗ = 1T z∗ = 0, so gilt für x = (u∗, z∗) = (u∗, 0):
• x, y erfüllen die komplementären Schlupfbedingungen• x ist primal zulässig für das Ausgangsproblem
• x, y sind folglich optimal
92 / 1
Die primal-duale Methode• ist ζ∗ > 0, so sei w eine dual optimale Lösung von (20)
• diese erfülltζ∗ = bT w und AT w ≤ 0, w ≤ 1.
• für jede Spalte A` von A, die nicht zu A gehört, gilt:
AT` y < c`
• also erfüllt der Vektor y′ = y + εw die duale Zulässigkeitsbedingung
AT y′ ≤ c für ein genügend kleines ε > 0,
• aber liefert einen besseren Zielfunktionswert als y:
bT y′ = bT y + εbT w = bT y + εζ∗ > bT y.
• wir können nun in gleicher Weise mit y′ anstelle von y verfahren.
93 / 1
top related