Methoden der linearen Optimierung

Ähnliche Dokumente
1 Lineare Optimierung, Simplex-Verfahren

Lineares Optimieren. W. Kippels 12. April Inhaltsverzeichnis. 1 Einleitung 2. 2 Die Beispielaufgabe 2. 3 Einführung von Schlupfvariablen 2

Lineare Optimierungsmodelle

OPERATIONS-RESEARCH (OR)

Studientag zur Algorithmischen Mathematik

Bestimmung einer ersten

3.2 Lineare Optimierung (Entscheidungen unter Sicherheit)

Das Linear Ordering Problem Exakte Lösungsverfahren. für NP-schwierige. VO Algorithm Engineering

37 Gauß-Algorithmus und lineare Gleichungssysteme

Lineare Programmierung Teil I

3. Schnittebenenverfahren

Schranken für zulässige Lösungen

10. Lineare Optimierung

Kapitel 2: Lineare Optimierung

Übungen zur Linearen Optimierung Sommersemester Übungsblatt 1

Lineare Programmierung

Lösung von Optimierungsproblemen anhand von Simplex- Verfahren

Mathematische Optimierung

Vorlesungsmitschrift Operations Research I und II

2. Optimierungsprobleme 6

Mathematikreferat. von. Matthias Faß FG 99

(Technisch: Setze alle Skalarprodukte der allgemeinen Lösung mit den Basisvektoren des Kerns gleich Null eindeutige leastsqares Lösung)

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

Simplex-Umformung für Dummies

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok

Maximiere Gesamtgewinn aus verschiedenen Produkten unter Restriktionen an Produktmenge (Lagermenge, Transportmenge)

Unimodularität. Kapitel 1. Peter Becker (H-BRS) Operations Research II Wintersemester 2015/16 11 / 206

Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011)

Corinne Schenka Vorkurs Mathematik WiSe 2012/13

Ausgewählte Methoden der ganzzahligen Linearen Optimierung

Optimalitätskriterien

Zielfunktion lineare Funktion Nebenbedingungen lineare Funktionen

Optimierungsalgorithmen

Lineare Gleichungssysteme

A2.3 Lineare Gleichungssysteme

( ) Lineare Gleichungssysteme

Sensitivitätsanalyse in der Linearen Optimierung

Lineare Programmierung. Beispiel: Wahlkampf. Beispiel: Wahlkampf. Mathematische Schreibweise. Lineares Programm. Datenstrukturen & Algorithmen

KLAUSUR zu Einführung in die Optimierung. Studiengang: Bachelor Master Diplom (bitte ankreuzen)

AUFGABENTEIL. Klausur: Modul Optimierungsmethoden des Operations Research. Termin:

3. Grundlagen der Linearen Programmierung

Lineares Programmieren

Lineare Gleichungssysteme

Inhaltsverzeichnis. Vorwort Kapitel 1 Einführung, I: Algebra Kapitel 2 Einführung, II: Gleichungen... 57

Lineare Gleichungssysteme - Grundlagen

Optimieren unter Nebenbedingungen

(Allgemeine) Vektorräume (Teschl/Teschl 9)

Fachakademie für Wirtschaft der FHM A2: Lineare Optimierung und das Simplexverfahren

Optimierung und Simulation ökonomischer Problemlagen privater Haushalte 2. Vorlesung

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

Optimierung und Simulation ökonomischer Problemlagen privater Haushalte 3. Vorlesung

3.4 Der Gaußsche Algorithmus

Klausur zur Vorlesung Mathematische Grundlagen für Wirtschaftswissenschaftler

Newton-Verfahren zur gleichungsbeschränkten Optimierung. 1 Gleichungsbeschränkte Optimierungsprobleme

Themenheft mit viel Trainingsmaterial (Siehe Vorwort!) Unabhänge Vektoren und Erzeugung von Vektoren Gauß-Algorithmus Rang einer Matrix.

ARBEITSUNTERLAGEN ZUR VORLESUNG UND ÜBUNG AN DER UNIVERSITÄT DES SAARLANDES LINEARE OPTIMIERUNG

Lineares Programmieren Algorithmentechnik WS 09/10 Dorothea Wagner 7. Januar 2010

1 Zahlentheorie. 1.1 Kongruenzen

3 Optimierung mehrdimensionaler Funktionen f : R n R

9.2 Invertierbare Matrizen

Operations Research für Wirtschaftsinformatiker. Vorlesungsskript von Richard Mohr

Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren Thomas Brox, Fabian Kuhn

3.6 Eigenwerte und Eigenvektoren

Optimierung. Prof. Dr. H. Maurer WWU Münster, Wintersemester 2009/2010 Vorlesungsmitschrift von Christian Schulte zu Berge. 22.

Operations Research I

Dualitätssätze der linearen Optimierung

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21

Optimierung I. Dr. Ulf Lorenz F2.413

Lineare Gleichungssysteme Kapitel 5 aus meinem Lehrgang ALGEBRA

Optimierung für Nichtmathematiker

Grundlagen, Vorgehensweisen, Aufgaben, Beispiele

Skript Operations Research, SS Dr. Reinhard Schaitzel, Hochschule Augsburg, Fakultät für Informatik

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Fall 3: Mehrere Kapazitätsengpässe

Lineare Optimierung. Vorlesung von Prof. Christiane Tammer Author : Georg Kuschk (Quelle :

Der Simplexalgorithmus und Innere-Punkt-Methoden zur Lösung linearer Optimierungsprobleme

Sattelpunkt-Interpretation

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015

Allgemeines Gleichungssystem mit zwei Gleichungen und zwei Variablen. Der erste Index bezeichnet die Nummer der Zeile, der zweite die der Spalte.

Lineare Optimierungsmodelle

Mathematik für Wirtschaftswissenschaftler

Aufgabensammlung aus Mathematik 2 UMIT, SS 2010, Version vom 7. Mai 2010

9 Optimierung mehrdimensionaler reeller Funktionen f : R n R

Aufgabe 1: Bestimmen Sie Zahlen a b. ,, für die. = b. und gleichzeitig a + b + 1 = 0 gilt. Lösung zu Aufgabe 1:

4 Lineare Algebra (Teil 2): Quadratische Matrizen

Prüfungsklausur Wirtschaftsmathematik I Studiengang Wirtschaftsinformatik, (180 Minuten)

Lineare Gleichungssysteme

Einstieg in die Informatik mit Java

Lineare (Un-)Gleichungen und lineare Optimierung

Iterative Verfahren, Splittingmethoden

Spezialfall: Die Gleichung ax = b mit einer Unbekannten x kann mit Hilfe des Kehrwerts 1 a = a 1 gelöst werden:

Kap 5: Rang, Koordinatentransformationen

Übungen und Fallbeispiele zum Operations Research

Besteht eine Matrix nur aus einer Spalte (Zeile), so spricht man auch von einem Spaltenvektor (Zeilenvektor)

Nichtlineare Gleichungssysteme

Matrizen, Determinanten, lineare Gleichungssysteme

3 Elementare Umformung von linearen Gleichungssystemen und Matrizen

Lineare Gleichungssysteme (Teschl/Teschl 11.1)

Transkript:

Methoden der linearen Optimierung Mike Hüftle 31. Juli 2006 Inhaltsverzeichnis 1 Einleitung 2 1.1.................................... 2 2 Lineare Optimierung 3 2.1 Lineares Modell............................ 3 2.2 Basisdarstellung........................... 4 2.3 Graphische Lösung.......................... 5 2.4 Konvexität des Lösungsraumes................... 6 3 Simplexverfahren 7 3.1 Methodenbeschreibung........................ 7 3.1.1 Nebenpfad: Simplex-Verfahren............... 8 3.2 Graphische Interpretation...................... 9 3.3 Ein Beispiel.............................. 10 3.4 Varianten des Simplex-Verfahrens.................. 12 3.5 Varianten des Simplex-Verfahrens.................. 14 3.6 Duales Simplex-Verfahren...................... 15 3.7 Anwendung.............................. 17 4 Methoden postoptimaler Analysen 18 4.1 Sensitivitätsanalyse.......................... 18 4.2 Sensitivitätsanalyse.......................... 19 4.3 Parametrisches Programmieren................... 20 5 Literatur, Software und Methodenverzeichnis 21 5.1 Literatur zum Simplexverfahren................... 21 5.1 Literatur zu Sensitivitätsanalysen.................. 21 5.1 Software............................... 22 5.2 Methodenverzeichnis......................... 23 1

1 Einleitung 1.1 Einführung Die lineare Optimierung gehört zu den ältesten und am besten entwickelten Gebieten der mathematischen Optimierung, da sich verschiedenste Planungs-, Steuerungs- und Optimierungsprobleme als lineare Programme formulieren lassen, und dann relativ einfach gelöst werden können. Für lineare Optimierungsprobleme existiert eine Reihe von Methoden, welche auch große Probleme effizient lösen können. Deshalb wird in der Praxis häufig versucht, Optimierungsmodelle als lineare Modelle zu formulieren. Methoden zur Lösung linearer Optimierungsmodelle Zur Lösung linearer Optimierungsmodelle werden hauptsächlich zwei Lösungsansätze verwendet. Zum einen das Simplexverfahren und seine Erweiterungen und zum anderen Innere Punkte-Methoden. Im Folgenden wird lediglich das in der Praxis häufiger verwendete Simplexverfahren beschrieben. 2

2 Lineare Optimierung 2.1 Lineares Modell Lineares Optimierungsproblem Ein lineares Optimierungsproblem ist gegeben, wenn eine lineare Zielfunktion unter Beachtung endlich vieler linearer Nebenbedingungen optimiert werden soll. Lineares Optimierungsmodell Das Standardmodell der linearen Optimierung kann folgendermaßen formuliert werden: max z = c T x u. d. NB Ax b, x 0 c, x R n, b R m, b 0 wobei c T x als Zielfunktion bezeichnet wird, c als Vektor der Zielfunktionskoeffizienten, A als die Koeffizientenmatrix mit m Zeilen und n Spalten und b als Kapazitätenvektor. Die Restriktionen x 0 werden als Nichtnegativitätsbedingungen bezeichnet. 3

2.2 Basisdarstellung Schlupfvariablen Durch die Einführung nichtnegativer Variablen s (so genannter Schlupfvariablen) können die Ungleichungsnebenbedingungen in einfacher zu handhabende Gleichungsnebenbedingungen überführt werden, ohne das Modell selbst zu verändern: Lineares Modell mit Schlupfvariablen max z = c T x + 0 T s u. d. NB A m,n x + I m s = b x,s 0, A m,n eine (m n) Matrix c,x R n, b, s R m, I m m dim. Einheitsmatrix Basisdarstellung des linearen Optimierungsmodells Jede nichtsinguläre Teilmatrix B der Matrix D=(A,I sub m /sub ) wird Basis des linearen Modells genannt. Die Matrix B enthält somit nur die so genannten Basisspalten (Basisvariablen) der Matrix D. Mit N wird der aus den Nichtbasisspalten (Nichtbasisvariablen) bestehende Rest der Matrix D bezeichnet. Das lineare Modell kann somit auch geschrieben werden als: Lineares Modell in Basisdarstellung max z = (c T B, ct N ) ( xb xn ) u. d. NB s. d. (B, N) ( xb x N ) = b x b, x N 0 Der Vektor x = (x B, 0), für den alle Nichtbasisvariablen Null sind, wird Basislösung genannt. Eine Basislösung ist zulässig, wenn für x B = B 1 b 0 gilt, d.h. keine Nebenbedingung durch eine Basisvariable verletzt wird. 4

2.3 Graphische Lösung Graphische Lösung des linearen Optimierungsproblems Die Abbildung zeigt die graphische Lösung eines linearen Optimierungsproblems mit zwei Variablen und drei Nebenbedingungen. Der schraffierte Bereich markiert den zulässigen Lösungsraum, d.h. die Menge der möglichen Lösungen, die keine Nebenbedingung verletzen. Um die optimale Lösung zu bestimmen, wird die gestrichelte Zielfunktionsgerade z (die Gerade, auf der die Zielfunktinswerte für verschiedene Variablenausprägungen liegen) parallel nach rechts verschoben, bis sie eine Ecke des zulässigen Lösungsraumes berührt (durchgezogene Zielfunktionsgerade). Je weiter die Gerade nach rechts wandert, desto höhere Werte nimmt die Zielfunktion an. Kann die Zielfunktionsgerade nicht mehr weiter verschoben werden, ohne den zulässigen Raum zu verlassen, so ist eine optimale Lösung x* gefunden. 5

2.4 Konvexität des Lösungsraumes Konvexität des Lösungsraumes Grundlegend für die Betrachtung der Methoden zur Lösung linearer Optimierungsprobleme ist die Tatsache, dass der Lösungsraum, den die Nebenbedingungen beschränken, stets abgeschlossen und konvex ist. Dies wird auch ein Polyeder genannt. Ist er zusätzlich noch beschränkt, so ist der Lösungsraum ein konvexes Polytop und es existiert eine zulässige optimale Basislösung x*, die in einer Ecke des Polyeders liegt. Ist der Polyeder nicht beschränkt, so kann es sein, dass keine optimale Lösung existiert. Der Begriff des n-simplex bezeichnet ein Polytop bzw. dessen konvexe Hülle im n-dimensionalen Raum. Die Abbildung zeigt einen Simplex im dreidimensionalen Raum. 6

3 Simplexverfahren 3.1 Methodenbeschreibung Einführung Das Simplex-Verfahren (auch: Simplex-Algorithmus) wurde 1947 von George Dantzig entwickelt. Es findet für ein lineares Optimierungsproblem nach endlich vielen Schritten eine exakte Lösung oder stellt die Unlösbarkeit des Problems fest. In seltenen Fällen können Zyklen auftreten, so dass das Simplexverfahren die optimale Lösung nicht berechnen kann. Methodenbeschreibung Das Simplex-Verfahren geht von einer zulässigen Basislösung des linearen Optimierungsmodells aus. Als erste Basislösung kann die Einheitsmatrix I m eingesetzt werden, welche durch die Spalten der Schlupfvariablen gebildet wird. Basistausch Durch den schrittweisen Übergang von einer zulässigen Basislösung zur nächsten, dem so genannten Basistausch, wird eine endliche Folge von Basislösungen erzeugt, deren Zielfunktionswert sich nicht verschlechtert. Mit jedem Basistausch wird eine Variable aus der Basis durch eine Nichtbasisvariable ersetzt. Durch eine Eliminationsregel wird bestimmt, welche Variable aus der Basis eliminiert wird. Diese Regel stellt sicher, dass auch die nächste Basislösung zulässig ist, d.h. x B = B 1 b 0 gilt. Die neu in die Basislösung aufzunehmende Variable wird mittels einer Auswahlregel bestimmt, welche garantiert, dass sich der Zielfunktionswert nicht verschlechtert. Nähere Erläuterungen zur Auswahl- und zur Eliminationsregel finden Sie hier. Sind die neu in die Basis aufzunehmende und die zu eliminierende Spalte bestimmt, so wird das lineare Modell mittels elementarer Matrixoperationen so umgeformt, dass die aufzunehmende Variable zum Einheitsvektor wird. Anschließend beginnt der nächste Iterationsschritt wieder mit der Auswahl einer neu in die Basis aufzunehmenden Variablen. Stopp-Regel Es werden so lange Basistausche vorgenommen, bis der Zielfunktionswert nicht mehr weiter verbessert werden kann. Dann terminiert das Simplex-Verfahren. 7

3.1.1 Nebenpfad: Simplex-Verfahren Auswahlregel Die neu in die Basislösung aufzunehmende Variable wird mittels einer Auswahlregel bestimmt, welche garantiert, dass sich der Zielfunktionswert nicht verschlechtert. Die Auswahl erfolgt z.b. nach dem Kriterium der maximalen marginalen Verbesserung des Zielfunktionswertes z j für alle Nichtbasis-Indizes j: z j = c j c B B 1 A j < 0 Existieren mehrere solche z j < 0, so wird das kleinste ausgewählt. Dieses verspricht die größte Verbesserung des Zielfunktionswertes. Gibt es kein z j < 0, so ist die aktuelle Basislösung optimal und das Simplex-Verfahren terminiert. EliminationsregelZur Auswahl der zu eliminierenden Basisvariablen wird der Vektor a l der neu in die Basis aufzunehmenden Variablen x l betrachtet. Gibt es keine positive Komponente des Vektors x l, so terminiert das Simplexverfahren. Ist eine Komponente i von a l positiv, so wird Θ bestimmt zu: Θ = min bi a il i = 1,..., m; a i l > 0 Gibt es ein i, so dass Θ eindeutig bestimmbar ist, dann ist dies der Index der Basisvariablen, bei deren Elimination die Zulässigkeit der nächsten Basislösung gesichert ist. Existiert kein eindeutiger Indexi, so wird dies eine entartete Basislösung genannt und die Wahl der zu eliminierenden Variablen ist nicht mehr eindeutig. Dies kann dazu führen, dass das Simplexverfahren kreist, d.h. immer wieder die gleichen Basislösungen generiert. Dies führt in der Praxis jedoch kaum zu Problemen. 8

3.2 Graphische Interpretation Graphische Interpretation des Simplex- Verfahrens Eine anschaulichere graphische Interpretation des Simplex-Verfahrens ist die Vorstellung von einem konvexen Polyeder, dessen Seitenflächen durch die Nebenbedingungen des linearen Modells gegeben sind. Somit ist die Menge der Punkte, welche den Polyeder bilden, die zulässige Menge des Optimierungsproblems. Gibt es einen optimale Lösung x*, so liegt diese auf einer Ecke des Polyeders. Das Simplexverfahren durchläuft eine Folge von Ecken des Polyeders, wobei sich der Zielfunktionswert nicht verschlechtern darf. Jeder Wechsel von einer Ecke zu einer benachbarten Ecke entspricht einem Basistausch, d.h. eine Nichtbasisvariable wird zur Basisvariablen und umgekehrt. Da ein konvexes Polyeder nur endlich viele Ecken besitzt und das Simplexverfahren jede Ecke nur einmal durchläuft (Ausnahme: entartete Basislösung) terminiert der Algorithmus in endlich vielen Schritten oder stellt fest, dass es keine Lösung des linearen Optimierungsproblems gibt LaufzeitverhaltenDas worst case-laufzeitverhalten des Simplexverfahrens ist exponentiell, d.h. des Simplex- die Rechenzeit wächst exponentiell mit der Anzahl der Variablen. Es ist ein Algorithmus noch nicht gelöstes Problem, ob es Auswahlregeln gibt, für die das worst case- Verhalten polynomial ist. In der Praxis hat sich jedoch gezeigt, dass im Mittel sehr gute Laufzeiten erreicht werden und das Verfahren somit eine gute Wahl zur Lösung linearer Optimierungsprobleme ist. 9

3.3 Ein Beispiel Basisdarstellung des Modells Zur Veranschaulichung (nicht zur Implementierung) des Simplexverfahrens wird oft die Tableauform benutzt. Deshalb wird im Folgenden das Verfahren mit einem Beispiel anhand der Tableauform erläutert. Betrachtet wird das folgende lineare Optimierungsproblem: max z = x 1 + x 2 x 3 u. d. NB 3x 1 2x 2 3 2x 1 +x 3 4 x 1 +3x 2 2x 3 6 x 1, x 2, x 3 0 Nach der Einführung von Schlupfvariablen erhält man das folgende Modell: max z = x 1 + x 2 x 3 u. d. NB 3x 1 2x 2 +x 4 = 3 2x 1 +x 3 +x 5 = 4 x 1 +3x 2 2x 3 +x 6 = 6 x 1, x 2, x 3 0 Die folgende Dia-Show zeigt den Ablauf des Simplex-Verfahrens zur Lösung des obigen Modells. Die einzelnen Schritte werden weiter unten ausführlicher erläutert. Ausgangstableau mit den Schlupfvariablen x 4, x 5, x 6 als erster Basislösung Bestimmen von Pivotzeile, Pivotspalte und Pivotelement Aktualisieren bzw. Umformen des Simplextableaus 10

Bestimmen von Pivotzeile, Pivotspalte und Pivotelement Umformen zum optimalen Simplextableau Erste Basislösung Mit den Schlupfvariablen x 4,x 5, x 6 als erster Basislösung wird folgendes Tableau T 0 aufgestellt: Basistausch Die Spalte der x B(i) des Tableaus enthält die Variablen, die in der aktuellen Basislösung vorkommen. Um die Variable auszuwählen, welche neu in die Basis aufgenommen werden soll, werden in der untersten Zeile die marginalen Verbesserungen der Zielfunktionswerte z j als Auswahlkriterium berechnet und das kleinste der z j < 0 ausgewählt. Existieren mehrere z j < 0, welche den gleichen kleinsten Wert besitzen, so wird eines mit dem Index l ausgewählt. Die l-te Spalte des Tableaus ist die Pivotspalte. Um die Pivotzeile mit der aus der Basislösung zu eliminierenden Variablen zu bestimmen wird für alle iθ i = b i /a il berechnet, mit a il als demi-ten Element der Pivotspalte. Wurde so dass Pivotelement bestimmt, so kann das Tableau umgeformt (pivotisiert) werden. Beim Pivotisieren wird die Spalte a l zum Einheitsvektor transformiert. Hierzu werden z.b. die Kreisregel, Zeilentransformationen oder Matrixoperationen eingesetzt (vgl. [5] S. 80 f.). Der Zielfunktionswert der aktuellen Lösung wird berechnet zu: z = i B c ib i = 0 Zwei weitere Iterationen Der Algorithmus endet im Tableau T 2, da alle z j < 0 sind. Die Optimallösung lautet: x 1 = 21/11, x 2 = 15/11, x 3 = 0mit dem optimalen Zielfunktionswert z = 36/11. 11

3.4 Varianten des Simplex-Verfahrens Varianten des Simplex- Verfahrens Es wurden zahlreiche Varianten des Simplex-Verfahrens entwickelt, welche die Anzahl der notwendigen Iterationen zur Lösung eines linearen Optimierungsproblems verringern oder welche die Rechenzeit zur Durchführung einer Iteration reduzieren. Dies führt vor allem bei Problemen mit vielen Nebenbedingungen oder einer großen Anzahl an Variablen zu geringeren Laufzeiten. Revidiertes Simplexverfahren Der revidierte Simplex-Algorithmus wird nahezu von allen numerischen Implementierung des Simplexverfahrens verwendet (vgl. z.b. [1] pp. 234-270). Er arbeitet bei der Optimierung großer und dünn besetzter linearer Optimierungsmodelle effizienter als der Standard-Simplexalgorithmus. Anstatt die komplette Matrix A nach jeder Iteration neu zu bestimmen, führt der revidierte Simplex-Algorithmus den größten Teil der Berechnungen am Anfang jeder Iteration durch, indem jeweils die inverse Matrix B sup -1 /sup mit der Pivotmatrix P aktualisiert wird. Da große Matrizen B an vielen Stellen keine Einträge enthalten, ist dies sehr recheneffizient. Im Folgenden wird das Vorgehen des revidierten Simplexalgorithmus am obigen Beispiel erläutert. Beispiel für den revidierten Simplex Im initialen Simplextableau T 0 wird die Pivotmatrix P 1 berechnet, indem die k-te Spalte der Einheitsmatrix (k ist der Index der Pivotzeile) durch die Spalte L = ( a 1l /a kl, a 2l /a kl,..., 1/a kl,..., a m l/a kl ) T (1) ersetzt wird: P 1 = 2/3 0 0 1/3 0 0 1/3 0 0 Für die revidierte Simplexmethode genügt es nun, die neue Matrix B 1 1 zu berechnen: B 1 1 = P 1 B 1 0 = 2/3 0 0 1/3 0 0 1/3 0 0 1 0 0 0 1 0 0 0 1 = 2/3 0 0 1/3 0 0 1/3 0 0 12

Auf diese Weise kann jede Matrix B 1 k berechnet werden, indem die initiale Matrix B0 1 mit k Pivotmatrizen multipliziert wird: B 1 k = P k P k 1... P 2 P 1 B 1 13

3.5 Varianten des Simplex-Verfahrens Methode von Bartels-Golub Eine Variante des revidierten Simplexalgorithmus ist die Methode von Bartels- Golub. Sie verbesserte die Laufzeit, den Speicherplatzbedarf und insbesondere die numerische Genauigkeit des revidierten Simplex. Die Methode von Bartels- Golub vermeidet die aufwändige Berechnung der inversen Matrix. Anstatt dessen wird die Basis in obere und untere Dreiecksfaktoren zerlegt, die effizienter als die Inverse berechnet werden können. Weitere Auswahlregeln Es existieren zahlreiche Varianten zur Durchführung der einzelnen Schritte des Simplex-Algorithmus (vgl.[4], S. 143 ff.). Regeln zur Auswahl der Pivotspalte l aus den N Nichtbasisspalten mit z j < 0 sind z.b.: Kleinster-Index-Regel: Wähle l so, dass z l = min {j N z j < 0} Regel der maximalen Verbesserung des Zielfunktionswertes: Wähle l so, dass z l = min { z j z j < 0} Weitere Eliminationsregeln Regeln zur Auswahl der zu eliminierenden Variablen bzw. zur Auswahl der Pivotzeile sind z.b.: Kleinster-Zeilenindex-Regel: Wähle k so, dass Θ k = min {Θ i Θ i > 0} Kleinster Index-Regel: Wähle das erste i mit Θ i < 0 Lexikographische Zeilenauswahlregel 14

3.6 Duales Simplex-Verfahren Duales Modell der linearen Optimierung Das duale Simplexverfahren basiert auf dem dualen Modell der linearen Optimierung: min Z = b T y u. d. NB A T y c, y 0 b, y R m, c R n Duales Simplexverfahren In diesem Zusammenhang wird das (Standard-) Modell der linearen Optimierung auch als primales Modell bezeichnet und das (Standard-) Simplex- Verfahren als primales Verfahren. Zur Theorie der Dualität in der linearen Optimierung wird auf die angegebene Literatur verwiesen (z.b. [5], S. 92 ff.). Hier werden lediglich einige -zum Verständnis dualer Modelle wesentliche- Aussagen der Dualitätstheorie angeführt: Jedes duale Modell lässt sich in ein primales umformen und umgekehrt. Wenn eines der beiden Modelle eine optimale Lösung hat, so besitzt auch das andere eine optimale Lösung und die Zielfunktionswerte stimmen überein. Die duale Zulässigkeit eines Modells ist gegeben, wenn für alle j=1,..., m gilt: z j 0. Mittles des dualen Simplexverfahrens können also äquivalent zum primalen Simplex lineare Optimierungsprogramme gelöst werden. Anwendung des dualen Simplexverfahrens Das duale Simplex-Verfahren ist für bestimmte Problemstellungen gegenüber dem primalen Simplex-Verfahren von Vorteil. In vielen Fällen ist das duale Modell einfacher strukturiert und erfordert somit einen geringeren Lösungsaufwand als das primal formulierte Problem. Auch ist es in der Praxis häufig der Fall, dass nach Berechnung der optimalen Lösung kleine Modifikationen am ursprünglichen Problem vorgenommen werden. Wenn hierdurch das Problem primal unzulässig wird, so kann das duale Simplex-Verfahren effizient wieder eine zulässige optimale Lösung finden. 15

Ökonomische Interpretation des dualen Simplextableaus Dualitätsbetrachtungen erlauben zusätzliche Erkenntnisse über das Optimierungsproblem und dessen optimales Tableau. Es gibt eine ökonomische Interpretation der optimalen dualen Lösung, die in dieser Weise bei der primalen Lösung nicht möglich ist. Insbesondere können aus der dualen Lösung so genannte Schattenpreise interpretiert werden, welche die Knappheit einer Ressource angeben. Je knapper eine Ressource, desto mehr könnte der Zielfunktionswert durch eine Lockerung der entsprechenden Restriktion verbessert werden (vgl. [5], S. 99 f.). 16

3.7 Anwendung Anwendung der Simplexverfahren Neben der Simplex-Methode werden Innere Punkte-Verfahren zur Lösung von linearen Optimierungsproblemen eingesetzt. Welche Methode bei einem bestimmten Problem effizienter arbeitet hängt von der konkreten Problemstruktur ab. Im Allgemeinen arbeiteninnere Punkte-Verfahren bei der Lösung von Problemen mit dünn besetzten Matrizen besser, wohingegen Simplex-Verfahren ganzzahlige Probleme effizienter lösen. Da es für beide Methoden jedoch eine große Anzahl an Varianten, Erweiterungen und Kombinationen mit anderen Methoden gibt, ist es meist sinnvoll bei einem konkreten Problem den möglichen Einsatz verschiedener Verfahren zu überprüfen. Vorteile von Simplexverfahren Das Simplexverfahren und seine Varianten sind für die meisten Problemstellungen der linearen Optimierung die effizienteste Lösungsmethode. Es ist das in der Praxis wohl am häufigsten eingesetzte Optimierungsverfahren. Deshalb existieren zahlreiche Softwaretools, welche das Simplexverfahren einsetzen. Das duale Simplexverfahren hat sich insbesondere bei der ganzzahligen Optimierung als effizient erwiesen. Das Verfahren kann mit Warmstarts begonnen werden, d.h. man beginnt mit einer Basislösung in der Nähe der Optimallösung. Dies verbessert die Laufzeit. Nachteile von Simplexverfahren Das Simplexverfahren zeigt im worst case ein exponentielles Laufzeitverhalten im Gegensatz zu Innere Punkte-Methoden (polynomiale Laufzeit) Das Aufteten einer entarteten Basis kann in seltenen Fällen zu Problemen bei der Lösung führen (z.b. bei postoptimale Analysen) 17

4 Methoden postoptimaler Analysen 4.1 Sensitivitätsanalyse Weitergehende Fragestellungen Oftmals ergeben sich nach der Berechnung des Optimums eines linearen Problems weitergehende Fragestellungen. Beispielsweise wird gefragt, in welchem Umfang die Modellparameter schwanken dürfen, damit sich die optimale Lösung nicht verschlechtert. Der Simplexalgorithmus bietet Möglichkeiten, solche Fragen zu beantworten. Stabilität der optimlaen Lösung Durch Sensitivitätsanalysen kann die Stabilität der Lösung eines linearen Optimierungsproblems getestet werden (vgl. [1]). Es wird analysiert, wie sich Veränderungen an einem bereits gelösten linearen Optimierungsmodell in der optimalen Lösung auswirken. Einfügen zusätzlicher Variablen Diese Veränderungen können das Einfügen zusätzlicher Variablen oder Nebenbedingungensein, das Entfernen von Variablen oder Nebenbedingungen sowie Variationen in den verschiedenen Koeffizienten und den Ressourcenbeschränkungen. Der Bereich in dem die verschiedenen Größen schwanken können ohne die optimale Lösung zu verändern, ist auch der Bereich, für den die Schattenpreise des dualen Modells ihre Gültigkeit behalten. Verletzung der Zulässigkeit Wird eine der oben genannten Größen verändert, so kann die primale oder duale Zulässigkeit einer Basislösung verletzt werden. Duale Zulässigkeit besteht, wenn für alle Spaltenindizes j gilt: z j 0. Eine Lösung ist primal zulässig, wenn x B = B 1 b 0 gilt. 18

4.2 Sensitivitätsanalyse Sensitivitätsanalyse - Verletzung der dualen Zulässigkeit Gegeben sei das optimale Tableau T 2 des Beispiels: Es soll nun untersucht werden, wie weit der Zielfunktionskoeffizient c 1 varriert werden kann, ohne die duale Zulässigkeit der optimalen Lösung zu verletzen. Hierzu wird c 1 durch c 1 = c 1 + λ ersetzt. Damit ergibt sich z 1 zu z 1 = ( 1 + λ) + ( 1 + λ)( 4/11) + ( 6/11) = 1/11 15λ/11 D.h. die duale Zulässigkeit bleibt für alleλ 1/15erhalten. Für λ > 1/15ist die Zulässigkeit verletzt. Sensitivitätsanalyse - Verletzung der primalen Zulässigkeit Die primale Zulässigkeit kann z.b. verletzt werden, wenn durch Variation der Restriktionen b i eine Komponente des Vektors x B(i) negativ wird. Um dies zu untersuchen wird b i = b i + λ gesetzt. Wird z.b. die Restriktion 2x 1 + x 3 + x 5 = 4variiert, so wird b 2 = b 2 + λ = 4 + λ gesetzt. Somit ergibt sich die rechte Seite des Simplextableaus zu: x B = B 1 b = 9/33 0 2/11 18/33 1 4/11 1/11 0 3/11 3 4 + λ 6 = 21/11 2/11 + λ 15/11 D.h. für λ 2/11 ist die primale Zulässigkeit verletzt. Entsprechende Analysen können auch für alle anderen Komponenten des b- Vektors oder für die Koeffizientenmatrix der Nebenbedingungen durchgeführt werden. Sind die primale bzw. duale Zulässigkeit verletzt, so kann mit einem dualen bzw. primalen Simplexschritt die Zulässigkeit wieder hergestellt und eine neue optimale Lösung erzeugt werden. 19

4.3 Parametrisches Programmieren Parametrisches Programmieren Beim parametrischen Programmieren werden Modelle mit parametrisierter Zielfunktion max z = (c + λd) T x u. d. NB s. d. Ax b, x 0 x, c, d R n ; b R m bzw. Modelle mit parametrisierten Nebenbedingungen betrachtet (vgl. [3], S. 106). Für Modelle mit parametrisierter Zielfunktion ist der optimale parametrisierte Zielfunktionswert g(λ) gegeben durch: g(λ) = min (c + λd) T x i i = 1,..., N in Abhängigkeit von λ mit den Eckpunkten der zulässigen Mengex 1,..., x N. g(λ) ist stückweise linear und konvex, wie aus der Abbildung deutlich wird. Diese zeigt das Verhalten des optimalen Zielfunktionswertes in Abhängigkeit vom Parameter λ. Solche Modelle können mit dem Simplex-Verfahren gelöst werden. Sie bestimmen für jede optimale Basislösung x i zulässige Intervalle für den Parameter λ. Nichtlineares parametrisches Programmieren Auch für die nichtlineare Optimierung existiert ein Vielzahl von Ansätzen zur parametrischen Programmierung. Diese werden hier jedoch nicht dargestellt. Für einen Überblick über die nichtlineare parametrische Programmierung wird der interessierte Leser auf die Arbeit von Jongen und Weber [1] verwiesen. 20

5 Literatur, Software und Methodenverzeichnis 5.1 Literatur zum Simplexverfahren Literaturverzeichnis Einführende Literatur Calvert, J.E./Voxman, W.:Linear Programming. Orlando 1989. Chvatal, V.: Linear Programming, Freeman, New York 1983. Dantzig, G.B./Thapa, M. N.: Linear Programming - Theory and Extensions, Springer, New York Berlin Heidelberg 2003. Grötschel, M.: Lineare Optimierung. Skriptum zur Vorlesung, Institut für Mathematik, TU Berlin 2004, auf URL: http://www.zib.de/groetschel/teaching/skriptadmii.pdf (23.06.05) Zimmermann, H.-J.: Operations Research - Methoden und Modelle.Vieweg, Wiesbaden 2005. Literaturverzeichnis Weiterführende Literatur Bartels, R. H./Golub, G.A.: The Simplex Method of Linear Programming Using LU Decomposition, in: Communications of the ACM 5, 1969, pp. 266-268. Gill, P. E./Murray, M./Wright, M.E.: Numerical Linear Algebra and Optimization Volume 1, Addison-Wesley, Redwood City 1991. Goldfarb, D./Reid, J.K.: A Practicable Steepest Edge Simplex Algorithm, in: Mathematical Programming, Vol. 12, 1977, pp. 361-371. Klee, V./Minty, G.J.: How Good is the Simplex Algorithm?, in: Shisha, O. (ed.): Inequalities - III, Academic Press, New York 1972, pp. 159-175. N.N: Linear Programming Software. Links des Zuse-Instituts Berlin zu LP-Software, auf URL: http://elib.zib.de/pub/packages/mathprog/linprog/index.html (23.06.05). 5.1 Literatur zu Sensitivitätsanalysen Literaturverzeichnis Einführende Literatur Calvert, J.E./Voxman, W.:Linear Programming. Orlando 1989, pp. 340-389. Chvatal, V.: Linear Programming, Freeman, New York 1983. Zimmermann, H.-J.: Operations Research - Methoden und Modelle.Vieweg, Wiesbaden 2005. 21

Literaturverzeichnis Weiterführende Literatur Jongen, H.T./Weber, G.W.: On parametric nonlinear programming, in: Ann. Operations Research, Vol. 27, 1990, pp. 253-284. 5.1 Software Die meisten Softwarepakete bieten standardmäßig eine Auswahl zwischen der primalen und der dualen Simplexmethode sowie einer Innere Punkte-Methode zur Lösung linearer Programme. Die Leistungsfähigkeit guter LP-Solver wird in der Regel nur durch den verfügbaren Speicherplatz auf dem Rechner, die Prozessor-Architektur oder interne Restriktionen begrenzt. So können Programme wie AMPL auf entsprechend leistungsfähigen Rechnern Modelle mit bis zu 1 Mio. Nebenbedingungen lösen. Auch die oft frei erhältlichen Studentenversionen lösen Probleme mit mehreren tausend Variablen und Nebenbedingungen. Aus der Vielzahl der am Markt angebotenen Softwaretools zur Lösung linearer Programme sei hier nur eine Auswahl aufgeführt. Einen ausführlicheren Überblick finden Sie unter http://www.lionhrtpub.com/orms/surveys/lp/lpsurvey.html [4] [5] [2] [3] [1] AMPL Studio von OptiRisk Systems: umfangreiches Solverpaket zur linearen, nichtlinearen und ganzzahligen Optimierung ILOG OPL Development Studio von ILOG LINDO von LINGO Systems: löst lineare, nichtlineare und ganzzahlige Modelle SAS/OR von SAS Institute: Erweiterungs-Modul des Statistikpaketes SAS um OR-Methoden Premium Solver von Frontline Systems: Solver für Excel, Visual Basic 22

5.2 Methodenverzeichnis Verzeichnis der erläuterten Methoden Methode von Bartels-Golub Duales Simplexverfahren Parametrische Programmierung Revidiertes Simplexverfahren Simplexverfahren Sensivitätsanalyse 23