finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB finale Version des Vorlesungsskripts - ZIB

23.06.2013 Aufrufe

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

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!