23.06.2013 Aufrufe

aktuelle Version des Vorlesungsskripts - ZIB

aktuelle Version des Vorlesungsskripts - ZIB

aktuelle Version des Vorlesungsskripts - ZIB

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

9 Die Grundversion <strong>des</strong> Simplex-Algorithmus<br />

(4) Größter-Fortschritt-Regel: Berechne für je<strong>des</strong> j ∈ S zunächst<br />

λ j bi<br />

0 = min{<br />

aij<br />

Wähle s ∈ S, so dass gs = max{gj | j ∈ S}.<br />

| aij > 0, i = 1, . . . , m} und gj = cjλ j<br />

0 .<br />

(5) Varianten von (4): Es gibt unzählige Varianten von (4), einige davon sind beschrieben<br />

in:<br />

• D. Goldfarb, J. K. Reid: „A practicable steepest-edge simplex algorithm“, Mathematical<br />

Programming 12 (1977), 361–371.<br />

• P. M. S. Harris: „Pivot selection methods for the Devex LP code“, Mathematical<br />

Programming 5 (1973), 1–28.<br />

• H. Crowder, J. M. Hattingh: „Partially normalized pivot selection in linear programming“,<br />

Math. Progr. Study 4 (1975), 12–25. △<br />

Die Regel (9.27)(1) ist die rechentechnisch einfachste. Man durchläuft den Vektor c, sobald<br />

ein Index s mit cs > 0 gefunden ist, hört man auf und geht zum nächsten Schritt. Die<br />

reduzierten Kosten müssen also nicht alle berechnet werden. Dadurch wird viel Aufwand<br />

gespart, aber aufgrund der simplen Wahl von s ist die Gesamtzahl der Pivotoperationen<br />

im Vergleich zu anderen Regeln recht hoch.<br />

Ähnliches gilt für Regel (2). Hier müssen jedoch alle reduzierten Kostenkoeffizienten<br />

berechnet werden. Diese Regel ist jedoch aus einem theoretischen Grund, der noch diskutiert<br />

werden soll, interessant.<br />

Die Regel (3) ist die Regel, die bei einfachen Implementationen (keine ausgeklügelten<br />

Tricks) am häufigsten verwendet wird und bei Problemen bis zu mittleren Größenordnungen<br />

(jeweils bis zu 500 Variablen und Zeilen) recht gute Ergebnisse zeigt. Ihr liegt<br />

die Idee zu Grunde, dass diejenige Variable in die Basis genommen werden sollte, die pro<br />

Einheit den größten Zuwachs in der Zielfunktion bringt.<br />

Es kann natürlich sein, dass die Nichtbasisvariable mit dem größten Zuwachs pro Einheit<br />

nur um sehr wenige Einheiten erhöht werden kann und dass ein Wechsel zu einer<br />

anderen Basis einen wesentlich größeren Gesamtfortschritt bringt. Hierzu ist Regel (4)<br />

geschaffen. Bei ihr wird für jeden möglichen Basiswechsel der tatsächliche Zuwachs gj der<br />

Zielfunktion berechnet, und es wird der Basiswechsel vorgenommen, der den insgesamt<br />

größten Fortschritt bringt. Diese Verbesserung wird natürlich durch einen erheblichen<br />

rechnerischen Mehraufwand erkauft, bei dem es fraglich ist, ob er sich lohnt.<br />

Aufgrund von Erfahrungen in der Praxis kann gesagt werden, dass sich die trivialen<br />

Regeln (1), (2) und (3) für kleinere bis mittlere Problemgrößen bewährt haben, jedoch<br />

für große LPs, Modifizierungen von (9.27)(4), wie sie in den Literaturangaben beschrieben<br />

sind, benutzt werden. Die trivialen Regeln führen im allgemeinen zu insgesamt mehr<br />

Pivotoperationen. Die komplizierten Regeln versuchen die Anzahl der Pivotoperationen<br />

minimal zu gestalten. Hierbei ist ein wesentlich höherer Rechenaufwand erforderlich (viele<br />

Spalten von A sind zu generieren und für jede Spalte ist λ0 zu berechnen), der bei<br />

182

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!