Methoden der linearen Optimierung

Methoden der linearen Optimierung Mike H¨ uftle 31. Juli 2006 Inhaltsverzeichnis 1 Einleitung 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . ....
Author: Sven Schuster
27 downloads 3 Views 177KB Size
Methoden der linearen Optimierung Mike H¨ uftle 31. Juli 2006

Inhaltsverzeichnis 1 Einleitung 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 2

2 Lineare Optimierung 2.1 Lineares Modell . . . . . . . . . 2.2 Basisdarstellung . . . . . . . . 2.3 Graphische L¨ osung . . . . . . . 2.4 Konvexit¨ at des L¨ osungsraumes

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

3 3 4 5 6

3 Simplexverfahren 3.1 Methodenbeschreibung . . . . . . . . . 3.1.1 Nebenpfad: Simplex-Verfahren 3.2 Graphische Interpretation . . . . . . . 3.3 Ein Beispiel . . . . . . . . . . . . . . . 3.4 Varianten des Simplex-Verfahrens . . . 3.5 Varianten des Simplex-Verfahrens . . . 3.6 Duales Simplex-Verfahren . . . . . . . 3.7 Anwendung . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

7 7 8 9 10 12 14 15 17

. . . .

. . . .

. . . .

4 Methoden postoptimaler Analysen 18 4.1 Sensitivit¨ atsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Sensitivit¨ atsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Parametrisches Programmieren . . . . . . . . . . . . . . . . . . . 20 5 Literatur, Software und Methodenverzeichnis 5.1 Literatur zum Simplexverfahren . . . . . . . . . 5.1 Literatur zu Sensitivit¨atsanalysen . . . . . . . . 5.1 Software . . . . . . . . . . . . . . . . . . . . . 5.2 Methodenverzeichnis . . . . . . . . . . . . . . .

1

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

21 21 21 22 23

1

Einleitung

1.1 Einf¨ uhrung

Die lineare Optimierung geh¨ort zu den ¨ altesten 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¨ost werden k¨onnen. F¨ ur lineare Optimierungsprobleme existiert eine Reihe von Methoden, welche auch große Probleme effizient l¨ osen k¨onnen. Deshalb wird in der Praxis h¨ aufig versucht, Optimierungsmodelle als lineare Modelle zu formulieren.

Methoden zur L¨osung linearer Optimierungsmodelle

Zur L¨ osung linearer Optimierungsmodelle werden haupts¨achlich zwei L¨osungsans¨ atze verwendet. Zum einen das Simplexverfahren und seine Erweiterungen und zum anderen Innere Punkte-Methoden. Im Folgenden wird lediglich das in der Praxis h¨ aufiger verwendete Simplexverfahren beschrieben.

2

2 2.1

Lineare Optimierung 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 = cT x u. d. N B Ax≤ b, x ≥ 0 c, x ∈ Rn , b ∈ Rm , b ≥ 0

wobei cT x als Zielfunktion bezeichnet wird, c als Vektor der Zielfunktionskoeffizienten, A als die Koeffizientenmatrix mit m Zeilen und n Spalten und b als Kapazit¨ atenvektor. Die Restriktionen x ≥ 0 werden als Nichtnegativit¨atsbedingungen bezeichnet.

3

2.2

Basisdarstellung

Schlupfvariablen Durch die Einf¨ uhrung nichtnegativer Variablen s (so genannter Schlupfvariablen) k¨ onnen die Ungleichungsnebenbedingungen in einfacher zu handhabende Gleichungsnebenbedingungen u uhrt werden, ohne das Modell ¨berf¨ selbst zu ver¨ andern:

Lineares Modell mit Schlupfvariablen

max z = cT x + 0T s u. d. N B Am,n x + Im s = b x,s≥ 0, Am,n eine (m × n) − M atrix c,x ∈ Rn , b, s ∈ Rm , Im m − dim. Einheitsmatrix

Basisdarstellung des linearen Optimierungsmodells

Jede nichtsingul¨ are Teilmatrix B der Matrix D=(A,I¡sub¿m¡/sub¿) wird Basis des linearen Modells genannt. Die Matrix B enth¨alt 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

  B max z = (cTB , cTN ) xxN u. d. N B  B s. d. (B, N ) xxN =b xb , xN ≥ 0

Der Vektor x = (xB , 0), f¨ ur den alle Nichtbasisvariablen Null sind, wird Basisl¨ osung genannt. Eine Basisl¨osung ist zul¨assig, wenn f¨ ur xB = B −1 b ≥ 0 gilt, d.h. keine Nebenbedingung durch eine Basisvariable verletzt wird.

4

2.3 Graphische L¨osung des linearen Optimierungsproblems

Graphische L¨ osung

Die Abbildung zeigt die graphische L¨osung eines linearen Optimierungsproblems mit zwei Variablen und drei Nebenbedingungen. Der schraffierte Bereich markiert den zul¨ assigen L¨ osungsraum, d.h. die Menge der m¨oglichen L¨osungen, die keine Nebenbedingung verletzen. Um die optimale L¨ osung zu bestimmen, wird die gestrichelte Zielfunktionsgerade z (die Gerade, auf der die Zielfunktinswerte f¨ ur verschiedene Variablenauspr¨ agungen liegen) parallel nach rechts verschoben, bis sie eine Ecke des zul¨ assigen L¨ osungsraumes ber¨ uhrt (durchgezogene Zielfunktionsgerade). Je weiter die Gerade nach rechts wandert, desto h¨ohere Werte nimmt die Zielfunktion an. Kann die Zielfunktionsgerade nicht mehr weiter verschoben werden, ohne den zul¨ assigen Raum zu verlassen, so ist eine optimale L¨osung x* gefunden.

5

2.4 Konvexit¨at des L¨osungsraumes

Konvexit¨ at des L¨ osungsraumes

Grundlegend f¨ ur die Betrachtung der Methoden zur L¨osung linearer Optimierungsprobleme ist die Tatsache, dass der L¨osungsraum, den die Nebenbedingungen beschr¨ anken, stets abgeschlossen und konvex ist. Dies wird auch ein Polyeder genannt.

Ist er zus¨ atzlich noch beschr¨ankt, so ist der L¨osungsraum ein konvexes Polytop und es existiert eine zul¨ assige optimale Basisl¨osung x*, die in einer Ecke des Polyeders liegt. Ist der Polyeder nicht beschr¨ankt, so kann es sein, dass keine optimale L¨ osung existiert. Der Begriff des n-Simplex bezeichnet ein Polytop bzw. dessen konvexe H¨ ulle im n-dimensionalen Raum. Die Abbildung zeigt einen Simplex im dreidimensionalen Raum.

6

3 3.1 Einf¨ uhrung

Simplexverfahren Methodenbeschreibung

Das Simplex-Verfahren (auch: Simplex-Algorithmus) wurde 1947 von George Dantzig entwickelt. Es findet f¨ ur ein lineares Optimierungsproblem nach endlich vielen Schritten eine exakte L¨osung oder stellt die Unl¨osbarkeit des Problems fest. In seltenen F¨allen k¨onnen Zyklen auftreten, so dass das Simplexverfahren die optimale L¨ osung nicht berechnen kann.

Methodenbeschreibung Das Simplex-Verfahren geht von einer zul¨assigen Basisl¨osung des linearen Optimierungsmodells aus. Als erste Basisl¨ osung kann die Einheitsmatrix Im eingesetzt werden, welche durch die Spalten der Schlupfvariablen gebildet wird.

Basistausch

¨ Durch den schrittweisen Ubergang von einer zul¨assigen Basisl¨osung zur n¨achsten, dem so genannten Basistausch, wird eine endliche Folge von Basisl¨osungen 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¨achste Basisl¨ osung zul¨ assig ist, d.h. xB = B −1 b ≥ 0 gilt. Die neu in die Basisl¨ osung aufzunehmende Variable wird mittels einer Auswahlregel bestimmt, welche garantiert, dass sich der Zielfunktionswert nicht verschlechtert. N¨ ahere Erl¨ auterungen 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¨ achste 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

Auswahlregel

Nebenpfad: Simplex-Verfahren

Die neu in die Basisl¨ osung 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 ∆zj f¨ ur alle Nichtbasis-Indizes j: ∆zj = cj − c0B · B −1 Aj < 0 Existieren mehrere solche ∆zj < 0, so wird das kleinste ausgew¨ahlt. Dieses verspricht die gr¨ oßte Verbesserung des Zielfunktionswertes. Gibt es kein ∆zj < 0, so ist die aktuelle Basisl¨ osung optimal und das Simplex-Verfahren terminiert.

EliminationsregelZur Auswahl der zu eliminierenden Basisvariablen wird der Vektor al der neu in die Basis aufzunehmenden Variablen xl betrachtet. Gibt es keine positive Komponente des Vektors xl , so terminiert das Simplexverfahren. Ist eine Komponente i von al positiv, so wird Θ∗ bestimmt zu:

Θ∗ = min

bi ai l

∀i = 1, ..., m; ai l > 0

Gibt es ein i, so dass Θ∗ eindeutig bestimmbar ist, dann ist dies der Index der Basisvariablen, bei deren Elimination die Zul¨assigkeit der n¨achsten Basisl¨osung gesichert ist. Existiert kein eindeutiger Indexi, so wird dies eine entartete Basisl¨ osung genannt und die Wahl der zu eliminierenden Variablen ist nicht mehr eindeutig. Dies kann dazu f¨ uhren, dass das Simplexverfahren kreist, d.h. immer wieder die gleichen Basisl¨ osungen generiert. Dies f¨ uhrt in der Praxis jedoch kaum zu Problemen.

8

3.2 Graphische Interpretation des SimplexVerfahrens

Graphische Interpretation

Eine anschaulichere graphische Interpretation des Simplex-Verfahrens ist die Vorstellung von einem konvexen Polyeder, dessen Seitenfl¨achen durch die Nebenbedingungen des linearen Modells gegeben sind. Somit ist die Menge der Punkte, welche den Polyeder bilden, die zul¨assige Menge des Optimierungsproblems. Gibt es einen optimale L¨osung x*, so liegt diese auf einer Ecke des Polyeders. Das Simplexverfahren durchl¨auft 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¨ auft (Ausnahme: entartete Basisl¨osung) terminiert der Algorithmus in endlich vielen Schritten oder stellt fest, dass es keine L¨osung des linearen Optimierungsproblems gibt

LaufzeitverhaltenDas worst case-Laufzeitverhalten des Simplexverfahrens ist exponentiell, d.h. achst exponentiell mit der Anzahl der Variablen. Es ist ein des Simplex- die Rechenzeit w¨ ostes Problem, ob es Auswahlregeln gibt, f¨ ur die das worst caseAlgorithmus noch nicht gel¨ 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¨osung linearer Optimierungsprobleme ist.

9

3.3

Ein Beispiel

Basisdarstellung Zur Veranschaulichung (nicht zur Implementierung) des Simplexverfahrens wird des Modells oft die Tableauform benutzt. Deshalb wird im Folgenden das Verfahren mit einem Beispiel anhand der Tableauform erl¨autert. Betrachtet wird das folgende lineare Optimierungsproblem:

max z = x1 + x2 − x3 u. d. N B 3x1 2x1 x1

−2x2 +3x2

+x3 −2x3 x1 , x2 , x3

≤3 ≤4 ≤6 ≤0

Nach der Einf¨ uhrung von Schlupfvariablen erh¨alt man das folgende Modell:

max z = x1 + x2 − x3 u. d. N B 3x1 2x1 x1

−2x2 +3x2

+x3 −2x3 x1 , x2 , x3

+x4 = 3 +x5 = 4 +x6 = 6 ≤0

Die folgende Dia-Show zeigt den Ablauf des Simplex-Verfahrens zur L¨osung des obigen Modells. Die einzelnen Schritte werden weiter unten ausf¨ uhrlicher erl¨autert.

Ausgangstableau mit den Schlupfvariablen x4 , x5 , x6 als erster Basisl¨osung Bestimmen von Pivotzeile, Pivotspalte und Pivotelement Aktualisieren bzw. Umformen des Simplextableaus 10

Bestimmen von Pivotzeile, Pivotspalte und Pivotelement Umformen zum optimalen Simplextableau

Erste Basisl¨osung

Mit den Schlupfvariablen x4 ,x5 , x6 als erster Basisl¨osung wird folgendes Tableau T0 aufgestellt:

Basistausch

Die Spalte der xB(i) des Tableaus enth¨alt die Variablen, die in der aktuellen Basisl¨ osung vorkommen. Um die Variable auszuw¨ahlen, welche neu in die Basis aufgenommen werden soll, werden in der untersten Zeile die marginalen Verbesserungen der Zielfunktionswerte ∆zj als Auswahlkriterium berechnet und das kleinste der ∆zj < 0 ausgew¨ahlt. Existieren mehrere ∆zj < 0, welche den gleichen kleinsten“ Wert besitzen, so wird eines mit dem Index l ausgew¨ahlt. ” Die l-te Spalte des Tableaus ist die Pivotspalte. Um die Pivotzeile mit der aus der Basisl¨osung zu eliminierenden Variablen zu bestimmen wird f¨ ur alle iΘi = bi /ail berechnet, mit ail als demi-ten Element der Pivotspalte. Wurde so dass Pivotelement bestimmt, so kann das Tableau umgeformt (pivotisiert) werden. Beim Pivotisieren wird die Spalte al zum Einheitsvektor transformiert. Hierzu werden z.B. die Kreisregel, Zeilentransformationen oder Matrixoperationen eingesetzt (vgl. [5] S. 80 f.). Der Zielfunktionswert der aktuellen L¨osung wird berechnet zu: z=

P

i∈B ci bi

=0

Zwei weitere Iterationen Der Algorithmus endet im Tableau T2 , da alle ∆zj < 0 sind. Die Optimall¨osung lautet: x1 = 21/11, x2 = 15/11, x3 = 0mit dem optimalen Zielfunktionswert z = 36/11.

11

3.4

Varianten des Simplex-Verfahrens

Varianten des SimplexVerfahrens

Es wurden zahlreiche Varianten des Simplex-Verfahrens entwickelt, welche die Anzahl der notwendigen Iterationen zur L¨osung eines linearen Optimierungsproblems verringern oder welche die Rechenzeit zur Durchf¨ uhrung einer Iteration reduzieren. Dies f¨ uhrt 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¨ unn besetzter linearer Optimierungsmodelle effizienter als der Standard-Simplexalgorithmus. Anstatt die komplette Matrix A nach jeder Iteration neu zu bestimmen, f¨ uhrt der revidierte Simplex-Algorithmus den gr¨oß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¨ age enthalten, ist dies sehr recheneffizient. Im Folgenden wird das Vorgehen des revidierten Simplexalgorithmus am obigen Beispiel erl¨ autert.

Beispiel f¨ ur den revidierten Simplex

Im initialen Simplextableau T0 wird die Pivotmatrix P1 berechnet, indem die k-te Spalte der Einheitsmatrix (k ist der Index der Pivotzeile) durch die Spalte

L = (−a1l /akl , −a2l /akl , ..., 1/akl , ..., −am l/akl )T

(1)

ersetzt wird:



1/3 P1 =  −2/3 −1/3

0 0 0

 0 0  0

F¨ ur die revidierte Simplexmethode gen¨ ugt es nun, die neue Matrix B1−1 zu berechnen: 

B1−1 = P1 B0−1

1/3 =  −2/3 −1/3

0 0 0

 0 1 0  0 0 0 12

0 1 0

  0 1/3 0  =  −2/3 1 −1/3

0 0 0

 0 0  0

Auf diese Weise kann jede Matrix Bk−1 berechnet werden, indem die initiale Matrix B0−1 mit k Pivotmatrizen multipliziert wird:

Bk−1 = Pk Pk−1 ... P2 P1 B −1

13

3.5

Varianten des Simplex-Verfahrens

Methode von Bartels-Golub

Eine Variante des revidierten Simplexalgorithmus ist die Methode von BartelsGolub. Sie verbesserte die Laufzeit, den Speicherplatzbedarf und insbesondere die numerische Genauigkeit des revidierten Simplex. Die Methode von BartelsGolub vermeidet die aufw¨ andige Berechnung der inversen Matrix. Anstatt dessen wird die Basis in obere und untere Dreiecksfaktoren zerlegt, die effizienter als die Inverse berechnet werden k¨onnen.

Weitere Auswahlregeln

Es existieren zahlreiche Varianten zur Durchf¨ uhrung der einzelnen Schritte des Simplex-Algorithmus (vgl.[4], S. 143 ff.). Regeln zur Auswahl der Pivotspalte l aus den N Nichtbasisspalten mit ∆zj < 0 sind z.B.: • Kleinster-Index-Regel: W¨ahle l so, dass ∆zl = min {j ∈ N |∆zj < 0} • Regel der maximalen Verbesserung des Zielfunktionswertes: W¨ahle l so, dass ∆zl = min {∆zj |∆zj < 0}

Weitere Eliminationsregeln

Regeln zur Auswahl der zu eliminierenden Variablen bzw. zur Auswahl der Pivotzeile sind z.B.: • Kleinster-Zeilenindex-Regel: W¨ahle k so, dass Θk = min {Θi |Θi > 0} • Kleinster Index-Regel: W¨ahle das erste i mit Θi < 0 • Lexikographische Zeilenauswahlregel

14

3.6 Duales Modell der linearen Optimierung

Duales Simplex-Verfahren

Das duale Simplexverfahren basiert auf dem dualen Modell der linearen Optimierung: min Z = bT y u. d. N B AT y ≥ c, y ≥ 0 b, y ∈ Rm , c ∈ Rn

Duales Simplexverfahren

In diesem Zusammenhang wird das (Standard-) Modell der linearen Optimierung auch als primales Modell bezeichnet und das (Standard-) SimplexVerfahren als primales Verfahren. Zur Theorie der Dualit¨at in der linearen Optimierung wird auf die angegebene Literatur verwiesen (z.B. [5], S. 92 ff.). Hier werden lediglich einige -zum Verst¨andnis dualer Modelle wesentliche- Aussagen der Dualit¨ atstheorie angef¨ uhrt: • Jedes duale Modell l¨ asst sich in ein primales umformen und umgekehrt. • Wenn eines der beiden Modelle eine optimale L¨osung hat, so besitzt auch das andere eine optimale L¨osung und die Zielfunktionswerte stimmen u ¨berein. • Die duale Zul¨ assigkeit eines Modells ist gegeben, wenn f¨ ur alle j=1, ..., m gilt: ∆zj ≥ 0. Mittles des dualen Simplexverfahrens k¨onnen also ¨aquivalent zum primalen Simplex lineare Optimierungsprogramme gel¨ost werden.

Anwendung des dualen Simplexverfahrens

Das duale Simplex-Verfahren ist f¨ ur bestimmte Problemstellungen gegen¨ uber dem primalen Simplex-Verfahren von Vorteil. In vielen F¨allen ist das duale Modell einfacher strukturiert und erfordert somit einen geringeren L¨ osungsaufwand als das primal formulierte Problem. Auch ist es in der Praxis h¨ aufig der Fall, dass nach Berechnung der optimalen L¨ osung kleine Modifikationen am urspr¨ unglichen Problem vorgenommen werden. Wenn hierdurch das Problem primal unzul¨assig wird, so kann das duale Simplex-Verfahren effizient wieder eine zul¨assige optimale L¨osung finden.

15

¨ Okonomische Interpretation des dualen Simplextableaus

Dualit¨ atsbetrachtungen erlauben zus¨atzliche Erkenntnisse u ¨ber das Optimierungsproblem und dessen optimales Tableau. Es gibt eine ¨ okonomische Interpretation der optimalen dualen L¨osung, die in dieser Weise bei der primalen L¨ osung nicht m¨ oglich ist. Insbesondere k¨ onnen aus der dualen L¨osung so genannte Schattenpreise interpretiert werden, welche die Knappheit einer Ressource angeben. Je knapper eine Ressource, desto mehr k¨onnte der Zielfunktionswert durch eine Lockerung der entsprechenden Restriktion verbessert werden (vgl. [5], S. 99 f.).

16

3.7 Anwendung der Simplexverfahren

Anwendung

Neben der Simplex-Methode werden Innere Punkte-Verfahren zur L¨osung von linearen Optimierungsproblemen eingesetzt. Welche Methode bei einem bestimmten Problem effizienter arbeitet h¨angt von der konkreten Problemstruktur ab. Im Allgemeinen arbeitenInnere Punkte-Verfahren bei der L¨osung von Problemen mit d¨ unn besetzten Matrizen besser, wohingegen Simplex-Verfahren ganzzahlige Probleme effizienter l¨osen. Da es f¨ ur 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¨oglichen Einsatz verschiedener Verfahren zu u ufen. ¨berpr¨

Vorteile von Simplexverfahren

• Das Simplexverfahren und seine Varianten sind f¨ ur die meisten Problemstellungen der linearen Optimierung die effizienteste L¨ osungsmethode. • Es ist das in der Praxis wohl am h¨ aufigsten 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¨osung in der N¨ahe der Optimall¨osung. 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¨allen zu Problemen bei der L¨ osung f¨ uhren (z.B. bei postoptimale Analysen)

17

4 4.1

Methoden postoptimaler Analysen Sensitivit¨ atsanalyse

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¨ urfen, damit sich die optimale L¨ osung nicht verschlechtert. Der Simplexalgorithmus bietet M¨oglichkeiten, solche Fragen zu beantworten.

Stabilit¨at der optimlaen L¨osung

Durch Sensitivit¨ atsanalysen kann die Stabilit¨ at“ der L¨ osung eines linearen ” Optimierungsproblems getestet werden (vgl. [1]). Es wird analysiert, wie sich Ver¨ anderungen an einem bereits gel¨osten linearen Optimierungsmodell in der optimalen L¨ osung auswirken.

Einf¨ ugen zus¨atzlicher Variablen

Diese Ver¨ anderungen k¨ onnen das Einf¨ ugen zus¨ atzlicher Variablen oder Nebenbedingungensein, das Entfernen von Variablen oder Nebenbedingungen sowie Variationen in den verschiedenen Koeffizienten und den Ressourcenbeschr¨ ankungen. Der Bereich in dem die verschiedenen Gr¨oßen schwanken k¨ onnen ohne die optimale L¨osung zu ver¨andern, ist auch der Bereich, f¨ ur den die Schattenpreise des dualen Modells ihre G¨ ultigkeit behalten.

Verletzung der Zul¨assigkeit

Wird eine der oben genannten Gr¨oßen ver¨andert, so kann die primale oder duale Zul¨ assigkeit einer Basisl¨ osung verletzt werden. Duale Zul¨assigkeit besteht, wenn f¨ ur alle Spaltenindizes j gilt: ∆zj ≥ 0. Eine L¨osung ist primal zul¨assig, wenn xB = B −1 · b ≥ 0 gilt.

18

4.2 Sensitivit¨atsanalyse Verletzung der dualen Zul¨assigkeit

Sensitivit¨ atsanalyse

Gegeben sei das optimale Tableau T2 des Beispiels:

Es soll nun untersucht werden, wie weit der Zielfunktionskoeffizient c1 varriert werden kann, ohne die duale Zul¨assigkeit der optimalen L¨osung zu verletzen. Hierzu wird c1 durch c01 = c1 + λ ersetzt. Damit ergibt sich ∆z1 zu ∆z1 = −(−1 + λ) + (−1 + λ)(−4/11) + (−6/11) = 1/11 − 15λ/11 D.h. die duale Zul¨ assigkeit bleibt f¨ ur alleλ ≤ 1/15erhalten. F¨ ur λ > 1/15ist die Zul¨ assigkeit verletzt.

Sensitivit¨atsanalyse Verletzung der primalen Zul¨assigkeit

Die primale Zul¨ assigkeit kann z.B. verletzt werden, wenn durch Variation der Restriktionen bi eine Komponente des Vektors xB(i) negativ wird. Um dies zu untersuchen wird b0i = bi + λ gesetzt. Wird z.B. die Restriktion 2x1 + x3 + x5 = 4variiert, so wird b02 = b2 + λ = 4 + λ gesetzt. Somit ergibt sich die rechte Seite des Simplextableaus zu:



9/33 x0B = B −1 b0 =  −18/33 −1/11

    0 2/11 3 21/11 1 −4/11   4 + λ  =  2/11 + λ  0 3/11 6 15/11

D.h. f¨ ur λ ≤ −2/11 ist die primale Zul¨assigkeit verletzt. Entsprechende Analysen k¨onnen auch f¨ ur alle anderen Komponenten des bVektors oder f¨ ur die Koeffizientenmatrix der Nebenbedingungen durchgef¨ uhrt werden. Sind die primale bzw. duale Zul¨assigkeit verletzt, so kann mit einem dualen bzw. primalen Simplexschritt die Zul¨ assigkeit wieder hergestellt und eine neue optimale L¨ osung 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. N B s. d. Ax ≤ b, x ≥ 0 x, c, d ∈ Rn ; b ∈ Rm bzw. Modelle mit parametrisierten Nebenbedingungen betrachtet (vgl. [3], S. 106). F¨ ur Modelle mit parametrisierter Zielfunktion ist der optimale parametrisierte Zielfunktionswert g(λ) gegeben durch: g(λ) = min (c + λd)T xi ∀i = 1, ..., N in Abh¨ angigkeit von λ mit den Eckpunkten der zul¨assigen Mengex1 , ..., xN . g(λ) ist st¨ uckweise linear und konvex, wie aus der Abbildung deutlich wird. Diese zeigt das Verhalten des optimalen Zielfunktionswertes in Abh¨angigkeit vom Parameter λ.

Solche Modelle k¨ onnen mit dem Simplex-Verfahren gel¨ost werden. Sie bestimmen f¨ ur jede optimale Basisl¨osung xi ∗ zul¨assige Intervalle f¨ ur den Parameter λ.

Nichtlineares parametrisches Programmieren

Auch f¨ ur die nichtlineare Optimierung existiert ein Vielzahl von Ans¨atzen zur parametrischen Programmierung. Diese werden hier jedoch nicht dargestellt. ¨ F¨ ur einen Uberblick u ¨ber die nichtlineare parametrische Programmierung wird der interessierte Leser auf die Arbeit von Jongen und Weber [1] verwiesen.

20

5 5.1

Literatur, Software und Methodenverzeichnis Literatur zum Simplexverfahren

Literaturverzeichnis Einf¨ uhrende 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¨otschel, M.: Lineare Optimierung. Skriptum zur Vorlesung, Institut f¨ ur 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¨ uhrende 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¨ atsanalysen

Literaturverzeichnis Einf¨ uhrende 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¨ uhrende 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¨aßig eine Auswahl zwischen der primalen und der dualen Simplexmethode sowie einer Innere Punkte-Methode zur L¨ osung linearer Programme. Die Leistungsf¨ ahigkeit guter LP-Solver wird in der Regel nur durch den verf¨ ugbaren Speicherplatz auf dem Rechner, die Prozessor-Architektur oder interne Restriktionen begrenzt. So k¨ onnen Programme wie AMPL auf entsprechend leistungsf¨ahigen Rechnern Modelle mit bis zu 1 Mio. Nebenbedingungen l¨osen. Auch die oft frei erh¨altlichen Studentenversionen l¨ osen Probleme mit mehreren tausend Variablen und Nebenbedingungen. Aus der Vielzahl der am Markt angebotenen Softwaretools zur L¨ osung linearer Programme sei hier nur eine Auswahl aufgef¨ uhrt. Einen ausf¨ uhrliche¨ ren Uberblick finden Sie unter http://www.lionhrtpub.com/orms/surveys/LP/LPsurvey.html

[5] [4] [3] [2] [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¨ost 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¨ ur Excel, Visual Basic

22

5.2

Methodenverzeichnis

Verzeichnis der erl¨ auterten Methoden Methode von Bartels-Golub Duales Simplexverfahren Parametrische Programmierung Revidiertes Simplexverfahren Simplexverfahren Sensivit¨ atsanalyse

23

Suggest Documents