Beruflich Dokumente
Kultur Dokumente
Operations Research
Vorlesung 3
Lineare Programmierung: Simplex-Algorithmus
Wiederholung
▪ Die drei Schritte im Operations Research
▪ Problem, Modell, Lösung
▪ Typische Problemszenarien
▪ Z.B. Transportproblem, Energieflussproblem, Auswahlproblem
▪ Intuitive Lösungsverfahren
▪ Systematisches Durchsuchen und Grafisches Lösen
1. Simplex-Algorithmus
1. Simplex-Algorithmus
▪ Eine Basislösung heißt zulässig, falls alle Basisvariablen (BV) nicht-negativ sind.
▪ Eine Basislösung heißt zulässig, falls alle Basisvariablen (BV) nicht-negativ sind.
Zulässige Basislösung:
𝑥1 = 0, 𝑥2 = 0 Nichtbasisvariablen
𝑥3 = 1200, 𝑥4 = 3000, 𝑥5 = 125 Basisvariablen
𝑧 = 0
´ ´ ´ ´ ´
𝑎𝑚1 𝑎𝑚2 … 0 … 𝑎𝑚𝑛 0 0 … 𝑎𝑚,𝑛+𝑟 … 1 𝑏𝑚
𝑎𝑟𝑗
𝑐𝑗´ = 𝑐𝑗 − 𝑐𝑠 (𝑗 ≠ 𝑠)
𝑎𝑟𝑗 𝑎𝑟𝑠 𝑎𝑟𝑠
𝑐𝑠
−𝑧𝑖´ = −𝑧0 − 𝑏𝑟
𝑎𝑟𝑠
𝑏𝑖
Man wähle das Pivotelement 𝑎𝑟𝑠 so, dass 𝑎𝑟𝑠 > 0 und min 𝑎𝑖𝑠 > 0 erfüllt sind.
𝑖=1,…,𝑚 𝑎𝑖𝑠
Abbruch:
• Ist Regel I nicht anwendbar, so ist das Optimum gefunden und das Verfahren terminiert.
• Ist Regel II nicht anwendbar, so existiert keine optimale Lösungen und das Verfahren terminiert.
𝑐𝑠
𝑧′0 = 𝑧0 + 𝑏𝑟 ≥ 𝑧0 , da 𝑏𝑟 , 𝑐𝑠 , 𝑎𝑟𝑠 0
𝑎𝑟𝑠
𝑏𝑟 𝑏𝑖 𝑏
𝑎𝑖𝑠 > 0: 𝑏′𝑖 = 𝑏𝑖 − 𝑎𝑖𝑠 ≥ 𝑏𝑖 − 𝑎𝑖𝑠 = 0 , da 𝑎𝑏𝑟 = min 𝑎 𝑖
𝑎𝑟𝑠 𝑎𝑖𝑠 𝑟𝑠 𝑖𝑠
𝑏𝑟
𝑎𝑖𝑠 < 0: 𝑏′𝑖 = 𝑏𝑖 − 𝑎𝑖𝑠 ≥ 𝑏𝑖 ≥ 0 , da 𝑎𝑏𝑟 ≥ 0
𝑎𝑟𝑠 𝑟𝑠
3 4 0 0 0 0
Steigung in Richtung 𝑥2
3 2 1 0 0 1200
0 0,5 0 0 1 125
▪ Idee:
▪ Nimm verbessernde NBV in Basis auf.
▪ Entferne erste limitierende BV: neue NBV.
▪ Löse Tableau, erhalte neue Basislösung
Pivotspalte
Pivotelement
Basiswechsel: 𝑥1 → BV
𝑥4 → NBV
𝑎𝑟𝑗 𝑏𝑖
3 0 1 0 -4 700 Pivotzeile: 𝑎′𝑖𝑗 = 𝑗 = 1, . . , 𝑛 ; 𝑏′𝑖 =
𝑎𝑟𝑠 𝑎𝑟𝑠
5 0 0 1 -20 500 𝑎22 0
Beispiel: 𝑎′22 = = =0
𝑎21 5
0 1 0 0 2 250
𝑎23 0
𝑎′23 = = =0
𝑎21 5
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 RS
𝑎24 1
𝑎′24 = =
0 𝑎21 5
𝑎25 −20
0 𝑎′25 = = = −4
𝑎21 5
1 0 0 0,2 -4 100 𝑏2 500
𝑏′2 = = = 100
𝑎21 5
0
3 0 1 0 -4 700
𝑎22 0
5 0 0 1 -20 500 Beispiel: 𝑐′2 = 𝑐2 − 𝑐1 =0−3∗ =0
𝑎21 5
0 1 0 0 2 250
𝑎23 0
𝑐′3 = 𝑐3 − 𝑐1 =0−3∗ =0
𝑎21 5
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 RS
𝑎24 1 3
𝑐′4 = 𝑐4 − 𝑐1 =0−3∗ =−
0 0 0 -0,6 4 -1300 𝑎21 5 5
0 𝑎25 −20
𝑐′5 = 𝑐5 − 𝑐1 = −8 − 3 ∗ =4
𝑎21 5
1 0 0 0,2 -4 100
𝑐1 3
0 −𝑧′0 = −𝑧0 − 𝑏2 = −1000 − 500 ∗ = −1300
𝑎21 5
Operations Research | Vorlesung 3 | Seite 22
3 0 0 0 -8 -1000 𝑎𝑖𝑠
𝑏′𝑖 = 𝑏𝑖 − 𝑏𝑟 (𝑖 ≠ 𝑟)
𝑎𝑟𝑠
3 0 1 0 -4 700
𝑎11 𝑎22 3∗0
5 0 0 1 -20 500 Beispiel: 𝑎′12 = 𝑎12 − =0− =0
𝑎21 5
1. Simplex-Algorithmus
𝑏𝑟 𝑏𝑖
𝑎𝑟𝑠 > 0, = min |𝑎 >0
𝑎𝑟𝑠 𝑖=1,…,𝑚 𝑎𝑖𝑠 𝑖𝑠
𝑥2 Max 𝑧 = 3 𝑥1 + 4𝑥2
u.d.N. 3 𝑥1 + 2𝑥2 + 𝑥3 = 1200
600 5 𝑥1 + 10𝑥2 + 𝑥4 = 3000
3𝑥1 + 2𝑥2 = 1200
0,5𝑥2 + 𝑥5 = 125
500
𝑥1, 𝑥2, 𝑥3, 𝑥4, 𝑥5 0
400
300
0,5𝑥2 = 125 Basislösung:
200
𝑥1 = 0, 𝑥2 = 0, 𝑧 = 0
100
5𝑥1 + 10𝑥2 = 3000
5 10 0 1 0 3000 300
0 0,5 0 0 1 125 250 Pivotzeile
Pivotspalte
Pivotelement
Basiswechsel: 𝑥2 → BV
𝑥5 → NBV
𝑥2
Neue Basislösung:
𝑥1 = 0, 𝑥2 = 250, 𝑧 = 1000
600
3𝑥1 + 2𝑥2 = 1200
500
400
300
0,5𝑥2 = 125
200
100
5𝑥1 + 10𝑥2 = 3000
𝑥1 𝑥4 𝑥1 = 𝑥5 = 0
𝑥2 𝑥3 𝑥5 RS
𝑥2 = 250
3 0 0 0 -8 -1000 𝑥3 = 700
𝑥4 = 500
3 0 1 0 -4 700 700 / 3 𝑧 = 1000
0 1 0 0 2 250 Pivotzeile
Pivotspalte
Pivotelement
Basiswechsel: 𝑥1 → BV
𝑥4 → NBV
𝑥2
Neue Basislösung:
600 𝑥1 = 100, 𝑥2 = 250, 𝑧 = 1300
3𝑥1 + 2𝑥2 = 1200
500
400
300
0,5𝑥2 = 125
200
100
5𝑥1 + 10𝑥2 = 3000
𝑥4 = 𝑥5 = 0
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 RS
𝑥1 = 100
0 0 0 -0,6 4 -1300 𝑥2 = 250
𝑥3 = 400
0 0 1 -0,6 8 400 50 𝑧 = 1300
Pivotspalte Pivotelement
Basiswechsel: 𝑥5 → BV
𝑥3 → NBV
𝑥2
Neue Basislösung:
600 𝑥1 = 300, 𝑥2 = 150, 𝑧 = 1500
3𝑥1 + 2𝑥2 = 1200
500
400
300
0,5𝑥2 = 125
200
100
5𝑥1 + 10𝑥2 = 3000
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 RS 𝑥3 = 𝑥4 = 0
0 0 -1/2 -3/10 0 -1500 𝑥1 = 300
𝑥2 = 150
0 0 1/8 -3/40 1 50 𝑥5 = 50
𝑧 = 1500
1 0 1/2 -1/10 0 300
0 1 -1/4 3/20 0 150
Transformationsregeln:
1. Pivotelement → Kehrwert
2. Pivotzeile → dividieren durch Pivotelement
3. Pivotspalte → mit (-1) multiplizieren und durch Pivotelement dividieren
Pivotzeilenelement * Pivotspaltenelement
4. übrige Elemente → altes Element -
Pivotelement
−𝑧 𝑥1 𝑥2 RS
1 3 4 0
𝑥3 3 2 1200 600
BV 𝑥4 5 10 3000 300
Pivotelement
Basistausch: 𝑥2 → BV
𝑥5 → NBV
−𝑧 𝑥1 𝑥2 RS Transformationsregeln:
1 3 4 0 1. Pivotelement → Kehrwert
−𝑧 𝑥1 𝑥5 RS
1 -8
𝑥3 -4
𝑥4 -20
𝑥2 0 2 250
Operations Research | Vorlesung 3 | Seite 36
−𝑧 𝑥1 𝑥2 RS Transformationsregeln:
1 3 4 0 4. übrige Elemente →
𝑥3 3 2 1200
Pivotzeilenelement * Pivotspaltenelement
𝑥4 5 10 3000 altes Element -
Pivotelement
𝑥5 0 0,5 125
(Analog zur Kreisregel!)
−𝑧 𝑥1 𝑥5 RS
0∗4
1 3 -8 -1000 Bsp: 𝑐′1 = 3 − =3
0,5
𝑥3 3 -4 700 125∗4
𝑥4 −𝑧′0 = 0 − = −1000
5 -20 500 0,5
𝑥2 0 2 250 𝑏1 = 1200 −
125∗2
= 700
0,5
Operations Research | Vorlesung 3 | Seite 37
−𝑧 𝑥4 𝑥3 RS
1 -3/10 -1/2 -1500
𝑥5 -3/40 1/8 50
𝑥1 -1/10 1/2 300
𝑥2 3/20 -1/4 150
1. Simplex-Algorithmus
2
Optimalwert z = 4
Optimale Lösungen:
1 𝑥1 , 𝑥2 | 𝑥1 + 𝑥2 = 4, 𝑥2 ≤ 2
𝑧 = 4
𝑧 = 1 𝑧 = 2
𝑥1
Operations Research | Vorlesung 3 | Seite 40
𝑥2
max 𝑧 = 𝑥1 − 2𝑥2
u.d.N. 𝑥1 − 𝑥2 ≤ 1
−2𝑥1 + 𝑥2 ≤ 2
𝑧 = −6 𝑥1 , 𝑥2 ≥ 0
𝑧 = −2
𝑧 = 1, 𝑥1 = 1, 𝑥2 = 0
𝑧 = 1 𝑥1
-𝑧 𝑥1 𝑥2 𝑥3 𝑥4 RS (Primaler)
Simplex-Algorithmus
1 -2 0 0 0
𝑥3 1 -1 1 0 1
𝑥4 -2 1 0 1 2
0 -1 -1 0 -1
𝑥1 1 -1 1 0 1 Keine Auffälligkeiten im Tableau!
𝑥4 0 -1 2 1 4
𝑥3 0 1 1 0 3
𝑥4 -1 2 0 1 2
3,5 0 0 -1,5 -3
𝑥3 0,5 0 1 -0,5 2
𝑥2 -0,5 1 0 0,5 1
0 0 -7 2 -17
𝑥1 1 0 2 -1 4 keine Pivotzeile bestimmbar!
𝑥2 0 1 1 0 3
Steht unter einem positiven Zielfunktionskoeffizienten eine „ ≤ 0 - Spalte“, so ist der zulässige Bereich
unbeschränkt und das Optimierungsproblem nicht lösbar!
Operations Research | Vorlesung 3 | Seite 45
1
𝑥1 , 𝑥2 ≥ 0
𝑧 = 2, 𝑥1 = 1, 𝑥2 = 0
1 4 𝑥1
-𝑧 𝑥1 𝑥2 𝑥3 𝑥4 RS
-2 -2 0 0 0
𝑥3 1 1 1 0 4 Ein 𝑏𝑖 < 0, somit kein
𝑥4 -2 -1 0 1 -2 gültiges Simplex-Tableau.
𝑥2
Die Menge der zulässigen
Lösungen ist leer.
Es existiert keine Lösung.
max 𝑧 = 𝑥1
u.d.N. −𝑥1 − 𝑥2 ≤ −2
𝑥1 − 𝑥2 ≤ 3
𝑥1
𝑥1 , 𝑥2 ≥ 0
-𝑧 𝑥1 𝑥2 𝑥3 𝑥4 RS
1 1 1 0 0 0
0 -1 -1 1 0 -2 Ein 𝑏𝑖 < 0, somit kein
0 1 -1 0 1 3 gültiges Simplex-Tableau.
▪ Simplex-Algorithmus
▪ Simplex-Tableau
▪ Bestimmung von Pivotelement
▪ Basistausch
▪ Sonderfälle