Simplexmethode als Anwendung des
Kostenkalküls
Matrixform
Sensitivitätsanalyse
hierzu z.B. Kistner ²1993, S. 85ff oder Luenberger ²1992, sec. 3.8
oder sonst ein Buch zur linearen Optimierung.
1
Lineares Optimierungsproblem
Gesucht ist eine Konvexkombination endlich vieler Aktivitäten,
die eine lineare Zielfunktion über einem durch ein System linearer
Ungleichungen definierten Bereich zulässiger Entscheidungskonsequenzen maximiert.
Entscheidungsvariable: Vektor x; jede seiner n Komponenten gibt für das
Niveau an, mit dem eine bestimmte Aktivität in die Kombination eingehen
soll.
Daten:
Zielfunktionskoeffizientenvektor p; jede seiner n Komponenten steht für
den Zielfunktionsbeitrag je Aktivitätsniveaueinheit einer bestimmten
Aktivität; die Zielfunktion ist mithin p'x.
Beschränkungsvektor b; jede seiner m Komponenten gibt die
Zulässigkeitsgrenze für ein bestimmtes Merkmal der
Entscheidungskonsequenzen an; für jede relevante Beschränkung
enthält b eine Komponente.
Koeffizientenmatrix A; jede Spalte der m×n-Matrix A gehört zu einer
bestimmten Aktivität und gibt in demselben Vektorraum wie b deren
Wirkung je Niveaueinheit auf die verschiedenen Dimensionen der
Entscheidungskonsequenzen wieder.
2
Optimale Lösung
Unter einer optimalen Lösung versteht man einen Vektor
x*, der in dem Zulässigkeitsbereich
X = {x|Ax = b; x > 0}
liegt und für den der Zielfunktionswert über X maximal
wird.
Die Matrix A enthalte die Einheitsmatrix als Teilmatrix
(Schlupfaktivitäten).
Eine Teilmatrix B aus m linear unabhängigen Spalten von
A wird als Basismatrix bezeichnet.
eine mögliche Basismatrix ist die Matrix der Schlupfaktivitäten
Zu jeder Basismatrix ist ein Simplextableau definiert.
das Simplextableau zu der Basismatrix der Schlupfaktivitäten ist
das Ausgangstableau. Es lässt sich wie folgt als Matrix
schreiben:
3
Simplextableaus
A b D
p' 0 p' D
b
0' 0
I
(Ausgangstableau)
Multipliziert man an eine Matrix M von rechts eine
Einheitsmatrix E, deren Spalten irgendwie vertauscht
sind, so ergibt sich als ME die Matrix M mit Spalten
die genau so vertauscht sind wie die Einheitsvektoren
in E gegenüber I.
Durch Multiplikation einer solchen (n+1)×(n+1)“Spaltentauschermatrix” E von rechts an das
Ausgangstableau, kann man dieses also in folgende
Form bringen:
D(B)
A b
E
p' 0
p' D( B )
B
p' B
b
0
4
Beispiel: Ausgangstableau
x1
x2
x3
x4 x5 x6 b
2
1
1
1
0
0
2
1
1
2
3
0
1
0
5
0
2
2
1
0
0
1
6
0
–p
3
1
3
0
0
0
0
0
1
0
1
0
0
0
0
0
5
Simplextableau zur Basis B
Multipliziert man an das so umsortierte
Ausgangstableau die Matrix
1
B
0
, so
1
p
B
1
B
erhält man:
1
1
1D
B
B
b
B
D
B
I
B
b
B
0
1
1
1
p
p
0
p
B
D
B
p
0
p
B
b
p
B
1
B
B
B
D
B
D
B
B
das ist das Simplextableau zur Basis B.
6
Ausgewählte Basismatrix und zugehörige
Zielfunktionskoeffizienten
1
1
1
0
0
2
1
2
1
0 2
2
3
0
1
0
5
0
B
1
3
0 1
2
1
0
0
1
6
0
2
1
1 2
3
1
3
0
0
0
0
0
p
3
3
0 1
B
0
1
0
0
0
0
0
1
3
1
0
2
1
05
5
1
1
2
B
1
3
0
0
5
5
2
1
1
1
0
1
7
Interpretation
Basislösung zu B;
falls > 0: primal zulässig
1
1
B
D
B
I
B
b
1
1
p
B
D
B
p
0
p
B
b
B
B
D
B
falls > 0': dual zulässig
Zielfunktionswert
Ist das Tableau primal und dual zulässig, so ist es optimal:
xB* = B-1b
8
Tableau zur Basis B*
1
3
1
1
1
0
0
5
5
5
5
8
3
1
2
0
1
0
5
5
5
5
0
1
0
1
0
1
4
7
6
3
2
7
0
0
0
5
5
5
5
B*–1A
u'A – p'
u' = p'B*–1
B*–1b
u'b
9
Simplexkriterium
uB := pB B 1 den Zeilenvektor der Dualvariablen zu
den strukturellen Restriktionen
Für jede beliebige Aktivität j lässt sich dann der
Netto-Nutzenbeitrag je Aktivitätsniveaueinheit
darstellen als:
pj pB B1 a.j = pj uB a.j
Gibt es zu einer Basismatrix B* nur solche j, für die
dieser Ausdruck negativ ist, so ist von dieser Basis
aus nur eine Verschlechterung des
Zielfunktionswerts möglich, B* muss also optimal
sein
10
Findet man aber ein j mit pj pB B 1 a.j > 0, dann ist die
Basislösung zu B nicht optimal
definiere yj := B1 a.j und bestimme
ersetze die Aktivität
i* := min{i|yi0/yij für yij > 0}.
i* in B durch j.
Die so modifizierte Basislösung hat einen höheren
Zielfunktionswert als die zu B.
Die Opportunitätskosten der optimalen Basislösung B* sind
dann gegeben durch cB*B*1 a.0
Sie steigen von Schritt zu Schritt und nähern sich immer
mehr den tatsächlichen Opportunitätskosten an,
die Auslese unter den Alternativen durch den Kostenkalkül
mit den angenäherten Opportunitätskosten wird von Schritt
zu Schritt schärfer.
11
das bedeutet nicht...
dass eine einmal „verworfene“ Aktivität in einer
besseren Alternative nicht wieder auftreten könnte
dass die Opportunitätskostensätze ui
irgendwelche Monotonie-Eigenschaften zwischen
den Verbesserungsschritten hätten:
die neu eingeführte Aktivität kann bestimmte
Restriktionen mehr oder weniger nutzen als die
ausgeschiedene, so dass die betreffende Dualvariable
steigen oder fallen kann
lediglich die Gesamt-Opprtunitätskosten pB*B*1 a.0
steigen.
12
Sensitivitätsanalysen
Situation
Problemstellung
nach Bekanntwerden der unsicheren Daten sind
Anpassungsentscheidungen möglich
Geltungsbereich der optimalen Lösung für die a priori
erwartete Datenkonstellation
wie reagiert der optimale Zielfunktionswert und wie
reagieren die optimalen Anpassungsmaßnahmen auf die
geänderten Daten?
Methodische Grundlage: Lineares Optimierungsmodell
Variationen der
Restriktionskonstanten
Zielfunktionskoeffizienten
Prozessvektoren
13
Störungen der Restriktionskonstanten b +lb
1
1
B
D
B
I
B
b
1
1
p
B
D
B
p
0
p
B
b
B
B
D
B
Änderungen von b haben keinen Einfluss auf die
Dualzulässigkeit.
solange die primale Zulässigkeit erhalten bleibt, bleibt dieselbe
Basis optimal. Optimale Basislösung:
x*(l) = B-1(b +lb)
Optimaler Zielfunktionswert: pB'B-1(b +lb) = pB'x*(0) + l (u(B)'b)
= u(B)'
(optimale Dualvariablen zur Basismatrix B)
der Zielfunktionswert variiert linear mit l, solange die Basis B
optimal bleibt.
14
Beispiel
Ausgangstableau
x1
x2
x3 x4 x5 x6 b
l
2
1
1
1
0
0
2
1
1
2
3
0
1
0
5
0
2
2
1
0
0
1
6
0
–p
3
1
3
0
0
0
0
0
1
0
1
0
0
0
0
0
Optimaltableau
Grenzen für l:
strengste Bedingungen von:
l > 3
l<8
l<4
3
1
1
3
1
1
0
0
5
5
5
5
5
3
1
2
1
8
–1lb
0
1
0
B*
5
5
5
5
5
0
1
0
1
0
1
4
7
6
3
6
0
0
0
u'lb
5
5
5
5
15
Reaktion des optimalen Zielfunktionswerts
Der optimale Zielfunktionswert ist als Funktion des
Parameters l konkav: d.h. bei einem Basiswechsel
vermindert sich die Ableitung des optimalen
Zielfunktionswerts oder bleibt gleich.
-1
wenn B (b +l1b) > 0 und
Z
B-1(b +l2b) > 0 dann ist auch
-1
B (b +lb) > 0 für l1 > l > l2,
Konvexkombinationen der beiden
l2
l
l
l1
Lösungen für l1 und l2 sind also zulässig. Der
Zielfunktionswert dieser Konvexkombination ist aber die
Konvexkombination der beiden Zielfunktionswerte.
16
Störungen des Zielkoeffizientenvektors
1
1
B
D
B
I
B
b
1
1
p
B
D
B
p
0
p
B
b
B
B
D
B
gestörter Zielkoeffizientenvektor: p + l· p
solange die Basislösung zur Basismatrix B dual
zulässig bleibt, bleibt die optimale Lösung x*
unverändert.
der optimale Zielfunktionswert ändert sich linear mit
dem Störungsparameter, die Änderung beträgt
l· px*
die Änderung der Zielkoeffizienten entspricht einer
Änderung der Beschränkungskonstanten im Dual
daher lässt sich die Konkavitätsaussage bei Basiswechsel
(von der vorigen Folie) übertragen
17
Beispiel
x1
Ausgangstableau
x2
x3 x4 x5 x6 b
2
1
1
1
0
0
2
1
1
2
3
0
1
0
5
0
2
2
1
0
0
1
6
0
Optimaltableau
–p
3
1
3
0
0
0
0
0
l
1
0
1
0
0
0
0
0
3
1
1
1
1
0
0
Grenzen für l:
5
5
5
5
3
strengste Bedingungen von:
1
2
8
0
1
0
5
5
5
5
l < 7/4
4
0
1
0
1
0
1
l > 2
7
6
3
l<3
0
0
0
5
5
5
4
3
0 5 l 0 5 l
1
l 0
5
1
= 2·3l/5 – 5·l/5 = u'(l)b
5
18
u
A
p
Störungen der Koeffizientenmatrix
zwei Fälle:
Störung einer Nichtbasisspalte j.
Hier ist nur zu untersuchen, ab welchen Grenzen
die Störung die Dualzulässigkeit zum
Verschwinden bringt, so dass es vorteilhaft wird,
die Aktivität j in die Basis aufzunehmen.
Störung eines Basisvektors.
Aktivitätsvektor kann sich so verändern, dass er
durch einen Nichtbasisvektor ersetzt werden muß,
weil dessen Zielbeitrag günstiger wird
Änderung zur Unzulässigkeit der Lösung führen
19