finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB finale Version des Vorlesungsskripts - ZIB
9.3 Das Simplexverfahren Das letzte Tableau ist bis auf Spaltenvertauschung das gleiche wie das erste. Alle Basen der oben generierten Folge gehören zur Ecke x T = (0, 0, 0, 0) des Ausgangsproblems. Die bei der Berechnung des Beispiels benutzte Variante des Simplexverfahrens würde also nicht nach endlich vielen Schritten abbrechen. △ Wie Satz (9.24) zeigt, funktioniert die Grundversion der Simplexmethode, gleichgültig welche Arten von Auswahlregeln man in den Schritten (II.2) und (II.4) benutzt, wenn alle Basislösungen nicht entartet sind. Es ist daher sinnvoll zu fragen, ob man nicht das Ausgangsproblem so modifizieren (stören) kann, dass das neue Problem nicht entartet ist. Dass dies geht, zeigt der folgende Satz. Wie üblich bezeichnen wir das LP max{c T x | Ax = b, x ≥ 0} mit (9.1). Sei für ein ε T = (ε1, . . . , εn), ε > 0 max c T x (9.26) Satz (Perturbationsmethode). Ax = b + Aε x ≥ 0. (9.1ε) (a) Das lineare Programm (9.1) ist genau dann lösbar, wenn das LP (9.1ε) lösbar ist für jedes ε > 0. (b) Es gibt ein ε0 > 0 derart, dass für alle 0 < ε < ε0 jede zulässige Basis von (9.1ε) zum einen eine nichtdegenerierte Basislösung von (9.1ε) bestimmt und zum anderen eine zulässige Basis von (9.1) ist. Ferner bestimmt die zu einer optimalen Basislösung von (9.1ε) gehörige Basis eine optimale Basislösung von (9.1). △ Beweis. P. Kall, „Mathematische Methoden des Operations Research“, Teubner Studienbücher, Stuttgart, 1976, S. 52–53. ✷ Aufgrund von Satz (9.26) könnte also jedes LP durch Störung in ein nichtentartetes LP umgewandelt werden, und damit wäre die Konvergenz der Grundversion des Simplexalgorithmus gewährleistet. In der Praxis wird diese Methode jedoch kaum angewendet, da das ε0 nicht einfach zu bestimmen ist und der Ansatz mit irgendeiner Zahl ε > 0 nicht zum Ziele führen muss. Ferner könnten durch eine geringe Störung des Problems durch Rundungsfehler numerische Schwierigkeiten auftreten, deren Auswirkungen nicht immer abschätzbar sind. Wir werden im nächsten Abschnitt andere Methoden zur Vermeidung des Kreiselns kennenlernen. In der Praxis werden diese häufig jedoch gar nicht implementiert, da bei praktischen Problemen trotz gelegentlicher Degeneration ein Kreiseln sehr selten beobachtet wurde. Einer der Gründe dafür dürfte darin zu sehen sein, dass der Computer durch seine begrenzte Rechengenauigkeit sozusagen „von allein“ eine Störungsmethode durchführt. So wird bei jedem Auf- oder Abrunden eine kleine Änderung des vorliegenden Programms vorgenommen, die sich positiv auf die Konvergenzeigenschaften des Simplexverfahrens auswirkt. 181
9 Die Grundversion des Simplex-Algorithmus 9.4 Spalten- und Zeilenauswahlregeln Wir wollen uns nun damit beschäftigen, wie die noch unspezifizierten Schritte des Simplexverfahrens „vernünftig“ ausgeführt werden können. (9.27) Bemerkung (Varianten der Spaltenauswahl in Schritt II.2). Sei S := {j ∈ {1, . . . , n} | cj > 0} = ∅. Folgende Regeln sind in der Literatur eingehend diskutiert worden und werden bei schlichten Implementationen des Simplexverfahrens angewendet. (1) Kleinster-Index-Regel: Wähle s = min{j ∈ S}. (2) Kleinster-Variablenindex-Regel: Wähle s ∈ S, so dass qs = min{qj ∈ N | j ∈ S}. (3) Steilster-Anstieg-Regel: Wähle s ∈ S, so dass cs = max{cj | j ∈ S}. (4) Größter-Fortschritt-Regel: Berechne für jedes j ∈ S zunächst λ j bi 0 = min{ aij Wähle s ∈ S, so dass gs = max{gj | j ∈ S}. | aij > 0, i = 1, . . . , m} und gj = cjλ j 0 . (5) Varianten von (4): Es gibt unzählige Varianten von (4), einige davon sind beschrieben in: • D. Goldfarb, J. K. Reid: „A practicable steepest-edge simplex algorithm“, Mathematical Programming 12 (1977), 361–371. • P. M. S. Harris: „Pivot selection methods for the Devex LP code“, Mathematical Programming 5 (1973), 1–28. • H. Crowder, J. M. Hattingh: „Partially normalized pivot selection in linear programming“, Math. Progr. Study 4 (1975), 12–25. △ Die Regel (9.27)(1) ist die rechentechnisch einfachste. Man durchläuft den Vektor c, sobald ein Index s mit cs > 0 gefunden ist, hört man auf und geht zum nächsten Schritt. Die reduzierten Kosten müssen also nicht alle berechnet werden. Dadurch wird viel Aufwand gespart, aber aufgrund der simplen Wahl von s ist die Gesamtzahl der Pivotoperationen im Vergleich zu anderen Regeln recht hoch. Ähnliches gilt für Regel (2). Hier müssen jedoch alle reduzierten Kostenkoeffizienten berechnet werden. Diese Regel ist jedoch aus einem theoretischen Grund, der noch diskutiert werden soll, interessant. Die Regel (3) ist die Regel, die bei einfachen Implementationen (keine ausgeklügelten Tricks) am häufigsten verwendet wird und bei Problemen bis zu mittleren Größenordnungen (jeweils bis zu 500 Variablen und Zeilen) recht gute Ergebnisse zeigt. Ihr liegt die Idee zu Grunde, dass diejenige Variable in die Basis genommen werden sollte, die pro Einheit den größten Zuwachs in der Zielfunktion bringt. Es kann natürlich sein, dass die Nichtbasisvariable mit dem größten Zuwachs pro Einheit nur um sehr wenige Einheiten erhöht werden kann und dass ein Wechsel zu einer 182
- Seite 135 und 136: 7 Flüsse mit minimalen Kosten Ein
- Seite 137 und 138: 7 Flüsse mit minimalen Kosten Dami
- Seite 139 und 140: 7 Flüsse mit minimalen Kosten Dami
- Seite 141 und 142: 7 Flüsse mit minimalen Kosten 2. K
- Seite 143 und 144: 7 Flüsse mit minimalen Kosten schr
- Seite 145 und 146: 7 Flüsse mit minimalen Kosten Erf
- Seite 147 und 148: 7 Flüsse mit minimalen Kosten Die
- Seite 149 und 150: 7 Flüsse mit minimalen Kosten (7.2
- Seite 151 und 152: 7 Flüsse mit minimalen Kosten W f
- Seite 153 und 154: 7 Flüsse mit minimalen Kosten r s
- Seite 156 und 157: 8 Grundlagen der Polyedertheorie In
- Seite 158 und 159: (c) Ist F = {x ∈ P | c T x = γ}
- Seite 160 und 161: (a) =⇒ (d): Nach Definition ist {
- Seite 162 und 163: (8.12) Folgerung. Sei P = P = (A, b
- Seite 164 und 165: 9 Die Grundversion des Simplex-Algo
- Seite 166 und 167: 9.1 Basen, Basislösungen, Entartun
- Seite 168 und 169: 9.1 Basen, Basislösungen, Entartun
- Seite 170 und 171: 9.2 Basisaustausch (Pivoting), Simp
- Seite 172 und 173: gilt daher ⎛ ⎜ F · E = ⎜ ⎝
- Seite 174 und 175: 9.2 Basisaustausch (Pivoting), Simp
- Seite 176 und 177: 9.3 Das Simplexverfahren (c) Ist x
- Seite 178 und 179: Setze (II.6) Updating B ′ := (p1,
- Seite 180 und 181: 9.3 Das Simplexverfahren (Die Trans
- Seite 182 und 183: 9.3 Das Simplexverfahren x2 = 0 nic
- Seite 184 und 185: 9.3 Das Simplexverfahren Wir führe
- Seite 188 und 189: 9.4 Spalten- und Zeilenauswahlregel
- Seite 190 und 191: 9.5 Die Phase I (2) Kleinster-Varia
- Seite 192 und 193: 9.5 Die Phase I x ≥ 0. Wir müsse
- Seite 194: x1 x2 x3 s1 s2 s3 9.5 Die Phase I 6
- Seite 197 und 198: 10 Fourier-Motzkin-Elimination und
- Seite 199 und 200: 10 Fourier-Motzkin-Elimination und
- Seite 201 und 202: 10 Fourier-Motzkin-Elimination und
- Seite 203 und 204: 10 Fourier-Motzkin-Elimination und
- Seite 205 und 206: 10 Fourier-Motzkin-Elimination und
- Seite 207 und 208: 11 Das Farkas-Lemma und Dualitätst
- Seite 209 und 210: 11 Das Farkas-Lemma und Dualitätst
- Seite 211 und 212: 11 Das Farkas-Lemma und Dualitätst
- Seite 213 und 214: 11 Das Farkas-Lemma und Dualitätst
- Seite 215 und 216: 11 Das Farkas-Lemma und Dualitätst
- Seite 217 und 218: 11 Das Farkas-Lemma und Dualitätst
- Seite 219 und 220: 11 Das Farkas-Lemma und Dualitätst
- Seite 221 und 222: 11 Das Farkas-Lemma und Dualitätst
- Seite 223 und 224: 12 Ganzzahligkeit von Polyedern: Ei
- Seite 225 und 226: 12 Ganzzahligkeit von Polyedern: Ei
- Seite 227 und 228: 12 Ganzzahligkeit von Polyedern: Ei
- Seite 229: 12 Ganzzahligkeit von Polyedern: Ei
9.3 Das Simplexverfahren<br />
Das letzte Tableau ist bis auf Spaltenvertauschung das gleiche wie das erste. Alle Basen<br />
der oben generierten Folge gehören zur Ecke x T = (0, 0, 0, 0) <strong>des</strong> Ausgangsproblems. Die<br />
bei der Berechnung <strong>des</strong> Beispiels benutzte Variante <strong>des</strong> Simplexverfahrens würde also<br />
nicht nach endlich vielen Schritten abbrechen. △<br />
Wie Satz (9.24) zeigt, funktioniert die Grundversion der Simplexmethode, gleichgültig<br />
welche Arten von Auswahlregeln man in den Schritten (II.2) und (II.4) benutzt, wenn<br />
alle Basislösungen nicht entartet sind. Es ist daher sinnvoll zu fragen, ob man nicht das<br />
Ausgangsproblem so modifizieren (stören) kann, dass das neue Problem nicht entartet<br />
ist. Dass dies geht, zeigt der folgende Satz. Wie üblich bezeichnen wir das LP max{c T x |<br />
Ax = b, x ≥ 0} mit (9.1). Sei für ein ε T = (ε1, . . . , εn), ε > 0<br />
max c T x<br />
(9.26) Satz (Perturbationsmethode).<br />
Ax = b + Aε<br />
x ≥ 0.<br />
(9.1ε)<br />
(a) Das lineare Programm (9.1) ist genau dann lösbar, wenn das LP (9.1ε) lösbar ist für<br />
je<strong>des</strong> ε > 0.<br />
(b) Es gibt ein ε0 > 0 derart, dass für alle 0 < ε < ε0 jede zulässige Basis von (9.1ε) zum<br />
einen eine nichtdegenerierte Basislösung von (9.1ε) bestimmt und zum anderen eine<br />
zulässige Basis von (9.1) ist. Ferner bestimmt die zu einer optimalen Basislösung<br />
von (9.1ε) gehörige Basis eine optimale Basislösung von (9.1). △<br />
Beweis. P. Kall, „Mathematische Methoden <strong>des</strong> Operations Research“, Teubner Studienbücher,<br />
Stuttgart, 1976, S. 52–53. ✷<br />
Aufgrund von Satz (9.26) könnte also je<strong>des</strong> LP durch Störung in ein nichtentartetes LP<br />
umgewandelt werden, und damit wäre die Konvergenz der Grundversion <strong>des</strong> Simplexalgorithmus<br />
gewährleistet. In der Praxis wird diese Methode jedoch kaum angewendet, da<br />
das ε0 nicht einfach zu bestimmen ist und der Ansatz mit irgendeiner Zahl ε > 0 nicht<br />
zum Ziele führen muss. Ferner könnten durch eine geringe Störung <strong>des</strong> Problems durch<br />
Rundungsfehler numerische Schwierigkeiten auftreten, deren Auswirkungen nicht immer<br />
abschätzbar sind.<br />
Wir werden im nächsten Abschnitt andere Methoden zur Vermeidung <strong>des</strong> Kreiselns<br />
kennenlernen. In der Praxis werden diese häufig jedoch gar nicht implementiert, da bei<br />
praktischen Problemen trotz gelegentlicher Degeneration ein Kreiseln sehr selten beobachtet<br />
wurde. Einer der Gründe dafür dürfte darin zu sehen sein, dass der Computer<br />
durch seine begrenzte Rechengenauigkeit sozusagen „von allein“ eine Störungsmethode<br />
durchführt. So wird bei jedem Auf- oder Abrunden eine kleine Änderung <strong>des</strong> vorliegenden<br />
Programms vorgenommen, die sich positiv auf die Konvergenzeigenschaften <strong>des</strong><br />
Simplexverfahrens auswirkt.<br />
181