Sie sind auf Seite 1von 25

Primärer Simplex-Algorithmus (Maximierungsprobleme & <=

Nebenbedingungen)

1st Schritt: Vorbereitung der Nebenbedingungen durch Einführung


von Schlupfvariablen
Ziel: Umwandlung von <=-Bedingungen in Gleichheiten

Ursprüngliche Bedingung: 4*x1 +3*x2 <=240


4*10+3*15<=240
85<=240

Umwandlung in Gleichheit: 4*x1 +3*x2 =240


4*10+3*15=240
85=240 (dies verstößt gegen die
Gleichheit)
4*x1 +3*x2 +y1 =240
85+y1 =240
85+155=240
(positive Werte der Schlupfvariablen zeigen eine machbare Lösung
an, da der Maximalwert der Ungleichung nicht überschritten wird)
285-45=240
(negative Werte einer Schlupfvariablen weisen auf eine nicht
durchführbare Lösung hin)
4x1 +3x2 <=240🡪 4x1 +3x2 +1*y1 +0+y2 =240
2x1 +1x2 <=100🡪 2x1 +1x2 +0*y1 +1*y2 =100
Transformation der Zielfunktion:
Z=7*x1 +5*x2🡪 Z-7*x1 -5*x2 =0
Ursprüngliche Simplex-Tabelle:
Grundle x1 x2 y1 y2 RHS Engpass
gende
Variable
y1 4 3 1 0 240
y2 2 1 0 1 100
Z -7 -5 0 0 0

Wir haben 4 Variablen, aber nur 2 Gleichheiten (Nebenbedingungen);


daher ist es nicht möglich, das Gleichungssystem zu lösen, es sei
denn, wir legen die Werte von zwei Variablen fest, die als
Nicht-Basis-Variablen bezeichnet werden:
Definition Nicht-Basische-Variablen: Eine Nicht-Basische-Variable hat
immer den Wert Null (in der obigen Tabelle sind x1 und x2
Nicht-Basische-Variablen). Alle Variablen, die nicht in der ersten
Spalte einer Tabelle stehen, sind automatisch Nicht-Basic-Variablen!
Definition Basisvariablen: Eine Basisvariable hat immer einen Wert,
der größer als 0 ist. Basisvariablen werden immer in der ersten Spalte
der Tabelle aufgeführt (in der obigen Tabelle sind y1 und y2
Basisvariablen).
Die tatsächliche Lösung wird in der Ausgangstabelle dargestellt:
x1 =0, x2 =0 , y1 = 240, y2 =100
4x1 +3x2 +1*y1 +0+y2 =240🡪 4*0+3*0+1*y1 +0*y2 =240🡪 y1 =240
Es wird nichts produziert, keine Kapazität genutzt, aber auch kein
Deckungsbeitrag erwirtschaftet.

1. Iteration
Grundle x1 x2 y1 y2 RHS Engpass
gende
Variable
y1 4 3 1 0 240 240/4=60
y2 2 1 0 1 100 100/2=50
Z -7 -5 0 0 0

1st Schritt: Auswahl der Pivot-Spalte: Wählen Sie diejenige


nicht-basische Variable aus, die den negativsten Eintrag auf der linken
Seite der Zielfunktionszeile (Z) aufweist; in diesem Fall wird x1
ausgewählt. Wir wollen den Wert von x1 von Null auf eine positive
Zahl erhöhen, weil dies den Wert der Zielfunktion, die maximiert
werden soll, erhöht.
2nd Schritt: Auswahl der Pivot-Zeile: durch Berechnung des
Engpasswerts (=RHS der Zeile/ Koeffizient der neuen Spalte der
Basisvariablen, die in Schritt 1 der gleichen Zeile ausgewählt wurde).
In diesem Beispiel wird die Zeile y2 gewählt.
Der Schnittpunkt von Pivot-Zeile und Pivot-Spalte wird Pivot-Element
genannt.
2nd Simplex-Tisch
1st Schritt: Die Pivot-Zeile durch das Pivot-Element (=Schnittpunkt von
Pivot-Zeile und Pivot-Spalte) teilen
2nd Schritt: Subtrahieren (oder Addieren) eines Vielfachen der
Pivot-Zeile von anderen Zeilen. Das Vielfache (Faktor) ist in der
Pivot-Spalte zu finden.
Beispiel für Berechnungen (Zeile y1 ):
4*x1 +3*x2 +1*y1 +0*y2 =240
-4*(1*x1 +1/2*x2 +0*y1 +1/2*y2 =50)
0*x1 +3*x2 -4*1/2*x2 +1*y1 -4*0+y1 +0*y2 -4*1/2*y2 =240-4*50

Grundle x1 x2 y1 y2 RHS
gende
Variable
y1 4-4*1=0 3-4*1/2=1 1-4*0=1 0-4*1/2=-2 240-50*4=40
x1 2/2=1 1/2 0/2 1/2 100/2=50
Z -7+7*1=0 -5+7*1/2=-1.5 0+7*0=0 0+7*1/2=3.5 0+7*50=350

Das Ergebnis ist eine 2nd Simplex-Tabelle:


Grundle x1 x2 y1 y2 RHS Engpass
gende
Variable
y1 0 1 1 -2 40 40/1=40
x1 1 1/2 0 1/2 50 50/(1/2)=100
Z 0 -1.5 0 3.5 350 -
1*x1 +1/2*x2 +0*y1 +1/2*y2 =50
1*x1 +1/2*0+0*40+1/2*0=50🡪 1*x1 =50
Interpretation der Tabelle:
y1 , x1 sind Basisvariablen mit den Werten y1 =40 und x1 =50, was
einen Deckungsbeitrag von 350 ergibt. y2 und x2 sind
Nicht-Basisvariablen mit den Werten y2 =x2 =0.
3rd Schritt: Überprüfung des Optimierungskriteriums: Die Lösung wäre
optimal, wenn alle Koeffizienten auf der linken Seite der
Zielfunktionszeile gleich oder größer als der Wert "0" sind.
Z 0 -1.5 0 3.5 350

Rückübersetzung der Zielfunktionszeile:


Z-0*x1 -1,5*x2 +0*y1 +3,5*y2 =350
Da der Koeffizient von x2 negativ ist, ist die Lösung nicht optimal, aber
machbar, da alle Werte auf der rechten Seite der Nebenbedingungen
gleich Null oder größer als 0 sind.
Erläuterung des Optimierungskriteriums:
Z-0*x1 -1,5*x2 +0*y1 +3,5*y2 =350
Wenn wir das Ziel wie folgt umschreiben, können wir sehen, dass eine
Erhöhung von x2 zu einer Erhöhung des Wertes der Zielfunktion
führen wird:
Z-0*x1 -1,5*x2 +0*y1 +3,5*y2 =350 |+1,5*x2
Z-0*x1 +0*y1 +3,5*y2 =350+1,5*x2
Z +3,5*y2 =350+1,5*x2
Derzeit sind y2 und x2 nicht-basierte Variablen mit dem Wert "0":
Z +3.5*0=350+1.5*0
Wenn x2 von "0" auf "1" erhöht wird, steigt der Wert der Zielfunktion
um 1,5, daher ist die aktuelle Lösung suboptimal und x2 sollte eine
Basisvariable werden!
2nd Iteration
1st Schritt: Auswahl der Pivot-Spalte: Wählen Sie diejenige
nicht-basische Variable aus, die den negativsten Eintrag auf der linken
Seite der Zielfunktionszeile (Z) aufweist; in diesem Fall wird x2
ausgewählt. Wir wollen den Wert von x2 von Null auf eine positive
Zahl erhöhen, weil dies den Wert der Zielfunktion, die maximiert
werden soll, erhöht.
2nd Schritt: Auswahl der Pivot-Zeile: durch Berechnung des
Engpasswerts (=RHS der Zeile/ Koeffizient der neuen
Basisvariablenspalte, die in Schritt 1 der gleichen Zeile ausgewählt
wurde). In diesem Beispiel wird die Zeile y1 gewählt.
2nd Tisch (siehe oben)
Grundle x1 x2 y1 y2 RHS Engpass
gende
Variable
y1 0 1 1 -2 40 40/1=40
x1 1 1/2 0 1/2 50 50/(1/2)=100
Z 0 -1.5 0 3.5 350 -
Z-0*x1 -1,5*x2 +0*y1 +3,5*y2 =350
1st Schritt: Die Pivot-Zeile durch das Pivot-Element (=Schnittpunkt von
Pivot-Zeile und Pivot-Spalte) teilen
2nd Schritt: Subtrahieren (oder Addieren) eines Vielfachen der
Pivot-Zeile von anderen Zeilen. Das Vielfache (Faktor) ist in der
Pivot-Spalte zu finden.
3rd Simplex-Tisch:
Grundleg x1 x2 y1 y2 RHS
ende
Variable
x2 0 1 1 -2 40
x1 1-1/2*0 ½-½*1=0 0-½*1=-½ 1/2-½*(-2)=1.5 50-½*40=30
=1
Z 0 0 1.5 0.5 410
Interpretation der Tabelle 3rd :
x1 =30, x2 =40, y1 =0, y2 =0, Zielfunktionswert Z=410
3rd Schritt: Überprüfung des Optimierungskriteriums: Die Lösung wäre
optimal, wenn alle Koeffizienten auf der linken Seite der
Zielfunktionszeile gleich oder größer als der Wert "0" sind.
Da kein Koeffizient auf der linken Seite des Zielfunktionswertes steht,
haben wir die optimale Lösung erreicht!
Interpretation der Spalte y1 :
y1
1
0-½*1=-½
1.5
Schattenpreise (doppelter Preis): Die Koeffizienten der
Nicht-Basis-Variablen in der Zeile der Zielfunktion geben den Wert
einer Einheit der Nicht-Basis-Variablen an (in diesem Fall: eine Einheit
der Kapazität auf den verschiedenen Produktionsstufen).
Um eine Spalte einer nichtbasischen Variablen zu interpretieren,
sollten Sie sich folgende Frage stellen:
"Was passiert mit dem Wert der Basisvariablen und der
Zielfunktionszeile, wenn wir den Wert der Nicht-Basisvariablen (in der
Kopfzeile der Spalte) von "0" auf "1" erhöhen?
Antwort:
Grundleg x1 x2 y1 y2 RHS
ende
Variable
x2 0 1 1 -2 40
Rückübersetzung der Zeile x2 in eine Gleichung (rot=Basisvariablen,
grün=Nicht-Basisvariablen):
0*x1 +1*x2 +1*y1 -2*y2 =40
0*30+1*x2 +1*0-2*0=40
0*30+1*x2 +1*1-2*0=40
1*x2 +1*1=40
1*x2 =40-1*1=39
Wenn die nicht-basische Variable y1 um eine Einheit erhöht und damit
zu einer Basisvariablen wird, wird der Wert von x2 um eine Einheit
verringert.
Rückübersetzung der Zeile x1 :
x1 1-1/2*0 ½-½*1=0 0-½*1=-½ 1/2-½*(-2)=1.5 50-½*40=30
=1
1*x1 +0*x2 -1/2*y1 +1.5*y2 =30
1*x1 -1/2*y1 =30
1*x1 =30+1/2*y1
1*x1 =30+1/2*1=30,5
Wenn die nicht-basische Variable y1 um eine Einheit erhöht und damit
zu einer Basisvariablen wird, wird der Wert von x1 um eine halbe
Einheit erhöht.

Duales Simplex-Verfahren

Das duale Simplex-Verfahren wird für Minimierungsprobleme mit >=


Nebenbedingungen verwendet.

Angenommen, das folgende Optimierungsproblem ist gegeben:


Zielfunktion:
I Z=3x1 + 2x2 + 1x3 + 4x 4🡪 min
Vorbehaltlich der Beschränkungen:
II 5x1 + 2x2 + 1x3 + 6x4 ≥ 345

III2x1 + 4x2 + 5x3 + 1x4 ≥ 230

IV3x1 - 1x2 + 7x3 - 2x4 ≥ 46

V x1, x2, x3, x4 ≥ 0

Verfahren:

1st Schritt: Multiplikation der Zielfunktion mit (-1):

I -Z=-3x1 - 2x2 - 1x3 - 4x 4🡪 max


-Z + 3x1 + 2x2 + 1x3 + 4x4 = 0
2nd Schritt: Einführung von Schlupfvariablen:
II 5x1 + 2x2 + 1x3 + 6x4 = 345 + y1
III2x1 + 4x2 + 5x3 + 1x4 = 230 + y2

IV3x1 - 1x2 + 7x3 - 2x4 = 46 + y3

Schlupfvariablen zeigen die Überschreitung der Grenzen der


Nebenbedingungen an und werden auf der rechten Seite der
Nebenbedingungen eingeführt (im Gegensatz zum primären
Simplexverfahren, bei dem die Nebenbedingungen auf der linken
Seite eingeführt werden). Um das duale Simplex-Verfahren anwenden
zu können, müssen die Schlupfvariablen auf die linke Seite der
Gleichungen verschoben werden.
II 5x1 + 2x2 + 1x3 + 6x4 - y1 = 345

III2x1 + 4x2 + 5x3 + 1x4 - y2 = 230

IV3x1 - 1x2 + 7x3 - 2x4 - y3 = 46

Um ein positives Vorzeichen der Schlupfvariablen einzubauen,


müssen wir die Nebenbedingungen mit (-1) multiplizieren.
II -5x1 - 2x2 - 1x3 - 6x4 + y1 = -345

III -2x1 - 4x2 - 5x3 - 1x4 + y2 = -230

IV -3x1 + 1x2 - 7x3 + 2x4 + y3 = -46

Die Vorbereitungen sind nun abgeschlossen, und wir können die erste
Simplex-Tabelle erstellen (die bereits Pivot-Spalte und -Zeile enthält):
BV x1 x2 x3 x4 y1 y2 y3 RS
y1 -5 -2 -1 -6 1 0 0 -345
y2 -2 -4 -5 -1 0 1 0 -230
y3 -3 1 -7 2 0 0 1 -46
-Z 3 2 1 4 0 0 0 0
Diese Lösung ist nicht durchführbar, da wir auf der rechten Seite
negative Werte beobachten (= Schlupfvariablen zeigen negative
Werte, was nicht erlaubt ist, da Ungleichungen verletzt werden, siehe
Bild oben!)
3rd Schritt: Iterationen des dualen Simplex
Im Gegensatz zum primären Simplex-Ansatz beginnen wir mit der
Installation der Machbarkeit. Dies ändert die Regeln für die
Identifizierung der Pivot-Spalte und der Pivot-Zeile wie folgt:
a. Wahl der Drehpunktreihe:
Es wird diejenige Zeile ausgewählt, die den negativsten Eintrag
auf der rechten Seite der Gleichung aufweist.
Im obigen Beispiel ist dies die Zeile y1 . Durch die Wahl dieser
Zeile definieren wir die eine aktuelle Basisvariable (y1 ), die zu
einer Nicht-Basisvariablen werden soll.
b. Wahl der Pivot-Spalte: Voraussetzung für die Wahl der
Pivot-Spalte ist, dass die Zelle der Spalte ein negatives Präfix
aufweist. Wenn es in der Zeile mehrere Zellen gibt, die ein
negatives Präfix von Nicht-Basis-Variablen aufweisen, wenden
wir die folgende Regel zur Identifizierung der Pivot-Spalte an:
Max {(Zielfunktionseintrag in Spalten/Eintrag in Pivot-Zeile
derselben Spalte für jede Kandidatenspalte)}
3 2 1 4 3
max { −5
, −2
, −1
, −6
}=- 5
In diesem Fall wählen wir die Spalte x1 als Pivot-Spalte.
Da wir nun die Pivot-Zeile und die Pivot-Spalte kennen, können wir
die zweite Simplex-Tabelle mit der gleichen Logik berechnen, die wir
im Rahmen des primären Simplex-Verfahrens angewandt haben:
BV x1 x2 x3 x4 y1 y2 y3 RS
x1 1 2 1 6 −1 0 0 69
5 5 5 5

y2 0 −16 −23 7/5 −2 1 0 -92


5 5 5

y3 0 11 −32 28 −3 0 1 161
5 5 5 5

-Z 0 4 2 2 3 0 0 -207
5 5 5 5
Lösung: nicht durchführbar, da y2 mit einem Wert von -92 immer
noch negativ ist.
y1 =0, y3 =161; x1 =69; x2 =x3 =0.
Bei der zweiten Iteration wird die Pivot-Zeile die Zeile y2 sein, da sie
den größten negativen Wert auf der rechten Seite der Gleichung
aufweist.
Für die Wahl der Pivot-Spalte stehen nur die Spalten x2 , x3 und y1 zur
Verfügung, da die Koeffizienten der Zeile y2 für diese Spalten negativ
sind.
4 2 3
5 5 5 1 2 3
Auswahl: max { 16 , 23 , 2 } = max { − 4
,− 23
,− 2
− 5
− 5 −5

2
}= − 23
🡪 x3

Das Einfügen eines Einheitsvektors in die Spalte x3 führt zu einer


neuen Lösung:
x1 x2 x3 x4 y1 y2 y3 RS
x1 1 6 0 29 −5 1 0 65
23 23 23 23

x3 0 16 1 −7 2 −5 0 20
23 23 23 23

y3 0 153 0 84 −1 −32 1 289


23 23 23 23

-Z 0 12 0 12 13 2 0 -215
23 23 23 23

Da die rechte Seite aller Nebenbedingungen einen positiven Wert


aufweist, ist die Lösung machbar.
Da alle Koeffizienten auf der linken Seite der Zielfunktionszeile ≥0
sind, ist die Lösung optimal!
Ergebnisse: x1 =65, x3 =20, y3 =289; x2 =x4 =y1 =y2 =0; Wert der
Zielfunktion +Z=+215 (man erinnere sich an die Multiplikation der
ursprünglichen Zielfunktion mit (-1) zu Beginn des Verfahrens, um das
Minimierungsproblem in ein Maximierungsproblem zu verwandeln).
Primal-Dual-Simplex-Verfahren
Neues Optimierungsproblem:
1. Objektive Funktion
Z=10x1 + 5x2 + 15x3 → min

unter den Randbedingungen


2. x1 + 3x2 + x3 ≥ 4
3. 10x1 + 60x2 + 20x3 ≤ 240
🡺 1x1 + 6x2 + 2x3 ≤ 24
4. x1 + 2x2 + 2x3 = 12
5. x1, x2, x3 ≥ 0

Bei diesem Optimierungsproblem sind wir mit gemischten


Nebenbedingungen der Typen (≥; ≤;=) konfrontiert. Die endgültige
Version des Algorithmus wird in der Lage sein, mit allen Arten von
Nebenbedingungen umzugehen.
Da wir mit gemischten Zwängen konfrontiert sind, könnte es sein,
dass es überhaupt keine machbare Lösung gibt (weil es keinen
Bereich mit machbaren Lösungen gibt)! Beispiel:
Vorbereitung:
1st Schritt: Einführung von Schlupfvariablen
Wir wissen, wie wir Schlupfvariablen für ≤-Constraints (auf der linken
Seite mit positivem Präfix) und ≥-Constraint (auf der rechten Seite mit
positivem Präfix) einführen können. Da wir Gleichheiten als
Nebenbedingungen haben, müssen wir auch für diese
Schlupfvariablen einführen, auch wenn es nicht erlaubt ist, den
Schlupfvariablen für Gleichheiten einen positiven (oder negativen)
Wert zuzuweisen.
2. x1 + 3x2 + x3 ≥ 4

🡪 x1 + 3x2 + x3 = 4 + y1

3. 10x1 + 60x2 + 20x3 ≤ 240

🡪1x1 + 6x2 + 2x3 ≤ 24

🡪1x1 + 6x2 + 2x3 + y2 = 24

Für die neue Art von Nebenbedingungen (Gleichheiten) werden wir


auf der linken Seite Schlupfvariablen mit einem positiven Präfix
einführen:
4. x1 + 2x2 + 2x3 = 12
🡺 x1 + 2x2 + 2x3 + y3 = 12
2nd Schritt: Multiplikation der Zielfunktion mit (-1), um sie in ein
Maximierungsproblem umzuwandeln (nicht notwendig, wenn der
ursprüngliche Zielfunktionswert maximiert werden soll).
1. Objektive Funktion
Z=10x1 + 5x2 + 15x3 → min
🡺 -Z=-10x1 - 5x2 - 15x3 🡪 max
🡺 -Z +10x1 + 5x2 + 15x3 =0
Ursprüngliche Simplex-Tabelle:
BV x1 x2 x3 y1 y2 y3 RS
y1 -1 -3 -1 1 0 0 -4
y2 1 6 2 0 1 0 24
y3 1 2 2 0 0 1 12
-Z 10 5 15 0 0 0 0

Diese Lösung ist nicht praktikabel, da wir auf der rechten Seite
der Tabelle negative Werte beobachten.
Aktuelle Werte der Variablen: x1 =x2 =x3 =0; y1 =-4 (nicht
durchführbar); y2 =24: y3 =12 (nicht durchführbar, da die dritte
Bedingung eine Gleichheit ist); Z=0.
Wiederholungen
1st Schritt: Behandlung von Schlupfvariablen, die den
Gleichheiten zugeordnet sind.
Alle Schlupfvariablen, die Gleichheiten zugeordnet sind,
müssen den Wert Null aufweisen - das bedeutet, dass sie zu
Nicht-Basis-Variablen werden müssen.
In diesem Beispiel muss y3 in eine nicht-basische Variable
umgewandelt werden, daher wird unsere erste Pivot-Zeile die
Zeile y3 sein.
Es gibt zwei mögliche Kriterien, um die Pivot-Spalte zu
identifizieren:
𝑂𝑏𝑗𝑒𝑐𝑡𝑖𝑣𝑒 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑐𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡
max( 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡 𝑜𝑓 𝑐𝑜𝑙𝑢𝑚𝑛 𝑖𝑛 𝑝𝑖𝑣𝑜𝑡 𝑟𝑜𝑤 )

oder

𝑂𝑏𝑗𝑒𝑐𝑡𝑖𝑣𝑒 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑐𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡


min( 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡 𝑜𝑓 𝑐𝑜𝑙𝑢𝑚𝑛 𝑖𝑛 𝑝𝑖𝑣𝑜𝑡 𝑟𝑜𝑤 )

Es spielt keine Rolle, welche Regel gewählt wird, beide Regeln


führen zur optimalen Lösung.
𝑂𝑏𝑗𝑒𝑐𝑡𝑖𝑣𝑒 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑐𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡
In diesem Beispiel wird max( 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡 𝑜𝑓 𝑐𝑜𝑙𝑢𝑚𝑛 𝑖𝑛 𝑝𝑖𝑣𝑜𝑡 𝑟𝑜𝑤
) gewählt:

max { 10
1
,
5
2
,
15
2 }= 10🡪 x wird als Pivot-Spalte gewählt.
1

BV x1 x2 x3 y1 y2 y3 RS
y1 -1 -3 -1 1 0 0 -4
y2 1 6 2 0 1 0 24
y3 1 2 2 0 0 1 12
-Z 10 5 15 0 0 0 0
Wenden Sie nun die Berechnungen eines Simplexschritts an und
kommen Sie zu der
2nd Simplex-Tisch:
BV x1 x2 x3 y1 y2 y3 RS Engpass
y1 0 -1 1 1 0 1 8

y2 0 4 0 0 1 -1 12
x1 1 2 2 0 0 1 12
-Z 0 -15 -5 0 0 -10 -120 -

Dies ist eine machbare Lösung, da die rechte Seite der


Nebenbedingungen positiv ist und keine Schlupfvariable, die
einer Gleichheit zugeordnet ist, zur Menge der Basisvariablen
gehört (in diesem Fall y3 ). Die Lösung ist jedoch nicht optimal,
da auf der linken Seite der Zielfunktion negative Einträge zu
beobachten sind. Um zu verhindern, dass der Algorithmus
eine aktuelle Nicht-Basis-Variable auswählt, bei der es sich um
eine Schlupfvariable handelt, die einer Gleichheit zugeordnet
ist, werden diese Schlupfvariablen "gesperrt" (in diesem Fall
y3 ). Sobald diese Variablen gesperrt sind, wenden wir einen
primären Simplex-Verfahrensschritt an!

BV x1 x2 x3 y1 y2 y3 RS Engpass
y1 0 -1 1 1 0 1 8

y2 0 4 0 0 1 -1 12
x1 1 2 2 0 0 1 12
-Z 0 -15 -5 0 0 -10 -120 -
2nd Schritt: Installation der Durchführbarkeit (nur wenn die
gefundene Lösung nicht durchführbar ist)
Sollte die Lösung nach Schritt 1 (Eliminierung von
Schlupfvariablen, die Gleichheiten zugeordnet sind, aus der
Menge der Basisvariablen) immer noch negative Werte auf
der rechten Seite der Nebenbedingungen aufweisen, wenden
wir einen Schritt des dualen Simplexverfahrens an, um die
Durchführbarkeit herzustellen. In diesem Beispiel ist dies
nicht notwendig.

3rd Schritt: Installation der Optimalität (wenn die aktuelle


Lösung nicht optimal ist)
Da die aktuelle Lösung zwar machbar, aber nicht optimal ist,
müssen wir die Schritte des primären Simplexverfahrens
anwenden, um die Optimalität herzustellen.
BV x1 x2 x3 y1 y2 y3 RS Engpass
y1 0 -1 1 1 0 1 8 8/(-1)=-8
(wegen des
negativen Werts
nicht zulässig)

y2 0 4 0 0 1 -1 12 12/4=3
x1 1 2 2 0 0 1 12 12/2=6
-Z 0 -15 -5 0 0 -10 -120 -

Die Anwendung des primären Simplexverfahrens führt zu folgendem


Ergebnis:
BV X1 X2 X3 Y1 Y2 Y3 RS Engpass
Y1 0 0 1 1 ¼ ¾ 11
X2 0 1 0 0 1/4 -1/4 3
X1 1 0 2 0 -1/2 3/2 6
-Z 0 0 -5 0 15/4 -55/4 -75
Ergebnis: y1 =11, x2 =3, x1 =3/2; y2 =y3 =x3 =0; Z=75
Die Lösung ist machbar, aber nicht optimal, so dass ein weiterer
Simplexschritt erforderlich ist:
BV X1 X2 X3 Y1 Y2 Y3 RS Engpass
Y1 0 0 1 1 ¼ ¾ 11 11/1
X2 0 1 0 0 1/4 -1/4 3 3/0 (nicht
möglich)
X1 1 0 2 0 -1/2 3/2 6 6/2
-Z 0 0 -5 0 15/4 -55/4 -75 -

Resultierende Simplex-Tabelle:
BV X1 X2 X3 Y1 Y2 Y3 RS
Y1 -1/2 0 0 1 1/2 0 8
X2 0 1 0 0 1/4 -1/4 3
X3 1/2 0 1 0 -1/4 3/4 3
-Z 5/2 0 0 0 5/2 -10 -60
Ergebnis: y1 =8; x2 =3, x3 =3; y2 =y3 =x1 =0; Z=60
Die Lösung ist machbar (RS≥ 0 für alle Nebenbedingungen) und
optimal, da alle Koeffizienten auf der linken Seite der Zielfunktion
positiv sind, bis auf den Koeffizienten der gesperrten Variable y3 , die
nicht wieder zur Basisvariablen werden darf, da dies die
Gleichheitsbedingung verletzen würde. Negative Werte innerhalb der
Zielfunktionszeilen links an gesperrten Variablen sind für das
Optimierungskriterium nicht relevant!
Hausaufgabe: Wenden Sie das zweite Kriterium aus Schritt 1 zur
𝑂𝑏𝑗𝑒𝑐𝑡𝑖𝑣𝑒 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑐𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡
Bestimmung der Pivot-Spalte an: min( 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡 𝑜𝑓 𝑐𝑜𝑙𝑢𝑚𝑛 𝑖𝑛 𝑝𝑖𝑣𝑜𝑡 𝑟𝑜𝑤 )

und führen Sie die Installation von Machbarkeit und Optimalität


durch.

BV x1 x2 x3 y1 y2 y3 RS
y1 -1 -3 -1 1 0 0 -4
y2 1 6 2 0 1 0 24
y3 1 2 2 0 0 1 12
-Z 10 5 15 0 0 0 0

Frage: Warum können wir das Simplex-Verfahren zur Lösung von


Transportproblemen verwenden, obwohl die Variablen des
Transportproblems ganzzahligen Beschränkungen unterliegen (das
Simplex-Verfahren geht davon aus, dass die Variablen
nicht-ganzzahlige Werte annehmen können, es sollen ja
kontinuierliche Variablen sein)?
Beispiel für ein einfaches Transportproblem:

Zielfunktion: Z=10x11 +15x12 +5x21 +20x22🡪 min


Versorgungsengpässe: x11 +x12 =30
X21 +x22 =50
Nachfragebeschränkungen: x11 +x21 =40
X12 +x22 ≥30
Nicht-Negativitäts-Bedingungen: xij ≥0 für alle ij-Kombinationen
BV x11 x12 x21 x22 y1 y2 y3 y4 RS
y1 1 1 0 0 1 0 0 0 30
y2 0 0 1 1 0 1 0 0 50
y3 1 0 1 0 0 0 1 0 40
y4 0 -1 0 -1 0 0 0 1 -30
-Z 10 15 5 20 0 0 0 0 0

Aufgrund der spezifischen Struktur von Transportproblemen (die


Koeffizienten auf der linken Seite der Nebenbedingungen sind '1'
oder '-1' und die Werte auf der rechten Seite der Nebenbedingungen
sind ganzzahlige Werte) wird das Simplex-Verfahren immer optimale
Lösungen liefern, die ganzzahlige Werte für die
Entscheidungsvariablen aufweisen! Das ist ein Glücksfall, denn wir
können ein Optimierungsproblem mit ganzzahligen
Nebenbedingungen lösen, indem wir einen schnellen exakten
Algorithmus verwenden, der von kontinuierlichen Variablen ausgeht.

Das könnte Ihnen auch gefallen