Kap. 4.: Simplex- Algorithmus Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Literatur für diese VO V. Chvatal: Linear Programming D. ertsimas: Linear Programming 4.-7. VO A&D WS 08/09..-6..008 Überblick 3. Der Simplex-Algorithmus 4. Der Simplex-Algorithmus Einführung asisaustauschsatz Tableau-Methode Standard-Simplex Revidierte Simplex-Methode mit Eta- Faktorisierung Spalten- und Zeilenauswahlregeln Terminierung Analyse der Laufzeit Lineare Programme werden in der Praxis mit Hilfe des Simplex-Algorithmus gelöst [Dantzig 955]. Max 3x + x + x 3 Subject to x + x 3 8 x + x 7 x + x x, x, x 3 0 3 4 Visualisierung des Simplex-Algorithmus Simplex-Algorithmus Max z 3x + x + x 3 x 3 0,0,8 0,6,8,5,6 z 8 0,6,0 z 0,5,0 7,0, z 3 Optimal! x Gegeben: LP mit Lösungspolyeder P estimme einen beliebige Ecke Initialecke v von P. Falls es keine verbessernde Kante inzident zu v gibt stop: v ist optimal. 3 Folge einer beliebigen verbessernden Kante e von v. Falls e unbeschränkt ist, d.h. keinen anderen Endpunkt hat stop: Das LP ist unbeschränkt. 4 Sei u der andere Endpunkt von e. Setze vu. Gehe zu x 7,0,0 z
Offene Fragen zu Simplex-Algorithmus Wie findet man eine Initialecke v von P? ei zulässigen LPs in Standardform mit nicht-negativen a ij und b i ist der Ursprung Punkt 0 immer ein Knoten von P. Ansonsten verwendet man ein Preprocessing Phase, das an einem Schnittpunkt evtl. außerhalb von P startet und durch ähnliche asisaustauschschritte zu einer Ecke in P läuft. Wie wird das Polyeder abgespeichert? Man speichert das durch die Restriktionen beschriebene Gleichungssystem in Form eines Tableaus ab. In jedem Simplexschritt verändert sich das Tableau und die ausgehenden Kanten des aktuellen Ecke können aus dem Tableau berechnet werden. Teste, ob die aktuelle Ecke optimal ist? Falls nicht, welche verbessernde Kante wählt man? Terminiert der Algorithmus? s. Vorlesung: gleich Definitionen Gegeben sei ein Gleichungssystem Axb mit A R m n, m<n, b R m, rangam. Sei p,p,...,p m {,,...,n} m Spaltenindexmenge und Nq,q,...,q n-m {,,...,n} n-m Spaltenindexmengen mit N{,,...,n} und N. Für J {,,...n}: A J ist die Untermatrix von A nach Streichen der Spalten aus {,,...,n} \ J. Wir schreiben A statt A und A N statt A N. Ist A regulär invertierbar, so heißt A asismatrix oder asis von A und asisindexvektor oder asis von A; analog A N, N Nichtbasisindexvektor. Der Vektor x R n mit 0, x A - b heißt asislösung von Axb zur asis A. Definitionen Ist A regulär invertierbar, so heißt A asismatrix oder asis von A und asisindexvektor oder asis von A; analog A N, N Nichtbasisindexvektor. Der Vektor x R n mit 0, x A - b heißt asislösung von Axb zur asis A. Ist A eine asis, so heißen die Variablen x j, j, asisvariablen und die x j, j N Nichtbasisvariablen. Ist A asis und gilt A - b 0, so heißen A, und die zugehörige asislösung x zulässig, sonst unzulässig. Eine zulässige asislösung x zur asis A heißt nichtdegeneriert, falls x i A - b i >0 für alle i, sonst degeneriert. Simplex-Gleichungsschema und Simplex Tableau max c T x s.t. Axb, x 0 Zielfunktionswert: Simplex-Gleichungsschema: T max c x c N s.t. A,A N x b, x 0 A x + A N b x A b A A N z c T x + c N T c T A b A A N + c N T c T A b + c N T c T A A N x A b A A N z c T A b + c N T c T A A N Simplex-Gleichungsschema und Simplex Tableau asisaustauschsatz, s. Tafel Simplex-Gl.schema: Zielfunktionswert Simplex-Tableau: Werte der asisvariablen x A b A A N z c T A b + c N T c T A A N - c T A b A b c N T c T A A N A A N reduzierte Kosten
eweis: a b b A entsteht aus A durch Ersetzen der r-ten Spalte durch A qs. Es gilt A A F, wobei F 0 0 ā s..... 0 0 ā r,s ā rs ā r+,s 0 0.... ā ms 0 0 Denn: Wir haben Ā s A und deshalb ist die A qs s-te Spalte von A F gleich A Ā s A A A s A qs und alle anderen Spalten bleiben wie in A. Es gilt ā rs > 0, also ist F regulär und somit ist A eine asis. 4 5 Weiterhin ist x A b F A b F x F b mit 0 0 ās.... 0 0 ār,s F Also gilt für i,,..., m: r-te Spalte Falls ā is > 0: x b pi i āis br b i āis bi 0 āis insbesondere für i r: x b pr r br 0 neue Nichtbasisvariable Falls ā is 0: x b pi i āis br b i 0 und x br 0 qs neue asisvariable Also ist x zulässige asislösung zur asis. ār+,s. āms 0 0... 0 0 b3 nicht-degenerierter Fall: λ 0 >0: 6 7 Simplex-Algorithmus Tableau-Methode Start mit einer zulässigen asis Iterierte Anwendung des Satzes: a STOP, Optimalität b STOP, Unbeschränktheit b asiswechsel: Pivot mit Pivotspalte s und Pivotzeile r Zielfunktionswert Werte der asisvariablen - c T A b A b c N T c T A A N A A N t 00 t 0... t 0n reduzierte Kosten Varianten: Tableau-Methode Standard-Simplex Revidierte Methode t 0 t... t n............ t m0 t m... t mn Das Tableau ist zulässig falls t i0 0 für alle i {,,...,m}. Das Tableau ist optimal falls t 0j 0 für alle j {,,...,n}. 3
Rechenregeln aus asisaustausch-satz erechnung von Ā A A N : A A N A F A N F A A N A N unterscheidet sich von A N nur durch die r-te Spalte gehört zur Variablen mit Index p r. Rechenregeln aus asisaustausch-satz Zur Neuberechnung von Ā muss Ā also im Wesentlichen mit F multipliziert werden; Ausnahmen bilden die r-te Spalte sowie die s-te Zeile. Dasselbe gilt für die erechnung von b und c. Das Element ā rs wird als Pivotelement bezeichnet. Daraus ergeben sich die folgenden Rechenregeln: 0 ff fff eobachtungen zum Simplex-Algorithmus In jeder Iteration wird eine asislösung durch eine andere ersetzt. Zur erechnung der neuen asislösung x wird nur ein sehr kleiner Teil des Tableaus benutzt: man benötigt A -, bx und c sowie die s-te Spalte von A. Idee: Statt jedes Mal die ganze Matrix zu berechnen, berechne nur den Teil, der wirklich gebraucht wird, und dies direkt aus den Originaldaten revidierte Simplexmethode 4
Revidierte Simplex-Methode 6 7 Gleiches wie vorhin mit 4, 5,N,, 3, c 3, 5, 4, 0, 0, 0 x4 3 0 A, x 0, A x 5 5 4 0. Iteration: y T A c T : y T F r x sind die reduzierten Kosten x tritt ein c y T 0 0 0 0 y 0 0 c 5. A d a d Damit haben wir die neue asis sowie asislösung: x 3 x : x4 x 5, 5 N, 4, 3 3 x : Es gilt: A A alt F 3 3 5 0 0 0 0 0 t 3 und x4 raus. 9. Iteration Reduzierte Kosten: y T 0 5 5, 0 y 0 x :3 5, 0 0 x 4 :0 5, 0 5 0 0 x 3 :4 5, 0 3 4 x 3 rein t 3 und x 5 raus. A d a : x 3 3 x : 0 d d 4 3 x x 5 3 7 6 3 3 0, 3,N, 4, 5 7 6 x : 3 0 Es gilt: A A alt F 0 3 4 30 3 5
3. Iteration: Reduzierte Kosten: y T 5 4 y 4 x :3, 3 0 x 4 :0, 0 0 x 5 :0, 0 0 Lösung der Gleichungssysteme durch Eta-Faktorisierung der asis Ziel: Lösung nicht mittels Neuberechnung der Inversen Optimal! r-te Spalte wird ersetzt durch d 33 Eta-Faktorisierung der asis emerkung zur Eta-Faktorisierung Z.. Lösen von y T A 4 c T : yt E E E 3 E 4 c T : u T E 4 c T,vT E 3 u T,w T E v T,y T E w T. Lösen von A 4 d a: E E E 3 E 4 d a E u a, E v u, E 3 w v, E 4 d w. TRAN für back transformation FTRAN für forward transformation Speicherung der Eta-Matrizen: jeweils nur die Spalte und die Position. Eta-File: E,E,..., E k. Mit der Eta-Faktorisierung hat man zwar mehr Gleichungssysteme zu lösen, da diese aber sehr dünn besetzt ist, ist dies mit sehr geringem Aufwand verbunden: Wenn die Eta-Spalte k Nicht-Nullen besitzt, dann werden hierzu nur k- Multiplikationen, k- Additionen und Division benötigt. Denn das Lösen von E k d a ist einfach: Sei die r-te Spalte von E k gegeben durch ā: Dann ist d r a rs /ā rs und d i a s ā is d r Faktorisierung / Refaktorisierung Problem : In jeder Iteration kommt eine neue Eta-Matrix hinzu Zunehmende Ineffizienz, da immer mehr Gleichungssysteme zu lösen sind und damit auch neben dem Zeitfaktor numerische Fehler verbunden sind Lösung: Neuberechnung von A k alle h Iterationen Chvatal empfiehlt h0 z.. als LU-Zerlegung oder trianguläre Faktorisierung und setze diese als neues A 0. Problem : Was tun, wenn A 0 I? Periodische Refaktorisierung Faktorisierung Lösung: Faktorisierung von A 0 z.. als LU-Zerlegung oder trianguläre Faktorisierung Vorteile der revidierten Methode Rechenaufwand ist bei einer großen und dünn besetzten Matrix deutlich kleiner als bei Tableau- Methode Spalten werden nur bei edarf generiert Eta-Faktorisierung und Refaktorisierung statt Speicherung der inversen Matrix Rechengenauigkeit ist deutlich besser, denn man kann die inverse asismatrix regelmäßig neu berechnen. Simplexalgorithmus läßt noch einige Freiheiten, z.. bei Zeilen und Spaltenauswahl, denn es können jeweils mehrere Kandidaten existieren. 6
Spaltenauswahlregeln Zeilenauswahlregeln Kleinster-Index-Regel: Wähle die Spalte mit kleinstem Index Kleinster-Variablenindex-Regel: Wähle die Spalte mit dem kleinsten Variablenindex Steilster-Anstieg-Regel: Wähle diejenige Spalt mit den größten reduzierten Kosten Größter-Fortschritt-Regel: erechne den neuen Zielfunktionswert über alle möglichen Spalten aus und wähle dann diejenige Spalte, die den größten Wert bringt. Lexikographische Spaltenauswahlregel: etrachte jeweils die Vektoren der in Frage kommenden Spalten und wähle den lexikographisch kleinsten aus. Diese Regeln werden dann angewendet, falls es mehrere Kandidaten zur Auswahl gibt Kleinster-Index-Regel: Wähle die Zeile mit kleinstem Index Kleinster-Variablenindex-Regel: Wähle die Zeile mit dem kleinsten Variablenindex Lexikographische Zeilenauswahlregel: etrachte jeweils die Vektoren der in Frage kommenden Zeilen und wähle den lexikographisch kleinsten aus. 38 39 Terminierung Problem: Man kann e konstruieren, für die sich eine asis wiederholt: Phänomen des Zykelns nur bei Degenerität keine Terminierung Terminierung land s Regel: Eintretende und austretende Variable ist immer diejenige mit dem kleinsten Index. Satz land, 977: ei der Anwendung von land s Regel terminiert der Simplexalgorithmus. Lösung: Es gibt Spalten- bzw. Zeilenauswahlregeln, von denen man zeigen kann, dass in diesem Fall der Simplex-Algorithmus terminiert. 40 emerkungen: Wendet man die kleinste Indexregel auf nur eine Spalten- oder Zeilenauswahl an, dann kann man e konstruieren, bei denen das Verfahren nicht terminiert. Es gibt aber auch Regeln z.. die lexikographische Zeilen- bzw. Spaltenauswahlregel, die nur auf eines der beiden angewendet werden müssen um Terminierung zu erhalten. emerkungen Laufzeit Achtung: land s Regel verhindert zwar das Zykeln, aber in der Praxis hat sich gezeigt, dass i.a. die Anzahl der Pivotoperationen bei Anwendung der land-regel wesentlich höher liegt als z.. bei der Steilster Anstieg-Regel. In der Praxis wird daher meist die steilste Anstieg Regel zur Spaltenauswahl verwendet. Worst Case: Zu fast allen bekannten Pivotauswahlregeln kennt man heute eine Klasse von Polyedern und Zielfunktionen, so dass der Simplexalgorithmus bei Anwendung einer zugehörigen Auswahlregel durch alle Ecken des Polyeders läuft. Da die Anzahl der Ecken dieser Polyeder exponentiell mit der Anzahl der Variablen wächst exponentielle worst-case Laufzeit. 7
Laufzeitvergleich von Tableau- mit Revidierter Simplexmethode Laufzeit pro Iteration für dünn-besetzte Matrizen: Schätzung laut Chvatal-uch: Annahme: Tableauspalten und Zeilen enthalten m/ bzw. n/ Nicht-NullElemente; Faktorisierungsmatrizen von k : m Nicht-Null-Elemente; Eta-Spalten: ca. 5%-50% dicht FTRAN: ca. 0m, TRAN: ca. 0m Auswahl der Eingangsvariablen: 0n erechnung der Ausgangsvariablen: m Aktualisierung von x und : m Gesamtzeit Revidierter Simplex: 3m+0n Gesamtzeit Tableau-Methode: mn/4 8