Uploaded by Cloud

OR Skript

advertisement
Einführung in Operations Research
Modellierung
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1
Optimierungsmodelle
Allgemeines Optimierungsmodell:
▪ mindestens eine Menge von (Handlungs-) Alternativen bzw. Lösungen
ausgedrückt durch Variablen, eingeschränkt durch Nebenbedingungen und
allgemeine Parameter ("Buchstaben statt Zahlen")
▪ mindestens eine zu maximierende oder zu minimierende Zielfunktion
▪ unterteilbar in verschiedene Klassen in Abhängigkeit von der Art der
verfügbaren Daten, der Eigenschaften und Anzahl der Zielfunktionen und der
Struktur der Lösungsmenge
Modellinstanz:
▪ Ausgestaltung eines allgemeinen Modells durch Vorgabe von Datenwerten für
die Parameter
▪ Analoge Idee wie in der objektorientierten Programmierung (Klasse und
Instanz)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2
Beispiel eines frühgeschichtlichen
Optimierungsmodells
Sieh, mein neues,
verbessertes Rad!
Es macht einen
Hopser weniger pro
Umdrehung.
▪ Variablen: Anzahl der Kanten bzw. Form des Rades
▪ Zielfunktion: Minimiere die Anzahl der Hopser pro Umdrehung
▪ Nebenbedingungen: Drehung des Rades muss möglich sein, mehr als zwei
Kanten
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3
Klassifikation von Optimierungsmodellen
▪
▪
▪
▪
▪
deterministisch – stochastisch
einkriteriell – multikriteriell
linear – ganzzahlig(-linear) – binär – nichtlinear – gemischt-ganzzahlig – ...
polynomial lösbar – NP-schwer
Deterministische einkriterielle Optimierungsmodelle
▪ deterministisch: Daten sind mit Sicherheit bekannt; daher fest definierte Lösungsmenge
▪ einkriteriell: eine optimale Lösung lässt sich anhand einer Zielfunktion eindeutig bewerten
Deterministisches einkriterielles Optimierungsmodell
Maximiere (oder Minimiere) F ( x )
unter den Nebenbedingungen
 
 
gi ( x ) =  0
 
 
x W
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4
für i = 1,..., m
Klassifikation von Optimierungsmodellen
Deterministisches einkriterielles Optimierungsmodell
Maximiere (oder Minimiere) F ( x )
unter den Nebenbedingungen
 
 
gi ( x ) =  0
 
 
für i = 1,..., m
x W
Legende:
Variablenvektor mit n Komponenten (Lösung);
x
F ( x)
Zielfunktion
gi ( x )
Funktionen zur Beschreibung von Restriktionen
W
Wertebereiche der Variablen;
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5
x = ( x1 , x2 ,..., xn )
W = W1 W2  ...Wn
Klassifikation von Optimierungsmodellen
Weitere Unterteilung: Verknüpfungen und Wertebereiche
▪ Lineares Optimierungsmodell (LP-Modell): F ( x ) und alle gi ( x ) linear;
𝑛
Variablen x1 , x2 ,..., xn reellwertig (und zumeist nichtnegativ, d.h. 𝑾 = ℝ≥0 )
▪ Ganzzahliges lineares Optimierungsmodell: nur lineare Funktionen;
Variablen auf ganzzahlige Werte beschränkt (d.h. 𝑾 = ℤ𝑛≥0 )
▪ Gemischt-ganzzahliges lineares Optimierungsmodell: Ganzzahligkeit nur für
einige Variablen
▪ (Gemischt-) binäres lineares Optimierungsmodell: alle bzw. einige Variablen
dürfen nur die binären Werte 0 oder 1 annehmen
▪ Nichtlineares Optimierungsmodell: Zielfunktion(en) und/oder Restriktion(en)
sind nichtlinear
•
Weitere Unterteilung: Lösungskomplexität
▪ polynomial lösbar
▪ NP-schwer
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6
Beispiel: Produktionsprogrammplanung
•
•
•
•
•
In einer Stunde können 200 Tonnen Stahlblech oder 140 Tonnen
Stahlcoils produziert werden.
Der Deckungsbeitrag beträgt 25 € für eine Tonne Blech und 30 € für
eine Tonne Coils.
Es können wöchentlich max. 6000 Tonnen Blech und 4000 Tonnen Coils
verkauft werden.
Es stehen 40 Stunden Produktionszeit wöchentlich zur Verfügung.
Wie lautet das Produktionsprogramm mit maximalem Deckungsbeitrag
für eine Woche?
Was sind hier die Entscheidungsvariablen, Restriktionen, Parameter, Zielfunktion?
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7
Modellbildung
Entscheidungsvariablen:
Produktionsmengen pro Woche, Blech 𝑥𝐵, Coils 𝑥𝐶
Parameter:
Produktionsmenge pro h (200 t Blech, 140 t Coils)
Deckungsbeitrag (25 €/t Blech, 30 €/t Coils)
maximale Nachfrage (6000 t Blech, 4000 t Coils)
max. Produktionsdauer pro Woche (40 h)
Restriktionen:
Nicht mehr als die maximale Nachfrage produzieren:
𝑥𝐵 ≤ 6000
𝑥𝐶 ≤ 4000
Wöchentliche Produktionskapazität einhalten:
1
1
𝑥 +
𝑥 ≤ 40
200 𝐵 140 𝐶
Zielfunktion:
Summe der Deckungsbeiträge maximieren:
𝑀𝑎𝑥𝑖𝑚𝑖𝑒𝑟𝑒 25𝑥𝐵 + 30𝑥𝐶
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8
Mathematisches Modell
Produktionsplanung als lineares Programm (LP):
𝑀𝑎𝑥𝑖𝑚𝑖𝑒𝑟𝑒 25𝑥𝐵 + 30𝑥𝐶
1
1
u.d.N.
𝑥𝐵 +
𝑥 ≤ 40
200
140 𝐶
Zielfunktion
Kapazitätsbedingung
𝑥𝐵 ≤ 6000
max. Nachfrage Blech
𝑥𝐶 ≤ 4000
max. Nachfrage Coils
𝑥𝐵 , 𝑥𝐶 ≥ 0
Wie lautet ein allgemeines Modell für beliebig viele Produkte und
beliebige Daten?
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9
Beispiel: Produktionsprogrammplanung
Kann man ein allgemeines Modell für beliebig viele Produkte und
beliebige Daten aufstellen?
Führe Mengen für Modellobjekte ein und benutze allgemeine Bezeichner für
Parameter!
Mengen:
P = Menge der Produkte
Parameter:
aj = Anzahl Tonnen von Produkt j, die in einer Stunde
produziert werden kann (für alle j  P)
b = die zur Verfügung stehende Anzahl von Produktionsstunden
cj = Deckungsbeitrag des Produktes j (für alle j  P)
uj = Obergrenze der Produktion von Produkt j (für alle j  P)
Variablen:
xj = Produktionsmenge von Produkt j in Tonnen (für alle j  P)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10
Allgemeines Modell für einstufige
Produktionsprogrammplanung
𝑥𝑗 ≥ 0 ∀𝑗 ∈ 𝑃
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11
Beispiel eines etwas allgemeineren LPModells
Standardansatz der mehrstufigen Produktionsprogrammplanung,
gegeben:
▪ Herstellung von 𝑛 Produkten 𝑗 = 1, … , 𝑛
▪ Absatzpreise  j ; variable Herstellkosten k j ;
Stück-Deckungsbeiträge db j =  j − k j
▪ Bearbeitung auf 𝑚 verschiedenen Maschinen 𝑖 = 1, … , 𝑚 mit begrenzten
Kapazitäten (Maschinenstunden)  i
▪ Produktionskoeffizienten: Bearbeitung einer ME von Produkt 𝑗 auf Maschine 𝑖
benötigt a ij KE
▪ Absatzbeschränkung: maximale Absatzmengen B j
▪
Gesucht: Produktionsprogramm mit maximalem Gesamt-Deckungsbeitrag
▪ Zielsetzung:
Maximierung des Gesamt-Deckungsbeitrages
▪ Variablen:
Produktionsmengen der Produkte 𝑥𝑗 ≥ 0 ∀ 𝑗 = 1, … , 𝑛
▪ Optimierungsmodell: linear, einkriteriell, deterministisch
▪
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12
Beispiel eines etwas allgemeineren LPModells
Lineares Opt.-Modell: Prod.-Programmplanung
Maximiere DB(x) =

n
j =1
db j x j
unter den Nebenbedingungen

n
a  x j  i
j =1 ij
für i = 1,…,m
x j  Bj
für j = 1,…,n
xj  0
für j = 1,…,n
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13
Beispiel einer LP-Modellinstanz
•
Daten der Entscheidungssituation:
P1
P2
i
Maschine Y (i=1)
1
1
100
Maschine Z (i=2)
1
2
160
Vorprodukt (i=3)
3
1
240
Stück-DB
6
3
80
70
aij
max. Bedarfe
bj
Maximiere DB( x1 , x2 ) = 6 x1 + 3 x2
(1.8)
unter den Nebenbedingungen
x1 + x2  100
(1.9)
x1 + 2 x2  160
(1.10)
3 x1 + x2  240
(1.11)
x1  80, x2  70
(1.12)
x1 , x2  0
Optimale Lösung:
X* = (70,30)
d.h. 70 ME von P1 und 30 ME von P2
DB* = 510
d.h. maximaler Gesamt-DB: 510 GE
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
50
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15
100
150
𝑥1
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
50
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16
100
150
𝑥1
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
50
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17
100
150
𝑥1
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
50
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18
100
150
𝑥1
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
50
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19
100
150
𝑥1
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
50
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20
100
150
𝑥1
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
50
Iso-Linie
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21
100
150
𝑥1
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
50
100
Iso-Linie
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22
150
𝑥1
Beispiel einer LP-Modellinstanz: graphische
Optimierung
𝑥2
Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2
(1.0)
150
u.d.N.:
𝑥1 + 𝑥2 ≤ 100
(1.1)
𝑥1 + 2 𝑥2 ≤ 160
(1.2)
3 𝑥1 + 𝑥2 ≤ 240
(1.3)
𝑥1 ≤ 80
(1.4)
𝑥2 ≤ 70
(1.5)
𝑥1 ≥ 0
(1.6)
𝑥2 ≥ 0
(1.7)
100
50
x* = (70,30)
30
50
100
70
𝐷𝐵 ∗ = 𝐷𝐵 𝑥 ∗ = 𝐷𝐵 70,30 = 6 ⋅ 70 + 3 ⋅ 30 = 510
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23
Iso-Linie
150
𝑥1
Beispiel eines binären Optimierungsmodells
Bin-Packing-Problem (Behälter-Problem):
▪ Es sollen Gegenstände in so wenige Behälter mit gegebener Kapazität gepackt
werden wie möglich.
•
▪ 𝑛 unterschiedliche Gegenstände 𝑗 = 1, . . , 𝑛: Gewichte 𝑔𝑗
▪ Behältergröße 𝐵
1 , falls Gegenstand j in Behälter i gepackt wird
▪ (Binär-) Variablen 𝑥𝑖𝑗 mit 𝑥𝑖𝑗 = ቊ
0 , sonst
▪ (Binär-) Variablen 𝑦𝑖 mit 𝑦𝑖 = 1 , falls Behälter i benutzt wird; 0 sonst
Modell des Bin-Packing-Problems
Minimiere 𝑈(𝑥, 𝑦) =σ𝑛𝑖=1 𝑦𝑖
unter den Nebenbedingungen
σ𝑛𝑗=1 𝑥𝑖𝑗 ⋅ 𝑔𝑗 ≤ 𝐵 ⋅ 𝑦𝑖
∀ i = 1,…,n
σ𝑛𝑖=1 𝑥𝑖𝑗 = 1
∀ j = 1,…,n
𝑥𝑖𝑗 ∈ {0,1}
∀ i,j = 1,…,n
𝑦𝑖 ∈ {0,1}
∀ i = 1,…,n
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24
Beispiel: Das eindimensionale
Zuschnittproblem (Cutting-Stock Problem)
Gegeben:
▪ Stahlblechrollen (Coils) der Breite r
▪ m Kundenbedarfe von bi Rollen der Breite wi
Gesucht: Schnittplan, der Kundenbedarfe mit
möglichst wenigen eingesetzten Coils erfüllt.
r
Schnittmuster:
w1 w2 w3
Verschnitt
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25
Das Zuschnittproblem als Bin Packing Problem
Wie viele Bins (Coils) braucht man, um den Bedarf zu erfüllen?
„Gesamtbreite“ der Kundenbedarfe =
Triviale untere Schranke LB =
Triviale obere Schranken ist σ𝑚
𝑖=1 𝑏𝑖 .
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26
Eine (nicht so gute) IP-Modellierung als
Bin Packing Problem
Sei yj=1 wenn Bin j benutzt wird, sonst 0.
xij gibt die Anzahl Rollen der Breite wi in Bin j an
𝐾
𝑀𝑖𝑛 ෍ 𝑦𝑗
BIG M: „So groß wie nötig und so klein wie möglich“
hier: 𝑀 = 𝑟 (Bereite des Coils)
𝑗=1
𝑚
𝑢. 𝑑. 𝑁. ෍ 𝑤𝑖 𝑥𝑖𝑗 ≤ 𝑟 𝑦𝑗
∀𝑗 = 1, … , 𝐾
𝑖=1
𝐾
෍ 𝑥𝑖𝑗 = 𝑏𝑖
∀𝑖 = 1, … , 𝑚
𝑗=1
𝑦𝑗 ∈ 0,1
∀𝑗 = 1, … , 𝐾
𝑥𝑖𝑗 ∈ ℕ0
∀𝑖 = 1, … , 𝑚 ; 𝑗 = 1, … , 𝐾
Warum ist dieses Modell nicht so gut?
Weil die LP-Relaxation nur die triviale untere Schranke liefert!
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27
Was ist ein gutes Modell?
▪
▪
▪
▪
i.
ii.
Es gibt viele verschiedene Arten, ein und dasselbe Problem zu modellieren.
Manche Modelle sind besser als andere.
Ein Modell sollte sich möglichst gut mit Standardwerkzeugen lösen lassen.
Konkret bedeutet das:
Ein kontinuierliches LP-Modell ist besser als ein ganzzahliges Modell.
Das Modell sollte möglichst linear sein.
•
Die Zielfunktion und alle Nebenbedingungen sollten nur aus linearen Termen
bestehen.
iii. Für LP-Modelle:
•
•
Je kleiner, desto besser.
Möglichst wenige Variablen und Nebenbedingungen.
iv. Für ganzzahlige Modelle:
•
•
v.
Die LP-Relaxation sollte möglichst scharf sein.
Wenn man ein ganzzahliges Modell als LP-Modell löst, sollte die optimale LP-Lösung
der optimalen ganzzahligen Lösung möglichst ähnlich sein.
Beachte numerische Stabilität.
•
Vorsicht, wenn das Modell sehr große Zahlen und / oder Zahlen mit vielen
Nachkommastellen enthält.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28
Alternatives Modell für das Zuschnittproblem
Modellierungsidee:
Zähle alle n möglichen Schnittmuster auf und ordne jedem
Schnittmuster j eine Entscheidungsvariable xj zu, die
aussagt, wie viele Coils nach diesem Schnittmuster
geschnitten werden sollen.
Beispiel:
Breite der Coils 100 cm
Kundenbedarfe: 97 R o llen d er B reit e 45cm
610 R ollen d er B reit e 36cm
395 R ollen d er B reit e 31cm
211 R ollen d er B reit e 14cm
(w 1 = 45; b1 = 97)
(w 2 = 36; b2 = 610)
(w 3 = 31; b3 = 395)
(w 4 = 14; b4 = 211)
Mögliche Schnittmuster:
j
a1j
a2j
a3j
a4j
1
2
0
0
0
2
1
1
0
1
3
1
1
0
0
4
1
0
1
1
5
1
0
1
0
6
1
0
0
3
7
1
0
0
2
8
1
0
0
1
9
1
0
0
0
10
0
2
0
2
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29
…
…
…
…
…
n = 37
0
aij : Anzahl Streifen der
0
Breite wi in Schnittmuster j
0
(vgl. Chvatal S. 197)
1
Alternatives Modell für das Zuschnittproblem
𝑛
(minimiere Anzahl Coils)
𝑀𝑖𝑛𝑖𝑚𝑖𝑒𝑟𝑒 ෍ 𝑥𝑗
𝑗=1
𝑛
𝑢. 𝑑. 𝑁. ෍ 𝑎𝑖𝑗 𝑥𝑗 = 𝑏𝑖 ∀𝑖 = 1,2, … 𝑚
(erfülle Kundenbedarfe)
𝑗=1
𝑥𝑗 ∈ ℕ0 ∀𝑗 = 1,2, … , 𝑛
▪
▪
Vorteil des Modells:
▪ Die LP-Relaxation ist viel schärfer.
Nachteil des Modells:
▪ Es können astronomisch viele Schnittmuster und damit Variablen
entstehen ➔ Es ist aber möglich, neue Schnittmuster dynamisch
während der Lösungsfindung zu generieren (sog. Column Generation,
vgl. Mastervorlesung)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30
Fixkostenprobleme
Beispiel: Warehouse Location-Problem
▪ Entscheidung über Einrichtung von Auslieferungslagern an potentiellen
Standorten i=1,...,m mit maximaler Umschlagkapazität 𝑎𝑖 (ME pro Periode)
▪ Kunden j=1,...,n mit Bedarfen von 𝑏𝑗 ME pro Periode
▪ Errichtung, Betrieb und Belieferung eines Lagers am Standort i: fixe Kosten
von 𝑐𝑖 GE pro Periode
▪ Belieferung eines Kunden j vom Lager i kostet 𝑑𝑖𝑗 GE pro ME
▪ Zielsetzung: Minimierung der Gesamtkosten pro Periode
•
•
Variablen:
xij
yi
Transportmenge von Lager i zu Kunde j
Lagerwahl mit
1 falls an Standort i ein Lager eingerichtet wird
yi = 
0 sonst
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31
Fixkostenprobleme
Warehouse Location-Problem
Minimiere F(x,y) = i =1 ci  yi + i =1  j =1 dij  xij
m
m
n
unter den Nebenbedingungen
𝒏
෍ 𝒙𝒊𝒋 ≤ 𝒂𝒊 ⋅ 𝒚𝒊
𝒋=𝟏
𝒎
෍ 𝒙𝒊𝒋 = 𝒃𝒋
∀ 𝑖 = 1, … , 𝑚
∀𝑗 = 1, … , 𝑛
𝒊=𝟏
𝒙𝒊𝒋 ≥ 𝟎
∀𝑖 = 1, … , 𝑚; 𝑗 = 1, … , 𝑛
𝒚𝒊 ∈ 𝟎, 𝟏
∀ 𝑖 = 1, … , 𝑚
Weiteres Beispiel:
▪ Losgrößenplanung: Wagner-Whitin-Modell
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32
Fixkostenprobleme
Unkapazitiertes Warehouse Location-Problem
Minimiere F(x,y) = i =1 ci  yi + i =1  j =1 dij  xij
m
m
n
unter den Nebenbedingungen
𝒏
෍ 𝒙𝒊𝒋 ≤ 𝑴 ⋅ 𝒚𝒊
𝒋=𝟏
𝒎
෍ 𝒙𝒊𝒋 = 𝒃𝒋
∀ 𝑖 = 1, … , 𝑚
∀𝑗 = 1, … , 𝑛
𝒊=𝟏
𝒙𝒊𝒋 ≥ 𝟎
∀𝑖 = 1, … , 𝑚; 𝑗 = 1, … , 𝑛
𝒚𝒊 ∈ 𝟎, 𝟏
∀ 𝑖 = 1, … , 𝑚
Problematik der Big M Formulierung:
▪ M so wählen, dass…
▪
▪
…keine Lösungen aufgrund von M ausgeschlossen werden („so groß wie nötig“).
…das Modell numerisch stabil ist („so klein wie möglich“).
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33
Modellierungstechniken und –tricks
Implikationen und ">"-Bedingungen
•
Wenn Produkt A gefertigt wird, dann muss auch Produkt B gefertigt werden:
x A  0  xB  0
•
•
•
Weitere Anwendungsbeispiele für Implikationen:
▪ Nur wenn Maschine X angeschafft wird, kann Produkt A hergestellt werden.
▪ Fixkostenproblem ist Spezialfall: Nur wenn Standort geöffnet ist, kann er liefern.
▪ Wenn Einkommen > Existenzminimum, dann Steuer > 0.
Abhilfe
Einführung einer Binärvariable 𝑦 ∈ {0; 1}
xA  M  y
𝑥𝐴 > 0 ⇒ 𝑦 = 1
𝑥𝐴 = 0 ⇒ 𝑦 ∈ {0; 1}
xB    y
𝑦 = 1 ⇒ 𝑥𝐵 ≥ 𝜀 ⇒ 𝑥𝐵 > 0
𝑦 = 0 ⇒ 𝑥𝐵 ≥ 0
mit hinreichend großer Zahl M und hinreichend kleiner Zahl ε
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34
Modellierungstechniken und –tricks
Unbeschränkte Variablen
Unbeschränkte Variablen
xj  R
für j = 1,…,n
Beispiele:
▪ Veränderung des Kassenbestandes (positiv / negativ)
▪ Lagerbestand (negativ: Fehlmenge)
▪ Gewinn (negativ: Verlust)
Problem: Nur nichtnegative Variablen erwünscht oder benötigt
Abhilfe:
x j = x +j − x −j
für j = 1,…,n
x +j , x −j  0
für j = 1,…,n
x1 = −6
x1+ = 0, x1− = 6
x2 = 4
x2+ = 4, x2− = 0
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35
Modellierungstechniken und –tricks
Disjunktive Bedingungen
7 x1 + 2 x2  100
oder
2 x1 + 3 x2  200
Anwendungsbeispiele:
▪ Reihenfolge von Aufträgen auf Maschinen (Auftrag 1 vor 2 oder 2 vor 1)
▪ optionale Wünsche oder Produktmerkmale
▪ Zuordnung eines Kunden zum Lager A oder zum Lager B
Abhilfe
Einführen einer Binärvariable
y  0,1
zwei Binärvariablen
y1, y2  0,1
7𝑥1 + 2𝑥2 − 𝑀 ⋅ 𝑦 ≤ 100
7𝑥1 + 2𝑥2 − 𝑀 ⋅ (1 − 𝑦1 ) ≤ 100
2𝑥1 + 3𝑥2 − 𝑀 ⋅ (1 − 𝑦) ≤ 200
2𝑥1 + 3𝑥2 − 𝑀 ⋅ (1 − 𝑦2 ) ≤ 200
Mit hinreichend großer Zahl M
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36
y1 + y2 = 1
exklusives oder (xor) bzw.
y1 + y2  1
oder (or)
Klausurvorbereitung
•
•
Domschke, W. und A. Drexl (2015): Einführung in Operations Research.
9. Aufl., Springer-Verlag, Berlin et al., Kapitel 1
Zur Klausurvorbereitung sind die Aufgaben 1.2 bis 1.7 sowie 2.1 und
2.3 aus dem Übungsbuch „Übungen und Fallstudien zum Operations
Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu
empfehlen.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37
Einführung in Operations Research
Lineare Optimierung I
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1
Definitionen
Lineares Optimierungsmodell (LP-Modell):
Maximiere (oder Minimiere)
F ( x1 ,..., x p ) = c1 x1 + ... + c p x p
(2.1)
unter den Nebenbedingungen
ai1 x1 + ... + aip x p  bi
für i = 1,..., m1
(2.2)
ai1 x1 + ... + aip x p  bi
für i = m1 + 1,..., m2
(2.3)
ai1 x1 + ... + aip x p = bi
für i = m2 + 1,..., m
(2.4)
xj  0
für alle (oder einige) j = 1,..., p
(2.5)
▪ Lösung des LP-Modells: jeder Vektor x = ( x1 ,..., x p )  R , der (2.2) - (2.4)
erfüllt
▪ zulässige Lösung: jede Lösung x , die auch Nichtnegativitätsbedingungen
(2.5) erfüllt; Menge der zulässigen Lösungen: X
*
*
▪ optimale Lösung: jede zulässige Lösung x , mit F ( x ) = max F ( x) : x  X 
Menge der optimalen Lösungen: X *
p
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2
Formen und Analyse von LP-Modellen
LP-Modelle in Ungleichungsform
Maximierungsform:
Maximiere
Minimierungsform:
F ( x1 ,..., x p ) =  j =1 c j  x j
p
Minimiere
F ( x1 ,..., x p ) =  j =1 c j  x j
p
unter den Nebenbedingungen
unter den Nebenbedingungen
 j =1 aij  x j  bi
für i=1,…,m

xj  0
für j=1,…,p
xj  0
p
p
a  x j  bi
j =1 ij
für i=1,…,m
für j=1,…,p
▪ jedes beliebige LP-Modell lässt sich in eine der Formen transformieren
▪ Umkehren der Optimierungsrichtung: Multiplikation der Zielfunktion mit -1
▪ Umkehren der Ungleichungsrichtung: Multiplikation der Nebenbedingung mit -1
▪ bei Gleichungen: Umwandeln in zwei Nebenbedingungen
x1 + x2 = 100  x1 + x2  100  x1 + x2  100
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3
Formen und Analyse von LP-Modellen
LP-Modelle in Ungleichungsform
▪ reellwertige Variablen
x j  R : x j = x +j − x −j mit x +j , x −j  0
für j=1,…,p
Beispiel
Ausgangsmodell:
Maximierungsform:
Min F ( x) = x1 + x2 + 3x3
Max − F ( x) = − x1 − x2 − 3x3
unter den Nebenbedingungen
unter den Nebenbedingungen
− x1 + x2  10
− x1 + x2  10
x1 − x3  12
− x1 + x3  −12
2 x1 − x2 + x3  2
x1 , x2 , x3  0
−2 x1 + x2 − x3  −2
x1 , x2 , x3  0
Achtung: Zur Überführung eines Minimierungs- in ein Maximierungsproblem und
umgekehrt sind Änderungen im Nebenbedingungssystem nicht erforderlich!! Sie
wurden oben nur beispielhaft vorgenommen.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4
Formen und Analyse von LP-Modellen
Normalform eines LP-Modells
Normalform:
Maximiere 𝐹 𝑥1, … , 𝑥𝑛 = σ𝑛𝑗=1 𝑐𝑗 ∙ 𝑥𝑗
unter den Nebenbedingungen
𝑛
෍
für 𝑖 = 1, … , 𝑚
𝑎𝑖𝑗 ∙ 𝑥𝑗 = 𝑏𝑖
𝑗=1
für 𝑗 = 1, … , 𝑛
𝑥𝑗 ≥ 0
Matrixschreibweise:
Maximiere 𝐹 𝒙 = 𝒄𝑇𝒙
unter den Nebenbedingungen
𝐴𝒙 = 𝒃
𝒙≥0
mit:
cT = (c1 ,..., cn )
𝑎11 𝑎12
𝑎21 𝑎22
𝐴= …
…
𝑎𝑚1 𝑎𝑚2
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5
 x1 
 b1 
… 𝑎1𝑛
b 
x 
… 𝑎2𝑛
 2b =  2 
x
=
… …
 ... 
 ... 
 
 
… 𝑎𝑚𝑛
b
x

n


m

Transformation eines allgemeinen LPModells in Normalform
𝑝
Maximiere 𝐹 𝑥1, … , 𝑥𝑝 = σ𝑗=1 𝑐𝑗 ∙ 𝑥𝑗 + σ𝑛𝑗=𝑝+1 0 ∙ 𝑥𝑗
unter den Nebenbedingungen
𝑝
෍
𝑎𝑖𝑗 ∙ 𝑥𝑗 + 𝑥𝑝+𝑖 = 𝑏𝑖
𝑗=1
𝑝
෍
𝑎𝑖𝑗 ∙ 𝑥𝑗 − 𝑥𝑝+𝑖 = 𝑏𝑖
für 𝑖 = 1, … , 𝑚1
für 𝑖 = 𝑚1 + 1, … , 𝑚2
𝑗=1
𝑝
෍
𝑎𝑖𝑗 ∙ 𝑥𝑗 = 𝑏𝑖
für 𝑖 = 𝑚2 + 1, … , 𝑚
𝑗=1
𝑥𝑗 ≥ 0
für 𝑗 = 1, … , 𝑛
▪ Strukturvariablen: ursprüngliche Problemvariablen 𝑥1, … , 𝑥𝑝
▪ Schlupfvariablen: Ausgleichsvariablen zur Überführung von
Ungleichungen in Gleichungen mit Zielfunktionskoeffizient 0
Bedeutung: ungenutzte Kapazität, unbefriedigte Nachfrage, ...
▪ Anzahl der Variablen: 𝑛 = 𝑝 + 𝑚2
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6
Beispiel: Problem der
Produktionsprogrammplanung
In Ungleichungsform:
Maximiere DB(𝑥1, 𝑥2) = 10𝑥1 + 20𝑥2
unter den Nebenbedingungen
𝑥1 + 𝑥2 ≤ 100
6𝑥1 + 9𝑥2 ≤ 720
𝑥2 ≤ 60
𝑥1, 𝑥2 ≥ 0
Wie lautet die Normalform (in Matrixschreibweise)?
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7
Beispiel: Problem der
Produktionsprogrammplanung
Normalform:
Maximiere 𝐺 𝑥1, 𝑥2, 𝑥3, 𝑥4, 𝑥5 = 10𝑥1 + 20𝑥2 + 0 ∙ 𝑥3 + 𝑥4 + 𝑥5
Unter den Nebenbedingungen
x1 + x2 + x3
6 x1 + 9 x2
= 100
+ x4
+ x5
x1 , x2 , x3 , x4 , x5  0
x2
Matrixschreibweise:
𝑐 𝑇 = [10 20 0 0 0]
= 720
= 60
1
A = 6

 0
1
1
0
9
0
1
1
0
0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8
0
0

1 
 x1 
x 
100 
 2
x =  x3  b =  720 
 
 
 60 
 x4 
 x5 
Kanonische Form eines LP-Modells
Bedingungen: Normalform sowie
▪
b0
▪
cT = (c1 ,..., cn − m ,0,...,0)
 a11
a
21
▪ A=
 ...

 am1
...
a1,n − m
... a2,n − m
...
...
... am,n − m
0 ... 0 
0 1 ... 0 

... ... ... ...

0 0 ... 1 
1
▪
n Variablen = n Spalten
▪
m Nebenbedingungen = m Zeilen
▪
n-m Strukturvariablen
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9
→
m Schlupfvariablen
Analyse von LP-Modellen
Konvexe Menge:
3
n
▪ Eine Menge K  R ist konvex, wenn jeder Punkt x auf der
1
2
Verbindungsstrecke zwischen zwei beliebigen Punkten x und x der
Menge ebenfalls in der Menge enthalten ist. Bedingung für Konvexität:
Für alle x1 , x 2  K und  [0,1] gilt x 3 =  x1 + (1 −  ) x 2  K
▪ Konvexe Hülle H: kleinste konvexe Menge, die K vollständig enthält
▪ Konvexkombination: y =

r
i =1
i x mit i  0 für i=1,…,r sowie  i =1 i = 1 .
i
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10
r
Analyse von LP-Modellen
▪ Konvexes Polyeder: Menge aller Konvexkombinationen von endlich
vielen (Eck- bzw. Extrem-) Punkten 𝑥1, … , 𝑥 𝑟
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11
LP-Modelle und konvexe Mengen
Nebenbedingungen:
▪ Menge der zulässigen Lösungen einer linearen Nebenbedingung ist konvex
▪ Durchschnitt konvexer Mengen ist ebenfalls konvex
→ Menge der zulässigen Lösungen eines LP-Modells ist konvex
Zielfunktion:
▪ Annahme: Menge der zulässigen Lösungen ist konvexes Polyeder
→ lineare Funktion nimmt ihr Optimum in mindestens einem Eckpunkt an
→ optimale Lösung eines LP-Modells liegt immer in einem (oder mehreren)
Eckpunkt(en)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12
LP-Modelle und konvexe Mengen
M
▪ LP-Modell in Normalform (bzw. kanonischer Form): n > m (# Variablen > #
Restriktionen)
→ Gleichungssystem mit Freiheitsgrad: n-m
keine Schlupfvar
▪ Basislösung:
~
n-variabeln/n-spalten
~

n-m Variablen werden auf Null gesetzt → Nichtbasisvariablen (NBV)
↳m-Zeilen/m-schlupfvar.


Gleichungssystem nach restlichen m Variablen auflösen → Basisvariablen
(BV)
maximale Anzahl möglicher Basislösungen:
𝑛
𝑚
kleines Modell mit n = 20 und m = 10 ergibt maximal
Basislösungen
*
->
20
10
15g. mitneg.
▪ zulässige Basislösung: alle Basisvariablen sind nichtnegativ
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13
=
20!
10!∙10!
= 184756
LP-Modelle und konvexe Mengen
Beispiel:
Gleichungssystem: 𝑥1 + 𝑥2 = 3 und −𝑥2 + 𝑥3 = −1
n
m
Basislösungen:
X,
-
als
3
=
n
=
2
=
-
m
=
NBU
NBV:
X1
0
=
=>
=>
x
x
0
=
3
=
2
*
*
*
▪ 𝑁𝐵𝑉 = 𝑥1 : 𝑥2 = 3 und −3 + 𝑥3 = −1 ⟹ 𝑥3 = 2; 𝑥 = 0,3,2 ; zulässig
-T
▪ 𝑁𝐵𝑉 = 𝑥2 : 𝑥1 = 3 und 𝑥3 = −1; 𝑥 = 3,0, −1 ; unzulässig
▪ 𝑁𝐵𝑉 = 𝑥3 : −𝑥2 = −1 ⟹ 𝑥2 = 1 und 𝑥1 + 1 = 3 ⟹ 𝑥1 = 2; 𝑥 = 2,1,0 ; zulässig
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14
LP-Modelle und konvexe Mengen
Behauptung: Jede zulässige Basislösung entspricht einem Eckpunkt der
konvexen zulässigen Menge!
Konsequenz: Man muss die optimale Lösung nur unter den zulässigen
Basislösungen suchen!
Beispiel: Produktionsplanungsproblem (n=5, m=3) auf der nächsten Folie.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15
LP-Modelle und konvexe Mengen
NBV
BV
Eckpunkt
Basislösung
x1 , x2
x1 , x3
x1 , x4
x1 , x5
x3 , x4 , x5
x2 , x4 , x5
x2 , x3 , x5
x2 , x3 , x4
A=(0,0)
(0,0,100,720,60)
F=(0,100)
(0,100,0,-180,-40)
G=(0,80)
(0,80,20,0,-20)
B=(0,60)
(0,60,40,180,0)
x2 , x3
x2 , x4
x2 , x5
x3 , x4
x3 , x5
x4 , x5
x1 , x4 , x5
x1 , x3 , x5
x1 , x3 , x4
x1 , x2 , x5
x1 , x2 , x4
x1 , x2 , x3
E=(100,0)
(100,0,0,120,60)
J=(120,0)
(120,0,-20,0,60)
-
nicht exist.
D=(60,40)
(60,40,0,0,20)
H=(40,60)
(40,60,0,-60,0)
C=(30,60)
(30,60,10,0,0)
=>
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16
Was ist mit Punkt K =
(80,20,0,60,40)?
Zu viele positive Variablen, keine
Basislösung und kein Eckpunkt
LP-Modelle und konvexe Mengen
Abb. aus Wikipedia: Möglicher Suchweg des Simplex-Algorithmus
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17
Simplex-Algorithmus
▪ entwickelt von George B. Dantzig
in den 40er Jahren
▪ wird in vielen Varianten angewendet
▪ Basis nahezu jeder Standardsoftware
Allgemeine Idee
▪ Start mit zulässiger Basislösung
▪ falls nicht optimal: Übergang zu benachbarter Basislösung durch Austauschen
einer Basisvariablen
▪ bei jedem Schritt: Verbesserung des Zielfunktionswertes (aufgrund der
Konvexität der zulässigen Menge und der Linearität der Zielfunktion)
▪ Fortsetzung, bis keine bessere Nachbarlösung mehr existiert: optimale
Lösung identifiziert
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18
Simplex-Algorithmus bei bekannter
zulässiger Basislösung
Beispiel: Problem der Produktionsplanung
Erste zulässige Basislösung: x = (0,0,100,720,60) ; Punkt A
x3 = 100 − x1 − x2
x4 = 720 − 6 x1 − 9 x2
x5 = 60 − x2
x3  0  x2  100
x4  0  x2  720 / 9 = 80
x5  0  x2  60
F = 0 + 10 x1 + 20 x 2 mit x1 = x2 = 0
nächst
=var
1) ZF
verb.
2)
nach
a
wie
noch
dass
3)
alle
Bulösen
darf
gl-0
werter
war
ist
-> h1
▪ F wächst bei ∆𝑥1 = 1 um 𝑐1 = 10 und bei ∆𝑥2 = 1 um 𝑐2 = 20 GE.
▪ (Spalten-) Regel: Als neue Basisvariable wird diejenige gewählt, die
die größte Verbesserung pro Einheit der Erhöhung bringt.
▪ Auf welchen Wert kann maximal erhöht werden?
𝑥2 = min 100,80,60 = 60 wegen Nichtnegativität bisheriger
Basisvariablen
▪ Welche Variable verlässt die Basis? Die Variable, die bei Erhöhung von
𝑥2 als erste zu 0 wird: 𝑥5
~
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19
sein
Simplex-Algorithmus bei bekannter
zulässiger Basislösung
Zweite zulässige Basislösung durch Umformen des
Gleichungssystems:
▪ Einsetzen von 𝑥2 = 60 − 𝑥5 in übrige Gleichungen
x3 = 100 − x1 − (60 − x5 ) = 40 − x1 + x5
x4 = 720 + 6 x1 − 9(60 − x5 ) = 180 − 6 x1 + 9 x5
x2 = 60 − x5
x3  0  x1  40
x4  0  x1  180 / 6 = 30
𝑥2 unbeeinflusst von 𝑥1
F = 0 + 10 x1 + 20(60 − x5 ) = 1200 + 10 x1 − 20 x5 mit x1 = x5 = 0
neue Basislösung: x = (0,60,40,180,0); Punkt B
▪ F wächst bei ∆𝑥1 = 1 um 10 GE und fällt bei ∆𝑥5 = 1 um 20 GE
→ 𝑥1 wird BV
▪ Erhöhung von 𝑥1 auf min 30,40 = 30
▪ 𝑥4 verlässt die Basis (Austausch von 𝑥4 gegen 𝑥1)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20
Simplex-Algorithmus bei bekannter
zulässiger Basislösung
Dritte zulässige Basislösung:
1
3
▪ Tausch: 𝑥4 = 180 − 6𝑥1 + 9𝑥5 ⟹ 𝑥1 = 30 − 6 𝑥4 + 2 𝑥5; Einsetzen in übrige
Gleichungen
1
3
1
1
x3 = 40 − (30 − x4 + x5 ) + x5 = 10 + x4 + x5
6
2
6
2
1
3
x1 = 30 − x4 + x5
6
2
x2 = 60 − x5
5
30
5
F = 1200 + 300 − x4 + x5 − 20 x5 = 1500 − x4 − 5 x5
3
2
3
neue Basislösung: x = (30,60,10,0,0) ; F(x)=1500; Punkt C
▪ F fällt bei Erhöhung von 𝑥4 und 𝑥5 → aktuelle Basislösung ist optimal
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21
Simplex-Algorithmus bei bekannter
zulässiger Basislösung
Der primale Simplex-Algorithmus
▪ für Handrechnungen anhand des Simplex-Tableaus
▪ für Maximierungsprobleme
▪ Einführen einer Variablen F für den aktuellen Zielfunktionswert 𝐹𝑎𝑘𝑡 (zu
Beginn 0) ergibt:
F = Fakt + c1 x1 + ... + cn−m xn−m  −c1 x1 − ... − cn−m xn −m + F = Fakt
▪ Starttableau: LP in kanonischer Form
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22
Simplex-Algorithmus bei bekannter
zulässiger Basislösung
▪ Starttableau: LP in kanonischer Form
Nichtbasisvariable
x1
xn−m+1 a11
Basisvariable
…
xn −m
xn−m+1
…
xn
F
bi
…
a1,n−m
1
…
0
0
b1
…
…
…
…
…
1
…
…
…
xn
am1
…
am ,n−m
0
…
1
0
bm
− c1
…
− cn − m
0
…
0
1
Fakt
▪ Weglassen der F-Spalte, da sie sich nie verändert
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23
Beispiel: Produktionsproblem
Maximiere 𝐹 𝑥1, 𝑥2, 𝑥3, 𝑥4, 𝑥5 = 10𝑥1 + 20𝑥2 + 0 ∙ 𝑥3 + 𝑥4 + 𝑥5
Unter den Nebenbedingunen
x1 + x2 + x3
= 100
6 x1 + 9 x2 + x4 = 720
x2
+ x5 = 60
x1 , x2 , x3 , x4 , x5  0
Zielfunktionszeile: −10𝑥1 − 20𝑥2 − 0𝑥3 − 0𝑥4 − 0𝑥5 + 𝐹 = 0
Starttableau:
BV
𝑥1
𝑥2
𝑥3
𝑥4
𝑥5
𝑏𝑖
𝑥3
1
1
1
0
0
100
𝑥4
6
9
0
1
0
720
𝑥5
0
1
0
0
1
60
F
-10
-20
0
0
0
0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24
Ablauf einer Iteration
Ablauf einer Iteration (Kochrezept; mit einem Strich unterscheiden wir
die aktuellen Einträge des Tableaus von den Startwerten):
▪ Schritt 1: Wahl der Pivotspalte t


keine negativen Eintragungen in F-Zeile: aktuelle Basislösung
optimal → Ende des Verfahrens
negative Eintragung in der F-Zeile: Verbesserung bei Aufnahme der
Variable in die Basis, Auswahl der Variable mit kleinster
("negativster") Eintragung
▪ Schritt 2: Wahl der Pivotzeile s

′
Alle Koeffizienten 𝑎𝑖𝑡
in der Pivotspalte t nichtpositiv →
unbeschränktes Modell; Abbruch
 bi'

bs'
'

Ansonsten wähle Pivotzeile s, für die gilt ' = min  ' : i = 1,, m mit ait  0 
ast
 ait

′
Pivotelement: 𝑎𝑠𝑡
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25
Ablauf einer Iteration
▪ Schritt 3: Berechnung der neuen Basislösung, Transformation des
Tableaus


Tausche bisherige BV in Pivotzeile s gegen bisherige NBV 𝑥𝑡
′
Schaffe unter neuer BV 𝑥𝑡 einen Einheitsvektor mit 𝑎𝑠𝑡
= 1 durch
Anwenden linearer Transformationen:
′
a) Dividiere die Pivotzeile durch das Pivotelement 𝑎𝑠𝑡
′
b) Multipliziere die neue Pivotzeile mit −𝑎𝑖𝑡
und addiere sie
zur Zeile i hinzu (für alle i ohne s)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26
Ablauf des Beispiels
Ablauf des Beispiels: Erste Basislösung x = (0,0,100,720,60)
BV
𝑥1
𝑥2
𝑥3
𝑥4
𝑥5
𝑏𝑖′
𝑥3
1
1
1
0
0
100
𝑏𝑖′
൘𝑎′
𝑖𝑡
100/1 =100
𝑥4
6
9
0
1
0
720
720/9=80
-9(*)
𝑥5
0
1
0
0
1
60
60/1=60
(*)
F
-10
-20
0
0
0
0
▪ Pivotspalte: t=2 ; Pivotzeile: s=3
▪ Transformation:
-(*)
+20(*)
′
; Pivotelement: 𝑎32
=1
a) Division der Pivotzeile durch 1
b) Addiere das –1fache der Pivotzeile zu Zeile 1, das –9fache zu Zeile
2, das 20-fache zur F-Zeile.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27
Ablauf des Beispiels
Transformiertes Tableau: Zweite Basislösung x = (0,60,40,180,0)
𝑏𝑖′
൘𝑎′
𝑖𝑡
BV
𝑥1
𝑥2
𝑥3
𝑥4
𝑥5
𝑏𝑖′
𝑥3
1
0
1
0
-1
40
40/1=40
-(**)
𝑥4
6
0
0
1
-9
180
180/6=30
:6=(**)
(*) 𝑥2
0
1
0
0
1
60
unbeschränkt
bleibt
F
-10
0
0
0
20
1200
▪ Pivotspalte: t=1 ; Pivotzeile: s=2
▪ Transformation:
+10(**)
′
; Pivotelement: 𝑎21
=6
a) Division der Pivotzeile durch 6
b) Addiere das –1fache der Pivotzeile zu Zeile 1, das 10-fache zu Zeile
4, Zeile 3 bleibt.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28
Ablauf des Beispiels
Transformiertes Tableau: Dritte Basislösung x = (30,60,10,0,0)
BV
𝑥1
𝑥2
𝑥3
𝑥4
𝑥5
𝑏𝑖′
𝑥3
0
0
1
-1/6
1/2
10
(**) 𝑥1
1
0
0
1/6
-3/2
30
𝑥2
0
1
0
0
1
60
F
0
0
0
5/3
5
1500
▪ Abbruch wegen ausschließlich nichtnegativer Einträge in der F-Zeile.
▪ aktuelle Basislösung mit F=1500 ist optimal
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29
Methoden zur Bestimmung einer
zulässigen Basislösung
▪ LP-Modell ist nicht in kanonischer Form wegen:

Negative rechte Seiten und / oder

Keine Einheitsmatrix unter Schlupfvariablen
▪ Methode:

(Big-) M-Methode
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30
M-Methode
▪ Voraussetzungen:


Unzulässige Basislösung aufgrund von Koeffizienten – 1 in der
"Einheitsmatrix"
Rechte Seiten nichtnegativ
▪ Grundidee:

Einführen zusätzlicher Variablen 𝒚𝟏 , 𝒚𝟐 , ... ("künstliche Variablen") in
Zeilen mit "Einheitskoeffizient" – 1

Bestrafen der künstlichen Variablen mit hoher Zahl M in der Zielfunktion

Anwenden des primalen Simplex-Algorithmus


Künstliche Variablen werden aufgrund ihrer Bewertung bevorzugt aus der
Basis eliminiert
Entfernen der künstlichen Variablen, sobald sie die Basis verlassen
▪ Zulässige Lösung erreicht, sobald alle künstlichen Variablen entfernt sind;
ggf. Fortsetzung mit primalem Simplex-Algorithmus
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31
M-Methode
Beispiel:
Maximiere 𝐹 𝑥1 , 𝑥2 = 4𝑥1 + 5𝑥2
unter den Nebenbedingungen
6 x1 + 5 x2  120
3x1 + 5 x2  110
2 x1 + 4 x2  80
x1 , x2  0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32
M-Methode
Beispiel:
Maximiere 𝐹 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 , 𝑦1 , 𝑦2 = 4𝑥1 + 5𝑥2 + 0(𝑥3 + 𝑥4 + 𝑥5 ) − 𝑀𝑦1 − 𝑀𝑦2
unter den Nebenbedingungen
6 x1 + 5 x2  120
3x1 + 5 x2  110
2 x1 + 4 x2  80
x1 , x2  0
6𝑥1 + 5𝑥2 − 𝑥3 = 120
3𝑥1 + 5𝑥2 + 𝑥4 = 110
2𝑥1 + 4𝑥2 − 𝑥5 = 80
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ≥ 0
6 x1 + 5 x2 − x3 + y1 = 120
3x1 + 5 x2 + x4 = 110
2 x1 + 4 x2 − x5 + y2 = 80
x1 , x2 , x3 , x4 , x5  0 sowie y1 , y2  0
Umformung der Zielfunktion:
▪ ersetze künstliche Variablen (aktuelle BV) durch entsprechende Gleichungen (aktuelle
NBV)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33
M-Methode
Maximiere
F ( x1 , x2 ) = 4 x1 + 5 x2 − M (120 − (6 x1 + 5 x2 − x3 )) − M (80 − (2 x1 + 4 x2 − x5 )) =
4 x1 + 5 x2 − 120M + 6Mx1 + 5Mx2 − Mx3 − 80M + 2Mx1 + 4Mx2 − Mx5 =
(4 + 8M ) x1 + (5 + 9M ) x2 − Mx3 − Mx5 − 200M
▪ bilde zweite Zielfunktionszeile für alle M-Terme (M-Zeile)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34
M-Methode
Starttableau der M-Methode:
BV
x1
x2
x3
x4
x5
y1
y2
y1
x4
y2
bi'
6
5
-1
0
0
1
0
120
3
5
0
1
0
0
0
110
2
4
0
0
-1
0
1
80
F-Zeile
-4
-5
0
0
0
0
0
0
M-Zeile
-8M
-9M
M
0
M
0
0
-200M
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35
M-Methode
1. Iteration mit dem primalen Simplex-Algorithmus:
BV
x1
x2
x3
x4
x5
y1
y2
bi'
y1
x4
7/2
0
-1
0
5/4
1
-5/4
20
1/2
0
0
1
5/4
0
-5/4
10
x2
1/2
1
0
0
-1/4
0
1/4
20
F-Zeile
-3/2
0
0
0
-5/4
0
5/4
100
M-Zeile
-7/2M
0
M
0
-5/4M
0
9/4M
-20M
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36
M-Methode
2. Iteration mit dem primalen Simplex-Algorithmus:
BV
x1
x2
x3
x4
x5
y1
bi'
x1
x4
x2
1
0
-2/7
0
5/14
2/7
40/7
0
0
1/7
1
15/14
-1/7
50/7
0
1
1/7
0
-3/7
-1/7
120/7
F-Zeile
0
0
-3/7
0
-5/7
3/7
760/7
M-Zeile
0
0
0
0
0
M
0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37
M-Methode
3. Iteration mit dem primalen Simplex-Algorithmus:
BV
x1
x2
x3
x4
x5
bi'
x1
x5
x2
1
0
-1/3
-1/3
0
10/3
0
0
2/15
14/15
1
20/3
0
1
1/5
2/5
0
20
F-Zeile
0
0
-1/3
2/3
0
340/3
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 38
M-Methode
4. Iteration mit dem primalen Simplex-Algorithmus:
x1
x2
x3
x4
x5
bi'
x1
x3
x2
1
0
0
2
5/2
20
0
0
1
7
15/2
50
0
1
0
-1
-3/2
10
F-Zeile
0
0
0
3
5/2
130
BV
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 39
M-Methode
M-Methode bei Gleichungen:
Maximiere F ( x1 , x2 ) = x1 + 2 x2
Maximiere F ( x1 , x2 , x3 , y ) = x1 + 2 x2 − My
unter den Nebenbedingungen
unter den Nebenbedingungen
x1 + x2 + y = 100
6 x1 + 9 x2 + x3 = 720
x1 , x2 , x3 , y  0
x1 + x2 = 100
6 x1 + 9 x2  720
x1 , x2  0
Umformen der Zielfunktion:
F ( x1 , x2 , x3 , y ) = x1 + 2 x2 − My = x1 + 2 x2 − M (100 − x1 − x2 ) = (1 + M ) x1 + (2 + M ) x2 − 100M
BV
x1
x2
x3
y
bi
bi / ait
y
1
1
0
1
100
100
x3
6
9
1
0
720
80
F-Zeile
-1
-2
0
0
0
M-Zeile
-M
-M
0
0
-100M
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 40
M-Methode
1. Iteration: t=2, s=2; Vertauschen von 𝑥3 und 𝑥2
BV
x1
x2
x3
y
bi'
bi' / ai't
y
1/3
0
-1/9
1
20
60
x2
2/3
1
1/9
0
80
120
F-Zeile
1/3
0
2/9
0
160
M-Zeile
-M/3
0
M/9
0
-20M
2. Iteration: t=1, s=2;
Vertauschen von 𝑦 und 𝑥1
BV
x1
x2
x3
y
bi'
x1
x2
1
0
-1/3
3
60
0
1
1/3
-2
40
F-Zeile
0
0
1/3
-1
140
M-Zeile
0
0
0
M
0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 41
Optimale Lösung:
𝑥1 = 60
𝑥2 = 40
𝐹 ∗ = 140
Sonderfälle der linearen Optimierung (1)
1) Keine zulässige Lösung
(Widerspruch im Nebenbedingungssystem):
▪ graphisch: zulässiger Bereich ist leer
▪ M-Methode: alle reduzierten Kosten nichtnegativ, jedoch noch
künstliche Variablen mit positivem Wert in der Basis
Beispiel:
Maximiere 𝐹 𝑥1 , 𝑥2 = 2𝑥1 + 𝑥2
unter den Nebenbedingungen
3x1 + 4 x2  100
3x1 + 2 x2  80
2 x1 + x2  40
x1 , x2  0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 42
Sonderfälle der linearen Optimierung (1)
Endtableau der M-Methode:
BV
x1
x2
x3
x4
x5
y1
bi'
x2
y1
x1
0
1
2/5
0
-3/5
0
16
1
0
-1/5
-1
-6/5
1
12
0
0
-1/5
0
4/5
0
12
F-Zeile
0
0
0
0
6/5
0
40
M-Zeile
0
0
1/5M
M
6/5M
0
-12M
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 43
Sonderfälle der linearen Optimierung (2)
2) Unbeschränktes Problem (zulässige, jedoch keine
optimalen Lösungen):
▪ graphisch: zulässiger Bereich ist in Optimierungsrichtung offen
▪ primaler Simplex-Algorithmus: in der Pivotspalte t befinden sich
keine positiven Koeffizienten
Beispiel:
Maximiere 𝐹 𝑥1 , 𝑥2 = 2𝑥1 + 4𝑥2
unter den Nebenbedingungen
2 x1 + x2  40
x1 + 2 x2  50
x1 , x2  0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 44
Sonderfälle der linearen Optimierung (2)
Endtableau des Simplex-Algorithmus:
BV
x1
x2
x3
x4
bi'
x3
x1
0
3
1
-2
60
1
2
0
-1
50
F
0
0
0
-2
100
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 45
Sonderfälle der linearen Optimierung (3)
3) Parametrische Lösungen
(mehr als eine Lösung ist optimal / duale Degeneration):
▪
▪
graphisch: eine in Optimierungsrichtung gelegene Kante des zulässigen
Bereichs (Polyeders) verläuft parallel zur Höhenlinie der Zielfunktion
primaler Simplex-Algorithmus: im Optimaltableau besitzt mindestens eine
NBV den F-Zeileneintrag 0, d.h. durch Aufnahme der NBV in die Basis
verändert sich der (optimale) Wert F* nicht
Beispiel:
Maximiere 𝐹 𝑥1 , 𝑥2 = 2𝑥1 + 4𝑥2
unter den Nebenbedingungen
2 x1 + x2  40
x1 + 2 x2  50
x1 , x2  0
x * ( ) =  x1 + (1 −  ) x 2 mit 0    1
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 46
Sonderfälle der linearen Optimierung (3)
Endtableau des primalen Simplex-Algorithmus:
BV
x1
x2
x3
x4
bi'
x3
x2
3/2
0
1
-1/2
15
1/2
1
0
1/2
25
F
0
0
0
2
100
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 47
Sonderfälle der linearen Optimierung (4)
4) Redundante Nebenbedingungen:
▪
≤-Nebenbedingung redundant, wenn Linearkombination anderer ≤Nebenbedingungen dieselbe linke Seite, jedoch eine kleinere rechte
Seite aufweist.
▪
≥-Nebenbedingung redundant, wenn Linearkombination anderer ≥Nebenbedingungen dieselbe linke Seite, jedoch eine größere rechte
Seite aufweist.
▪ Gleichung redundant, wenn vollständig durch andere Gleichungen
linear kombinierbar.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 48
Sonderfälle der linearen Optimierung (4)
Beispiel:
NB1: 2 x1 + x2  40
1
·NB1:
3
NB2: x1 + 2 x2  50
1
·NB2 : 1/ 3x1 + 2 / 3x2  50 / 3
3
NB3: x1 + x2  32
1
1
·NB1 + ·NB2 :
3
3
2 / 3x1 + 1/ 3x2  40 / 3
x1 + x2  30
•
macht NB3 redundant
Erkennen von Redundanzen:
▪ graphisch: Weglassen der Nebenbedingung verändert zulässigen
Bereich nicht
▪ primaler Simplex-Algorithmus: Schlupfvariable der redundanten
Bedingung bleibt stets mit positivem Wert in der Basis und kann nicht
eliminiert werden, ohne dass Lösung unzulässig wird
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 49
Sonderfälle der linearen Optimierung (5)
5) (Primal) Degenerierte Basislösung:
▪ spezieller Fall der Redundanz: mehrere Basislösungen gehören zu
einem Eckpunkt
Gefahr des „Kreisens“
▪ graphisch: es schneiden sich mehr als zwei Nebenbedingungen in
einem Punkt
▪ primaler Simplex-Algorithmus: im Simplextableau besitzt mindestens
eine BV den Wert 0
Beispiel:
Maximiere 𝐹 𝑥1 , 𝑥2 = 3𝑥1 + 4𝑥2
unter den Nebenbedingungen
2 x1 + x2  40
x1 + 2 x2  50
x1 + x2  30
x1 , x2  0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 50
Sonderfälle der linearen Optimierung (5)
Beispiel:
Maximiere 𝐹 𝑥1 , 𝑥2 = 3𝑥1 + 4𝑥2
unter den Nebenbedingungen
2 x1 + x2  40
x1 + 2 x2  50
x1 + x2  30
x1 , x2  0
Optimale Lösung: x*=(10,20,0,0,0) mit F*=110
Dazu gehören 3 Basislösungen:
𝐵𝑉1 = {𝑥1 , 𝑥2 , 𝑥3 }, 𝐵𝑉2 = {𝑥1 , 𝑥2 , 𝑥4 } und 𝐵𝑉3 = {𝑥1 , 𝑥2 , 𝑥5 }
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 51
Sonderfälle der linearen Optimierung (5)
Endtableau des primalen Simplex-Algorithmus
bi'
BV
x2
x4
x3
x5
x1
x1
x2
x5
1
0
2/3
-1/3
0
10
0
1
-1/3
2/3
0
20
0
0
-1/3
-1/3
1
0
F
0
0
2/3
5/3
0
110
▪ Vertausche 𝑥3 und 𝑥5 : ebenfalls optimale Lösung
x2
x3
x4
x5
x1
bi'
BV
x1
1
0
0
-1
2
10
x2
0
1
0
1
-1
20
x3
0
0
1
1
-3
0
F
0
0
0
1
2
110
▪ Vertausche 𝑥4 und 𝑥3 : Lösung bleibt erhalten, jedoch negativer
Eintrag in F-Zeile (zur Übung)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 52
Klausurvorbereitung
Domschke, W. und A. Drexl (2015): Einführung in Operations
Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 2
Zur Klausurvorbereitung sind die Aufgaben 2.5 und 2.7–2.12 aus
dem Übungsbuch „Übungen und Fallstudien zum Operations
Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu
empfehlen.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 53
Einführung in Operations Research
Lineare Optimierung II
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1
Schranke für den optimalen
Zielfunktionswert
Maximiere 𝐹 𝑥1 , 𝑥2 = 10𝑥1 + 20𝑥2
↳ wie hoch
NB‘en
w1
w2
w3
max
x1 + x 2  100
6x1 + 9x 2  720
x 2  60
x1 , x 2  0
ZF-wert
sein
kann
I
II
III
Anhand der NB‘en (und bei nichtneg. 𝑥𝑗 ) erhält man obere Schranken für 𝐹 𝑥1 , 𝑥2 !
▪ Durch Multiplikation von I mit 20 erhält man obere Schranke 2000 wie folgt:
F(x1 , x 2 ) = 10x1 + 20x 2  20x1 + 20x 2  2000
▪ Analog erhält man durch Multiplikation von II mit 20/9 obere Schranke 1600:
F(x1 , x 2 ) = 10x1 + 20x 2  40 / 3x1 + 20x 2  1600
▪ Niedrigere obere Schranken durch Linearkombination mehrerer (insb. aller)
NB‘en eines LPs:
➢ I und III jeweils 10-fach:
F(x1 , x 2 ) = 10x1 + 20x 2  1000 + 600 = 1600
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2
Dualität
▪ Mit Multiplikatoren 5, 5/6 bzw. 15/2 für I, II bzw. III:
F(x1 , x 2 ) = 10x1 + 20x 2 = 5(x1 + x 2 ) + 5 / 6(6x1 + 9x 2 ) + 15 / 2·x 2  500 + 600 + 450 = 1550
Allgemein gilt mit nichtnegativen Faktoren 𝑤1 , 𝑤2 und 𝑤3 :
F(x1 , x 2 ) = 10x1 + 20x 2  w1 (x1 + x 2 ) + w 2 (6x1 + 9x 2 ) + w 3 x 2  100w1 + 720w 2 + 60w 3
und
F(x1 , x 2 ) = 10x1 + 20x 2  (w1 + 6w 2 )x1 + (w1 + 9w 2 + w 3 )x 2  100w1 + 720w 2 + 60w 3
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3
Dualität
Ein Vergleich der Koeffizienten von 𝑥1 und 𝑥2 liefert die Bedingungen:
10x1  (w1 + 6w 2 )x1
bzw.
20x 2  (w1 + 9w 2 + w 3 ) x 2
Also:
w1 + 6w 2  10
w1 + 9w 2 + w 3  20
Mit
w1 , w 2 , w 3  0
Wenn wir also die schärfst-mögliche obere Schranke auf den optimalen
Zielfunktionswert haben wollen, minimieren wir
𝐹𝐷 𝑤1 , 𝑤2 , 𝑤3 = 100𝑤1 + 720𝑤2 + 60𝑤3
unter Beachtung der NB
w1 + 6w 2  10
w1 + 9w 2 + w 3  20
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4
w1 , w 2 , w 3  0
Dualität
Primales Modell:
Duales Modell:
Maximiere 𝐹 𝒙 = 𝒄𝑇 ∙ 𝒙
Minimiere 𝐹𝐷 𝒘 = 𝒃𝑇 ∙ 𝒘
unter den Nebenbedingungen
unter den Nebenbedingungen
𝐴∙𝒙≤𝒃
𝒙≥𝟎
𝐴𝑇 ∙ 𝒘 ≥ 𝒄
𝒘≥𝟎
▪ zu jeder Nebenbedingung i=1,...,m des primalen Modells korrespondiert eine Dualvariable 𝑤𝑖
→ rechte Seiten werden zu Zielfunktionskoeffizienten des dualen Modells
▪ zu jeder (Struktur-) Variable 𝑥𝑗 (j=1,...,n) korrespondiert eine Nebenbedingung j im dualen
Modell → Zielfunktionskoeffizienten werden zu rechten Seiten des dualen Modells
▪ Maximierung im primalen Modell ↔ Minimierung im dualen Modell
▪ „≤“-Bedingungen im primalen Modell ↔ „≥“-Bedingungen im dualen Modell
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5
Dualität
Beispiel: Produktionsprogrammplanung
Primale Modellinstanz:
Duale Modellinstanz:
▪ Simplex-Algorithmus löst beide Modellinstanzen simultan optimal
▪ Für optimale Lösungen x* und w* gilt: F(x*)=FD(w*)
▪ Maximierung im primalen Modell: F(x) ≤ F(x*)
▪ Minimierung im dualen Modell: FD(w*)≤FD(w)
→ Einschließungssatz: F(x) ≤ F(x*) = FD(w*)≤FD(w)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6
Dualität
Beispiel:
Primale Modellinstanz:
▪
▪
▪
▪
Duale Modellinstanz:
F(x*) = FD(w*)
F(x) = 640 < F(x*) = 720
FD(w*) = 720 < FD(w) = 1160
Einschließungssatz gilt!
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7
Dualität
Weitere Dualisierungsregeln:
Primales Problem
Duales Problem
Zielfunktion: Max F(x)
Zielfunktion: Min FD(w)
Nebenbedingungen:
Dualvariablen:
i-te NB: 
wi  0
i-te NB: =
wi  R
Variablen:
xj  0
xj R
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8
Nebenbedingungen:
j-te NB: 
j-te NB: =
Beziehungen zwischen den Variablen
des primalen Modells (P) und
des dualen Modells (D)
▪ Strukturvariablen von D korrespondieren mit den Nebenbedingungen,
d.h. mit den Schlupfvariablen, von P
▪ analog: Strukturvariablen von P korrespondieren mit Schlupfvariablen
von D
▪ Satz vom komplementären Schlupf:
Von den miteinander korrespondierenden Variablen hat in der
optimalen Lösung von P bzw. D mindestens eine den Wert 0.
primales Modell
duales Modell
𝑥1
80/9
𝑤3
0
𝑥2
40/3
𝑤4
0
𝑥3
0
𝑤1
6
𝑥4
0
𝑤2
2
Lösung zu Bsp. von Folie 6
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9
Beziehungen zwischen den Variablen
des primalen Modells (P) und
des dualen Modells (D)
▪ Werte der Dualvariablen 𝑤1 bis 𝑤𝑛 stehen in der F-Zeile des SimplexTableaus
BV
x1
x2
x3
x4
bi'
720
⋱
F
0
0
6
2
w3
w4
w1
w2
Lösung zum Bsp. von Folie 6
▪ 𝑥1 und 𝑥2 sind BV: 𝑤3 = 𝑤4 = 0
▪ 𝑥3 und 𝑥4 sind NBV: 𝑤1 bzw. 𝑤2 = Verringerung des ZF-Werts bei
Erhöhung von 𝑥3 bzw. 𝑥4 um 1
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10
Beispiel
Beispiel von Folie 6: Erhöhung von 𝑥3 von 0 auf 1
BV
x1
x2
x3
x4
bi'
x2
0
1
2/3
-1/3
40/3
x1
1
0
-5/9
4/9
80/9
F
0
0
6
2
720
w3
w4
w1
w2
2
1
40
40 2 38
x 2 + x3 − x 4 =
 x2 =
− =
3
3
3
3 3 3
5
4
80
80 5 85
x1 − x 3 + x 4 =
 x1 = + =
9
9
9
9 9 9
 85 38

x' =  , ,1,0 
 9 3

85
38
F(x') = 30· + 34· + 0·1 + 0·0 = 714 → d.h. Verringerung um 𝑤1 = 6
9
3
▪ Erhöhung der Schlupfvariable 𝑥3 um 1: Verringerung der verwendeten
Kapazität um 1 (z.B. Ausfall einer Maschinenstunde, die für andere
Tätigkeit verwendet wird)
▪ Bedeutung des Dualvariablenwertes 𝑤1 = 6: alternative Verwendung
einer Kapazitätseinheit kostet 6 GE
→ Opportunitätskosten (Schattenpreise)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11
Beispiel
▪ Schlussfolgerung I: Die Kapazität sollte nur dann für alternative
Zwecke verwendet werden, wenn sie dabei mehr als (bzw.
mindestens) 6 GE Deckungsbeitrag einbringt.
▪ Schlussfolgerung II: Wenn zusätzliche KE nicht mehr als 6 GE kostet,
lohnt sich die Kapazitätsausweitung.
Zum Nachdenken:
Warum ist der Schattenpreis 0, wenn die zugehörige Schlupfvariable
bereits in der Basis ist?
Antwort:
Kapazität ist nicht knapp, wird also ohnehin nicht voll benötigt. Die
überzähligen Einheiten können kostenlos abgegeben werden.
→ Aussage gilt jedoch nur so lange, wie Kapazität nicht knapp wird!
Fazit:
Schattenpreise gelten nur für begrenzte Veränderung der Kapazitäten.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12
Beispiel
Opportunitätskosten bei Strukturvariablen (Reduzierte
Kosten):
▪ Kosten der Verdrängung anderer Produkte zugunsten des
betrachteten
▪ negative Reduzierte Kosten: Zielfunktionswert lässt sich durch
Aufnahme des Produkts in das Produktionsprogramm steigern
→ Basislösung ist noch nicht optimal
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13
Beziehungen zwischen dem primalen
und dem dualen Simplextableau
(Primal)
▪
▪
(Dual)
Max
u.d.N.
4x1+ x2+3x3
x1+ 4x2
3x1 – x2+ x3
x1, x2, x3 ≥ 0
Max
u.d.N.
F=
4x1 + x2 + 3x3
x4 = 1 – x1 – 4x2
x5 = 3 – 3x1 + x2 – x3
x1, x2, x3, x4, x5 ≥ 0
≤1
≤3
Min
u.d.N.
w1 + 3w2
w1 + 3w2
4w1 – w2
w2
w1, w2
≥4
≥1
≥3
≥0
Max – FD = – w1 – 3w2
u.d.N. w3 = – 4 + w1 + 3w2
w4 = – 1 + 4w1 – w2
w5 = – 3 +
w2
w1, w2, w3, w4, w5 ≥ 0
Das duale Simplextableau entspricht (prinzipiell) dem transponierten
negativen primalen Simplextableau.
Die primale Basislösung ist zulässig, aber nicht optimal. Die duale
Basislösung ist „optimal“, aber nicht zulässig.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14
Beziehungen zwischen dem primalen
und dem dualen Simplextableau
(Primal)
▪
▪
▪
(Dual)
Max
u.d.N.
F = 9 – 5x1 + 4x2 – 3x5
x4 = 1 – x1 – 4x2
x3 = 3 – 3x1 + x2 – x5
x1, x2, x3, x4, x5 ≥ 0
Max
u.d.N.
Max
u.d.N.
F = 10 –
6x1–
x4 – 3x5
x2 = 1/4 – 1/4x1 – 1/4x4
x3 = 13/4 – 13/4x1 – 1/4x4 – x5
x1, x2, x3, x4, x5 ≥ 0
Max – FD = – 10 – 1/4w4 – 13/4w5
u.d.N. w3 = 6 + 1/4w4 + 13/4w5
w1 =
1 + 1/4w4 + 1/4w5
w2 =
3+
w5
w1, w2, w3, w4, w5 ≥ 0
– FD = – 9 – w1 – 3w5
w3 = 5 + w1 + 3w5
w4 = – 4 + 4w1 – w5
w2 =
3+
w5
w1, w2, w3, w4, w5 ≥ 0
Das optimale duale Simplextableau entspricht (prinzipiell) dem transponierten
negativen optimalen primalen Simplextableau.
Die optimalen Werte der dualen Variablen entsprechen den negativen
Koeffizienten der Zielfunktion im primalen Tableau.
Dabei sind dualen Entscheidungsvariablen primale Schlupfvariablen und dualen
Schlupfvariablen primale Entscheidungsvariablen zugeordnet.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15
Die duale Simplexmethode:
erstes Beispiel
Grundidee: Benutze die Pivotregeln des dualen Problems auf dem primalen Problem,
ohne das duale Problem explizit abzuleiten.
Beispiel: (Zur Veranschaulichung leiten wir doch noch einmal das duale Problem ab.)
(Primales Problem)
Max
– x1 – x2
u.d.N.
– 2x1 – x2 ≤ 4
– 2x1 + 4x2 ≤ – 8
– x1 + 3x2 ≤ – 7
x1, x2 ≥ 0
Max
u.d.N.
▪
▪
F=
– x1 – x2
x3 = 4 + 2x1 + x2
x4 = – 8 + 2x1 – 4x2
x5 = – 7 + x1 – 3x2
x1, x2, x3, x4, x5 ≥ 0
Min
u.d.N.
Max
u.d.N.
(Duales Problem)
4w1 – 8w2 – 7w3
– 2w1 – 2w2 – w3 ≥ –1
– w1 + 4w2 + 3w3 ≥ – 1
w1, w2 ,w3 ≥ 0
– FD = – 4w1 + 8w2 + 7w3
w4 = 1 – 2w1 – 2w2 – w3
w5 = 1 – w1 + 4w2+ 3w3
w1, w2, w3, w4, w5 ≥ 0
Die Basislösung ist primal unzulässig, jedoch dual zulässig.
Führe auf dem primalen Tableau Pivotschritte aus, die Simplexiterationen auf dem
dualen Tableau entsprechen (verbessere duale Zielfunktion, erhalte duale
Zulässigkeit)
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16
Die duale Simplexmethode:
erstes Beispiel
(Primales Problem)
▪
▪
(Duales Problem)
F = – 4 – 0.5x4 – 3x2
x3 = 12 + x4 + 5x2
x1 = 4 + 0.5x4 + 2x2
x5 = – 3 + 0.5x4 – x2
x1, x2, x3, x4, x5 ≥ 0
– FD = 4 – 12w1 – 4w4 + 3w3
w2 = 0.5 – w1 – 0.5w4 – 0.5 w3
w5 = 3 – 5w1 – 2w4 +
w3
w1, w2, w3, w4, w5 ≥ 0
F = – 7 – x5 – 4x2
x3 = 18 +2 x5 + 7x2
x1 = 7 + x5 + 3x2
x4 = 6 + 2x5 + 2x2
x1, x2, x3, x4, x5 ≥ 0
– FD = 7 – 18w1 – 7w4 – 6w2
w3 = 1 – 2w1 – w4 – 2w2
w5 = 4 – 7w1 – 3w4 – 2w2
w1, w2, w3, w4, w5 ≥ 0
Positive Koeffizienten in der Zielfunktion des dualen Tableaus entsprechen
unzulässigen Werten von Basisvariablen im primalen Tableau.
Die für den dualen Quotiententest benötigten Werte können im primalen
Tableau in der Zielfunktion und der Pivotzeile abgelesen werden (mit
umgedrehten Vorzeichen).
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17
Die duale Simplexmethode:
Zusammenfassung
Max
u.d.N.
F=
– x1 – x2
x3 = 4 + 2x1 + x2
x4 = – 8 + 2x1 – 4x2
x5 = – 7 + x1 – 3x2
x1, x2, x3, x4, x5 ≥ 0
F = – 4 – 0.5x4 – 3x2
x3 = 12 + x4 + 5x2
x1 = 4 + 0.5x4 + 2x2
x5 = – 3 + 0.5x4 – x2
x1, x2, x3, x4, x5 ≥ 0
F = – 7 – x5 – 4x2
x3 = 18 +2 x5 + 7x2
x1 = 7 + x5 + 3x2
x4 = 6 + 2x5 + 2x2
x1, x2, x3, x4, x5 ≥ 0
1. Bringe das LP in Gleichungsform.
2. Starte mit einem dual zulässigen Simplextableau
(nicht-positive ZFs-Koeffizienten).
3. Wähle eine primal unzulässige Basisvariable xi,
die die Basis verlassen soll.
Falls es keine gibt, dann ist die aktuelle
Basislösung primal zulässig.
4. Wähle diejenige primale Nichtbasisvariable xj als
eintretende Variable, die zur größtmöglichen
Verbesserung der dualen Zielfunktion führt, ohne
dass eine Nichtbasisvariable dual unzulässig wird.
Falls es keine solche Variable xj gibt, dann ist das
Problem dual unbeschränkt (primal unzulässig).
5. Führe einen Pivotschritt durch, bei dem xi die
Basis verlässt und xj in die Basis eintritt. Gehe zu
Schritt 3.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18
Methoden zur Bestimmung einer
zulässigen Basislösung
▪ LP-Modell ist nicht in kanonischer Form wegen:

Negative rechte Seiten und / oder

Keine Einheitsmatrix unter Schlupfvariablen
▪ Methode:

Dualer Simplex

(Big-) M-Methode
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19
Ablauf einer Iteration des dualen
Simplex-Algorithmus (Kochrezept)
▪ Schritt 1: Wahl der Pivotzeile s


Keine negativen rechten Seiten (𝑏𝑖′ ≥ 0 für i = 1,…,m):
aktuelle Basislösung ist zulässig → Abbruch (evtl. primalen
Simplex zur Fortsetzung)
Ansonsten wähle Zeile s mit kleinstem 𝑏𝑖′ (< 0) als Pivotzeile (Tie
Breaker: beliebig)
▪ Schritt 2: Wahl der Pivotspalte t


′
Alle Koeffizienten 𝑎𝑠𝑗
in der Pivotzeile s nichtnegativ → Modell dual
unbeschränkt, primal unzulässig/unlösbar, Abbruch
Ansonsten wähle Pivotspalte t, für die gilt:
𝑐𝑡′
′
𝑎𝑠𝑡
= 𝑚𝑎𝑥
𝑐𝑗′
′
𝑎𝑠𝑗
′
: 𝑗 = 1, … , 𝑛 𝑚𝑖𝑡 𝑎𝑠𝑗
<0
Pivotelement: 𝒂′𝑠𝑡
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20
Ablauf einer Iteration des dualen
Simplex-Algorithmus (Kochrezept)
▪ Schritt 3: Berechnung der neuen Basislösung, Tableautransformation
(wie bei primalem Simplex)


Tausche bisherige BV in Pivotzeile s gegen bisherige NBV 𝑥𝑡
′
Schaffe unter neuer BV 𝑥𝑡 einen Einheitsvektor mit 𝑎𝑠𝑡
= 1 durch
Anwenden linearer Transformationen:
′
a) Dividiere die Pivotzeile durch das Pivotelement 𝑎𝑠𝑡
′
b) Multipliziere die neue Pivotzeile mit −𝑎𝑖𝑡
und addiere sie zur
Zeile i hinzu (für alle i ohne s)
▪ Fahre mit Schritt 1 fort, d.h. beginne eine neue Iteration
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21
Dualer Simplex:
Beispiel im Tableau
Beispiel:
Maximiere 𝐹 𝑥1 , 𝑥2 = 4𝑥1 + 5𝑥2
unter den Nebenbedingungen
6𝑥1 + 5𝑥2 ≥ 120
−6𝑥1 − 5𝑥2 ≤ −120
−6𝑥1 − 5𝑥2 + 𝑥3 = −120
3𝑥1 + 5𝑥2 ≤ 110
3𝑥1 + 5𝑥2 ≤ 110
3𝑥1 + 5𝑥2 + 𝑥4 = 110
2𝑥1 + 4𝑥2 ≥ 80
−2𝑥1 − 4𝑥2 ≤ −80
−2𝑥1 − 4𝑥2 + 𝑥5 = −80
𝑥1 , 𝑥2 ≥ 0
𝑥1 , 𝑥2 ≥ 0
𝑥1 , 𝑥2 ≥ 0
BV
𝑥3
𝑥4
𝑥5
F
𝑥1
-6
3
-2
-4
𝑥2
-5
5
-4
-5
𝑥3
1
0
0
0
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22
𝑥4
0
1
0
0
𝑥5
0
0
1
0
b
-120
110
-80
0
Dualer Simplex:
Beispiel im Tableau
𝑥2
-5
5
-4
-5
𝑥3
1
0
0
0
𝑥4
0
1
0
0
𝑥5
0
0
1
0
b
𝑥3
𝑥4
𝑥5
𝑥1
-6
3
-2
-4
𝑥2
1
0
0
0
𝑥3
-0,2
1
-0,8
-1
𝑥4
0
1
0
0
𝑥5
0
0
1
0
b
𝑥2
𝑥4
𝑥5
𝑥1
1,2
-3
2,8
2
𝑥2
1
0
0
0
𝑥3
0,2
-1/3
2/15
-1/3
𝑥4
0,4
-1/3
14/15
2/3
𝑥5
0
0
1
0
b
𝑥2
𝑥1
𝑥5
𝑥1
0
1
0
0
𝑥2
1
0
0
0
𝑥3
0
0
1
0
𝑥4
-1
2
7
3
𝑥5
-1,5
2,5
7,5
2,5
b
𝑥2
𝑥1
𝑥3
𝑥1
0
1
0
0
BV
F
Dualer
Simplex
BV
F
Dualer
Simplex
BV
F
Primaler
Simplex
BV
F
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23
-120
110
-80
0
24
-10
16
120
20
3 1/3
6 2/3
113 1/3
10
20
50
130
Klausurvorbereitung
Domschke, W. und A. Drexl (2015): Einführung in Operations
Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 2
Zur Klausurvorbereitung sind die Aufgaben 2.5, 2.7–2.12, 2.14
und 2.16 aus dem Übungsbuch „Übungen und Fallstudien zum
Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß
sehr zu empfehlen.
Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24
Einführung in Operations Research
Graphentheorie
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1
Begriffe der Graphentheorie
Ein Graph besteht aus Knoten, die mit Kanten (Pfeilen) verbunden sind. Wenn
diese Kanten eine Orientierung besitzen, spricht man von gerichteten, ansonsten
von ungerichteten Graphen.
V: nichtleere Knotenmenge (vertex = Knoten; Knoten werden meist durch
natürliche Zahlen i = 1,...,n bezeichnet
E: Kanten-/Pfeilmenge (edge = Kante)
ungerichteter Graph
V = {1,2,3,4}
E = {[1,2], [1,3], [2,3], [2,4]}
gerichteter Graph
V = {1,2,3,4}
E = {(1,2), (1,3), (2,1), (2,3), (4,2)}
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2
Begriffe der Graphentheorie
▪
▪
ungerichteter Graph
gerichteter Graph
Schreibweise für G
G = [V,E]
G = (V,E)
Elemente von E
Kanten
Pfeile
Schreibweise für
Knotenpaare
[i,j] = [j,i]
(i,j)
Kante [i,j]: i und j werden Endknoten genannt
Pfeil (i,j): i = Anfangsknoten, j = Endknoten
▪ zwei Pfeile mit identischen Anfangs- und Endknoten
= parallele Pfeile, analog dazu: parallele Kanten
▪ Einen Pfeil (i,i) bzw. Kante [i,i] nennt man Schlinge.
▪ Graph ohne parallele Kanten bzw. Pfeile und ohne
Schlingen = schlichter Graph
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3
Vorgänger und Nachfolger in
gerichteten Graphen
▪ Knoten j heißt Nachfolger eines Knotens i, wenn ein Pfeil (i,j)
existiert. i wird als Vorgänger von j bezeichnet. Die Knoten i und j
sind mit dem Pfeil inzident.
▪ Menge aller Nachfolger: N(i)
▪ Menge aller Vorgänger: V(i)
▪ Nachbarn eines Knotens: NB(i) = N (i)  V (i)
▪ Ein Knoten i mit V(i) = Ø heißt Quelle,
ein Knoten i mit N(i) = Ø Senke des Graphen.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4
Nachbarn in ungerichteten
Graphen
▪
▪
▪
▪
Knoten i und j heißen Nachbarn, wenn [i,j] eine Kante von G ist.
Menge der Nachbarn eines Knotens i: NB(i)
Anzahl der mit einem Knoten i inzidenten Kanten: Knotengrad 𝒈𝒊
in schlichten Graphen: 𝑔𝑖 = 𝑁𝐵(𝑖) für alle Knoten i
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5
Digraphen
schlichter, gerichteter Graph G = (V,E) mit endlicher
Knotenmenge = Digraph
Ein Digraph heißt vollständig, wenn für alle Knotenpaare i, j die
Pfeile (i,j) und (j,i) existieren
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6
Wege & Ketten
Sei G = (V,E) ein gerichteter Graph
▪ Weg: Folge 𝑝1 , … , 𝑝𝑡 von Pfeilen, für die eine
Folge 𝑗0 , … , 𝑗𝑡 von Knoten mit 𝑝ℎ = (𝑗ℎ−1 , 𝑗ℎ ) für
alle h=1,...,t existiert.
▪ Ein Weg wird durch die in ihm enthaltenen
Knoten dargestellt: 𝑤 = (𝑗0 , … , 𝑗𝑡 )
▪ Kette: Folge 𝑝1 , … , 𝑝𝑡 von Pfeilen, für die eine
Folge 𝑗0 , … , 𝑗𝑡 mit 𝑝ℎ = (𝑗ℎ−1 , 𝑗ℎ ) oder 𝑝ℎ = 𝑗ℎ , 𝑗ℎ−1
für alle h=1,...,t existiert.
▪ Richtungssinn der Pfeile hier beliebig
▪ Eine Kette wird dargestellt als: 𝑘 = 𝑗0 , … , 𝑗𝑡
▪ analog dazu: Ketten in ungerichteten Graphen
▪ Weg bzw. Kette mit identischen Anfangs- und Endknoten 𝑗0 , … , 𝑗𝑡 heißt
geschlossener Weg (= Zyklus) bzw. geschlossene Kette (= Kreis).
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7
Bäume und 1-Bäume
▪ Ein Graph G heißt zusammenhängend, wenn jedes Knotenpaar von
G durch mindestens eine Kette verbunden ist.
▪ zusammenhängender, kreisloser
(ungerichteter) Graph = Baum
▪ zusammenhängender, ungerichteter
Graph mit genau einem Kreis = 1-Baum

Vorgegebener Knoten 𝑖0 gehört zum
Kreis und besitzt den Knotengrad 2
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8
Teilgraphen, spannende Bäume
und 1-Bäume eines Graphen
Sei G = [V,E] zusammenhängender, ungerichteter Graph mit |V| = n
▪ 𝐺 ′ = [𝑉 ′ , 𝐸 ′ ] mit 𝑉′ ⊆ 𝑉 und 𝐸′ ⊆ 𝐸 nennt man
Teilgraph von G
▪ zusammenhängender, kreisfreier Teilgraph
ത von G = spannender Baum von G
𝑇 = [𝑉, 𝐸]
ത von G
▪ zusammenhängender Teilgraph 𝑇1 = [𝑉, 𝐸]
mit 1-Baum-Eigenschaft = 1-Baum von G
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9
Graphen mit Pfeil- bzw.
Kantenbewertungen
▪ gerichteter bzw. ungerichteter Graph G, dessen Pfeile bzw. Kanten
eine Bewertung c(i,j) bzw. c[i,j] besitzen = (pfeil- bzw. kanten-)
bewerteter Graph
▪ c ist eine Abbildung 𝐸 → ℝ, die jedem Pfeil bzw. jeder Kante einen
Kostenwert zuordnet.- gerichtet
ungerichtet
▪ Notation: G = (V,E,c) bzw. G = [V,E,c]
▪ Für die Bewertung c(i,j) bzw. c[i,j] wird häufig die Indexschreibweise
𝒄𝑖𝑗 verwendet.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10
Kürzeste Wege & Entfernungen
Gegeben: G = (V,E,c) bewerteter, gerichteter Graph, 𝑤 = (𝑗0 , … , 𝑗𝑡 ) Weg von G
▪ Länge des Weges w = Summe aller Pfeilbewertungen 𝑐 𝑤 = σ𝑡ℎ=1 𝑐𝑗ℎ−1𝑗ℎ
∗
▪ Weg 𝑤𝑖𝑗
heißt kürzester Weg von Knoten i nach Knoten j, falls kein
∗
anderer Weg 𝑤𝑖𝑗 von i nach j mit 𝑐(𝑤𝑖𝑗 ) < 𝑐(𝑤𝑖𝑗
)existiert.
∗
▪ 𝑐 𝑤𝑖𝑗
= kürzeste Entfernung von i nach j in G
Weg 𝑤 = (1,2,3,5)
↳summe
von hante
Länge 𝑐 𝑤 = 20 + 20 + 10 = 50
has
It
günstig. Ist
∗
kürzester Weg 𝑤 = 𝑤15
∗
kürzeste Entfernung 𝑐 𝑤15
= 50
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11
Minimale spannende
Bäume & 1-Bäume
Sei G = [V,E,c] bewerteter, zusammenhängender, ungerichteter Graph
▪ spannender Baum 𝑇 ∗ = [𝑉, 𝐸 ∗ ] von G mit minimaler Summe der
Kantenbewertungen = minimal spannender Baum von G
▪ 1-Baum T von G (mit ausgezeichnetem Knoten 𝑖0 ) heißt minimaler 1Baum von G (mit 𝑖0 ), wenn Summe der Kantenbewertungen ≤ der
aller anderen 1-Bäume von G (mit 𝑖0 ) ist. (Problem der Bestimmung
eines minimalen 1-Baums von G = 1-Baum-Problem)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12
Speicherung von Knotenmengen
und Graphen
Datenstrukturen zur Speicherung für die in Kap. 3.2, 3.3 und 5
beschriebenen Algorithmen
▪ Speicherung von Knotenmengen

Schlange = Warteschlange = FIFO-Schlange = Queue
▪ Speicherung von Graphen

Matrizen

Standardliste

Knotenorientierte Listen
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13
Speicherung von Knotenmengen
und Graphen
warte schlang
Schlange
▪ Folge von Elementen, bei der nur am Ende Elemente
hinzugefügt und nur am Anfang entfernt werden können
▪ erstes Element = Schlangenkopf, letztes
Element = Schlangenende
▪ symbolische Darstellung des Zustands einer Schlange:
<Schlangenkopf,...,Schlangenende]
▪ Analogie: Kunden-Warteschlange vor Postschalter
▪ für den FIFO-Algorithmus (Kap. 3.2.1) benötigt
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14
Implementierung der Schlange
Implementierung der Schlange
▪ Speicherung in 1-dimensionalem Feld S[1...n] (n = Anzahl der
Knoten des Graphen)
▪ SK = Anfangszeiger (Schlangenkopf)
▪ SE = Endzeiger (Schlangenende)
vorgänge nachgege
▪ Zellen von S verweisen aufeinander; S[i] = j ist der Knoten, der auf
Knoten i in der Schlange folgt
Beispiel: Knotenmenge V = {1,...,8}, Schlange enthält <3,6,1,5]
E
Yps
SK = 3 ; SE = 5
i
under.
sow
S[i]
1
5
2
3
4
6
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15
5
6
1
7
Ende
8
Implementierung der Schlange
Beispiel: Knotenmenge V = {1,...,8}, Schlange enthält <3,6,1,5]
SK = 3 ; SE = 5
i
1
S[i]
5
2
3
4
5
6
6
7
8
7
8
1
Um Knoten 2 hinzuzufügen: S[SE]:= 2 und SE := 2
Um Knoten 3 zu entfernen: SK := S[SK]
Inever
→ neuer Zustand <6,1,5,2]
sk
istEintrag
SK.
bei
SK = 6 ; SE = 2
i
1
2
S[i]
5
0
Si
3
4
(6)
↳
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16
5
6
2
1
Matrixspeicherung
▪ zur Speicherung eines bewerteten Digraphen G = (V,E,c) mit maximal
n Knoten
▪ nur für schlichte Graphen geeignet
▪ Kostenmatrix (𝒏 × 𝒏-Matrix)
▪ Vorgängermatrix (𝒏 × 𝒏-Matrix)
▪ wird benötigt für Tripel-Algorithmus
Vorgängermatrix VG(G) = (vgij )
Kostenmatrix C (G) = (cij )
& kanten
=Diagonale
 0

cij = C (i, j )
 

kosten
falls i=j
·
went
pfeilex.
für alle (i,j)  E
sonst
i
vgij = 
0
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17
->
wenn
kanteEcht
falls i=j oder (i,j)  E
sonst
Beispiel: Matrixspeicherung
~nach?
cri
(114)
Kostenmatrix
C (G) = (cij )
Vorgängermatrix VG(G) = (vgij )
 0 20  10  
 0 20  50


C (G ) =   0  10 



20

0
50


  20  0 
11
12
13
14
15
21
31
41
51
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18
-(1,2)
1 1
0 2

VG (G ) = 0 0
von

Inger
worg.y
0 4
0 0
2
0
2
3
0
5
(1,4)
1
0
0
4
0
15:3)
0
↳ei_vorgänger
2
2

vorgänger
3

4
welche
egal
5
von
-
ist
5
3,5)
von
5
ist
-
vorgänger
von
3
ist
5
3
Standardliste
▪ zur Speicherung eines bewerteten, gerichteten Graphen G = (V,E,c)
▪ für jeden Pfeil j = 1,...,m werden Anfangsknoten, Endknoten und Bewertung in
einer Liste gespeichert
▪ Ein Graph mit n Knoten und m Pfeilen lässt sich durch Angabe von n, m und
dieser Liste vollständig beschreiben
Beispiel:
Pfeil
=O
⑧
Anfangsknoten
Endknoten
Bewertung
1
0
1
2
1
4
10
3
2
3
20
4
2
5
50
5
4
2
20
6
4
5
50
7
3
5
10
8
5
3
20
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19
0
2
=
20
=
Knotenorientierte Listen
▪ gegeben: unbewerteter, gerichteter Graph mit n Knoten und m Pfeilen
▪ Voraussetzung: Pfeile j sind so von 1,...,m nummeriert, dass von
Knoten i ausgehende Pfeile kleinere Nummern besitzen als von Knoten
i+1 ausgehende
▪ Felder zur Speicherung

Feld mit Zeigern auf Endknoten ZEP[1...n+1]

Endknotenfeld EK[1...m]
▪ Bedeutung der Felder


EK[j] ist der Endknoten von Pfeil j
ZEP[i] ist die Nummer des ersten
von Knoten i ausgehenden Pfeils
▪ Anzahl der von Knoten i ausgehenden Pfeile = ZEP[i+1]–ZEP[i]
▪ Setzen ZEP[n+1] := m+1, damit keine Sonderbehandlung des letzten
Knotens nötig
▪ für Pfeilbewertung kann weiteres Feld C[1...m] eingeführt werden
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20
Knotenorientierte Listen
Ausgeh.
Liste
d.
Kanten von
izacan
Knote
1
.
2
-
x(1,4)
List.
a
plaile
-
3
4
kanten
kante,
5
8
6
8
kingent
von
7
kanten
kn. 1
=>
↳n
alle hanten
kanten.
alle
dann hin.
dann
un 3.
↳
17
-
beschr.
alle
1
+
knoten (n)
5
=>
S
kanten
alle kanten
kn.
=>
kn5
kn6
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21
von
5 u.6
8
-
->
9
5
anschauer
3
->
ernte
=
also(5,3)
kuntert,
zu
C
Kürzeste Wege in Graphen
▪ Baumalgorithmen

Dijkstra-Algorithmus

FIFO-Algorithmus
kürz.
Wege
▪ Tripel-Algorithmus
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22
finden
Baumalgorithmen
▪ Input

Digraph G = (V,E,c) mit n Knoten und Bewertungen 𝒄𝑖𝑗 für alle
Pfeile (i,j)
Startknoten 𝒂 ∈ 𝑽 von dem ausgehend Entfernungen und Wege zu
allen anderen Knoten von G bestimmt werden sollen
▪ Verwendete Datenstrukturen



Feld D[1...n]: D[i] = kürzeste Entfernung von a nach i
Feld R[1...n]: R[i] = unmittelbarer Vorgänger von i in einem
kürzesten Weg von a nach i
Menge markierter Knoten (bei Dijkstra: ungeordnete Menge MK;
bei FIFO: Warteschlange S)
▪ Output


kürzeste Entfernungen in D

Baum kürzester Wege in R
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23
Ablauf von Baumalgorithmen
▪ Start: D[a] := 0 und D[i] := ∞ für alle Knoten 𝒊 ≠ 𝒂; MK := {a}
▪ in jeder Iteration




wähle nach einem bestimmten Verfahren
einen Knoten h aus MK
prüfe für alle Nachfolger j, ob Weg von a
nach j über h kürzer als die kürzeste
momentan bekannte Entfernung von a nach j
falls kürzerer Weg von a nach j gefunden,
wird j in MK aufgenommen
entferne h aus MK
▪ Abbruch, wenn MK=Ø
Auswahl des Knotens h:
▪ Dijkstra-Algorithmus: Knoten aus MK mit
kleinster aktueller Entfernung von a
▪ FIFO-Algorithmus: Knoten am Kopf der
Warteschlange S
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24
E.W. Dijkstra
Dijkstra-Algorithmus
Start: Setze D[a] := 0 und D[i] := ∞ für alle Knoten 𝒊 ≠ 𝒂 ; MK := {a}
while (𝑀𝐾 ≠ Ø) do
begin
wähle Knoten h aus MK mit 𝐷 ℎ = 𝑚𝑖𝑛{𝐷 𝑖 |𝑖 ∈ 𝑀𝐾}
for each 𝑗 ∈ 𝑁(ℎ) do
begin
if 𝐷 𝑗 > 𝐷 ℎ + 𝑐ℎ𝑗 then
begin
𝐷 𝑗 ≔ 𝐷 ℎ + 𝑐ℎ𝑗 ;
𝑅 𝑗 ≔ ℎ;
füge Knoten j zu Menge MK hinzu
end;
end;
eliminiere Knoten h aus MK
end;
Anmerkung: falls 𝒄𝒊𝒋 ≥ 𝟎 → 𝒘∗𝒂𝒋 liegt fest, sobald j aus MK entfernt ist
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25
Beispiel: Dijkstra-Algorithmus
Start: MK = {1}
i
D[i]
1
dist.
zu
0
sich
selbstrest
-
-
2
3
4
5
∞
∞
∞
∞
start
R[i]
→ h = 1; Iteration 1 ergibt: MK = {2,4}
i
1
2
3
4
5
D[i]
0
20
∞
10
∞
R[i]
1
I
nachfaim
=>
→ h = 4; Iteration 2 ergibt: MK = {2,5}
nachfolger
i
D[i]
R[i]
1
0
2
20
1
3
∞
4
4
2 und
hier
D[4]
D[1]
>
0
für 4
=
5
10
60
1
4
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26
b(2]
20
[2]> D[1]
B
1
en
D[2] D[1]+212 20
=
also
=
R[2]
214
von
vörg.
1
=
=
ist
2
+
528
in
10 10
=
+
c1
=
=>
also
CreV
+
=>
D92)
20(D[4] (4
+
2
10 20
=
=
wurde
+
mark.
36
=
bleibt
b(53-b(43 445
+
10
=
50
+
60
=
=>
D(5]
=>
Mk
52,5
=
60
=
2 nicht
=
5
=>
man
geudatet,
wurde
bleibt
gelblutet.
E
↑
über
5
d erreicht
als
ersetzt
5
Beispiel: Dijkstra-Algorithmus
→ h = 2; Iteration 3 ergibt: MK = {3,5}
i
1
2
3
4
5
D[i]
0
20
40
10
60
1
4
R[i]
1
↓2
→ h = 3; Iteration 4 ergibt: MK = {5}
i
1
2
3
4
5
D[i]
0
20
40
10
50
1
2
1
3
R[i]
Iteration 5 ergibt: keine
Entfernungsänderung,
MK=Ø → Abbruch
Baum kürzester Wege:
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27
nachfolger
=>
2
FIFO-Algorithmus (Ford-Moore
Algorithmus)
zusätzliche Voraussetzung hier: G ohne Zyklus negativer Länge, darf jedoch
negative 𝒄𝑖𝑗 enthalten
Start: Setze D[a] := 0 und D[i] := ∞ für alle Knoten 𝒊 ≠ 𝒂; S := <a]
while (𝑆 ≠ Ø ) do
begin
wähle als Knoten h den Knoten am Kopf der Warteschlange S
for each 𝑗 ∈ 𝑁(ℎ) do
begin
if 𝐷 𝑗 > 𝐷 ℎ + 𝑐ℎ𝑗 then
begin
𝐷 𝑗 ≔ 𝐷 ℎ + 𝑐ℎ𝑗 ;
𝑅 𝑗 ≔ ℎ;
füge Knoten j an Ende der Warteschlange S an, sofern nicht bereits enthalten
end;
end;
entferne Knoten h vom Kopf der Warteschlange S
end;
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28
Beispiel: FIFO-Algorithmus
Start: S := <1]
i
1
2
3
4
5
D[i]
0
∞
∞
∞
∞
R[i]
→ h = 1; Iteration 1 ergibt: S = <2,4]
i
1
2
3
4
5
D[i]
0
20
∞
10
∞
R[i]
1
1
→ h = 2; Iteration 2 ergibt: S = <4,3,5]
i
1
2
3
4
5
D[i]
0
20
40
10
70
1
2
1
2
R[i]
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29
=>
next
Beispiel: FIFO-Algorithmus
→ h = 4; Iteration 3 ergibt: S = <3,5]
i
1
2
3
4
5
D[i]
0
20
40
10
60
1
2
1
4
R[i]
→ h = 3; Iteration 4 ergibt: S = <5]
i
1
2
3
4
5
D[i]
0
20
40
10
50
1
2
1
3
R[i]
Iteration 5 ergibt: keine Entfernungsänderung, S = Ø → Abbruch
Fifo:beiunvollst. Graph
=>
Dikstra:bei
=>
dichten, vollst.
Graph.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30
Rekursive Entwicklung eines
kürzesten Weges
Baumalgorithmen: liefern Baum kürzester Wege in R
b := x;
while not 𝑅 𝑏 ∈ {0, 𝑎} do
begin
Print(R[b]);
b := R[b];
end;
gibt kürzesten Weg zwischen Knoten a und gegebenem Knoten x aus
(rückwärts)
i
1
D[i]
0
R[i]
Tateseinen
2
3
4
5
20
40
10
50
1
2
1
3
Für a := 1 und b := 5 → R[5] = 3 → R[3] = 2 → R[2] = 1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31
Der Tripel-Algorithmus
(Floyd-Warshall Algorithmus)
▪ Input: bewerteter Digraph G=(V,E,c) ohne Zyklus negativer Länge in
Matrizenspeicherung

Kostenmatrix 𝐶 𝐺 = (𝑐𝑖𝑗 ), eine (𝒏 × 𝒏-Matrix)

Vorgängermatrix 𝑉𝐺 𝐺 = (𝑣𝑔𝑖𝑗 ), eine (𝒏 × 𝒏-Matrix)
▪ Ablauf

für jeden Knoten j wird genau einmal geprüft, ob über ihn zwischen jedem
Paar von Knoten i,k ein kürzerer Weg als der aktuell bekannte existiert
▪ Output: kürzeste Wege und Entfernungen zwischen jedem
Knotenpaar i,j

Entfernungsmatrix 𝐷 𝐺 = 𝑑𝑖𝑗 in 𝐶 𝐺 = 𝑐𝑖𝑗

Routenmatrix 𝑅 𝐺 = (𝑟𝑖𝑗 ) in 𝑉𝐺 𝐺 = (𝑣𝑔𝑖𝑗 )
falls i=j
 0

dij = c( wij ) falls Weg von i nach j existiert
 

sonst
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32

h h ist Vorgänger von j in wij
rij = 
0 sonst
Tripel-Algorithmus
for 𝑗 ∶= 1 to n do
for 𝑖 ∶= 1 to n do
for 𝑘 ∶= 1 to n do
begin
𝑠𝑢 ≔ 𝑐𝑖𝑗 + 𝑐𝑗𝑘 ;
if 𝑠𝑢 < 𝑐𝑖𝑘 then
begin
𝑐𝑖𝑘 ≔ 𝑠𝑢;
𝑣𝑔𝑖𝑘 ≔ 𝑣𝑔𝑗𝑘 ;
end;
end;
Es wird systematisch für alle Tripel (𝑖, 𝑗, 𝑘) geprüft, ob 𝑐𝑖𝑘 durch den evtl.
kleineren Wert 𝑐𝑖𝑗 + 𝑐𝑗𝑘 ersetzt werden kann.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33
Beispiel: Tripel-Algorithmus
Kostenmatrix
Vorgängermatrix
 0 20  10  
 0 20  50


C (G ) =   0  10 



20

0
50


  20  0 
𝑎13 = ∞ da(1,3)  E
1
0

VG (G ) = 0

0
0
1
2
0
4
0
0
2
3
0
5
1
0
0
4
0
0
2

3

4
5
𝑣𝑔23 = 2 da 2 Vorgänger von 3 in G
→ Ergebnis:
Entfernungsmatrix
 0 20 40 10
 0 20 

D(G ) =   0 

 20 40 0
  20 
Routenmatix
50
30

10 

50
0 
𝑑13 ≤ ∞ da der Weg (1,2,3) existiert
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34
1
0

R(G ) = 0

0
0
1
2
0
4
0
2
2
3
2
5
1
0
0
4
0
3
3

3

4
5
∗
𝑟13 = 2 → 2 ist Vorgänger von 3 in 𝑤13
Minimale spannende Bäume und
minimale 1-Bäume
▪ Algorithmen


zur Lösung von Relaxationen für symmetrische TravelingSalesman-Probleme (Kap. 6.5.2)
weitere Anwendungsmöglichkeit: Bestimmung eines
kostenminimalen Versorgungsnetzes als Problem der Bestimmung
eines minimalen spannenden Baumes formuliert
Bestimmung eines minimalen spannenden Baumes
Der Kruskal-Algorithmus
▪ Voraussetzung: bewerteter, zusammenhängender, schlingenfreier,
ungerichteter Graph 𝐺 = [𝑉, 𝐸, 𝑐] mit n Knoten und m Kanten
▪ 𝐸ത ist die zu bestimmende Kantenmenge des gesuchten MSB 𝑇 = 𝑉, 𝐸ത
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35
Kruskal-Algorithmus
Start:
Sortiere die Kanten 𝑘𝑖 von G in einer Reihenfolge 𝑘1 , 𝑘2 , … , 𝑘𝑚 mit
monoton steigenden 𝑐(𝑘𝑖 )
Setze 𝐸ത ≔ Ø und 𝑇 ≔ 𝑉, 𝐸ത (T zu Beginn: Teilgraph von G ohne Kanten)
Iteration µ= 1,2,...,m:
▪ Wähle die Kante 𝑘µ aus
▪ Füge 𝑘µ zu 𝐸ത hinzu, wenn die Aufnahme der Kante in 𝑇 ≔ 𝑉, 𝐸ത keinen
Kreis erzeugt 𝐸ത ≔ 𝐸ത ∪ 𝑘µ
Abbruch: sobald 𝐸ത genau n–1 Kanten enthält → T ist
zusammenhängend
Ergebnis: 𝑇 ≔ 𝑉, 𝐸ത ist ein minimaler spannender Baum von G;
Summe seiner Kantenbewertungen 𝑐 𝑇 = σ𝑘∈𝐸ത 𝑐(𝑘)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36
Beispiel: Kruskal-Algorithmus
Tie-Breaker: bei gleicher Bewertung sind Kanten nach steigenden
Nummern der mit ihnen inzidenten Knoten sortiert
𝑘1 , 𝑘2 , … , 𝑘𝑚 : [1,3], [2,5], [3,5], [1,2], [2,3], [3,4], [5,6], [1,4], [3,6], [4,6]
bew. I
bew: 3
4
Graph G
4
einzelne
nach
kanten
der
6
5
Reihenfolge
hinzufügen, ohne
dass
ein
kreis
entsteht
minimal spannender Baum von G
n
n
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37
5
4
4
eknoten
=
-
1
kunter
=
Bestimmung eines
minimalen 1-Baumes
▪ Verfahren baut auf Kruskal-Algorithmus auf
▪ Voraussetzung: bewerteter, zusammenhängender, schlingenfreier, ungerichteter
Graph 𝐺 = [𝑉, 𝐸, 𝑐] mit n Knoten und m Kanten
▪ vorgegeben: Knoten 𝑖0 ∈ 𝑉 mit Grad ≥ 2, der
kein Artikulationsknoten ist
(Artikulationsknoten = Knoten, durch dessen
Entfernung der Graph unzusammenhängend wird)
Ablauf:
Schritt 1: Erzeuge Graphen 𝑮′, der durch Weglassen von Knoten 𝒊𝟎
und aller mit ihm inzidenten Kanten entsteht
Schritt 2: Bestimme mit dem Kruskal-Algorithmus einen minimalen
spannenden Baum 𝑇′ für 𝐺′
Schritt 3: Erweitere 𝑇′ um den Knoten 𝑖0 und die beiden
niedrigstbewerteten mit 𝑖0 inzidenten Kanten
Ergebnis: minimaler 1-Baum von 𝐺 zu 𝑖0
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 38
Beispiel: Minimaler 1-Baum (𝒊𝟎 = 𝟏)
① weg
alle
↑
Kruskal
unwerden
minimal spannender Baum von 𝐺′
ihre
hunter
Weglassen von 𝑖0 = 1 → Graph 𝐺′
Graph G
algorith
und
mit
wieder
der
niedr
z
winzufügen
bewe
minimaler 1-Baum von 𝐺 (𝑖0 = 1)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 39
Beispiel: Minimaler 1-Baum (𝒊𝟎 = 𝟓)
Graph G
minimal spannender Baum von 𝐺′
Weglassen von 𝑖0 = 5 → Graph 𝐺′
minimaler 1-Baum von 𝐺 (𝑖0 = 5)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 40
Klausurvorbereitung
Domschke, W. und A. Drexl (2015): Einführung in Operations Research.
9. Aufl., Springer-Verlag, Berlin et al., Kapitel 3
Zur Klausurvorbereitung sind die Aufgaben 3.2, 3.4b) (unter Anwendung
des Dijkstra-Algorithmus), 3.8 und 3.9 zur Bestimmung kürzester Wege
in Graphen sowie 3.7a) zum Thema kostenminimale Vernetzung aus dem
Übungsbuch „Übungen und Fallstudien zum Operations Research“ von
Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 41
Einführung in Operations Research
Lineare Programmierung mit
spezieller Struktur
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1
Das klassische Transportproblem
(TPP)
Problemstellung und Verfahrensüberblick
▪ Transport eines homogenen Gutes
▪ m Anbieter 𝐀𝐢 (𝑖 = 1, … , 𝑚) mit
Angebotsmengen
▪ n Nachfrager 𝐁𝐣 (𝑗 = 1, … , 𝑛) mit
Nachfragemengen
▪ Kosten 𝐜𝐢𝐣 für Transport einer
ME von 𝐀𝐢 nach 𝐁𝐣
angebotsmenge=nachfrage
e
▪ zur Vereinfachung: σ𝐢 𝐚𝐢 = σ𝐣 𝐛𝐣
↳n
acb =)
a)
istok.
▪ Gesucht: kostenminimaler Transportplan,
durch den alle Bedarfe befriedigt werden
↳
->
-
⑬ne
I
alle
überig
gebliebe
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2
a's
Beispiel
3
m=3 Anbieter, n=4 Nachfrager
𝐜𝐢𝐣 𝐁𝟏 𝐁𝟐 𝐁𝟑 𝐁𝟒 𝐚𝐢
𝐀𝟏
7
𝐀𝟐
𝐀𝟑
𝐛𝐣
Transportkosten
2
4
7
10
9
5
3
3
8
7
7
6
4
7
6
25
F
An ->
6
↳>
B1
5
8
nachfrage Menge
Al
nu ME
=>
zai
-
𝐁𝟏
𝐁𝟐
𝐁𝟑
𝐀𝟏
5
5
𝐀𝟐
Transport
3
menge
𝐀𝟑
6
𝐛𝐣
6
5
8
𝐁𝟒
Nachfrager
4
hat
10ME
verfügbar
zbi
=
zulässiger Transportplan (Lösung des TPP):
𝐗 𝐢𝐣
anbieter,
𝐚𝐢
Transportgraph
↑
10
5
8
1
7
6
K=100
&-
sie
Gesamtkosten: K(x) = 2·5 + 4·5 + 3·3 + 3·5 + 6·7 + 4·1 = 100
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3
9
transportmenge
Mathematische Formulierung des
klassischen Transportproblems (TPP)
-
n
Minimiere F(x) = σm
i=1 σj=1 cij x ij
&
unter den Nebenbedingungen
ui
σnj=1 xij = ai
für i = 1, … , m
vj
σm
i=1 x ij = bj
für j = 1, … n
xij ≥ 0
für alle i und j
Erläuterung:
𝐱 𝐢𝐣
von Anbieter Ai zu Nachfrager Bj zu transportierende ME
𝐮𝐢 , 𝐯𝐣
mit den NB korrespondierende Dualvariablen
𝐜𝐢𝐣
Kosten des Transports einer ME von Ai zu Bj
𝐚𝐢
Angebotsmengen
𝐛𝐣
Nachfragemengen
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4
Beispiel einer TPP-Instanz
7 2 4 7 
Kostenmatrix C = (cij ) = 9 5 3 3 


7 7 6 4 
Angebotsmengen a = (10,8,7)
Nachfragemengen b = (6,5,8,6)
Struktur der Nebenbedingungen dieses TPPs:
NB
A1
x11Anbietenachfreixe12
↓
1
1
x13
x14
1
1
A2
A3
B1
B2
B3
B4
1
alle
war
auf
die
Ne
sich
bezieht
1
3 x21
3
1
x22
x23
1
1
x24 3 x31
1
1
3
x32
NB
-
x33
x34
Matrix
a1 = 10
a2 = 8
1
1
1
1
1
1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5
b2 = 5
1
1
b3 = 8
1
1
a3 = 7
b1 = 6
1
1
ai Τbj
1
b4 = 6
Zulässige Basislösung eines TPP
Jede zulässige Basislösung eines TPPs mit m Anbietern und n Nachfragern besitzt
genau m+n–1 Basisvariablen.
Begründung: eine redundante NB → nur m+n–1 echte Restriktionen und
x31
Basisvariablen
& x+Xxexen
Beispiel: Nebenbedingung B4 = A1 + A2 + A3 − B1 − B2 − B3
xn
-
-
x 21
X1z
-
-
X
-
x
an
↓
NB
x11
x12
x13
x14
A1
1
1
1
1
A2
x21
x22
x23
x24
1
1
1
B2
B3
B4
1
1
x33
x34
ai Τbj
a2 = 8
1
1
1
x32
a1 = 10
A3
B1
x31
1
1
1
b1 = 6
1
1
1
1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6
b2 = 5
1
1
b3 = 8
1
1
a3 = 7
1
b4 = 6
Verfahren zur Lösung des klassischen
TPP
TPP ist ein lineares Optimierungsproblem
→ mit Simplex (M-Methode) lösbar
effiziente Lösungsverfahren für das TPP
nutzen spezielle Struktur
Nordweststreckenregel
Vogel‘sche Approximationsmethode
Spaltenminimum-Methode
MODI-Methode
Stepping-Stone-Methode
TPPInstanz
Eröffnungsverfahren
(Heuristik)
Zulässige
Basislösung
Optimierungsverfahren
Optimale
Lösung
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7
Transporttableau
Zur Beschreibung der TPP-Lösungsverfahren und für Handrechnungen:
▪ xij , die Basisvariablen sind, werden durch Kästchen umrandet
▪ nicht besetzte Tableaufelder gelten als = 0 gesetzt (Nichtbasisvariablen)
▪ F = Zielfunktionswert der aktuellen Lösung
Nachfrager
1
2
…
n
x12
x 22
…
2
x11
x 21
…
x1n
x 2n
ai
a1
a2
…
…
…
…
…
…
m
x m1
x m2
…
x mn
am
bj
b1
b2
…
bn
F=
Anbieter
1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8
Eröffnungsverfahren
Nordwestecken-Regel
ohne Berücksichtigung der Transportkosten → i.d.R. schlechte Lösungen
ermittelt im Transporttableau von links oben nach rechts unten gehend Basisvariablen
Start: i := j := 1
while (true) do
begin
// mit x11 ("links oben") starten
// Iteration
𝐱 𝐢𝐣 ≔ 𝐦𝐢𝐧{𝐚𝐢 ; 𝐛𝐣 };
// xij auf größtmöglichen Wert setzen
𝐚𝐢 ≔ 𝐚𝐢 − 𝐱 𝐢𝐣 ;
// ai und bj auf Restmengen korrigieren
𝐛𝐣 ≔ 𝐛𝐣 − 𝐱 𝐢𝐣 ;
if (i = m) and (j = n) then break;
if 𝐚𝐢 = 𝟎 then i := i+1 else j := j+1;
// Abbruch wenn xmn ("rechts unten")
erreicht
// Schritt in Transporttabl. nach "unten" o.
"rechts"
end;
Ergebnis: Zulässige Basislösung mit m+n–1 Basisvariablen
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9
Flussdiagramm: Nordwesteckenregel
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10
Beispiel 1: Nordwesteckenregel
Angebotsmengen a = (10,8,7)
Nachfragemengen b = (6,5,8,6)
Kostenmatrix 𝐶 = (𝑐𝑖𝑗 ) beliebig, da nicht berücksichtigt
Transporttableau:
Nachfrager
desAnbieter
1
2
3
e
nachersch.
Anbieter
1
6
↳ min San 101
4
=
6
2
b=
1
nbinektnachte
X 22
->
3
bj
Ergebnis:
7
1
6
-o
nachfrage
befriedigt
↳
5
-A
0
ai
4
10 YAngebote
bev
~
0
8
-
8-
6
õ_
7
-
6
bi
-
xen
minsda;bat
4
=
x11 = 6, x12 = 4, x22 = 1, x23 = 7, x33 = 1, x34 = 6; xij = 0 sonst
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11
S
0
II
baXez Xea
zulässige Basislösung mit m+n–1=3+4–1=6 Basisvariablen
a
Io
-
I
übrig
-
am
-X1an
-
x 12
Beispiel 2: Nordwesteckenregel
Angebotsmengen a = (11,9,6)
Nachfragemengen b = (6,5,8,7)
Kostenmatrix 𝐶 = (𝑐𝑖𝑗 ) beliebig, da nicht berücksichtigt
Anbieter
Transporttableau:
Nachfrager
1
1
2
6
5
-1
2
3
↳
0
->
0
=
eckpunkt
8
3
bj
6
ai
11
BV
-
4
5
8
1
9
6
6
7
Ergebnis:
Primal degenerierte Basislösung mit 6 Basisvariablen
x11 = 6, x12 = 5, x22 = 0, x23 = 8, x24 = 1, x34 = 6; xij = 0 sonst
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12
Vogel’sche Approximationsmethode
berücksichtigt die Transportkosten cij
liefert i.d.R. wesentlich bessere Lösungen als Nordwesteckenregel
in jeder Iteration:
▪ Auswahl einer neuen Basisvariablen (Transportverbindung) xpq
▪ Markierung einer Zeile p oder Spalte q, deren Angebots-/Nachfragemenge
durch die Fixierung erschöpft/befriedigt ist
Auswahlkriterium basierend auf dem Regret-Prinzip:
▪ Bestimmung der Kostendifferenzen zwischen zweitbilligster und billigster
Liefermöglichkeit
(für alle unmarkierten Zeilen und Spalten)
▪ Wahl einer unmarkierten Zeile oder Spalte mit größter Kostendifferenz
▪ Realisierung der billigsten Liefermöglichkeit mit maximal möglicher
Transportmenge
Ergebnis: zulässige Basislösung mit m+n–1 Basisvariablen
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13
Flussdiagramm: Vogel’sche
Approximationsmethode
Stop
Start; alle Zeilen und Spalten unmarkiert
Berechne Kostendifferenzen
dzi ≔ cih − cik für alle unmarkierten Zeilen i
dsj ≔ chj − ckj für alle unmarkierten Spalten j
(Kostenelemente nur aus unmarkierten
Spalten/Zeilen)
Wähle unmarkierte Zeile/Spalte mit größter
Differenz dzi oder dsj aus
cpq : kleinstes Kostenelement der Zeile oder
Spalte
Nimm xpq ≔ min ap , bq in Basis auf
Reduziere ap ≔ ap − xpq und bq ≔ bq − xpq
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14
nein
Restmengen
zuordnen
ja
n–1 Spalten oder
m–1
Zeilen markiert?
Markiere
Spalte q
Markiere
Zeile p
ja
nein
ap = 0 ?
→ bq = 0
Beispiel: Vogel’sche
Approximationsmethode
nostermatrix
Angebotsmengen a = (10,8,7)
Nachfragemengen b = (6,5,8,6)
7 2 4 7 


Kostenmatrix C = (cij ) = 9 5 3 3


7 7 6 4 
dzi
X 13
Transporttableau: Nachfrager
Anbieter
1
2
1
2
3
etzkezeikrei
-
bj
[6]
6
↑
Rest
1. It.
0
ds j 2. It.
0
3. It.
2
7
-
7
->
spalte
3
5
&
x13
5
x 12
s
4
einsetzen
weil
3
5
8
[1]
7
8
6
0
3
1
1
4
5-2
regnet.
e
-
spaltach
wer
-
3
Rest
5
⑧
von
5
10
5
0
3
ai
1
4 3
-
1
1
3
1
2
2
Anb. 1
rest
0
5
=
2. It.
4
=>
3
6
=>
4
-
-
3. It.
4. It.
0
0
6
2
2
3
1. It.
3
2
-
=>
2
4
e
Lregretwert
2
kleinsteinerte (zeile)
sub.
1.
2.
3.
4.
1)
2)
4.It.
1. It.
↳nach
1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15
It.: x12 = 5 Spalte 2 markiert
It.: x13 = 5 Zeile 1 markiert
It.: x23 = 3 Spalte 3 markiert
It.: x24 = 5 Zeile 2 markiert
min
regret-werte
spalte/zeile
höchst.
mit
Zeile/spalte
Wert.
3)
4)
regr.
-
neu
Wert
ohne
zeilelspalte
1.
It.
von
a
mitnieder.
5-5,
Kosten.
↳ Xer
8
Flussdiagramm: SpaltenminimumMethode
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16
Beispiel:
Spaltenminimum-Methode
7 7 4 7 


Nachfragemengen b = (6,5,8,6)
Kostenmatrix C = (cij ) = 9 5 3 3


7 2 6 4 
Nachfrager
ai
1
2
3
4
1. It. 2. It. 3. It. 4. It.
Anbieter
Angebotsmengen a = (10,8,7)
1
6
0
2
8
3
bj
4
5
6
5
4
8
2
8
10
7
2
6
0
1.
2.
3.
4.
It. (j=1): x11 = 6
It. (j=2): x32 = 5
It. (j=3): x23 = 8, Zeile 2 markiert, x13 = 0
It. (j=4): x34 = 2, Zeile 3 markiert, x14 = 4, Zeile 1 markiert → Stop, da j=n und m+n-1 BV
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17
Darstellung zulässiger TPPBasislösungen als Baum
Satz: Jede zulässige Basislösung eines TPPs ist als Baum darstellbar mit den m+n
Anbietern und Nachfragern als Knoten und den m+n–1 Basisvariablen als Kanten.
Baum-Darstellung für die mittels Spaltenminimum-Methode erhaltene
Basislösung:
x11 = 6, x 32 = 5, x 23 = 8, x13 = 0, x 34 = 2, x14 = 4
Bedeutung der Kanten: Kante zwischen 𝐀𝐢 und 𝐁𝐣 ↔ 𝐱 𝐢𝐣 ist Basisvariable
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18
Die MODI-Methode (MOdifizierte
DIstributions-Methode)
verwendet Optimalitätsbedingungen, die sich aus dem
Satz vom komplementären Schlupf (2.6) ergeben
für Darstellung wird das zum TPP duale Problem benötigt
für optimale Lösungen x des primalen und {u,v} des
dualen Problems gilt
xij ∙ cij − ui − vj = 0
bzw.
xij > 0 → ui + vj = cij und ui + vj < cij → xij = 0
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19
Klassisches Transportproblem (TPP)
zu TPP duales Problem:
Minimiere F(x) =  i =1  j=1 cij x ij
m
n
unter den Nebenbedingungen
ui
vj


n
x ij = a i
für i=1,…,m
x ij = b j
für j=1,…n
x ij  0
für alle i und j
j=1
m
i =1
Maximiere FD(u, v) =
 i=1 a i ui +  j=1 b jv j
m
n
unter den Nebenbedingungen
x ij
u i + v j  cij
für alle i und j
u i , v j  R\
für alle i und j
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20
Beispiel: MODI-Methode –
Dualisierung
Maximiere FD(u, v) = 10u1 + 8u 2 + 7u 3 + 6v1 + 5v2 + 8v3 + 6v4
unter den Nebenbedingungen
x11
u1 + v1  7
x12
x13
x14
u1 + v2  2
u1 + v3  4
u1 + v4  7
x 21
x 22
u 2 + v1  9
u 2 + v2  5
ui , v j  R
Angebotsmengen
a = 10,8,7
x 23
x 24
u 2 + v3  3
u 2 + v4  3
x 31
u 3 + v1  7
u 3 + v2  7
Nachfragemengen
b = 6,5,8,6
u 3 + v3  6
u 3 + v4  4
Kostenmatrix
x 32
x 33
x 34
für alle i und j
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21
7 2 4 7 
(cij ) = 9 5 3 3 


7 7 6 4 
MODI-Methode: Überblick
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22
Beispiel: MODI-Methode
7 2 4 7 


Kostenmatrix C = (cij ) = 9 5 3 3


7 7 6 4 
Angebotsmengen a = (10,8,7)
Nachfragemengen b = (6,5,8,6)
zulässige Basislösung durch Nordwesteckenregel
Anbieter
Nachfrager
1
1
2
6
4
2
1
3
bj
6
5
3
4
10
7
8
1
6
8
6
Basisvariablen x11 = 6, x12 = 4, x22 = 1, x23 = 7, x33 = 1, x34 = 6
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23
ai
7
MODI-Methode – Bestimmung von
Dualvariablenwerten
bilde lineares Gleichungssystem (LGS) 𝐮𝐢 + 𝐯𝐣 = 𝐜𝐢𝐣 mit allen i, j, deren 𝐱 𝐢𝐣
Basisvariable ist
▪ LGS enthält m+n Variablen 𝐮𝐢 und 𝐯𝐣 sowie m+n–1 Gleichungen
▪ LGS hat einen Freiheitsgrad → setze eine Variable 𝐮𝐢 oder 𝐯𝐣 = 𝟎
▪ Trick: setze diejenige Basisvariable 𝐮𝐢 oder 𝐯𝐣 = 𝟎, die am häufigsten im LGS
vorkommt
löse das LGS
Beispiel:
u1 + v1 = 7
u1 + v2 = 2
u 2 + v2 = 5
u 2 + v3 = 3
u 3 + v3 = 6
u 3 + v4 = 4
Setzen 𝐮𝟏 = 𝟎 → 6 Gleichungen, 7 Variablen → LGS besitzt eindeutige Lösung
Lösung des LGS:
u1 = 0, v1 = 7, v2 = 2, u 2 = 3, v3 = 0, u 3 = 6, v4 = −2
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24
MODI-Methode – Berechnung von
Reduzierten Kosten für Nichtbasisvariablen
Berechnung Reduzierter Kosten
alle cij
cij := cij − u i − v j für alle NBV
 0 → momentane Lösungen x und {u,v} sind bereits optimal ➔ Stop
es gibt ein cij  0 → mindestens eine NB u i + v j  cij ist verletzt
(Lösung {u,v} ist unzulässig für duales Problem) ➔ Basistausch
Beispiel:
c21 := c21 − u 2 − v1 = 9 − 3 − 7 = −1  0  NB ist verletzt
Anbieter
Nachfrager
1
2
1
2
3
4
6
4
4
9
1
7
2
1
6
c21 = −1
3
-6
-1
vj
v1 = 7
v2 = 2
v3 = 0 v4 = −2
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25
ui
u1 = 0
u2 = 3
u3 = 6
7 2 4 7 
C = (cij ) = 9 5 3 3 


7 7 6 4 
MODI-Methode – Basistausch
Aufnahme der NBV 𝐱 𝐩𝐪 mit den kleinsten negativen Reduzierten Kosten 𝐜𝐢𝐣 in die
Basis
Im Transporttableau (Transportbaum) entsteht durch Aufnahme von 𝐱 𝐩𝐪 genau ein
Kreis
Umverteilung der maximal zulässigen Transportmenge entlang des Kreises
▪ Ziel: möglichst große Erhöhung von xpq um den Wert ∆
▪ abwechselnd Senkung/Erhöhung der BV um den Wert ∆
▪ Zuweisung der kleinsten zu senkenden Menge ∆ zu xpq
▪ Korrektur der übrigen Variablen im Kreis durch +/–∆
mindestens eine durch Senkung betroffene BV erhält den Wert 0 und verlässt die
Basis
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26
Beispiel: MODI-Methode Basistausch
1. Iteration
𝑥22 = 1 − Δ = 0
 = min x11 , x 22 , x 33  = 1
A1
A2
A3
vj
B1
B2
5
5
B3
B4
ui
8
1
0
6
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27
F=100
Beispiel: MODI-Methode Basistausch
2. Iteration
7 2 4 7 
(cij ) = 9 5 3 3 


7 7 6 4 
 = min x11 , x 33  = 0
A1
A2
A3
vj
B1
B2
B3
5
5
0
B4
ui
8
1
6
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28
F=100
u1 + v1 = 7
u1 + v2 = 2
u 2 + v3 = 3
u 3 + v1 = 7
u 3 + v3 = 6
u 3 + v4 = 4
u1 = 0
Beispiel: MODI-Methode Basistausch
3. Iteration
B1
B2
B3
A1
5
5
0
A2
A3
vj
3
4
8
1
5
2
v1 = 7
v2 = 2
v3 = 4
u1 + v1 = 7
ui
7 2 4 7 
3
u1 = 0 u1 + v2 = 2 (c ) = 9 5 3 3 
ij


u 2 = −1 u1 + v3 = 4
0
7 7 6 4 
u 3 = 0 u 2 + v3 = 3
6
v4 = 4 F=100
u 3 + v1 = 7
u 3 + v4 = 4
u1 = 0
B4
keine negativen Reduzierten Kosten → optimale Basislösung gefunden
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29
Das lineare Zuordnungsproblem
n Arbeitern sollen n Tätigkeiten bei bekannten Kosten 𝐜𝐢𝐣 so zugeordnet werden, dass
▪ jeder Arbeiter genau eine Tätigkeit ausführt
▪ jede Tätigkeit genau einem Arbeiter zugeordnet wird
▪ die Gesamtkosten minimiert werden
Spezialfall des klassischen TPP mit m = n und 𝐚𝐢 = 𝟏 sowie 𝐛𝐣 = 𝟏 für alle i und j
Minimiere F(x) =
 
n
n
i =1
j=1 ij
c x ij
unter den Nebenbedingungen


n
j=1
n
i =1
x ij = 1
für i=1,…,n
x ij = 1
für j=1,…n
x ij 0,1
für alle i, j=1,…,n
xij : Binärvariablen mit der Bedeutung: Arbeiter i führt Tätigkeit j aus
cij : Kosten der Ausführung der Tätigkeit j durch Arbeiter i
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30
Totale Unimodularität
Satz: Jede Basislösung eines LPs ist dann ganzzahlig, wenn bei
ganzzahligen (rechten Seiten) bi die Koeffizientenmatrix A = aij die
Eigenschaft der totalen Unimodularität aufweist. Sie liegt dann vor,
wenn die Determinante jeder quadratischen Teilmatrix von A nur die
Werte –1, 0 oder +1 annehmen kann.
Satz: Hinreichende, nicht notwendige Bedingung für totale
Unimodularität:
▪ Jedes Element von A besitzt den Wert –1, 0 oder +1 und
▪ jede Spalte enthält maximal 2 Elemente ≠ 0 und
▪ die Zeilen von A lassen sich in 2 Teilmengen M1 und M2 unterteilen, so
dass für jede Spalte mit 2 Elementen ≠ 0 gilt:
▪ gleiche Vorzeichen der Elemente → betroffene Zeilen in verschiedenen
Teilmengen Mi
▪ ungleiche Vorzeichen der Elemente → betroffene Zeilen in der
derselben Teilmenge
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31
Totale Unimodularität
Erkenntnis:
▪ Koeffizientenmatrix des klassischen TPP ist total unimodular
▪ Simplex-Algorithmus (Modi-Methode) liefert bei ganzzahligen
bi stets ganzzahlige Lösungen
▪ gilt auch für das lineare Zuordnungsproblem (Spezialfall
des TPP)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32
Totale Unimodularität – klassisches
TPP
Die Koeffizientenmatrix A jeder TPP-Instanz erfüllt die Bedingungen von Satz 2 auf F. 31
▪ Elemente von A sind 0 oder 1
▪ jede Spalte enthält genau 2 Elemente ≠ 0
▪ die Zeilen von A lassen sich in 𝐌𝟏 = 𝐀𝟏 , … , 𝐀𝐦 und 𝐌𝟐 = 𝐁𝟏 , … , 𝐁𝐧 unterteilen, so
dass sich in jeder Spalte die 1en in unterschiedlichen Teilmengen 𝐌𝟏 und 𝐌𝟐 befinden
→ wenn alle 𝐛𝐣 ganzzahlig sind, liefert der Simplex-Algorithmus bei TPPs stets
ganzzahlige Lösungen
NB
x11
x12
x13
x14
A1
1
1
1
1
A2
x21
x22
x23
x24
1
1
1
B2
B3
B4
1
1
x34
ai Τbj
a2 = 8
1
1
1
b2 = 5
1
1
1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33
b3 = 8
1
1
a3 = 7
b1 = 6
1
1
1
x33
1
1
1
x32
a1 = 10
A3
B1
x31
1
b4 = 6
Umladeprobleme
Zusätzlich zum TPP existieren Umladeknoten, die weder Einheiten des Gutes
nachfragen noch anbieten, über die jedoch Einheiten transportiert werden können
Darstellung des Transportnetzes als bewerteter, gerichteter Graph G = (V, E, c)
▪ Knotenmenge
V = Va  Vb  Vu = 1,, n (disjunkte Mengen Va , Vb und Vu)
▪ Menge Va von Anbieterknoten
i  Va mit Angebotsmengen a i
▪ Menge Vb von Nachfragerknoten
i  Vb mit Nachfragemengen bi
▪ Menge Vu von Umladeknoten
▪ die Kosten für den Transport einer ME von Knoten i nach j mit
betragen cij GE
zur Vereinfachung:

iVa
a i =  iV bi
b
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34
(i, j)  E
Beispiel: Umladeprobleme
Gesucht: kostenminimaler Transportplan, durch den alle Bedarfe
befriedigt werden
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35
Formulierung des Umladeproblems als
LP
Minimiere F(x) =

(i, j)E
cij x ij
unter den Nebenbedingungen
 a i für alle i  Va

− (h,i)E x hi +  (i, j)E x ij = −bi für alle i  Vb
0
für alle i  Vu

x ij  0
für alle
(i, j)  E
Erläuterung:
xij : Variablen mit der Bedeutung: von Knoten i zu Knoten j zu transportierende Menge
cij : Kosten des Transports einer ME von i zu j
ai : Angebotsmenge eines Angebotsknotens i ∈ Va
bi : Nachfragemenge eines Nachfrageknotens i ∈ Vb
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36
Beispiel: Formulierung eines
Umladeproblems als LP
Va = 1
Vb = 4
Vu = 2,3
Minimiere F(x) = 1x12 + 4x13 + 2x 23 + 6x 24 + 3x 34
unter den Nebenbedingungen
=3
−x 24 − x 34 = −3
=0
− x12
+x 23 + x 24
− x13 − x 23
+x 34 = 0
x ij  0
für alle
x12 + x13
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37
(i, j)  E
Klausurvorbereitung
Domschke, W. und A. Drexl (2015): Einführung in Operations
Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 4
Zur Klausurvorbereitung sind die Aufgaben 4.1 bis 4.5 sowie 4.8
bis 4.10 aus dem Übungsbuch „Übungen und Fallstudien zum
Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß
sehr zu empfehlen.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 38
Einführung in Operations Research
Ganzzahlige und kombinatorische
Optimierung I
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1
Ganzzahliges LP-Modell (GLP-Modell)
Maximiere F(x1 ,, x n ) =

n
j=1
c jx j
unter den Nebenbedingungen

n
a ·x j = b j
für i=1,…,m
j=1 ij
x j  Z 0+ (bzw. für einige j : x j  0 )
für j=1,…,n
Beispiel einer GLP-Instanz:
Maximiere F 𝐱 = x1 + 2x2
(6.4)
unter den Nebenbedingungen
x1 + 3x2 ≤ 7
(6.5)
3x1 + 2x2 ≤ 10
(6.6)
x1 , x 2 Z 0+
(6.7)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2
Ganzzahliges LP-Modell (GLP-Modell)
LP-Relaxation: ersetze (6.7) durch
x1 , x2 ≥ 0
Optimale Lösung der LP-Relaxation:
𝐱 ∗ = (2,29; 1,57) mit F ∗ = 5,43
x
(2,1)
(3,1)
(2,2)
(3,2)
F(x)
4
unzulässig
unzulässig
unzulässig
Optimale Lösung des ganzzahligen Modells (zunächst durch scharfes
Hinsehen): 𝐱 ∗ = 1,2 mit F ∗ = 5
Was nun?
alle zulässigen Lösungen aufzählen (enumerieren) und beste auswählen
→ hoher Rechenaufwand
systematische Aufzählung mittels eines Baums
→ besser strukturiert, Rechenaufwand bleibt
beschränkte Enumeration mit Hilfe von Branch & Bound
→ bei geschickter Vorgehensweise erhebliche Reduktion des Rechenaufwandes
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3
Binäres LP-Modell
Maximiere F(x1 ,, x n ) =

n
j=1
c jx j
unter den Nebenbedingungen
 
n
 
a
·x
 j=1 ij j = b j
 
 
für i=1,…,m
x j 0,1
für j=1,…,n
Beispiel einer Instanz eines binären Optimierungsproblems (KnapsackProblem):
Maximiere F 𝐱 = 3x1 + 4x2 + 2x3 + 3x4
unter den Nebenbedingungen
3x1 + 2x2 + 4x3 + x4 ≤ 9
xk ∈ 0,1
für k = 1, … , 4
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4
Kombinatorische Optimierung
▪ Viele praxisrelevante Probleme sind kombinatorischer Natur
▪ Lösungen entstehen durch Kombinieren von Lösungselementen (z.B.
Knapsack-Problem)
n n n n
 0 1  2  3
n
n
theoretisch bis zu   +   +   +   + ... +   = 2n Lösungen
▪ Anzahl der Lösungen steigt bei wachsender Problemgröße exponentiell
(überproportional)
▪ Kombinatorische Optimierungsmodelle sind in der Regel schwer lösbar
(NP-schwer)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5
Kombinatorische Optimierung –
Zuordnungsprobleme
Klassen kombinatorischer Optimierungsprobleme bzw. -modelle
Zuordnungsprobleme
▪ lineares Zuordnungsproblem: Zuordnung von Arbeiterinnen und
Arbeitern zu Tätigkeiten, so dass Gesamtqualifikation maximal ist;
Zuordnung von Kindern zu Schulen; Zuordnung von Studierenden zu
Seminarplätzen
▪ quadratisches Zuordnungsproblem: Zuordnung von Maschinen zu
Stellplätzen; so dass Summe der Produkte aus Transportmengen und
Entfernungen minimal ist
▪ Stundenplanprobleme: Zuordnung von Lehrerinnen und Lehrern zu
Klassen und Räumen zu bestimmten Zeiten
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6
Kombinatorische Optimierung –
Reihenfolgeprobleme
▪ Traveling Salesman-Probleme: Besuchsreihenfolge für
Handlungsreisenden bei seinen Kundinnen mit minimaler Gesamtstrecke
▪ Briefträger-Probleme (Chinese Postman-Probleme): Jede Straße des
Zustellbezirks muss mindestens einmal durchlaufen werden.
Bestimmung der streckenminimalen Route.
▪ Tourenplanungsprobleme: Ermittlung kosten- oder streckenminimaler
Auslieferungs- oder Einsammlungstouren.
Verschiedenste Problemvarianten:
Möbel- oder Paketauslieferung,
Straßenreinigung, Müllentsorgung,
kombinierte Auslieferung/ Einsammlung
▪ Maschinenbelegungsprobleme: Reihenfolge der Auftragsbearbeitung auf einer
oder mehreren Maschinen.
Ziele: Minimiere die Summe der Terminüberschreitungen oder der Gesamtbearbeitungszeit aller Aufträge usw.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7
Kombinatorische Optimierung –
Gruppierungsprobleme
▪ Fließbandabstimmung: Zusammenfassung und Zuordnung von
Arbeitsvorgängen zu Bandstationen. Minimierung der Anzahl an
Stationen oder der Taktzeit.
▪ Losgrößenplanung: Zusammenfassung periodenbezogener
Nachfragen zu Beschaffungs- oder Fertigungslosen.
Minimierung der Gesamtkosten.
▪ Clusteranalyse: Bildung von Kundengruppen, deren Elemente
einander möglichst ähnlich sind.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8
Kombinatorische Optimierung
Auswahlprobleme
▪ Knapsack-Probleme: Auswahl nützlicher Gegenstände, von
Investitionsalternativen oder anzunehmenden Aufträgen
▪ Set Covering-Probleme: z.B. Auswahl und Positionierung von
Feuerwehren, so dass jede mögliche Brandstelle in höchstens 10
Minuten erreichbar ist
▪ ...
Grundproblem der Kombinatorik:
▪ exponentiell steigende Anzahl an Lösungen bei steigender
Problemgröße
Weitere Beispiele:
▪ Anzahl der möglichen Rundreisen bei n Kunden = n·(n -1)·…·2·1 = n!
▪ ein zusätzlicher Kunde: Erhöhung der Anzahl um Faktor n+1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9
Grundbegriffe der
Komplexitätstheorie
Rechenaufwand eines Algorithmus oder Lösungsverfahrens:
▪ Anzahl der abzuarbeitenden Elementarschritte (Grundrechenarten,
Wertzuweisungen)
▪ nach oben durch ein Polynom beschränkt: polynomialer
Rechenaufwand
▪ nicht durch ein Polynom beschränkbar: exponentieller Rechenaufwand
▪ Schreibweise: Aufwand ist von der (Größen-) Ordnung O(n2) oder
O(2n)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10
Grundbegriffe der
Komplexitätstheorie
Klasse P der polynomial lösbaren Probleme
▪ Rechenaufwand ist auch für schwerste Instanz der Klasse polynomial
▪ Beispiele: LP-Modelle, Kürzeste-Wege-Probleme
Klasse der NP-schweren Probleme
▪ Es ist kein Algorithmus bekannt, der alle Instanzen der Klasse mit
polynomialem Aufwand optimal löst.
▪ Beispiele: Knapsack-, Traveling Salesman-, Tourenplanungsprobleme
Anwendung von Heuristiken bei großen Instanzen NP-schwerer
Probleme
▪ sinnvolle und erfolgversprechende Vorgehensregeln
▪ keine Garantie für das Finden einer optimalen Lösung
▪ zumeist schnelle und leichte Anwendung
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11
Lösungsprinzipien
Exakte Verfahren
(1) Schnittebenenverfahren
(2) Entscheidungsbaumverfahren
(a) Vollständige Enumeration
(b) Unvollständige (begrenzte) Enumeration
(z.B. Branch&Bound-Verfahren, Branch&Cut-Verfahren)
(c) Verfahren der dynamischen Optimierung
(3) Kombinationen aus (1) und (2)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12
Lösungsprinzipien
Heuristiken
(1) Eröffnungsverfahren
(a) Greedy-Verfahren (z.B. Spaltenminimummethode für TPP)
(b) Vorausschauende Verfahren (z.B. Vogel‘sche
Approximationsmethode)
(c) Uninformierte Verfahren (z.B. Nordwesteckenregel)
(2) Lokale Such- bzw. Verbesserungsverfahren
(a) Reine Verbesserungsverfahren (z.B. 2-opt)
(b) Metastrategien (z.B. Tabu Search, Simulated Annealing und
Genetische Algorithmen)
(3) Unvollständig exakte Verfahren
(4) Kombinationen aus (1) – (3)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13
Branch & Bound-Verfahren
Ansatzpunkte
▪ eine optimale Lösung reicht
▪ suboptimale Lösungen sollten – soweit möglich – von der Enumeration
ausgeschlossen werden
Grundprinzip
Branching: Verzweigen des Problems (bzw. Modells) in Teilprobleme
(bzw. -modelle)
→ Enumerationsbaum mit Teilproblemen als Knoten → Dekomposition
Bounding: Beschränkung des Verzweigungsprozesses durch Berechnung von
Schranken für die Zielfunktionswerte und Ausloten von Teilproblemen
Logische Tests: Veränderung der Problemdaten sowie Ausnutzung logischer
Überlegungen zur weiteren Einschränkung des Verzweigungsaufwandes
→ Mindestens eine optimale Lösung muss übrig bleiben!
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14
Branching
▪ zu lösendes (Ausgangs-) Problem 𝐏𝟎
▪ Menge der zulässigen (ganzzahligen) Lösungen eines (Teil-) Problems P: X(P)
▪ Verzweigung bzw. Zerlegung in k Teilprobleme 𝐏𝟏 , 𝐏𝟐 , … , 𝐏𝐤 mit:
X(P0 ) =
k
i =1
X(Pi ) → alle zulässigen Lösungen erhalten
→ keine heuristische Dekomposition
X(Pi )  X(Pj ) =  → (mögl.) keine Doppelerfassung einer Lösung in
mehreren Teilproblemen
→ 𝐏𝟎 kann durch seine Teilprobleme verlustfrei ersetzt werden
jedes Teilproblem kann wieder verzweigt bzw. zerlegt werden (Enumerationsbaum)
Teilprobleme werden immer kleiner und daher auch immer leichter zu lösen
Fortsetzung der Zerlegung, bis optimale Lösung des
Teilproblems (leicht) ermittelbar
optimale Lösung = beste Lösung eines der Teilprobleme
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15
Beispiel
Ausgangsproblem 𝐏𝟎 :
Maximiere F 𝐱 = x1 + 2x2
unter den Nebenbedingungen
x1 + 3x 2  7
3x1 + 2x 2  10
x1 , x 2 Z 0+
X(P0 ) = (0,0),(0,1),(0, 2),(1,0),(1,1),(1, 2),(2,0),(2,1),(3,0)
Verzweigung von P0:
P1 : P0 und zusätzlich x1 ≤ 2;
X P1 =
0,0 , 0,1 , … , 2,0 , 2,1
P2 : P0 und zusätzlich x1 ≥ 3;
X P2 =
3,0
Effekt: nichtganzzahlige Lösungen mit x1 ∈ ]2; 3[ inklusive der optimalen Lösung
der LP-Relaxation werden eliminiert, ganzzahlige Lösungen bleiben alle erhalten
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16
Beispiel
Verzweigung von 𝐏𝟏 :
P3 : P1 und zusätzlich x2 ≤ 1;
X P3 =
0,0 , 0,1 , … , 2,0 , 2,1
P4 : P1 und zusätzlich x2 ≥ 2;
X P4 =
0,2 , (1,2)
Optimale Lösung von P3 :
𝐱 ∗ (P3 ) = (2,1) mit F ∗ P3 = 4
Optimale Lösung von P4 :
𝐱 ∗ (P4 ) = (1,2) mit F ∗ P4 = 5
→ Optimale Lösung von P1 :
𝐱 ∗ (P1 ) = (1,2) mit F ∗ P1 = 5
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17
Beispiel
Verzweigung von 𝐏𝟐 :
P5 : P2 und zusätzlich x2 ≤ 0;
X P5 =
P6 : P2 und zusätzlich x2 ≥ 1;
X P6 =
3,0
Verzweigung von 𝐏𝟓 :
P7 : P5 und zusätzlich x1 ≤ 3;
X P7 =
P8 : P5 und zusätzlich x1 ≥ 4;
X P8 = { }
3,0
→ Optimale Lösung von P7 : 𝐱 ∗ (P7 ) = (3,0) mit F ∗ P7 = 3
→ Optimale Lösung von P5 : 𝐱 ∗ (P5 ) = (3,0) mit F ∗ P5 = 3
→ Optimale Lösung von P2 : 𝐱 ∗ (P2 ) = (3,0) mit F ∗ P2 = 3
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18
Beispiel
Vollständiger B&B-Baum:
Optimale Lösung des Ausgangsproblems 𝐏𝟎 :
𝐱 ∗ = 𝐱 ∗ P0 = 𝐱 ∗ P1 = 𝐱 ∗ P4 = 1,2
mit F ∗ P0 = F ∗ P1 = F ∗ P4 = 5 wegen F ∗ P1 > F ∗ (P2 ) und F ∗ P4 > F ∗ (P3 )
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19
Bounding
Beschränkung des Verzweigungsprozesses durch Schrankenberechnung
und Ausloten
(globale) untere Schranke 𝐅: Mindesthöhe des maximalen
Zielfunktionswertes (bei Maximierungsproblemen)
→ aus jeder beliebigen zulässigen Lösung des Ausgangsproblems P0
→ möglichst groß: F-Wert der besten bekannten Lösung
Relaxation (Vereinfachung) 𝐏𝐢′ von 𝐏𝐢 : Lockerung oder Weglassen von
Nebenbedingungen
→ X(Pi )  X(Pi' )  F*(Pi )  F* (Pi' )
Beispiel: LP-Relaxation → Weglassen der Ganzzahligkeitsbedingungen
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20
Bounding
(lokale) obere Schranke 𝐅ഥ𝐢 : ein nicht überschreitbarer F-Wert von
Teilproblem 𝐏𝐢
▪ Abschätzung durch Optimalwert der Relaxation: 𝐅ഥ𝐢 = 𝐅 ∗ (𝐏𝐢′ )
▪ Schranke möglichst klein: Relaxation möglichst scharf (eng am
unrelaxierten Problem)
▪ aber: Relaxation muss leicht lösbar sein
für jedes Teilproblem 𝐏𝐢 gilt also: 𝐅 ∗ 𝐏𝐢 ≤ 𝐅ഥ𝐢
Ausloten eines Teilproblems 𝐏𝐢 : Eliminieren des Knotens 𝐏𝐢 und des
zugehörigen Teilbaums
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21
Auslotregeln
Fall a:
Es gibt schon etwas Besseres!
Fi  F  F* (Pi )  F
Optimalwert von Pi ist keinesfalls besser als der bislang beste bekannte F-Wert.
Fall b:
Eine bessere Lösung gefunden!
Optimale Lösung der Relaxation ist zulässig (damit auch optimale Lösung von Pi)
und hat höheren Wert als bisher beste Lösung; wird zu neuer bester Lösung.
Fi  F und x *(Pi' )  X(Pi ) ;
neue beste Lösung als 𝐱 ∗ abspeichern und untere Schranke aktualisieren:
Fall c:
Unzulässig!
X(Pi' ) = 
  X(Pi ) =  
Relaxation besitzt keine zulässige Lösung und Pi damit ebenfalls nicht
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22
F := Fi
Beispiel (Ausgangsproblem P0)
X P0 = Menge der ganzzahligen Punkte
anfängliche untere Schranke?
𝐅 = 𝟎 wegen 𝐱 ∗ = (𝟎, 𝟎) ∈ 𝐗(𝐏𝟎 )
(oder z.B. 𝐅 = 𝟑 wegen (1,1) ∈ 𝐗(𝐏𝟎 ))
LP-Relaxation:
𝐗 𝐏𝟎′ = schraffierter Bereich
Gilt 𝐗(𝐏𝟎 ) ⊆ 𝐗(𝐏𝟎′ )?
𝐱 ∗ 𝐏𝟎′ = (𝟐, 𝟐𝟗; 𝟏, 𝟓𝟕)
𝐅ത𝟎 = 𝐅 ∗ 𝐏𝟎′ = 𝟓, 𝟒𝟑
Anwenden der Auslotregeln:
Fall a: 𝐅ത𝟎 ≤ 𝐅 ? nicht erfüllt
Fall b: 𝐅ത𝟎 > 𝐅 und 𝐱 ∗ 𝐏𝟎′ ∈ 𝐗(𝐏𝟎 ) ? nicht erfüllt
Fall c: 𝐗 𝐏𝟎′ =
? nicht erfüllt
→ Verzweigen des Problems in 𝐏𝟏 und 𝐏𝟐
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23
Beispiel
Problem 𝐏𝟏
ഥ
ഥ) ; 𝐅ത𝟏 = 𝐅 ∗ 𝐏𝟏′ = 𝟓, 𝟑
𝐱 ∗ 𝐏𝟏′ = (𝟐; 𝟏, 𝟔
Anwenden der Auslotregeln:
Fall a: 𝐅ത𝟏 ≤ 𝐅 ? nein
Fall b: 𝐅ത𝟏 > 𝐅 und 𝐱 ∗ 𝐏𝟏′ ∈ 𝐗(𝐏𝟏 ) ? nein
Fall c: 𝐗 𝐏𝟏′ =
? nein
→Verzweigen des Problems von 𝐏𝟏 in 𝐏𝟑 und 𝐏𝟒
Problem 𝐏𝟐
𝐱 ∗ 𝐏𝟐′ = (𝟑; 𝟎, 𝟓) ; 𝐅ത𝟐 = 𝐅 ∗ 𝐏𝟐′ = 𝟒
Anwenden der Auslotregeln:
Fall a: 𝐅ത𝟐 ≤ 𝐅 ? nein
Fall b: 𝐅ത𝟐 > 𝐅 und 𝐱 ∗ 𝐏𝟐′ ∈ 𝐗(𝐏𝟐 ) ? nein
Fall c: 𝐗 𝐏𝟐′ =
? nein
→Ablegen von 𝐏𝟐 in der Kandidatenliste; spätere Behandlung
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24
Beispiel
Problem 𝐏𝟑
𝐱 ∗ 𝐏𝟑′ = (𝟐; 𝟏) ; 𝐅ത𝟑 = 𝐅 ∗ 𝐏𝟑′ = 𝟒
Anwenden der Auslotregeln:
Fall a: 𝐅ത𝟑 ≤ 𝐅 ? Nein (4 > 0)
Fall b: 𝐅ത𝟑 > 𝐅 und 𝐱 ∗ 𝐏𝟑′ ∈ 𝐗(𝐏𝟑 ) ? ja 𝐅 ≔ 𝐅ത𝟑 = 𝟒
Fall c: 𝐗 𝐏𝟑′ =
? nein
→ neue beste Lösung 𝐱 ∗ ≔ 𝐱 ∗ 𝐏𝟑′ = 𝟐, 𝟏 mit 𝐅 = 𝟒 ;
Ausloten
Problem 𝐏𝟒
𝐱 ∗ 𝐏𝟒′ = (𝟏; 𝟐) ; 𝐅ത𝟒 = 𝐅 ∗ 𝐏𝟒′ = 𝟓
Anwenden der Auslotregeln:
Fall a: 𝐅ത𝟒 ≤ 𝐅 ? nein
Fall b: 𝐅ത𝟐 > 𝐅 und 𝐱 ∗ 𝐏𝟒′ ∈ 𝐗(𝐏𝟒 ) ? ja 𝐅 ≔ 𝐅ത𝟒 = 𝟓
Fall c: 𝐗 𝐏𝟒′ =
? nein
→ neue beste Lösung 𝐱 ∗ ≔ 𝐱 ∗ 𝐏𝟒′ = 𝟐; 𝟏 mit 𝐅 = 𝟓 ; Ausloten
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25
Beispiel
Problem 𝐏𝟐 (aus Kandidatenliste)
𝐱 ∗ 𝐏𝟐′ = 𝟑; 𝟎, 𝟓 ; 𝐅ത𝟐 = 𝐅 ∗ 𝐏𝟐′ = 𝟒
Anwenden der Auslotregeln:
Fall a: 𝐅ത𝟐 ≤ 𝐅 = 𝟓 ? Ja, wegen 4 < 5
Fall b: 𝐅ത𝟐 > 𝐅 und 𝐱 ∗ 𝐏𝟐′ ∈ 𝐗(𝐏𝟐 ) ? nein
Fall c: 𝐗 𝐏𝟐′ =
? nein
→ Ausloten, da keine verbesserte Lösung erzielbar (höchstens 𝐅𝟐 = 𝟒)
Ende und Ergebnis
alle Knoten voll verzweigt oder ausgelotet
optimale Lösung:
𝐱 ∗ ≔ 𝐱 ∗ 𝐏𝟒′ = 𝟏; 𝟐 mit 𝐅 ∗ = 𝐅 = 𝟓
Erzeugungsreihenfolge: P0, P1, P2, P3, P4
Auslotreihenfolge: P0, P1, P3, P4, P2
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26
Möglicher Ablauf von Branch & Bound
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27
Komponenten von B&B-Verfahren
(1) In der Regel zulässige Lösung durch eine Heuristik bestimmen:
v.a. bei speziellen Problemstellungen (z.B. Knapsack-Problem)
zumeist Prioritätsregelverfahren und Such- oder Verbesserungsverfahren
(2) Bildung von Relaxationen:
LP-Relaxation: Weglassen der Ganzzahligkeitsforderungen
Weglassen von komplizierenden Nebenbedingungen
Lagrange-Relaxation: Weglassen von Nebenbedingungen und Bewertung der NBVerletzung in der Zielfunktion (gewichtet mit Lagrange-Multiplikatoren)
(3) Ausloten von Teilproblemen:
Ausloten anhand von Schranken: Fälle a bis c (s. oben)
Dominanzregeln: direkter Vergleich von Teilproblemen; falls ein Teilproblem Pi mit
Sicherheit eine bessere Lösung liefert bzw. liefern wird als ein Teilproblem Pj , so
wird Pj ausgelotet → Beispiel: später
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28
Komponenten von B&B-Verfahren
(4) Festlegung der Bearbeitungsreihenfolge der Teilprobleme:
Ziel: Optimale (bzw. gute) Lösung(en) möglichst frühzeitig finden → kleiner
Baum
Kandidatenliste: Geordnete Liste der schon gebildeten, aber noch nicht
ausgeloteten Teilprobleme
LIFO-Regel (Last-In-First-Out-Regel, reine Tiefensuche):
▪ Kandidatenliste K als Stapel: Das zuletzt hinzugefügte Teilproblem wird als
erstes verzweigt
▪ Verzweigung eines (Teil-) Problems: Bilden des ersten Teilproblem 𝐏𝐢𝟏
▪ Weiterbearbeitung von 𝐏𝐢𝟏 ; 𝐏𝐢 bleibt in K
▪ nach Abarbeitung des zu 𝐏𝐢𝟏 gehörigen Teilbaums: 𝐏𝐢 steht wieder am
Anfang von K;
Bilden und Weiterbearbeitung des nächsten Teilproblems 𝐏𝐢𝟐 usw.
▪ Eliminierung von 𝐏𝐢 aus K, sobald vollständig verzweigt
▪ Ende, sobald K leer ist und kein aktuelles Problem mehr bearbeitet wird
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29
Komponenten von B&B-Verfahren
MUB-Regel (Maximum Upper Bound-Regel):
▪ beim Verzweigen: Bilden aller Teilprobleme und Berechnung der
lokalen oberen Schranken
▪ Teilprobleme werden nach absteigenden Schranken in K einsortiert
▪ Auswahl des ersten Teilproblems aus der Liste (größte Schranke) zur
Weiterbearbeitung
▪ Ende, sobald K leer ist
Kombinationen und Varianten ...
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30
LIFO-Regel (reine Tiefensuche)
K = < P0 ]
verzweige P0: bilde P1 und verwende es als
aktuelles Problem; K = < P1 , P0 ]
verzweige P1; bilde P2; K = < P2, P1, P0 ]
verzweige P2; bilde P3; K = < P3, P2, P1, P0 ]
lote P3 aus; verzweige P2; bilde P4;
entferne P2; K = < P4, P1, P0 ]
lote P4 aus; verzweige P1; bilde P5;
entferne P1; K = < P5, P0 ]
lote P5 aus; verzweige P0; bilde P6; entferne P0; K = < P6 ]
verzweige P6; bilde P7; K = < P7 , P6 ]
lote P7 aus; verzweige P6; bilde P8; entferne P6; K = < P8 ]
lote P8 aus; K ist leer → Ende
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31
MUB-Regel
K = < P0 ]; (obere Schranken beispielhaft gewählt)
entnimm P0 aus K und verzweige in P1 und P2
berechne Schranken; K = < P1, P2 ]
entnimm P1 aus K und verzweige in P3 und P4
berechne Schranken; K = < P4, P2, P3 ]
entnimm P4 aus K und lote aus; K = < P2, P3 ]
entnimm P2 aus K und verzweige in P5 und P6
berechne Schranken; K = < P3, P5, P6 ]
entnimm P3 aus K und verzweige in P7 und P8
berechne Schranken; K = < P7, P5, P8, P6 ]
entnimm P7 aus K und lote aus; K = < P5, P8, P6 ]
entnimm P5 aus K und lote aus; K = < P8, P6 ]
entnimm P8 aus K und lote aus; K = < P6 ]
entnimm P6 aus K und lote aus; K = < ]
K ist leer → Ende
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32
Komponenten von B&B-Verfahren
(5) Verzweigungsoperation:
Wahl der Verzweigungsvariablen:
▪
▪
▪
▪
Variable
Regel 1:
Regel 2:
Regel 3:
mit nichtganzzahligem Wert in Lösung der LP-Relaxation
Wähle Variable mit dem größten nichtganzzahligen Anteil.
Wähle Variable mit dem größten Abstand zur nächsten ganzen Zahl.
...
Art der Bildung von Teilproblemen:
▪ zwei Teilprobleme: xi ≤ 3 und xi ≥ 4 bzw. bei Binärvariablen: xi = 0 und xi = 1
▪ mehr als zwei Teilprobleme: alle Möglichkeiten einzeln (z.B. xi = 0, xi =
1, … , xi = 5)
Reihenfolge der Teilprobleme (bei LIFO):
▪ erst xi ≤ 3, später xi ≥ 4 oder
▪ erst xi ≥ 4, später xi ≤ 3
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33
Komponenten von B&B-Verfahren
(6) Logische Tests:
Modifikationen an Problemdaten
Zweck: Berechnung schärferer Schranken oder Entdecken von
Widersprüchen
Beispiel: s. unten
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34
Branch & Bound für ein binäres Modell
Beispiel: Knapsackproblem
Maximiere F(x) =

n
j=1
u jx j
unter den Nebenbedingungen

n
j=1
g jx j  G
x j 0,1
für j=1,…,n
Branching:
Auswahl einer Verzweigungsvariablen xj (z.B. nichtganzzahliger Wert in der LPRelaxation)
Bilden von zwei Teilproblemen durch Setzen von xj = 0 bzw. xj = 1 (Reihenfolge je
nach Gestaltung der übrigen Komponenten)
Gute Reihenfolge der Kandidatenwahl z.B. nach der MUB-Regel führt meistens zu
schneller Lösung
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35
Branch & Bound für ein binäres Modell
Bounding:
obere Schranken mit Hilfe der LP-Relaxation; untere Schranke 𝐅 = 𝟎,
besser (höher) durch Anwendung einer Heuristik
Anwenden der üblichen Auslotregeln
vereinfachtes Lösen der LP-Relaxation aufgrund der speziellen
Problemstruktur:
1. Sortieren der Gegenstände nach fallenden relativen Nutzen
𝑢𝑗′
𝑢𝑗
=𝑔
𝑗
2. Einplanen der Gegenstände in dieser Reihenfolge solange Kapazität
ausreicht.
3. Nicht voll passender Gegenstand k wird anteilig aufgenommen, so
dass Gesamtkapazität genau erschöpft ist. Anteilige Berücksichtigung
des Nutzens von k im Schrankenwert.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36
Branch & Bound für ein binäres Modell
Logische Tests:
"Rucksack voll": keiner der noch freien (nicht durch Branching fixierten)
Gegenstände passt mehr hinein → Ausloten (evtl. neue beste Lösung)
"Nur noch einer": es passt nur noch ein Gegenstand in den Rucksack →
Einplanen desjenigen mit dem höchsten Nutzen
"Ganzzahlige Nutzen": Abrunden nichtganzzahliger Schrankenwerte bei
u j  Z + für alle j
"Zu groß": Jeder nicht mehr passende freie Gegenstand j kann verboten
werden (xj = 0) → braucht bei Schrankenberechnung nicht mehr
berücksichtigt zu werden
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37
Zusatzfolien zum Problem des Konsuls
Herbert
[Scholl et al. (1997) Besser beschränkt. c‘t, (10), 336–345]
Ausprägung des B&B-Verfahrens "Kunos erster Versuch":
obere Schranken ja 𝐅ത𝐢 mittels LP-Relaxation; Lösung durch relative
Gewinnsortierung; 𝐅 = 𝟎, besser 𝐅 = 𝟑𝟑 mit den ersten drei Gegenständen
LIFO-Regel
Verzweigen nach Variable mit größtem Gewicht; Einpacken vor Verbieten
Probleminstanz: Höchstgewicht G = 20 kg
Berechnung relativer Nutzen und Sortierung nach abnehmenden Werten
Maske
Barren
Amulett
Schnaps
Zigaretten
Schmetterl.
Gewicht
[kg]
6
7
5
8
5
3
Gewinn
[E]
9
10
14
11
8
8
relativer
Gewinn
1,5
1,43
2,8
1,38
1,6
2,67
Rang
4
5
1
6
3
2
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 38
Ausgangsproblem P0 (Koffer 1)
LP-Relaxation:
Gewicht
Restkapazität
kum. Gewinn
Amulett (x 3 = 1)
5
15
14
Schmetterl. (x 6 = 1)
3
12
22
Zigaretten (x 5 = 1)
5
7
30
Maske (x1 = 1)
6
1
39
7/7=1
0
39+10/7=40,43
Barren (x 2 = 1/ 7)
𝟏
𝐅ത𝟎 = 𝟒𝟎, 𝟒𝟑 mit 𝐱 = (𝟏, , 𝟏, 𝟎, 𝟏, 𝟏)
𝟕
kein Ausloten möglich
Verzweigen nach dem schwersten Gegenstand Schnaps
Zerlegung in P1 (x4=1) und später P? (x4=0)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 39
Teilproblem P1 (Koffer 2): P0 und 𝐱𝟒 = 𝟏
LP-Relaxation:
Gewicht
Restkapazität
kum. Gewinn
Schnaps (x 4 = 1)
8
12
11
Amulett (x 3 = 1)
5
7
25
Schmetterl.(x 6 = 1)
3
4
33
(4*5)/5=4
0
33+4/5*8=39,4
Zigaretten (x 5 = 4 / 5)
𝟒
𝐅ത𝟏 = 𝟑𝟗, 𝟒 mit 𝐱 = (𝟎, 𝟎, 𝟏, 𝟏, , 𝟏)
𝟓
kein Ausloten möglich, da:
a) nicht 𝐅ത𝟏 ≤ 𝐅
b) nicht zulässig;
c) nicht leere Menge
Verzweigen nach zweitschwerstem Gegenstand
→ Barren (x2)
Problem P2 durch x2 = 1, zweites Teilproblem P? später durch x2 = 0
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 40
Teilproblem P2 (Koffer 3): P1 und 𝐱𝟐 = 𝟏
LP-Relaxation:
Gewicht
Restkapazität
kum. Gewinn
Schnaps (x 4 = 1)
8
12
11
Barren (x 2 = 1)
7
5
21
Amulett (x 3 = 1)
5
0
35
Lösung der Relaxation: 𝐅ത𝟐 = 𝟑𝟓 mit 𝐱 = (𝟎, 𝟏, 𝟏, 𝟏, 𝟎, 𝟎)
Ausloten nach Fall b, da zulässig: 𝐅 = 35 und 𝐱 ∗ = (𝟎, 𝟏, 𝟏, 𝟏, 𝟎, 𝟎)
Teilproblem P3 (Koffer 4): P1 und x2 = 0
LP-Relaxation: Lösung wie bei P1
𝟒
𝐅ത𝟑 = 𝟑𝟗, 𝟒 mit 𝐱 = (𝟎, 𝟎, 𝟏, 𝟏, , 𝟏)
𝟓
kein Ausloten möglich, wegen 𝐅ത𝟑 > 𝐅
Verzweigen nach drittschwerstem Gegenstand
→ Maske (x1)
…usw.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 41
B&B für das Knapsack-Problem
Beispiel mit alternativen Verzweigungsregeln
Obere Schranken 𝐅ത𝐢 mittels LP-Relaxation; Lösung durch Sortierung nach
abnehmenden relativen Nutzenwerten
𝐅 = 𝟎, besser z.B. 𝐅 = 𝟑𝟑 wie oben
LIFO-Regel
Verzweigen nach dem Gegenstand, der bei der LP-Relaxation gerade
nicht mehr passt; Verbieten vor Einpacken
Probleminstanz: Höchstgewicht G = 20 kg
Daten der Probleminstanz:
Maske
Barren
Amulett
Schnaps
Zigaretten
Schmetterl.
Gewicht [kg]
6
7
5
8
5
3
Gewinn [E]
9
10
14
11
8
8
relativer
Gewinn
1,5
1,43
2,8
1,38
1,6
2,67
Rang
4
5
1
6
3
2
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 42
B&B für das Knapsack-Problem
Beispiel mit alternativen Verzweigungsregeln
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 43
Klausurvorbereitung
Domschke, W. und A. Drexl (2015): Einführung in Operations
Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 6
Zur Klausurvorbereitung sind die Aufgaben 6.1, 6.2 6.9 und 6.12
aus dem Übungsbuch „Übungen und Fallstudien zum Operations
Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu
empfehlen.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 44
Einführung in Operations Research
Ganzzahlige und kombinatorische
Optimierung II
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1
Branch & Cut
Von einer Branch & Cut - Vorgehensweise spricht man, wenn lokale untere oder
obere Schranken (erhalten durch Relaxationsbildung und -lösung) durch das
Hinzufügen von Schnittebenen (Cuts) verbessert werden.
Cuts verbieten nicht-ganzzahlige (zulässige) Lösungen von Relaxationen.
Beispiel einer Schnittebene beim Knapsack-Problem:
Besitzt eine LP-Relaxation z.B. die optimale Lösung
x1 = x2 = x3 = 1, x4 = 1/3 und xj = 0 für alle sonstigen Güter, so ist
x1 + x2 + x3 + x4  3 eine Schnittebene, welche die obige nicht-ganzzahlige
Lösung verbietet.
Diese Art von Schnittebenen nennt man Cover Cuts.
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2
Cover Cuts
Sei N={1,…,n} die Menge der Indizes der Variablen eines binären KnapsackProblems. Eine Indexmenge C  N nennt man Cover, wenn
a
jC
j
b
gilt. Ein Cover ist minimal, wenn für jedes j  C gilt, dass C \ {j} kein Cover
darstellt.
Bezeichnen wir mit x den Vektor der Binärvariablen und ist C ein Cover, so stellt
x
jC
j
 C −1
eine gültige Ungleichung (Schnittebene) dar. Diese wird als Cover-Ungleichung
(Cover-Cut) bezeichnet. Sie besagt, dass nicht alle Variablen des Cover
gleichzeitig den Wert 1 annehmen können.
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3
Beispiel Branch-and-Cut
Maximiere
u.d.N.
▪
F 𝐱 = 10x1 + 9x2 + 12x3 + 5x4 + 9x5
5x1 + 6x2 + 12x3 + 10x4 + 12x5 ≤ 25
xk ∈ 0,1
für 𝑘 = 1, … , 5
1
Lösung der LP-Relaxation: x = (1, 1, 1, 0, 6) mit 𝐅ത𝟎 = 𝟑𝟐, 𝟓
Ableitung des Cover-Cuts (weil 5 + 6 + 12 + 12 > 25):
x1 + x 2 + x 3 + x 5 ≤ 3
▪
1
Erneute Lösung der LP-Relaxation: x = (1, 1, 1, 5 , 0) mit 𝐅ത𝟎 = 𝟑𝟐
Ableitung des Cover-Cuts (weil 5 + 6 + 12 + 10 > 25):
x1 + x 2 + x 3 + x 4 ≤ 3
▪
7
1 1
Erneute Lösung der LP-Relaxation: x = (1, 8 , 1, 8 , 8) mit 𝐅ത𝟎 = 𝟑𝟏, 𝟔𝟐𝟓
Abrunden, da Zielfunktionskoeffizienten ganzzahlig → 𝐅ത𝟎 = 𝟑𝟏
Wie lautet die optimale Lösung?
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4
Traveling Salesman-Problem (TSP)
▪ Bestimmung der Rundreise mit minimaler Dauer bzw. Strecke
▪ Start und Ziel im Knoten 1
▪ jeder andere Knoten wird genau einmal besucht
▪ cij Entfernung von i nach j (hier: asymmetrisch, kann auch symmetrisch sein)
cij
1
2
3
4
5
6
1
∞
4
3
4
4
7
2
5
∞
2
6
3
5
3
3
3
∞
4
1
3
4
5
6
5
∞
5
5
5
4
3
1
4
∞
2
6
6
5
3
4
3
∞
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5
Traveling Salesman-Problem (TSP)
Modellformulierung:
▪ Entscheidungsvariablen:
1 falls Knoten j direkt nach Knoten i besucht wird
x ij = 
0 sonst
für Bsp:
x12 = x 23 = x 34 = x 45 = x 56 = x 61 = 1; x ij = 0 sonst
▪ Zielfunktion:
Minimiere
F(x) =  i=1  j=1 cij x ij
n
n
▪ Nebenbedingungen:


n
x ij = 1
für j = 1,..., n
x =1
j=1 ij
für i = 1,..., n
i =1
n
[Bedingungen zur Vermeidung von Kurzzyklen]
x ij 0,1
für i, j = 1,..., n
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6
cij
1
2
3
4
5
6
1
∞
4
3
4
4
7
2
5
∞
2
6
3
5
3
3
3
∞
4
1
3
4
5
6
5
∞
5
5
5
4
3
1
4
∞
2
6
6
5
3
4
3
∞
Beispiel einer Kurzzyklusbedingung
Lösung, welches alle anderen Bedingungen erfüllt:
Vermeidung des Kurzzyklus [1,2,6,1]:
x12 + x 26 + x 61  2
Vermeidung des Kurzzyklus [5,3,4,5]:
x 53 + x 34 + x 45  2
 Idee identisch zu Cover Cuts
 große Anzahl solcher Bedingungen verhindern alle Kurzzyklen
Anmerkung: Formulierung für asymmetrisches TSP (für symmetrisches
TSP s. unten)
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7
Das Traveling Salesman-Problem
(symmetrisch & asymmetrisch)
Minimiere F 𝐱 = σni=1 σnj=1 cij xij
unter den Nebenbedingungen
σni=1 xij = 1
für j = 1, … , n
σnj=1 xij = 1
für i = 1, … , n
σi∈Q σj∈Q xij ≤ Q − 1
für Q ⊂ 1, … , n , 2 ≤ Q ≤
xij ∈ 0,1
für i, j = 1, … , n
n
2
 Formulierung nach Dantzig–Fulkerson–Johnson
 Es gibt noch weitere Fomulierungen z.B. mit den Miller–Tucker–Zemlin Nebenbedingungen
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8
TSP-Lösungen
Größte exakt gelöste Instanzen für das TSP (Optimalität bewiesen):
1954: 49 Städte
1971: 64 Städte
1975: 100 Städte
1977: 120 Städte
1980: 318 Städte
1987: 2.392 Städte
1994: 7.397 Städte
1998: 13.509 Städte
2001: 15.112 Städte (Deutschland)
2004: 24.978 Städte (Schweden)
2006: 85.900 Städte (eigentlich Chip-Design)
Aber: Schon in den 70er Jahren entwickelten Lin und Kernighan eine Heuristik,
die Instanzen mit hunderttausenden von Städten in wenigen Sekunden fast
optimal lösen kann (Abweichung vom Optimum < 0,1%).
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9
Deutschlandrundreise
aus Gritzmann und Brandenberg (2003, S.
351), mit 15.112 Orten
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10
Branch & Bound-Verfahren für
symmetrische TSP (mgl. Variante)
▪ bewerteter, schlichter, zusammenhängender, ungerichteter Graph
G = [V, E, c] mit n Knoten
▪ mathematische Formulierung (Folie 9)
▪ Anwendung der MLB-Regel zur Auswahl von Problemen aus der
Kandidatenliste
▪ in P0: freie Variablen xij, die die Werte 0 oder 1 annehmen dürfen
▪ in P1, P2, ...: z.T. fixierte Variablen xij mit Wert 1
zu 1 fixierte Variable xij wird als einbezogene Kante [i,j] bezeichnet
Relaxation, Ermittlung unterer Schranken:
▪ Ermittlung unterer Schranken Fv für die Probleme (v = 0,1, …) mit dem
Kruskal-Algorithmus (s. Vorlesung „Graphentheorie“)
▪ Berücksichtigung von Variablenfixierungen
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11
Symmetrisches TSP: Beispiel
aus: Thonemann, U. (2010): Operations Management:
Konzepte, Methoden und Anwendungen, Kap. 7.3
Von/Nach
Do
E
Köln
Dortmund
Düsseldorf
Essen
Frankfurt
Köln
∞
92
40
72
191
Dortmund
92
∞
68
36
222
Düsseldorf
40
68
∞
36
228
Essen
72
36
36
∞
254
191
222
228
254
∞
Frankfurt
Dü
K
F
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12
Lösungsbaum (Auszug)
Startknoten
K
1. Ziel
Dü
E
Do
2. Ziel
Dü
Do
F
3. Ziel
Dü
4. Ziel
F
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13
F
F
Initiale Upper Bound per Verfahren
des nächsten Nachbarn
E
36
36
Do
68
Dü
92
40
72
228
222
254
K
191
F
UB= 40 + 36 + 36 + 222 + 191 = 525
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14
Ermittlung einer Lower Bound:
Grundlagen
Kreis: Eine Kette (=direkte Kantenfolge)
w= [j, j+1,…,g] mit j=g
Do
E
Dü
K
Spannender Baum: Jeder Knoten ist durch eine
Kante verbunden, ohne dass ein Kreis entsteht.
(minimaler Spannbaum = derjenige aller
Spannbäume mit der geringsten Summe der
Kantengewichte)
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15
E
Do
Dü
F
K
Zusammenhang zwischen minimaler
Tour und minimalem Spannbaum
1. Jede Tour kann in einen Spannbaum
umgewandelt werden, indem eine beliebige
Kante entfernt wird
Do
E
Dü
F
K
2. Der minimale Spannbaum ist höchstens so
lang wie jeder aus der kürzesten Tour zu
gewinnende Spannbaum
Do
E
Dü
F
K
3. Lower Bound ergibt sich aus der Länge des
minimalen Spannbaums zuzüglich der Länge der
kleinsten im Spannbaum nicht enthaltenen
Kante
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16
E
Do
Dü
F
K
Wiederholung: Bestimmung eines
minimalen spannenden Baumes (MSB)
Der Kruskal-Algorithmus
Der Kruskal-Algorithmus
▪ Voraussetzung: bewerteter, zusammenhängender, schlingenfreier, ungerichteter Graph 𝐺 = [𝑉, 𝐸, 𝑐] mit n Knoten und m Kanten
▪ 𝐸ത ist die zu bestimmende Kantenmenge des gesuchten MSB 𝑇 = 𝑉, 𝐸ത
Start:
Sortiere die Kanten 𝑘𝑖 von G in einer Reihenfolge 𝑘1 , 𝑘2 , … , 𝑘𝑚 mit monoton
steigenden 𝑐(𝑘𝑖 )
Setze 𝐸ത ≔ Ø und 𝑇 ≔ 𝑉, 𝐸ത (T zu Beginn: Teilgraph von G ohne Kanten)
Iteration µ= 1,2,...,m:
▪ Wähle die Kante 𝑘µ aus
▪ Füge 𝑘µ zu 𝐸ത hinzu, wenn die Aufnahme der Kante in 𝑇 ≔ 𝑉, 𝐸ത keinen
Kreis erzeugt 𝐸ത ≔ 𝐸ത ∪ 𝑘µ
Abbruch: sobald 𝐸ത genau n–1 Kanten enthält → T ist zusammenhängend
Ergebnis: 𝑇 ≔ 𝑉, 𝐸ത ist ein minimaler spannender Baum von G;
Summe seiner Kantenbewertungen 𝑐 𝑇 = σ𝑘∈𝐸 𝑐(𝑘)
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17
Bestimmung der Lower Bound von
Teilproblemen
1. Bereits fixierte Kanten und die
damit inzidenten Knoten
vorübergehend aus dem Graphen
entfernen
2. Minimalen Spannbaum des
verbliebenen Graphen bestimmen
3. Beide Teilgraphen zusammenfügen,
indem sowohl dem Start- als auch
dem Endknoten der fixierten Tour
die Kanten mit der geringsten
Länge zu einem Knoten des
minimalen Spannbaums
hinzugefügt wird
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18
E
Do
Dü
K
F
Bestimmung der Lower Bound des
Wurzelknotens im Beispiel
E
36
36
Do
68
Dü
92
40
72
228
222
254
K
191
F
LB= 36 + 36 + 40 + 191+68 = 371
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19
Lösungsbaum mit Lower Bounds
(Auszug) im Beispiel
UB: 525
K
1: 371
3: 406
2: 432
Do
Dü
E
F
4: 438
7: 426
6: 444
13: 563
E
Do
F
14: 630
E
Do
F
F
11: 525
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20
8: 624
12: 618
5: 525
Lower Bound für Knoten 2 im Beispiel
E
36
36
Do
68
Dü
92
40
72
228
222
254
K
191
F
LB= 36 + 36 + 40 + 92 + 228 = 432
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21
Heuristiken am Beispiel des TSP
Eröffnungsverfahren:
Ermittlung einer ersten zulässigen Lösung
Verbesserungsverfahren:
sukzessive Veränderung der Lösung mit dem Ziel, verbesserte
Lösungen zu erzielen. Häufig in Kombination mit modernen
Metastrategien wie Tabu Search und Sintflut-Algorithmus zur
Überwindung der "Falle" der lokalen Optimalität
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22
Eröffnungsverfahren
Verfahren des nächsten Nachbarn (oder des besten Nachfolgers, engl. Nearest Neighbor)
▪ Greedy-Verfahren: in jedem Schritt möglichst gute Ergänzung
der Lösung vornehmen; keine Vorausschau
▪ Beginn bei Startknoten 1
▪ in jeder Iteration: Erweiterung um denjenigen Knoten, dessen
Entfernung vom derzeit letzten Knoten der Rundreise
möglichst klein ist
▪ Ende, sobald alle Knoten in der Rundreise enthalten sind
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23
Beispiel
cij
1
2
3
4
5
6
1
∞
4
3
4
4
6
2
4
∞
2
6
3
5
3
3
2
∞
4
1
3
4
4
6
4
∞
5
4
5
4
3
1
5
-
2
6
6
5
3
4
2
∞
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24
Eröffnungsverfahren
Verfahren der sukzessiven Einbeziehung (Cheapest Insertion)
▪ Start: Kurzzyklus [t0, t1, t0]; t 0 und t1 möglichst weit auseinander
▪ Iteration (i=2,...,n–1): Einfügen eines zusätzlichen Knotens an
der für ihn günstigsten Stelle (geringste Verlängerung der
Rundreise).
 Auswahl des einzufügenden Knotens: Wähle jeweils den noch nicht
in der Rundreise befindlichen Knoten, dessen kürzeste Entfernung
zu einem Knoten der Rundreise am größten ist.
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25
Beispiel
Begründung für Wahl von t 0 und t1 und des einzufügenden Knotens:
 möglichst frühzeitig die grundlegende Struktur der Rundreise festlegen
Beispiel:
cij
1
2
3
4
5
6
1
∞
4
3
4
4
6
t 0 = 1; t1 = 6
2
4
∞
2
6
3
5
r = [1, 6,1]
3
3
2
∞
4
1
3
4
4
6
4
∞
5
4
5
4
3
1
5
∞
2
6
6
5
3
4
2
∞
4
3
4
4
6
min
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26
Startzyklus:
Beispiel
Iteration 2: Welcher Knoten hat die größte Entfernung zur Rundreise?
Knoten 2 oder 4: z.B. Wahl von t2=2; r=[1,2,6,1]
Einfügeposition noch beliebig wegen Symmetrie
neue Länge der Rundreise: c(r)=12–6+5+4=15
cij
1
2
3
4
5
6
1
∞
4
3
4
4
6
2
4
∞
2
6
3
5
3
3
2
∞
4
1
3
4
4
6
4
∞
5
4
5
4
3
1
5
∞
2
6
6
5
3
4
2
∞
4
3
4
2
min
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27
Beispiel
Iteration 3:
Auswahl von Knoten t3=4
Bestimmung der Einfügeposition:
r = [1, 4, 2, 6, 1]: c(r) = 15 - 4 + 4 + 6 = 21
r = [1, 2, 4, 6, 1]: c(r) = 15 - 5 + 6 + 4 = 20
r = [1, 2, 6, 4, 1]: c(r) = 15 - 6 + 4 + 4 = 17 *
→ neue Rundreise ist r = [1, 2, 6, 4, 1] mit c(r)=17
cij
1
2
3
4
5
1
3
4
4
2
2
6
3
6
3
4
2
min
2
4
2
6
…
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28
Beispiel
Iteration 4:
Auswahl von Knoten t 4 = 3
Bestimmung der Einfügeposition:
r = [1, 3, 2, 6, 4, 1]: c(r) = 17 - 4 + 3 + 2 = 18
r = [1, 2, 3, 6, 4, 1]: c(r) = 17 - 5 + 2 + 3 = 17 *
r = [1, 2, 6, 3, 4, 1]: c(r) = 17 - 4 + 3 + 4 = 20
r = [1, 2, 6, 4, 3, 1]: c(r) = 17 - 4 + 4 + 3 = 20
→ neue Rundreise ist r = [1, 2, 3, 6, 4, 1] mit c(r)=17
cij
1
2
3
4
5
1
3
4
2
2
3
4
4
5
6
3
2
min
2
2
6
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29
Beispiel
Iteration 5:
Auswahl von Knoten t 5 = 5
Bestimmung der Einfügeposition:
r = [1, 5, 2, 3, 6, 4, 1]: c(r) = 17 - 4 + 4 + 3 = 20
r = [1, 2, 5, 3, 6, 4, 1]: c(r) = 17 - 2 + 3 + 1 = 19
r = [1, 2, 3, 5, 6, 4, 1]: c(r) = 17 - 3 + 1 + 2 = 17 *
cij
2
3
4
5
1
4
2
3
3
1
4
5
6
2
min
1
r = [1, 2, 3, 6, 5, 4, 1]: c(r) = 17 - 4 + 2 + 5 = 20
r = [1, 2, 3, 6, 4, 5, 1]: c(r) = 17 - 4 + 5 + 4 = 22
→ neue Rundreise ist r = [1, 2, 3, 5, 6, 4, 1] mit c(r)=17
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30
1
6
Verbesserungsverfahren
▪ in der Regel Tauschverfahren
▪ Start mit zulässiger Lösung
▪ sukzessive Veränderung der Lösung durch Vertauschen von Lösungselementen
2-opt-Verfahren für das TSP
▪ Start: eine zulässige Rundreise
▪ in jeder Iteration: systematische Untersuchung aller Möglichkeiten der
Vertauschung von zwei Kanten innerhalb der Rundreise mit zwei nicht
enthaltenen Kanten  Realisierung der besten Tauschmöglichkeit
▪ Abbruch, falls keine Vertauschung zu einer Verbesserung führt
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31
Beispiel
cij
1
2
3
4
5
6
1
∞
4
3
4
4
6
2
4
∞
2
6
3
5
3
3
2
∞
4
1
3
4
4
6
4
∞
5
4
5
4
3
1
5
∞
2
6
6
5
3
4
2
∞
Start: z.B. mit der Lösung des "besten Nachbarn"
Tauschmöglichkeiten:
(1,3) und (5,6) gegen (1,5) und (3,6): c(r) = 20 - 3 - 2 + 4 + 3 = 22
(1,3) und (6,4) gegen (1,6) und (3,4): c(r) = 20 - 3 - 4 + 6 + 4 = 23
(1,3) und (4,2) gegen (1,4) und (3,2): c(r) = 20 - 3 - 6 + 4 + 2 = 17 *
...
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32
Klausurvorbereitung
Domschke, W. und A. Drexl (2015): Einführung in Operations
Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 6
Zur Klausurvorbereitung sind die Aufgaben 6.5 und 6.6 a)–c) aus
dem Übungsbuch „Übungen und Fallstudien zum Operations
Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu
empfehlen
Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33
Einführung in Operations Research
Dynamische Optimierung
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1
Einführung in die Dynamische
Optimierung (DO)
Anwendungsbedingungen
▪ Entscheidungsprobleme, bei denen eine Folge von (Teil-) Entscheidungen
zu treffen ist
→ Einteilung des Problems in Entscheidungsstufen
▪ Entscheidungen sind nur von vorgelagerten Entscheidungen abhängig
(einseitige Kopplung)
→ Anwendungsbedingungen einer Sukzessivplanung
▪ typisch und namensgebend: zeitliche Aufeinanderfolge von Entscheidungen:
Stufen = Perioden → mehrperiodiges bzw. dynamisches Entscheidungsmodell
▪ Entscheidungen überführen das Problem/ System von einem Zustand in einen
anderen
▪ Kenntnis des aktuellen Systemzustands sowie der aktuellen
Rahmenbedingungen ausreichend zur Festlegung der nachfolgenden
Entscheidungen → vergangene Entwicklung unwichtig
▪ Erfolgsbeiträge der Teilentscheidungen sind separat ermittelbar (additiv oder
multiplikativ verknüpft)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2
Einführung in die Dynamische
Optimierung (DO)
Beispiele realer Probleme mit DO-Struktur
▪mehrperiodige Bestellmengen- und Losgrößenprobleme
▪Gestaltung mehrstufiger Distributionsnetze
▪Routenprobleme
▪Personaleinsatzplanung über mehrere Perioden
▪mehrperiodige Investitionsplanung
▪Zuordnung von Arbeitsgängen zu Stationen eines Fließbandes
▪Ressourcenaufteilung auf mehrere Projekte, Aufträge, Produkte, etc
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3
Das Postkutschen-Problem
Problemstellung:
Wyatt Earp möchte anno 1865 mit
der Postkutsche von Virginia nach
New Mexico reisen. Die Zeiten sind
unsicher, seit Billy the Kid und
andere Desperados auf Raubzüge
gehen. Daher möchte er die
sicherste Reiseroute finden. Es
bestehen die in der Karte
eingezeichneten
Postkutschenverbindungen; jede
der möglichen Routen enthält 4
Teilstrecken (Stufen,
Tagesfahrten).
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4
Das Postkutschen-Problem
Zielsetzung:
▪ Maß für die Sicherheit einer Teilstrecke:
Höhe der Versicherungsprämie, die
Reisenden von Lloyds angeboten wird
▪ Je geringer die Prämie ist, desto höher
wird die Sicherheit der Strecke durch
Lloyds eingeschätzt.
▪ Ersatzziel für die Maximierung der
Sicherheit: Minimiere die
Gesamtversicherungsprämie
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5
Wyatt Earp circa 1869, at about age 21 (public domain)
Das Postkutschen-Problem
Daten:
Versicherungsprämie cij für Tagesfahrt von Staat i nach Staat j
1
2
3
4
2
5
3
5
6
7
2
8
4
6
3
3
2
4
4
2
10
8
9
5
1
4
8
3
4
6
6
3
9
4
5
7
3
3
Lösung mittels Greedy-Heuristik:
"Immer der günstigsten Police nach!"
Route: 1 → 2 → 6 → 9 → 10 mit Gesamtprämie:
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6
2+4+3+4=13$
Das Postkutschen-Problem
Daten:
Versicherungsprämie cij für Tagesfahrt von Staat i nach Staat j
1
2
3
4
2
5
3
5
6
7
2
8
4
6
3
3
2
4
4
2
10
8
9
5
1
4
8
3
4
6
6
3
9
4
5
7
3
3
Lösung mittels DO:
▪ Rückwärtsschreitend → Rückwärtsrekursion
▪ Beginn mit einstufigem Teilproblem (Übergang von vorletzter Stufe zum
Endzustand)
→ einstufige Teilpolitik von jedem Zustand der vorletzten Stufe aus
▪ sukzessive Erweiterung des Problems und der optimalen Teilpolitiken um eine
frühere Stufe
▪ Abbruch, wenn Startzustand erreicht
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7
Das Postkutschen-Problem
Einige Bezeichnungsweisen:
▪ Stufe k = 1,..., n: k-te Teilstrecke der Route; Stufe 0 enthält nur den
Startknoten 𝑧0 = 1 (Virginia)
▪ Auswahl der k-ten Tagesstrecke → Variable xk
Übergang:
Entscheidung 𝑥4
▪ Darstellung der Gesamtroute: z0 = 1 → 𝑧1 → z2 → z3 → z4 = 10
▪ Versicherungsprämien der Strecke bei Wahl von xk und Start in zk−1 ∶
fk zk−1 , xk = czk−1 ,j (mit 𝑗 als Ziel der Tagesstrecke 𝑥𝑘 )
▪ minimale Versicherungsprämie einer Route von Staat zk nach zn (New
Mexico): Fk∗ zk
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8
Das Postkutschen-Problem
Zahlenbeispiel:
Stufe 4:
Reise fast beendet, nur noch eine
Teilstrecke
Wyatt ist entweder in Staat 8 oder 9
optimale Ergänzung d. jeweiligen
Strecken:
z3
x4
z4
f4 (z3 ,x 4 )
F3* (z3 )
8
(8,10)
10
3
3
9
(9,10)
10
4
4
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9
Das Postkutschen-Problem
Stufe 3:
Wyatt ist in Staat z2 = 5, 6 oder 7
optimale Ergänzung der jeweiligen Strecken:
für jedes z2 ist eine Weiterfahrt x3 zu finden, so dass gilt:
F2* (z2 ) = minf3 (z2 ,x3 ) + F3* (z3 ) für alle möglichen x3 
von jedem z3 aus ist die beste Weiterfahrmöglichkeit schon
bekannt → Länge der billigsten Strecke F3∗ z3
z2
5
6
7
*
f3 (z2 ,x 3 ) + F3* (z3 ) F2 (z2 )
x3
z3
f3 (z2 , x 3 )
F3* (z3 )
(5,8)
8
1
3
4
(5,9)
9
4
4
8
(6,8)
8
6
3
9
(6,9)
9
3
4
7
(7,8)
8
3
3
6
(7,9)
9
3
4
7
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10
4
7
6
Das Postkutschen-Problem
Stufe 2:
Wyatt ist in Staat z1 = 2, 3 oder 4
optimale Ergänzung der jeweiligen Strecken:
für jedes z1 ist eine Weiterfahrt x2 zu finden, so
dass gilt:
F1* (z1 ) = minf2 (z1 ,x2 ) + F2* (z2 ) für alle möglichen x2 
von jedem z2 aus ist beste Fortsetzung mit
Länge F2∗ z2 bekannt
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11
Das Postkutschen-Problem
Stufe 2:
z1
2
3
4
x2
z2
f2 (z1 ,x2 )
F2* (z2 )
f2 (z1 ,x2 ) + F2* (z2 )
(2,5)
5
8
4
12
(2,6)
6
4
7
11
(2,7)
7
6
6
12
(3,5)
5
3
4
7
(3,6)
6
2
7
9
(3,7)
7
4
6
10
(4,5)
5
4
4
8
(4,6)
6
2
7
9
(4,7)
7
5
6
11
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12
F1* (z1 )
11
7
8
Das Postkutschen-Problem
Stufe 1:
Wyatt ist in Staat z0 = 1 (Startstaat Virginia)
optimale Ergänzung der Strecke von z0 aus → Finde x1 mit:
F0* (z0 ) = minf1 (z0 ,x1 ) + F1* (z1 ) für alle x1 
von jedem z1 aus ist beste Fortsetzung mit Länge F1∗ z1 bekannt
z0
1
x1
z1
f1 (z0 ,x1 )
F1* (z1 )
(1,2)
2
2
11
13
(1,3)
3
5
7
12
(1,4)
4
3
8
11
f1 (z0 ,x1 ) + F1* (z1 ) F0* (z0 )
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13
11
Das Postkutschen-Problem
Optimale Lösung:
minimale Gesamtprämie: F0∗ z0 = 11
optimale Route:
stufenweise optimale Fortsetzung ermitteln
1 → 4 → 5 → 8 → 10
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14
Ein allgemeines Modell der DO
▪ keine Standardformulierung vorhanden
▪ DO ist allgemeines Prinzip, das problemspezifisch ausgestaltet werden
muss
▪ Probleme müssen sich auf folgende allgemeine Art modellieren lassen
Minimiere
F(x1 ,… ,xn ) =  k=1 fk (zk-1 ,xk )
n
unter den Nebenbedingungen
zk = tk (zk-1 ,xk )
für k=1,…,n
z0 = α, zn = ω
zk  Zk
für k=1,…,n
xk  Xk (zk-1 )
für k=1,…,n
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15
Erläuterungen

n
n
Anzahl der Stufen
Minimiere F(x1 ,… ,xn ) =
zk
Zustandsvariable
(Zustand des Problems
in Stufe k = 1,...,n)
unter den Nebenbedingungen
zk = tk (zk-1 ,xk )
f (zk-1 ,xk )
k=1 k
für k=1,…,n
z0 = α
Anfangszustand
z0 = α, zn = ω
zn = ω
Endzustand
zk  Zk
für k=1,…,n
Zk
Zustandsmenge in Stufe k
xk  Xk (zk-1 )
für k=1,…,n
xk
Entscheidungsvariable →
Teilentscheidung in Stufe k (Übergang von k-1 nach k)
X k zk−1
Entscheidungsmenge → Menge aller Entscheidungen, um von
einem Vorgängerzustand zk−1 zu einem Zustand zk überzugehen
t k (zk−1 , xk )
Transformationsfunktion → Zielzustand zk bei Entscheidung xk
in 𝑧𝑘−1
fk zk−1 , xk
Stufenzielfunktion → Zielbeitrag der Entscheidung xk in Zustand
zk−1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16
Im Postkutschen-Problem
n = 4 Stufen; Anfangszustand z0 = α = 1 (VA); Endzustand zn = ω = 10 (NM)
zk : Aufenthaltsort in Stufe k; Z1 = 2,3,4 ; Z2 = 5,6,7 ; Z3 = 8,9 ; Z4 = {10}
xk : Teilstrecke auf Stufe k; z.B. X1 z0 =
1,2 , 1,3 , 1,4
zk = t k (zk−1 , xk ) : Variable bestimmt gleichzeitig Endzustand
fk zk−1 , xk = czk−1 ,j : Versicherungsprämie bei Reisestrecke zk−1 → j
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17
Variationen des allgemeinen DOModells
▪ Maximierung statt Minimierung
▪ Multiplikative Verknüpfung der Stufenzielfunktionen:
Minimiere
F(x1 … ,xn ) =  k=1 fk (zk-1 ,xk )
n
▪ kontinuierliche Variablen xk
→ Entscheidungsmengen und Zustandsmengen unendlich (auf jeder Stufe ein
„kleineres“ Optimierungsmodell anstelle der Tabellenform)
▪ unbekannter Anfangszustand: gewünschter Zielzustand des Systems/ Problems
bekannt, dafür benötigte Voraussetzungen sind unbekannt, d.h. zu ermitteln
(z.B. Gesamtbudget)
→ Rückwärtsrekursion zwingend
▪ unbekannter Endzustand: "So weit wie mit begrenztem Reisebudget möglich!"
→ Vorwärtsrekursion zwingend
▪ mehrwertige Zustände: Zustandsvektoren zk
z.B. Restkapazitäten von 3 Ressourcen: → zk = R1 , R 2 , R 3
▪ stochastische Daten → beeinflussen v.a. die Transformationsfunktion
z.B. stochastische Nachfragen, die den Lagerbestand der folgenden Periode
beeinflussen
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18
Politik und Bellmansches
Optimalitätsprinzip
(Teil-) Politik:
Folge xh , xh+1 , … , xk von Entscheidungen, die das System von Zustand zh−1 ∈ Zh−1
in zk ∈ Zk überführt
Optimale (Teil-) Politik:
∗
Folge xh∗ , xh+1
, … , xk∗ , die von zh−1 ∈ Zh−1 in zk ∈ Zk überführt und σkj=h fj zj−1 , xj
minimiert (bei Minimierungsproblem)
Bellmansches Optimalitätsprinzip:
Zerlegt man eine optimale Gesamtpolitik 𝐱 ∗ = (x1∗ , x2∗ , … , xn∗ ), die z0 = α in zn = ω
∗
∗
überführt, in zwei Teilpolitiken 𝐱 ′∗ = (x1∗ , x2∗ , … , xk−1
) und 𝐱 ′′∗ = (xk∗ , x𝑘+1
, … , xn∗ ) mit
"Zwischenzustand“ zk−1 , so gilt:
𝐱 ′∗
ist eine optimale Teilpolitik für das Teilproblem z0 → zk−1
𝐱 ′′∗
ist eine optimale Teilpolitik für das Teilproblem 𝑧𝑘−1 → 𝑧𝑛
Erkenntnis: optimale Politik lässt sich durch stufenweise Ermittlung optimaler
Teilpolitiken generieren → Rückwärtsrekursion
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19
Rückwärtsrekursion
(Kochrezept)
Bezeichnungen:
Ausgangsproblem P z0 = α : Bestimmung einer optimalen Gesamtpolitik 𝐱 ∗ z0
für z0 → zn
Teilproblem P(zk ): Bestimmung einer optimalen Teilpolitik 𝐱 ∗ zk für zk → zn
k = 1, … , n − 1
Start:
Löse jedes einstufige Teilproblem P(zn−1 ) für alle z𝑛−1 ∈ Zn−1 wie folgt:
Wähle optimale Politik 𝐱 ∗ zn−1 = (xn ), sodass t n zn−1 , xn = zn gilt.
∗
Setze Fn−1
zn−1 = fn zn−1 , xn .
Iteration 𝐤 = 𝐧 − 𝟏, 𝐧 − 𝟐, … , 𝟏:
Bestimme für alle P zk−1 mit z𝑘−1 ∈ Zk−1 optimale Entscheidung xk :
∗
Fk−1
zk−1 = min fk zk−1 , xk + Fk∗ zk = t k zk−1 , xk
xk ∈ Xk zk−1
Ergebnis:
optimale Gesamtpolitik 𝐱 ∗ z0 und optimale Teilpolitiken 𝐱 ∗ zk für k = 1, … , n − 1
und z𝑘 ∈ Zk zugehörige optimale Zielfunktionswerte F0∗ (z0 ) und Fk∗ (zk )
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20
Bestellmengenproblem
Problembeschreibung:
Beschaffung eines Rohstoffs
n=4 Perioden → Stufen k=1,…,4
Periode k
1
2
3
4
𝑞𝑘
7
9
12
10
𝑏𝑘
1
1
1
1
keine Lagerkosten, keine fixen Bestellkosten, zeitlich veränderliche StückEinkaufspreise 𝐪𝐤 , Periodenbedarfe 𝐛𝐤 zu Beginn von Periode k, Lieferung von
maximal zwei ME pro Periode; Lieferzeit vernachlässigbar, Lager zu Beginn und
am Ende des Planungszeitraums leer → z0 = 0, zn = 0
Formulierung als DO-Modell:
zk
Zk
Lagerbestand am Ende von Periode k
Menge möglicher Lagerbestände am Ende von k:
Z 0 = 0 ,Z1 = 0,1 ,Z2 = 0,1,2 ,Z 3 = 0,1 ,Z 4 = 0
(siehe Lösung)
xk
Bestellmenge zu Beginn von Periode k (gleichzeitig auch verfügbar)
Xk (zk-1 ) mögliche Bestellmengen in k (eingeschränkt durch Lager- und
Lieferbeschränkungen)
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21
Bestellmengenproblem
Minimiere
F(x1 ,x 2 , x 3 ,x 4 ) =  k=1 fk (zk-1 ,xk ) =  k =1 qk ·xk
4
4
unter den Nebenbedingungen
zk = tk (zk-1 ,xk ) = zk-1 + xk - bk für k=1,…,4 [Lagerbilanzgleichung: EB=AB+Zu-Ab]
zk  0,1,2
für k=1,2,3
z0 = 0, z4 = 0
xk 0,1,2
für k=1,…,4
Anmerkung: Weitere Einschränkungen der Werte für zk und xk bei genauer
Analyse möglich!
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22
Bestellmengenproblem
Graphische Darstellung:
Knoten = Zustände = Lagermengen
Pfeile = mögliche Bestellungen
Stufenzielfunktionen = variable Bestellkosten
Anfangs- und Endzustand = leeres Lager
Periode k
1
2
3
4
𝑞𝑘
7
9
12
10
𝑏𝑘
1
1
1
1
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23
Anwendung der
Rückwärtsrekursion
Start:
z3
x4
z4
f4 (z3 ,x 4 )
F3* (z3 )
x *(z3 )
1
0
0
0
0
(0)
0
1
0
10
10
(1)
Iteration k=3:
Wegen 𝑧4 = 0 gilt:
𝑧2 = 2 ⇒ 𝑥3 = 0
𝑧2 = 1 ⇒ 𝑥3 ≤ 1
𝑧2 = 0 ⇒ 𝑥3 ≥ 1
f3 (z2 ,x 3 ) F3* (z3 ) f3 (z2 ,x 3 ) + F3* (z3 ) F2* (z 2 ) x *(z2 )
z2
x3
z3
2
0
1
0
0
0
1
1
12
0
12
0
0
0
10
10
2
1
24
0
24
1
0
12
10
22
1
0
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24
0
(0,0)
10
(0,1)
22
(1,1)
Anwendung der
Rückwärtsrekursion
Iteration k=2:
Wegen z0 = 0 und
x1  2 gilt z1  1
z1
1
0
Iteration k=1:
Wegen z0 = 0 gilt
x1  1
z0
0
f2 (z1 ,x 2 ) F2* (z 2 ) f2 (z1 ,x 2 ) + F2* (z2 ) F1* (z1 ) x *(z1 )
x2
z2
2
2
18
0
18
1
1
9
10
19
0
0
0
22
22
2
1
18
10
28
1
0
9
22
31
x1
z1
2
1
14
18
32
1
0
7
28
35
18
(2,0,0)
28
(2,0,1)
f1 (z0 ,x1 ) F1* (z1 ) f1 (z0 ,x1 ) + F1* (z1 ) F0* (z0 )
x *(z0 )
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25
32
(2,2,0,0)
Optimale Lösung
Optimale Gesamtpolitik: 𝐱 ∗ z0 = 2,2,0,0
Minimale Gesamtkosten: F0∗ z0 = 32
Optimale Teilpolitiken 𝐱 ∗ zk von allen
Zwischenzuständen zk aus → fett markiert
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26
Ein stochastisches, diskretes
Problem
Bestellmengenmodell mit n = 3 Perioden; Bedarf bk, jeder gleich 1 mit
Wahrscheinlichkeit p1 = 0,7 und 0 mit Wahrscheinlichkeit p0 = 0,3. Liefermenge
pro Periode wie bisher auf 2 ME beschränkt.
Periode k
1
2
3
Preis qk
7
9
12
Bedarf bk
Wahrscheinlichkeit
1
0
1
0
1
0
0,7
0,3
0,7
0,3
0,7
0,3
Bei nicht ausreichendem Bestand Fehlmengenkosten von 15 GE/ME. Am Ende des
Planungszeitraumes Restmenge nicht verwertbar.
Zustands- oder Entscheidungsknoten: In Abb. Rechtecke; deterministische
Knoten.
Stochastische Knoten: Die von ihnen ausgehenden Pfeile entsprechen einer
zufallsabhängigen Nachfrage (Rauten).
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27
Ein stochastisches, diskretes
Problem
1


F (zk−1 ) = min qk xk +  pi  fk (zk−1 ,xk ,i) + Fk* (zk = tk (zk−1 ,xk ,i)) xk  Xk (zk−1 )
i=0


*
k −1
mit
fk ( zk-1,xk ,bk ) =
15 falls zk-1 = xk = 0 und bk = 1
0 sonst
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28
Ein stochastisches, diskretes
Problem
z2 x 3
F2* (z 2 )
2
0*
0*
1
0*
0*
0
1
0*
12
0,7 ∙ 15 = 10,5*
z1 x 2
z0 x1
0
2*
1
0
F1* (z1 )
2
0*
0*
1
1
0*
9
0,7 ∙ 10,5 = 7,35*
0
2
1*
0
2 ∙ 9 = 18
9 + 0,7 ∙ 10,5 = 16,35*
0,7 ∙ 15 + 10,5 = 21
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29
F0* (z0 )
2 ∙ 7 + 0,7 ∙ 7,35 = 19,145*
7 + 0,3 ∙ 7,35 + 0,7 ∙ 16,35 = 20,65
0,7 ∙ 15 + 16,35 = 26,85
Klausurvorbereitung
Domschke, W. und A. Drexl (2015): Einführung in Operations
Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 7
Zur Klausurvorbereitung sind die Aufgaben 7.2 und 7.4 bis 7.6
aus dem Übungsbuch „Übungen und Fallstudien zum Operations
Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu
empfehlen.
Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30
Related documents
Download