Simplex | |||
---|---|---|---|
schrittweise Iteration |
Im oberen Bereich können Werte eingegeben werden. Es wird mit maximalen Zuwachs berechnet. Bei negativen Maxwerten, wird N1,N2 eingefügt. Weiter unten kann man die Einzelschritte starten. | ||
Iteration auf einmal |
Problem | Maxwerte | X 1 | X 2 | X 3 | X 4 | X 5 | X 6 | Hilfswert |
Zielwert | Max | 2 | -2 | 4 | 0 | |||
Ungl. 1 | 8 | 2 | 1 | -1 | ||||
Ungl. 2 | -3 | 1 | -2 | -1 | ||||
Ungl. 3 | 20 | 1 | -2 | 3 | ||||
Ungl. 4 | -4 | -2 | -1 | 2 | ||||
Ungl. 5 | ||||||||
Ungl. 6 | ||||||||
Ungl. 7 | ||||||||
Ungl. 8 | ||||||||
Ungl. 9 | ||||||||
Ungl. 10 | ||||||||
Iteration Schritt | Aktuelle Basis | |||||||
Basivariable | Nichbasivariable | |||||||
Tausch: | X 1 | X 2 | X 3 | X 4 | X 5 | X 6 | N 1=HW | |
Hilfs-ZW | ||||||||
Zielwert | ||||||||
H 1 | ||||||||
H 2 | ||||||||
H 3 | ||||||||
H 4 | ||||||||
H 5 | ||||||||
H 6 | ||||||||
H 7 | H 8 | |||||||
H 9 | ||||||||
H 10 | ||||||||
Reserve |
Erklärung:
Dieser Simplex funktioniert nach der revidierten Methode mit maximalen Zuwachs.
Die Basis ist immer die Einheitsmatrix, BV(i) = {0, 0,... ,1,0,..}
Das hat zur Folge das man den Wert einer BV , bei jeden Schritt, sofort ablesen kann ( dort, wo die Maxwerte stehen ).
Basisvariable ( BV ) sind zu anfangs nur Schlupfvariable.
Nichtbasisvariable (NBV) sind immer null.
Bei jedem Iterationsschritt wird eine Basisvariable mit einer Nichtbasisvariable getauscht.
Die Basis wird dann invertiert, es entsteht wieder die Einheitsmatrix.
Bei der Methode mit maximalen Zuwachs wird die NBV gewählt, die den größten Zuwachs der Zielfunktion bringt.
Wegen der geringen Anzahl der Operationen, spielen Rundungsfehler kaum eine Rolle.
Die LR Methode wäre in dieser Kombination sehr aufwendig. Wenn man hiermit wirklich große Matrizen berechnet wollte,
könnte man so vorgehen:
Mann merkt sich die aktuelle Matrix, iteriert ca. 10 Vektoren weiter, und invertiert dann diese Vektoren mit Gaus-Totalpivotsuche.
Wenn negative Maxwerte auftreten, gibt es folgenden Trick:
Man fügt zwei Variable dazu, die nach Voraussetzung null sind.
N1 ist dort -1, wo die Maxwerte negativ sind, bei N2 ist N1 o1, woanders ist N1 0.
diese NB-Variable N1 wird dann mit der Basisvariable mit dem betragsgrößten Negativwert getauscht.
N2 übernimmt dann alle negativen Basiswerte.
N2 wird dann mit der gleichen Methode maximiert, bis sie null erreicht.
Anschließend wird die Zielfunktion optimiert .
Simplexmethode allemein:
Aus dem Problem:
v11*x1 + v12*x2 + v13*x3 + ..+ v1k*xk <= b1 v21*x1 + v22*x2 + v23*x3 + ..+ v2k*xk <= b2 .................. vm1*x1 + vm2* x2 + vm3*x3 + ..+ vmk*xk <= bm a1*x1 + a2* x2 + a3*x3 + ..+ ak* xk = Z x1 >= 0, x2 >= 0, x3 >= 0 ... xk >= 0entsteht das Gleichungssystem:
v11*x1 + v12*x2 + v13*x3 + ..+ v1k*xk + s1 = b1 v21*x1 + v22*x2 + v23*x3 + ..+ v2k*xk + s2 = b2 .................. vm1*x1 + vm2* x2 + vm3*x3 + ..+ vmk*xk + sm = bm -a1*x1 - a2*x2 - a3*x3 - ..- ak*xk + Z = maximal x1 >= 0, x2 >= 0, x3 >= 0 ... xk >= 0 s1 >= 0, s2 >= 0, s3 >= 0 ... sm >= 0s (1...m) heißen Schlupfvariable, Z ist die Zielfunktion, Sie soll maximiert werden. Jede Lösung, die die Bedingungen xi, sj >= 0 erfüllt, nennt man zulässige Basislösung.