Vorlesung Lineare Optimierung (Sommersemester 2009)

Ähnliche Dokumente
Vorlesung Lineare Optimierung (Sommersemester 2010)

Optimierung. Optimierung. Vorlesung 8 Lineare Programmierung III: Simplex Algorithmus Fabian Kuhn

VORLESUNG 12 Lineare Optimierung (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

VORLESUNG 14 Lineare Optimierung, Dualität (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

Wiederholung. Wir gehen von LP s in Standardform aus, wobei A R m n vollen Zeilenrang hat: minc T x A x = b

Operations Research. Die Simplexmethode. LP-Dualität. Die Simplexmethode. Rainer Schrader. 18. Juni Zur Erinnerung: Gliederung

Kombinatorische Optimierung

VORLESUNG 11 Lineare Optimierung (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

Operations Research. Ganzzahlige lineare Programme. ganzzahlige lineare Programme. Ganzzahlige lineare Programme. Rainer Schrader. 25.

Dualitätssätze der linearen Optimierung

Grundlagen der Optimierung. Übung 6

Optimierung. Vorlesung 04

Übung 3, Simplex-Algorithmus

Computer Science Department - High Performance and Web Computing Group. Optimierungsprobleme

1 Der Simplex Algorithmus I

Kap. 4.3: Das Dualitätstheorem der linearen Optimierung

Optimierung für Wirtschaftsinformatiker: Dualität, Ganzzahlige lineare Optimierung

6 Korrektheit des Simplexalgorithmus

Kap. 4: Lineare Programmierung

Ganzzahlige lineare Programme

Studientag zur Algorithmischen Mathematik

Eigenschaften von LPs

Optimierung für Nichtmathematiker

Kap. 4.2: Simplex- Algorithmus

Die duale Simplexmethode

Inhaltsübersicht für heute:

Teil I. Lineare Optimierung

Vorlesung Einführung in die Mathematische Optimierung (Wintersemester 2013/14)

H. Meyerhenke: Kombinatorische Optimierung. Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

Minimumproblem. Definition 4.7. Ein LP der Form. unter den Nebenbedingungen. d ij x j b i (i =1,...,m)

Innere-Punkt-Methoden

2. Optimierungsprobleme 6

Vortrag 20: Kurze Vektoren in Gittern

GEOMETRIE DER POLYEDER

4.3.3 Simplexiteration

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Insbesondere sind nach dieser Definition also auch die leere Menge und einpunktige Teilmengen konvex.

Kapitel 7 : Lineare Programmierung Die Simplexmethode (G.B.Dantzig, 1947) Beispiel:

Optimierung für Wirtschaftsinformatiker: Lineare Programme

Optimale Steuerung 1 Prozessoptimierung 1

Simplex-Verfahren. Kapitel 4. Simplex-Verfahren. Peter Becker (H-BRS) Operations Research I Sommersemester / 298

Einführung in die Lineare Programmierung

8. Konvexe Polytope. Tobias Boelter. Mittwoch, 5. März TopMath Frühlingsschule

mit. Wir definieren (Skalarprodukt = Winkel).

Effiziente Algorithmen Lineares Programmieren 216. Schwache Dualität

Vorlesung Wirtschaftsmathematik I WS 2007/2008, Wirtschaftingenieurwesen. Kapitel IV: Grundlagen der Linearen Optimierung

Konvexe Optimierungsprobleme

Theoretische Grundlagen der Informatik

Lösung allgemeiner linearer Programme

Technische Universität München Zentrum Mathematik Diskrete Optimierung: Fallstudien aus der Praxis. Station 1: Facetten des Knapsack-Polytops

Proseminar Lineare Algebra WS 08/09 Prof. Dr. O. Bogopolski 1. Vortrag: Lineare Gleichungen. am 11. März von Maximilian Wahner

Numerische Lineare Algebra

Bestimmung einer ersten

λ i x i λ i 0, x i X, nur endlich viele λ i 0}.

2 Die Dimension eines Vektorraums

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung.

Lösungsskizzen zu den Klausuraufgaben zum Kurs 1142 Algorithmische Mathematik

1. Transport- und Zuordnungsprobleme Optimierungsalgorithmus für Transportprobleme. Duales Problem. a i u i + i=1. j=1

Standard-/kanonische Form Simplex Dualität Kompl./Sensitivität Spaltengen. Schnittebenen Welchen? Inhalt

Kapitel 5. Peter Becker (H-BRS) Operations Research I Sommersemester / 298

Lineare Programmierung (2)

Lineares Programmieren

Aufgaben zu Kapitel 23

3.1. Existenzsatz und Struktur der Lösungsmenge

Die duale Simplexmethode zur Lösung rein ganzzahliger linearer Programme

Mathematische Methoden der Algorithmik

Nash-Gleichgewichte in 2-Spieler Systemen. Katharina Klost Freie Universität Berlin

Klausurrepetitorium ABWL

2.11 Eigenwerte und Diagonalisierbarkeit

6. Normale Abbildungen

3 Systeme linearer Gleichungen

Geometrische Interpretation

Übungen zur Linearen Optimierung Sommersemester Übungsblatt 1

6 Lineare Gleichungssysteme

Operations Research. Konvexe Funktionen. konvexe Funktionen. konvexe Funktionen. Rainer Schrader. 4. Juni Gliederung

Schnittebenenverfahren für das symmetrische

Differentialgleichungen und Hilberträume Sommersemester 2014 Übungsblatt 11

Optimierung. R. Verfürth

3.2.5 Dualität der linearen Optimierung I

Kapitel V. Affine Geometrie

z = c T x : Ax = b, x 0 }, - die Darstellung der Nichtbasisvektoren durch die Basis ist

4.4 Quadratische Optimierungsprobleme

Das Lagrange-duale Problem

Lineare Programmierung Teil I

Die lineare Programmierung. Die Standardform 1 / 56

Lineare Abbildungen und Matrizen

Lineare Programmierung

Die Lösung linearer Gleichungssysteme

4 Lineare Optimierung

Eine Einführung in die algebraische D-Modultheorie

12 Lineare Algebra - Übersicht. Themen: Unterräume Lineare Abbbildungen Gauß-Algorithmus Eigenwerte und Normalformen

1 Zum Aufwärmen. 1.1 Notationen. 1.2 Lineare Abbildungen und Matrizen. 1.3 Darstellungsmatrizen

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

4. Dualität Dualität 4.1 Dualität von LPs und der Dualitätssatz. Die duale Form eines LP in allgemeiner Form. Herleitung der dualen Form

3 Polytope. 3.1 Polyeder

Seminar Ausgewählte Kapitel des Operations Research Die Allgegenwärtigkeit von Lagrange (Teil 1)

Teil 5: Lineare Programmierung. (Blum, Kapitel 8)

KAPITEL 3. Konvexe Funktionen

Wiederholung von Linearer Algebra und Differentialrechnung im R n

Transkript:

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