1 Vorlesung Lineare Optimierung (Sommersemester 2009) Kapitel 7: Der Simplex-Algorithmus Volker Kaibel Otto-von-Guericke Universität Magdeburg (Version vom 18. Juni 2009) Gliederung 2 Ecken, Kanten, Extremalstrahlen Geometrische Beschreibung des Simplex-Algorithmus Algebraische Beschreibung des Simplex-Algorithmus Pivot-Regeln und Komplexität Der Simplex-Algorithmus im Gleichungsformat Der revidierte Simplex-Algorithmus Pivotisieren in Tableaus/Dictionaries Der duale Simplex-Algorithmus
Das Bild 3 [Bild: Marc Pfetsch, TU Braunschweig] Ecken 4 Erinnerung Ein Polyeder P heißt spitz, wenn lineal(p) = {O} ist. Ecken sind die minimalen Seiten eines spitzen Polyeders. Spitze Polyeder sind nicht-leer. Die Ecken eines Polyeders P sind seine null-dimensionalen (d.h. einpunktigen) Seitenflächen. Ist {v} eine Ecke von P, so nennen wir auch den Punkt v eine Ecke von P. spitz nicht spitz
Ecken und Lineare Optimierung 5 Folgerungen Sind P (A, b) spitz und (LP) max{ c, x : Ax b, x R n } nicht unbeschränkt, so nimmt (LP) sein Optimum in einer Ecke von P (A, b) an (Bem.6.4 und Kor. 6.31). (Eine solche optimale Ecke kann mit polynomialen Algorithmen für lineare Optimierungsprobleme in polynomialer Zeit bestimmt werden.) Ist P R n + ein Polyeder, so ist P spitz oder P =. Jedes lineare Optimierungsproblem kann in die Form gebracht werden. max{ c, x : Cx d, x R n +} Charakterisierungen von Ecken 6 Satz 7.1 Für A R m n, b R m und v P (A, b) sind folgende Aussagen paarweise äquivalent (mit Eq(v) = {i [m] : A i,, v = b i }): 1. v ist eine Ecke von P (A, b). 2. {v} = {x P (A, b) : A Eq(v), x = b Eq(v) } 3. {v} = {x R n : A Eq(v), x = b Eq(v) } 4. rang(a Eq(v), ) = n 5. Für alle x, y P (A, b) \ {v} gilt v conv{x, y}.
Eindimensionale Seiten spitzer Polyeder 7 Definition 7.2 Eine eindimensionale Seite F eines spitzen Polyeders P heißt eine Kante von P, wenn F beschränkt ist, und ein Extremalstrahl von P, wenn F unbeschränkt ist. Bemerkung 7.3 Sei P R n ein spitzes Polyeder. 1. Zu einer Kante E von P gibt es genau zwei Ecken v und w von P mit E = conv {v, w}; v und w heißen dann Nachbarn voneinander. 2. Zu einem Extremalstrahl R von P gibt es genau eine Ecke v von P und ein y char(p) \ {O} mit R = v + cone(y). Extremalstrahlen von polyedrischen Kegeln 8 Bemerkung 7.4 Ist K R n ein spitzer polyedrischer Kegel, so ist O n die einzige Ecke von K. Sind y (1),..., y (r) R n \ {O n } so, dass cone(y (1) ),...,cone(y (r) ) die Extremalstrahlen von K sind, so ist K = ccone{y (1),..., y (r) }. (Die Extremalstrahlen sind die minimalen echten Seiten von K.)
Der Radialkegel einer Ecke 9 Satz 7.5 Seien A R m n, b R m und v eine Ecke von P = P (A, b). Dann gelten für K v (P) = cone (P v) und N v (P) = (K v (P)) : 1. K v (P) = {y R n : A Eq(v), y O Eq(v) } 2. Sind w (1),..., w (s) P die Nachbarn von v in P und v + cone(y (1) ),..., v + cone(y (t) ) die Extremalstrahlen von P, deren Ecke v ist (mit y (1),... y (t) R n \ {O n }), so sind cone (w (1) v),..., cone (w (s) v), cone (y (1) ),..., cone (y (t) ) die Extremalstrahlen von K v (P). Insbesondere ist dann { N v (P) = z R n : z, w (i) z, v für alle i [s], } z, y (i) 0 für alle i [t]. Beispiel 10
In einer Ecke 11 Korollar 7.6 Für alle v P (A, b) und c R n gilt: v ist genau dann Optimallösung von max{ c, x : Ax b, x R n }, wenn c ccone{a i, : i Eq(v)} ist. Korollar 7.7 (Mit den Notationen aus Satz 7.5) Ist c R n, so gilt für (LP) max{ c, x : Ax b, x R n } wenigstens eine der drei Aussagen: 1. v ist Optimallösung von (LP). 2. Es gibt einen Nachbarn w (i) (i [s]) von v mit c, v < c, w (i). 3. Es gibt ein y (i) (i [t]) mit c, y (i) > 0 (also ist (LP) unbeschränkt). Der Simplex-Algorithmus (geometrisch) Eingabe: A Q m n, b Q m, c Q n, P = P (A, b) Ausgabe: Eine Optimallösung von (LP) max{ c, x : Ax b, x R n } oder die Feststellung, dass (LP) unbeschränkt ist. Annahme: Wir kennen eine Ecke v von P 12 1. Finde ein y R n \ {O n }, so dass cone (y) Extremalstrahl von K v (P) ist mit c, y > 0 (Fall A) oder stelle fest, dass kein solches y existiert (Fall B). 2. Fall B: STOP ( v ist eine Optimallösung von (LP) ) 3. Fall A: Falls Ay Om (also v + cone(y) Extremalstrahl von P): STOP ( (LP) unbeschränkt ) Sonst: w = v + max{λ R+ : v + λy P (A, b)} Nachbar von v mit c, v < c, w (es gilt cone(y) = cone(w v)) Setze v w und gehe zu Schritt 1. (Endet, weil P endlich viele Ecken hat.)
Bemerkungen und Fragen 13 Wie führt man Schritt 1 algebraisch aus? Welchen Extremalstrahl wählt man in Schritt 1, wenn mehrere in Frage kommen? (II) Wie findet man eine Startecke? Originalproblem: (LP) max{ c, x : Ax b} Transformation in: (LP ) max{ f, z : Bz d, z O} (mit B Q m n, d Q m, f Q n ) Hilfsproblem: (AUX) max{ 1 m, s : Bz + s d, z O n, s O m } Definiere s (start) Q m via s (start) i := min{d i, 0} (i [m]) (O n, s (start) ) ist Ecke des für (AUX) zulässigen Polyeders. Simplex-Algorithmus optimale Ecke (z, s ) für (AUX). Falls s O m : (LP )/(LP) unzulässig Sonst: z Startecke für Simplex-Algorithmus für (LP ) (I) Spitze Kegel Sei A R p n so, dass K = {y R n : Ay O p } spitz ist (also rang(a) = n). Sei I [p] ( I = n) so, dass A I, regulär ist (I U-Basis) K(I ) := {y R n : A I, y O I } ist spitz mit K K(I ). Simplizialer Relaxationskegel 14 Satz von Carathéodory (Satz 2.31) Wenn c K = ccone{a 1,,... A p, }, dann gibt es I [p] mit {A i, : i I } linear unabhängig und c ccone{a i, : i I } (also c ( K(I ) ) für ein I I ).
15 Spitze Kegel Satz 6.27 impliziert für y R n : cone(y) ist genau dann Extremalstrahl von K(I ), wenn A I, y = αe i für ein i I und α > 0 ist. Mit y (i) = A 1 I, e i (für i I ) sind also cone (y (i) ) (i I ) die Extremalstrahlen von K(I ) ( y (i) ist Spalte i von A 1 I, ) Falls c, y (i) 0 für alle i I ( optimal ): c, y 0 für alle y K K(I ) Sonst wähle i aus I mit c, y (i aus) > 0. Setze I > := {i [p] : A i,, y (i aus) > 0} [p] \ I Falls I > = ( verbessernde Richtung ): cone(y (i aus) ) ist Extremalstrahl von K mit c, y (i aus) > 0 Sonst wähle i ein I > und setze I neu := I \ {i aus } {i ein }. A Ineu, ist regulär (A I \{iaus }, y (i aus) = O, A iein,, y (i aus) 0). 16 Bland s Regel Lemma 7.8 Sei I (0), I (1),..., I (s) eine gemäß der Regeln auf der vorigen Folie erzeugte Folge von U-Basen I (σ) [p], wobei für jedes σ {0, 1,..., s 1} mit I = I (σ) gelte: i aus = min{i I : c, y (i) > 0} (1) i ein = min(i > ) (2) I (σ + 1) = I neu Dann sind die U-Basen I (0), I (1),..., I (s) von [p] paarweise verschieden. Insbesondere: s ( p n) (beschränkt in p und n). Bemerkung 7.9 Bland s Regel (die Auswahlregeln (1) und (2)) sind eine Antwort auf Fragen (I) und (II).
Der Simplex-Algorithmus (algebraisch) Ecke v von P = P (A, b) und I Eq(v) mit A I, regulär (I ist eine U-Basis von v) (K v (P) = {y R n : A Eq(v), y O Eq(v) }) 17 1. Berechne y (i) = A 1 I, e i (für alle i I ) 2. Falls c, y (i) 0 für alle i I : STOP ( v Optimallösung ) 3. Sonst wähle i aus {i I : c, y (i) > 0}. (W-aus) 4. Berechne I > = {i Eq(v) : A i,, y (iaus) > 0} Eq(v) \ I. 5. Falls I > : Wähle iein I >. (W-ein) Setze I I \ {iaus } {i ein } und gehe zu 1. 6. Sonst (y (iaus) K v (P) mit c, y (iaus) > 0): Berechne I > rest = {i [m] \ Eq(v) : A i,, y (iaus) > 0} Falls I > rest = (y (iaus) char(p)): STOP ( unbeschränkt ) Sonst berechne λi = b i A i,,v > A i, > 0 (für alle i I,y (iaus) rest) Wähle iein I rest > mit λ iein = min{λ i : i I rest}. > Ersetze v v + λiein y (iaus) und I I \ {i aus } {i ein }, gehe zu 1. Bemerkungen zur Korrektheit Für I = I \ {i aus } und I neu = I {i ein } ist A Ineu, regulär, da A I, y (i aus) = O I, aber A iein,, y (i aus) 0. λ iein > 0 und λ iein = max{λ : v + λy (i aus) P} Für w = v + λ iein y (i aus) gilt also w ist die Nachbarecke von v mit cone(w v) = cone(y (i aus ) ) Ineu Eq(w), c, w c, v = λ iein c, y (i aus) > 0 18 Satz 7.10 Der Simplex-Algorithmus stoppt nach endlich vielen Schritten mit einer korrekten Antwort, wenn man die Wahlen (W-aus) und (W-ein) stets minimal vornimmt (Bland s Regel). Es gibt Beispiele, bei denen der Algorithmus bei ungeeigneten Wahlen (W-aus) und (W-ein) nicht endet ( Zykeln). Andere zykelfreie Strategien: lexikographische Regeln Ist das Problem nicht-degeneriert (d.h., für alle Ecken v gilt Eq(v) = n), so terminiert der Simplex-Algorithmus bei jeder Wahl (W-aus); es gilt dann immer I > =.
Zertifikate (P) max{ c, x : Ax b} (D) min{ b, u : A T u = c, u O m } Sei I [m] eine U-Basis der Ecke v = A 1 I, b I. Also y (i) = A 1 I, e i für alle i I. { Definiere u R m c, y (i) (i I ) via u i = 0 (i [m] \ I ) Gilt: u I = (A 1 I, )T c und u [m]\i = O [m]\i Also: A T u = (A I, ) T u I = c Und: b, u = b I, u I = (A I, v, (A 1 I, )T c = v T (A I, ) T (A 1 I, )T c = v, c STOP ( v Optimallösung ): c, y (i) 0 für alle i I, also u O m, A T u = c mit b, u = c, v (Optimalitätsbeweis). STOP ( unbeschränkt ): Ay (i aus) O m, also (D) unzulässig wegen c, y (i aus) > 0 (Beweis für Unbeschränktheit von (P)). 19 Voll-dimensionale einfache Polytope 20 Sei P = P (A, b) R n ein Polytop mit dim(p) = n und: Ax b ist irredundant (genau eine Ungleichung für jede Facette von P) Jede Ecke hat eine eindeutige Basis (nicht-degeneriert), sie liegt also in genau n Facetten (d.h., P ist einfach), Sei N (v) die Menge der Nachbarn der Ecke v und F(v) die Menge der v enthaltenden Facetten. Es gibt eine Bijektion Φ : F(v) N (v), so dass jedes w N (v) die Ecke ist, zu der man über die eindeutige v enthaltende Kante kommt, die nicht in der Facette Φ(w) liegt.
Nicht-degenerierte LPs Nicht-Degeneriertheit kann man in der Praxis (und auch für die Theorie) durch Perturbation von b erreichen. (W-aus) ist dann die Entscheidung, mit welchem Nachbarn mit größerem Zielfunktionswert man fortfährt. Blands Regel: Gehe zu dem verbessernden Nachbarn, den man durch Verlassen der Facette mit niedrigstem Index erreicht. 21 Klee-Minty Würfel (hier: Dimension 3) Bemerkung 7.11 Selbst auf einfachen Polytopen kann der Simplex-Algorithmus mit Blands Regel exponentiell viele Schritte benötigen. Andere Pivot-Regeln 22 Regel des größten Koeffizienten: Wähle i aus so, dass c, y (i aus) maximal ist (Dantzigs Original-Regel). Regel des größten Fortschritts: Wähle einen Nachbarn w, so dass c, w > c, v maximal ist. Regel des steilsten Anstiegs: Wähle eine Kante, deren Winkel mit c minimal ist ( c,y (iaus) minimal). c y (iaus) (... ) Bemerkung 7.12 Noch nicht einmal für LPs über einfachen Polytopen ist eine Regel bekannt, die polynomiale Laufzeit garantiert. Es gibt polynomiale Average-Case Garantien (für die Schattenecken-Regel ). In der Praxis: Häufig sehr effizient (z.b. mit steilstem Anstieg)!
Gleichungsformat für LPs 23 Definition 7.13 Ein lineares Optimierungsproblem hat Gleichungsformat, wenn es gestellt ist als mit C Q p n, d Q p. Bemerkung 7.14 max{ c, x : Cx = d, x O n } Jedes lineare Optimierungsproblem mit s Variablen und t Nebenbedingungen kann in ein LP im Gleichungsformat (mit n 2s + t und p = t) transformiert werden (siehe Übungsblatt 1, Aufgabe 2). Basen und Basis-Lösungen 24 Definition 7.15 Seien C Q p n und d Q p (mit rang(c) = p) B [n] mit B = p heißt eine Basis von C, wenn C,B regulär ist. Eine Basis B [n] von C ist eine zulässige Basis für Cx = d, x O n, wenn C 1,B d O B ist. Für eine zulässige Basis B [n] für Cx = d, x O p heißt (x B, x N ) R n mir X N = O N und X B = C 1,Bd die zugehörige zulässige Basislösung. Beobachtung 7.16 Für C Q p n und d Q p (mit rang(c) = p) sind die zulässigen Basislösungen von Cx = d, x O p genau die Ecken des Polyeders {x R n : Cx = d, x O n }.
Standard U-Basen Im folgenden seien stets: C R p n mit rang(c) = p und d R p I n O n A = C R m n und b = d C d (mit m = n + 2p) R m P = {x R n : Cx = d, x O n } = P (A, b) 25 Definition 7.17 Eine Standard U-Basis einer Ecke v ist eine U-Basis I [m] von v mit {n + 1,..., m} I. Für jede Standard U-Basis I [m] gilt I [n + p]. Jede Ecke v von P besitzt eine Standard U-Basis (weil {n + 1,..., n + p} Eq(v)). Simplex-Algorithmus mit Standard U-Basen 26 Seien c R n und I [m] eine Standard U-Basis der Ecke v. Seien y (i) R n \ {O n } (i I ) wie im Simplex-Algorithmus. Für K(I ) = {y R n : A I, y O I } ist K(I ) ker(c) eine Seite von K(I ). Also K v (P) K(I ) ker(c) = ccone {y (i) : i I [n]} Daher: Falls c, y (i) 0 für alle i I [n] dann c N v (P). Beobachtung 7.18 Startet man den Simplex-Algorithmus mit einer Standard U-Basis, und beschränkt man die Überprüfung in Schritt 2 sowie die Auswahl (W-aus) von i aus in Schritt 3 auf I [n], so arbeitet der Simplex-Algorithmus weiterhin korrekt, und er verwendet ausschließlich Standard U-Basen.
Zulässige Basen und Standard U-Basen 27 Bemerkung 7.19 Sei v eine Ecke von P. 1. Für alle I [m] gilt: I ist genau dann eine Standard U-Basis bzgl. Ax b für v, wenn B(I ) = [n] \ N(I ) mit N(I ) = I [n] eine zulässige Basis für Cx = d, x O n mit Basislösung v ist. 2. Für alle B [n] gilt: B ist genau dann eine zulässige Basis für Cx = d, x O n mit Basislösung v, wenn I (B) = N {n + 1,..., n + p} mit N = [n] \ B eine Standard U-Basis bzgl. Ax b für v ist. Achtung: Ein q [n] ist q genau dann in der U-Basis I, wenn q nicht in der Basis B ist. Graphisch 28 I -1-1 -1-1 -1-1 -1-1 -1-1 -1-1 I C N B
Wiederholung: Der Simplex-Algorithmus (algebraisch) Ecke v von P = P (A, b) und I Eq(v) mit A I, regulär (I ist eine U-Basis von v) (K v (P) = {y R n : A Eq(v), y O Eq(v) }) 29 1. Berechne y (i) = A 1 I, e i (für alle i I ) 2. Falls c, y (i) 0 für alle i I : STOP ( v Optimallösung ) 3. Sonst wähle i aus {i I : c, y (i) > 0}. (W-aus) 4. Berechne I > = {i Eq(v) : A i,, y (iaus) > 0} Eq(v) \ I. 5. Falls I > : Wähle iein I >. (W-ein) Setze I I \ {iaus } {i ein } und gehe zu 1. 6. Sonst (y (iaus) K v (P) mit c, y (iaus) > 0): Berechne I > rest = {i [m] \ Eq(v) : A i,, y (iaus) > 0} Falls I > rest = (y (iaus) char(p)): STOP ( unbeschränkt ) Sonst berechne λi = b i A i,,v > A i, > 0 (für alle i I,y (iaus) rest) Wähle iein I rest > mit λ iein = min{λ i : i I rest}. > Ersetze v v + λiein y (iaus) und I I \ {i aus } {i ein }, gehe zu 1. Der Simplex-Algorithmus (algebraisch, vereinfacht) 30 Ecke v von P = P (A, b) und I Eq(v) mit A I, regulär (I ist eine U-Basis von v) (K v (P) = {y R n : A Eq(v), y O Eq(v) }) 1. Berechne y (i) = A 1 I, e i (für alle i I ) 2. Falls c, y (i) 0 für alle i I : STOP ( v Optimallösung ) 3. Sonst wähle i aus {i I : c, y (i) > 0}. (W-aus) 4. Berechne K > = {k [m] \ I : A k,, y (i aus) > 0}. 5. Falls K > = (y (i aus) char(p)): STOP ( unbeschränkt ) 6. Sonst berechne λ k = b k A k,,v A k,,y (i aus) 0 (für alle k K > ) 7. Wähle k ein K > mit λ kein = min{λ k : k K > }. (W-ein) 8. Ersetze v v + λ kein y (i aus), I I \ {i aus } {k ein }, gehe zu 1.
Die entscheidenden Daten Sei I [m] Standard U-Basis der Ecke v mit B = [n] \ N und N = I [n]. C(B) := C 1,B C,N Q B N c(b) := c N + cb T C(B) = c N cb TC 1,B C,N Q N (reduzierte Kosten zur Basis B) d(b) := C 1,B d = v B Q B Für i I [n] = N: y (i) Lösung von A I, y = e i (i) Also y N\{i} = O N\{i}, y (i) i = 1, y (i) B = C(B),i c, y (i) = c(b) i Für k {n + 1,..., m}; Ak,, y (i) = 0; also K > [n] \ I = B Für alle k B: A k,, y (i) = y (i) k = C(B) k,i b k A k,, v = 0 + v k = d(b) k Also: λ k = d(b) k C(B) k,i 31 Simplex-Algorithmus mit Basen von Gleichungssystemen 32 Gegeben: C Q p n (rang(c) = p), d Q p, c Q n (LP) max{ c, x : Cx = d, x O n } Sei B [n] ( B = p) eine zulässige Basis, N = [n] \ B. 1. Falls c(b) O N : STOP ( ( d B, O N ) Optimallösung ) 2. Sonst wähle ein j ein N mit c jein > 0 (j ein = i aus ) 3. Falls C(B),jein O B : STOP ( unbeschränkt ) 4. Sonst wähle j aus B mit C(B) jaus,j ein < 0 und (j aus = k ein ) d(b) jaus C(B) jaus,j ein = min { d(b) k C(B) k,jein : k B, C(B) k,jein < 0 } 5. Setze B B \ {j aus } {j ein }, N [n] \ B
Zertifikate 33 Das zu (P) max{ c, x : Cx = d, x O n } duale Problem ist (D) min{ d, u : C T u c} Sei B [n] eine zulässige Basis für (P). Falls c(b) O N ( Optimallösung ): Definiere u = (C 1,B )T c B C T u = C T (C 1,B )T c B = (c T B (C 1,B C))T u zulässig für (D) = (c B T (I B, C 1,B C,N)) T = (c B, c N c(b)) d, u = d, (C 1,B )T c B = C 1,B d, c B = c, ( d(b), O N ) Falls C(B),jein O B ( unbeschränkt ): Für λ := ( C(B),jein, e jein ) R B R N gilt λ O n. λ T C T = (Cλ) T = (C,B C(B),jein + C,jein ) T = ( C,jein + C,jein ) T T = O p λ, c = C(B),jein, c B + c jein = c jein > 0 Also (Farkas-Lemma): (D) unzulässig Bemerkungen für die Praxis 34 Finden einer zulässigen Startbasis im Tableaux-Format (LP) max{ c, x : Cx = d, x O n } Können annehmen: d O p (Skalierung von Cx = d) Löse (AUX) max{ (O n, 1 p ), (x, s) : Cx + s = d, x O n, s O p } Startbasis für (AUX): B = {n + 1,..., n + p} [n + p] mit zugehöriger Ecke (O n, d) O n+p. Falls (AUX) negativen Optimalwert hat: (LP) unlösbar. Sonst sei B [n + p] optimale Basis für (AUX). Mit M := B {n + 1,..., n + p} ist B zulässige Startbasis für (LP ) max{ c, x : Cx = d, s = O M, x O n, s O M } Falls B [n]: M = und (LP ) gleich (LP).
Benötigte Daten in einer Iteration Für die Durchführung einer Iteration braucht man: Ein jein N mit c(b) jein = c N cb TC 1,B C,j ein > 0 d(b) = C 1,B d QB C(B),jein = C 1,B C,j ein Q B Generiere diese Daten nur aus C 1,B, wenn sie gebraucht werden. Für j N: Ist u(b) Q p die Lösung von (C,B ) T z = c B, so ist c(b) j = c j u(b), C,j. C(B),j ist die Lösung von (C,B ) T z = C,j. 35 d(b) ist die Lösung von (C,B ) T z = d. Hat man z.b. eine LU-Zerlegung von C,B, so kann man die Lösung von (C,B ) T z = q in O(p 2 ) Schritten bestimmen. Beim Basiswechsel B B \ {j aus } {j ein } kann man die LU-Zeregung in O(p 2 ) Schritten anpassen. revidierter Simplexalgorithmus Hinzufügen von Variablen Seien C R m (n+1) mit C,[n] = C und c R n+1 mit c [n] = c. Sei B [n] eine zulässige Basis von Cx = d, x O n. Wegen C,B = C,B ist B auch eine zulässige Basis für C x = d, x O n+1 Sind c(b) Q [n]\b und c (B) Q [n+1]\b die reduzierten Kosten von B bzgl. max{ c, x : Cx = d, x O n } bzw. max{ c, x : C x = d, x O n+1 }, so ist c (B) [n] = c(b). 36 Beobachtung 7.20 Hat man für ein lineares Optimierungsproblem (LP) im Gleichungsformat mit der Simplex-Methode eine optimale zulässige Basis B bestimmt, und fügt man dem Problem dann eine Variable hinzu, so kann man B als Startbasis für das neue Problem verwenden; alle ursprünglichen Variablen haben bzgl. B auch im neuen Problem nicht-positve reduzierte Kosten. Spaltengenerierung
Eine Charakterisierung von C(B), c(b), d(b) 37 Lemma 7.21 Sei B [n] eine zulässige Basis von Cx = d, x O n, N = [n] \ B, und A = {(x, ζ) R n+1 : Cx = d, c, x = ζ}. Für T R B N, t R B, g R N und γ R gilt: x B = Tx N + t und ζ = g, x N + γ für alle x A T = C(B), t = d(b), g = c(b), und γ = c B, d(b) Der Simplex-Algorithmus mittels Pivotisierens Sei B [n] ( B = p) eine zulässige Basis, N = [n] \ B. Seien T Q B N, t Q B, g R N, γ R so dass (1) x B = Tx N + t und (2) ζ = g, x N + γ für alle (x, ζ) A (siehe Lemma 7.21) gilt (also Cx = d aufgelöst nach x B und dann x B eliminiert aus ζ = c, x ). 38 1. Falls g O N : STOP ( (t, O N ) Optimallösung, Wert γ ) 2. Sonst wähle ein j ein N mit g jein > 0 3. Falls T,jein O B : STOP ( unbeschränkt ) 4. Sonst wähle j aus B mit T jaus,j ein < 0 und t j aus T j aus,j ein = min { t k T k,jein : k B, T k,jein < 0 } 5. Löse die Gleichung x jaus = T jaus,, x N + t jaus in (1) nach x jein auf und setze den für x jein erhaltenen Ausdruck in die übrigen Gleichungen in (1) und in (2) ein. 6. Setze B B \ {j aus } {j ein }, N [n] \ B 7. Gehe zu Schritt 1.
Dual zulässige Basen (P) max{ c, x : Cx = d, x O} (D) min{ d, u : C T u c} C R p n (rang(c) = p), d R p, c R n, P ( C T, c) ist spitz u R p ist genau dann eine Ecke von P ( C T, c), wenn es I [n] gibt mit I = p, und rang( C T I, ) = p, (C T ) I, u = c I und C T [n]\i, u c [n]\i d.h., wenn es eine Basis B [n] von C gibt mit (N = [n] \ B): Definition 7.22 u = (C 1,B )T c B (C T ) N, u c N, d.h. c(b) O N Eine Basis B [n] von C (nicht notwendigerweise primal zulässig) heißt dual zulässig, wenn c(b) O N ist. Beobachtung 7.23 Die dual zulässigen Basen von C sind genau die U-Basen der Ecken von P ( C T, c). 39 Duales Optimalitätskriterium min{ d, u : u P ( C T, c)} = max{ d, u : P ( C T, c)} Sei B [n] dual zulässige Basis zur Ecke v = (C 1,B )T c B. Für i B: y (i) = (C 1,B )T e i (Extremalstrahlen des von B definierten simplizialen Relaxierungskegels in v ) Optimalitätskriterium: d, y (i) 0 (für alle i B) d, y (i) = d T (C 1,B )T e i = (C 1,B d)t e i = d(b) i 40 Beobachtung 7.24 Ist B [n] eine dual zulässige Basis mit d(b) O B (d.h., B ist auch primal zulässig), so sind (C 1,B )T c B eine duale und ( d(b), O N ) eine primale Optimallösung. Für k N, i B: (C T ) k,, y (i) = C(B) i,k Für k N: c k (C T ) k,, v = c(b) k
Der duale Simplex-Algorithmus 41 Umformulierung des Simplex-Algorithmus (algebraisch, vereinfacht) für max{ d, u : P ( C T, c)}. Sei B [n] eine dual zulässige Basis. 1. Falls d(b) O B : STOP ( Optimallösungen gefunden ) 2. Sonst wähle j aus {j B : d(b) j < 0}. 3. Falls C(B) jaus, O N: STOP ( (D) unbeschr., (P) unzul. ) 4. Sonst wähle j ein N mit C(B) jaus,j ein > 0 und c(b) jein C(B) j aus,j ein = min{ c(b) k C(B) j aus,k : k N, C(B) jaus,k > 0} 5. Ersetze B B \ {j aus } {j ein } und gehe zu 1. Der duale Simplex-Algorithmus mittels Pivotisierens Sei B [n] eine dual zulässige Basis, N = [n] \ B. Seien T Q B N, t Q B, g R N, γ R so dass (1) x B = Tx N + t und (2) ζ = g, x N + γ für alle (x, ζ) A (siehe Lemma 7.21) gilt (also Cx = d aufgelöst nach x B und dann x B eliminiert aus ζ = c, x ). 1. Falls t O B : STOP ( (t, O N ) und (C 1,B )T c B sind Optimallösungen für (P) bzw. (D) vom Wert γ ) 2. Sonst wähle ein j aus B mit t jaus < 0 3. Falls T jaus, O N : STOP ( (D) unbeschr., (P) unzulässig ) 4. Sonst wähle j ein N mit T jaus,j ein > 0 und g jein T j = min { g k aus,j ein T j : k N, T jaus,k > 0 } aus,k 42 5. Löse die Gleichung x jaus = T jaus,, x N + t jaus in (1) nach x jein auf und setze den für x jein erhaltenen Ausdruck in die übrigen Gleichungen in (1) und in (2) ein. 6. Setze B B \ {j aus } {j ein }, N [n] \ B 7. Gehe zu Schritt 1.
Hinzufügen von Ungleichungen Sei B [n] eine dual zulässige Basis für (LP) max{ c, x : Cx = d, x O n } mit zugehöriger Duallösung u = (C 1,B )T c B. Angenommen, man möchte das mit der Ungleichung a, x β weiter eingeschränkte Problem lösen. (LP ) max{ c, x : C (x ) = d, x O n+1 } (der Größe (p + 1) (n + 1) mit C [p], = (C, O p ), C p+1, = (a, 1), d [p] = d, d p+1 = β, c = (c, 0)) B {p + 1} ist dual zulässig für (LP ) mit zugehöriger Duallösung (u, 0). 43 Beobachtung 7.25 Hat man ein Optimallösung eines linearen Optimierungsproblems (LP) mit der Simplex-Methode berechnet, so kann man die zugehörige Basis als duale Startbasis für ein Problem verwenden, das entsteht, wenn man zu (LP) eine Ungleichung hinzufügt. Dualer Start für einen Spezialfall Für A Q m n, b Q m, c Q n und c O n : 44 min{ c, x : Ax b, x O n } Äquivalent (bis auf Multiplikation mit 1): max{ c, x : Ax b, x O n } mit c = c O n Gleichungsformat: max{ (c, O m ), (x, s) : Ax + s = b, x O n, s O m } Dual zulässige Basis: B = {n + 1,..., n + m} [n + m] mit zugehöriger Duallösung O n+m (gültig wegen O n c).
Dualer Simplex-Algorithmus graphisch 45