Beruflich Dokumente
Kultur Dokumente
Literatur
1
Version 2.0.1
1 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Lesen Sie...
2 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Lernziele
Lernziele:
Das Prinzip von Column Generation und Branch-&-Price
verstehen
Die einzelnen Komponenten von Branch-&-Price, deren
Aufgaben und deren Zusammenspiel verstehen
Das VRPTW mit Branch-&-Price lösen können
3 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Gegeben:
Fahrzeuge mit vorgegebener Kapazität, stationiert an einem Depot
Eine Menge von Kunden mit Nachfragemengen und Zeitfenstern in
denen sie besucht werden können.
4 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Gegeben:
Fahrzeuge mit vorgegebener Kapazität, stationiert an einem Depot
Eine Menge von Kunden mit Nachfragemengen und Zeitfenstern in
denen sie besucht werden können.
4 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
5 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Entscheidungsvariablen:
yik Binäre Variable mit yik = 1 genau dann, wenn Kunde i ∈ N von
Fahrzeug k ∈ K bedient wird, und yik = 0 sonst.
xijk Binäre Variable mit xijk = 1 genau dann, wenn Fahrzeug k ∈ K
Bogen (i, j) ∈ A benutzt, und xijk = 0 sonst.
uik Kontinuierliche Variable, die die (Mindest-)Beladung des Fahrzeugs
k nach dem Besuchen des Kunden i ∈ N angibt, falls i von k
bedient wird.
Tik Kontinuierliche Variable, die den Start des Service des Fahrzeugs k
am Kunden i ∈ N angibt, falls i von k bedient wird. 5 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
7 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
8 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
8 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
8 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Dantzig-Wolfe Reformulierung
Idee:
Nebenbedingungen (3)–(8) können für jedes Fahrzeug getrennt
betrachtet werden.
Für jedes Fahrzeug entsteht dann ein eigenes (identisches) Problem
eine zulässige Route zu finden.
Gesucht ist dann nur noch eine Kombination der Routen aller
Fahrzeuge, so dass jeder Kunde genau einmal bedient wird und die
Routingkosten minimal sind.
9 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Dantzig-Wolfe Reformulierung
Problemformulierung mit Definition der Routenvariablen:
Routenvariablen:
10 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Dantzig-Wolfe Reformulierung
Problemformulierung mit Definition der Routenvariablen:
Routenvariablen:
XX
min cr λkr
k∈K r ∈Ωk
XX
air λkr = 1 für alle i ∈ N
k∈K r ∈Ωk
X
λr ≤ 1 für alle k ∈ K
r ∈Ωk
Wobei:
cr Kosten der Route r
air = 1, wenn Route r Kunde i
besucht, = 0 sonst
λkr = 1, wenn Route r Teil der
Lösung ist, = 0 sonst
10 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Dantzig-Wolfe Reformulierung
Problemformulierung mit Definition der Routenvariablen:
Routenvariablen:
Ωk = r = (yik , xijk ) , mit
XX
min cr λkr
k∈K r ∈Ωk X X
XX xjik = xijk = yi für alle i ∈ N
air λkr =1 für alle i ∈ N (j,i)∈δ − (i) (i,j)∈δ + (i)
k∈K r ∈Ωk X
k
X x0j =1
λr ≤ 1 für alle k ∈ K (0,j)∈δ + (0)
r ∈Ωk
uik − ujk + Qxijk ≤ Q − qj für alle (i, j) ∈ A(N)
λkr ∈ {0, 1} für alle k ∈ K , r ∈ Ωk
qi ≤ uik ≤ Q für alle i ∈ N
Wobei: Tik − Tjk + Mij xijk ≤ Mij − tij für alle (i, j) ∈ A(N)
cr Kosten der Route r ai ≤ Tik ≤ bi für alle i ∈ N
air = 1, wenn Route r Kunde i yik ∈ {0, 1} für alle i ∈ N
besucht, = 0 sonst xijk ∈ {0, 1} für alle (i, j) ∈ A
λkr = 1, wenn Route r Teil der
Lösung ist, = 0 sonst
10 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Dantzig-Wolfe Reformulierung
Alle Fahrzeuge sind identisch → Aggregation!
11 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Dantzig-Wolfe Reformulierung
Alle Fahrzeuge sind identisch → Aggregation!
Aggregierte Problemformu-
lierung mit Routenvariablen:
X
min cr λr
r ∈Ω
X
air λr = 1 für alle i ∈ N
r ∈Ω
X
λr ≤ |K |
r ∈Ω
λr ∈ {0, 1} für alle r ∈ Ω
11 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Dantzig-Wolfe Reformulierung
Alle Fahrzeuge sind identisch → Aggregation!
Aggregierte Problemformu-
lierung mit Routenvariablen:
X
min cr λr
r ∈Ω
X
air λr = 1 für alle i ∈ N
r ∈Ω
X
λr ≤ |K |
r ∈Ω
λr ∈ {0, 1} für alle r ∈ Ω
⇒ Pfadbasierte Formulierung
11 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Dantzig-Wolfe Reformulierung
Alle Fahrzeuge sind identisch → Aggregation!
⇒ Pfadbasierte Formulierung Ti − Tj + Mij xij ≤ Mij − tij für alle (i, j) ∈ A(N)
a i ≤ Ti ≤ b i für alle i ∈ N
yi ∈ {0, 1} für alle i ∈ N
xij ∈ {0, 1} für alle (i, j) ∈ A
11 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Pfadbasierte Formulierung
12 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Pfadbasierte Formulierung
12 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Wenn z(LP(N)) < zBest , ja Ist die Lösung von LP(N) nein
Branching
setze zBest = z(LP(N)) ganzzahlig?
13 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Wenn z(LP(N)) < zBest , ja Ist die Lösung von LP(N) nein
Branching
setze zBest = z(LP(N)) ganzzahlig?
13 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branch-&-Price – Schema
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)
nein
Wenn z(RMP(N)) < zBest , ja Ist die Lösung von RMP(N) nein
Branching
setze zBest = z(RMP(N)) ganzzahlig?
14 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branch-&-Price – Schema
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)
nein
Wenn z(RMP(N)) < zBest , ja Ist die Lösung von RMP(N) nein
Branching
setze zBest = z(RMP(N)) ganzzahlig?
14 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
15 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
X
zPfad = min cr λr (1)
r ∈Ω̄
X
so dass air λr = 1 für alle i ∈ N (2)
r ∈Ω̄
X
λr ≤ |K | (3)
r ∈Ω̄
15 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
X
zPfad = min cr λr (1)
r ∈Ω̄
X
so dass air λr = 1 für alle i ∈ N (2)
r ∈Ω̄
X
λr ≤ |K | (3)
r ∈Ω̄
15 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
[1,4] [3,9]
2
1 3
2
2 5
2 5
[0,11] 2
2 4
1
[4,5] [2,9]
2
Gegeben
Depot
Kunden mit Nachfragen und Zeitfenstern [ ]
Fahrzeuge mit Kapazität Q = 6
16 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
[1,4] [3,9]
1 3
2
2 5
[0,11] 2
2 4
[4,5] [2,9]
2
Gegeben
Depot
Kunden mit Nachfragen und Zeitfenstern [ ]
Fahrzeuge mit Kapazität Q = 6
16 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
17 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
17 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branch-&-Price – Schema
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)
nein
Wenn z(RMP(N)) < zBest , ja Ist die Lösung von RMP(N) nein
Branching
setze zBest = z(RMP(N)) ganzzahlig?
18 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
19 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
z = min c > x
so dass Ax = b
x ≥0
mit den Eigenschaften
1 ein Minimierungsproblem
2 ausschließlich nicht-negativen EV x ≥ 0
3 nicht-negativer rechter Seite b ≥ 0
4 (m × n)-Koeffizientenmatrix A, welche die (m × m)-Einheitsmatrix
Im als Basis enthält, d.h. A = (N|Im ).
19 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Unterschiede/Gemeinsamkeiten zu Maximierungsproblem:
20 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Unterschiede/Gemeinsamkeiten zu Maximierungsproblem:
Darstellung der BV xB durch die NBV xn bei gegebener Basis B
→ z = (cN> − cB> B −1 N)xN + cB> B −1 b (→ wie Max.)
→ mit reduzierten Kosten c̃j := cj − cB> B −1 aj (→ Max.: ∆zj )
→ Basis optimal, wenn c̃j ≥ 0 ∀ j (→ Max.: ∆zj ≥ 0)
20 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Unterschiede/Gemeinsamkeiten zu Maximierungsproblem:
Darstellung der BV xB durch die NBV xn bei gegebener Basis B
→ z = (cN> − cB> B −1 N)xN + cB> B −1 b (→ wie Max.)
→ mit reduzierten Kosten c̃j := cj − cB> B −1 aj (→ Max.: ∆zj )
→ Basis optimal, wenn c̃j ≥ 0 ∀ j (→ Max.: ∆zj ≥ 0)
Simplextableau (→ wie Max.)
→ Ausnahme: In der Zielfunktionszeile werden die reduzierten
Kosten c̃j eingetragen (anstatt ∆zj )
20 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Unterschiede/Gemeinsamkeiten zu Maximierungsproblem:
Darstellung der BV xB durch die NBV xn bei gegebener Basis B
→ z = (cN> − cB> B −1 N)xN + cB> B −1 b (→ wie Max.)
→ mit reduzierten Kosten c̃j := cj − cB> B −1 aj (→ Max.: ∆zj )
→ Basis optimal, wenn c̃j ≥ 0 ∀ j (→ Max.: ∆zj ≥ 0)
Simplextableau (→ wie Max.)
→ Ausnahme: In der Zielfunktionszeile werden die reduzierten
Kosten c̃j eingetragen (anstatt ∆zj )
Simplexalgorithmus mit Simplextableau (→ wie Max.)
→ bei Nutzung von c̃j anstatt ∆zj in allen Formeln
20 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
22 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
1. Simplextableau:
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
M s1 1 0 1 1
M s2 1 0 1 1
M s3 0 1 1 1
M s4 0 1 1 1
0 s5 1 1 1 2
c̃j 4M
22 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
1. Simplextableau:
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
M s1 1 0 1 1
M s2 1 0 1 1
M s3 0 1 1 1
M s4 0 1 1 1
0 s5 1 1 1 2
c̃j 6 − 2M 4M
22 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
1. Simplextableau:
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
M s1 1 0 1 1
M s2 1 0 1 1
M s3 0 1 1 1
M s4 0 1 1 1
0 s5 1 1 1 2
c̃j 6 − 2M 9 − 2M 4M
22 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
1. Simplextableau:
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
M s1 1 0 1 1
M s2 1 0 1 1
M s3 0 1 1 1
M s4 0 1 1 1
0 s5 1 1 1 2
c̃j 6 − 2M 9 − 2M 4M
22 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
23 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
23 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
24 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
24 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
24 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
VRPTW
X
zPfad = min cr xr (duale Preise) (1)
r ∈Ω̄
X
so dass air xr = 1 für alle i ∈ N (πi ) (2)
r ∈Ω̄
X
xr ≤ |K | (µ) (3)
r ∈Ω̄
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
6 λ1 1 1 1
M s2 −1 1 0
9 λ2 1 0 1 1
M s4 0 −1 1 0
s5 −1 −1 1 0
c̃j 2M − 6 2M − 9 15
25 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
6 λ1 1 1 1
M s2 −1 1 0
9 λ2 1 0 1 1
M s4 0 −1 1 0
s5 −1 −1 1 0
c̃j 2M − 6 2M − 9 15
Branch-&-Price – Schema
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)
nein
Wenn z(RMP(N)) < zBest , ja Ist die Lösung von RMP(N) nein
Branching
setze zBest = z(RMP(N)) ganzzahlig?
26 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Die Aufgabe des Subproblems ist es, fehlende Routen zu identifizieren:
27 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Die Aufgabe des Subproblems ist es, fehlende Routen zu identifizieren:
Fehlende Routen r sind solche, die den Zielfunktionswert verbessern
→ Route r ∈ Ω ist attraktiv falls ihre reduzierten Kosten c̃r echt
kleiner als 0 sind
→ Aufnahme in die Basis kann(!) den Zielfunktionswert verbessern
27 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Die Aufgabe des Subproblems ist es, fehlende Routen zu identifizieren:
Fehlende Routen r sind solche, die den Zielfunktionswert verbessern
→ Route r ∈ Ω ist attraktiv falls ihre reduzierten Kosten c̃r echt
kleiner als 0 sind
→ Aufnahme in die Basis kann(!) den Zielfunktionswert verbessern
Reduzierten Kosten einer Route sind definiert als:
X
c̃r := cr − cB> B −1 aj = cr − πi aij − µ
i∈N
27 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Die Aufgabe des Subproblems ist es, fehlende Routen zu identifizieren:
Fehlende Routen r sind solche, die den Zielfunktionswert verbessern
→ Route r ∈ Ω ist attraktiv falls ihre reduzierten Kosten c̃r echt
kleiner als 0 sind
→ Aufnahme in die Basis kann(!) den Zielfunktionswert verbessern
Reduzierten Kosten einer Route sind definiert als:
X
c̃r := cr − cB> B −1 aj = cr − πi aij − µ
i∈N
27 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Die Aufgabe des Subproblems ist es, fehlende Routen zu identifizieren:
Fehlende Routen r sind solche, die den Zielfunktionswert verbessern
→ Route r ∈ Ω ist attraktiv falls ihre reduzierten Kosten c̃r echt
kleiner als 0 sind
→ Aufnahme in die Basis kann(!) den Zielfunktionswert verbessern
Reduzierten Kosten einer Route sind definiert als:
X
c̃r := cr − cB> B −1 aj = cr − πi aij − µ
i∈N
Subproblem
X X
zSub = min cij xij − πi yi − µ (1)
(i,j)∈A i∈N
X X
so dass xji = xij = yi für alle i ∈ N (2)
(j,i)∈δ − (i) (i,j)∈δ + (i)
X
x0j = 1 (3)
(0,j)∈δ + (0)
28 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
X X
zSub = min cij xij − πi yi − µ (1)
(i,j)∈A i∈N
X X
so dass xji = xij = yi für alle i ∈ N (2)
(j,i)∈δ − (i) (i,j)∈δ + (i)
X
x0j = 1 (3)
(0,j)∈δ + (0)
Subproblem
Unser Beispiel:
Erinnerung: π1 = −M + 6, π2 = M, π3 = −M + 9, π4 = M, µ = 0
Optimale Lösung (z.B. mit MIP Solver ermittelt):
→ zSub = 5 − 2M < 0
→ y2∗ = y4∗ = 1; x02
∗ ∗
= x24 ∗
= x40 = 1; u2∗ = 2; u4∗ = 3; T2∗ = 4; T4∗ = 5
→ alle anderen Variablen: Wert 0
29 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Unser Beispiel:
Erinnerung: π1 = −M + 6, π2 = M, π3 = −M + 9, π4 = M, µ = 0
Optimale Lösung (z.B. mit MIP Solver ermittelt):
→ zSub = 5 − 2M < 0
→ y2∗ = y4∗ = 1; x02
∗ ∗
= x24 ∗
= x40 = 1; u2∗ = 2; u4∗ = 3; T2∗ = 4; T4∗ = 5
→ alle anderen Variablen: Wert 0
Bemerkungen:
Wird eine Route mit negativen reduzierten Kosten gefunden
→ Füge diese dem RMP hinzu (→ folgende Folien)
Existiert keine Route mit c̃r < 0
→ RMP ist optimal gelöst
29 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Unser Beispiel:
Erinnerung: π1 = −M + 6, π2 = M, π3 = −M + 9, π4 = M, µ = 0
Optimale Lösung (z.B. mit MIP Solver ermittelt):
→ zSub = 5 − 2M < 0
→ y2∗ = y4∗ = 1; x02
∗ ∗
= x24 ∗
= x40 = 1; u2∗ = 2; u4∗ = 3; T2∗ = 4; T4∗ = 5
→ alle anderen Variablen: Wert 0
Bemerkungen:
Wird eine Route mit negativen reduzierten Kosten gefunden
→ Füge diese dem RMP hinzu (→ folgende Folien)
Existiert keine Route mit c̃r < 0
→ RMP ist optimal gelöst
Es ist nicht nötig, eine Route mit minimalen c̃r zu identifizieren
29 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Unser Beispiel:
Erinnerung: π1 = −M + 6, π2 = M, π3 = −M + 9, π4 = M, µ = 0
Optimale Lösung (z.B. mit MIP Solver ermittelt):
→ zSub = 5 − 2M < 0
→ y2∗ = y4∗ = 1; x02
∗ ∗
= x24 ∗
= x40 = 1; u2∗ = 2; u4∗ = 3; T2∗ = 4; T4∗ = 5
→ alle anderen Variablen: Wert 0
Bemerkungen:
Wird eine Route mit negativen reduzierten Kosten gefunden
→ Füge diese dem RMP hinzu (→ folgende Folien)
Existiert keine Route mit c̃r < 0
→ RMP ist optimal gelöst
Es ist nicht nötig, eine Route mit minimalen c̃r zu identifizieren
Anstatt nur eine neue Route zum RMP hinzuzufügen, können auch
mehrere (oder alle) Routen mit negativen reduzierten Kosten hinzugefügt
werden.
29 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Subproblem
Unser Beispiel:
Erinnerung: π1 = −M + 6, π2 = M, π3 = −M + 9, π4 = M, µ = 0
Optimale Lösung (z.B. mit MIP Solver ermittelt):
→ zSub = 5 − 2M < 0
→ y2∗ = y4∗ = 1; x02
∗ ∗
= x24 ∗
= x40 = 1; u2∗ = 2; u4∗ = 3; T2∗ = 4; T4∗ = 5
→ alle anderen Variablen: Wert 0
Bemerkungen:
Wird eine Route mit negativen reduzierten Kosten gefunden
→ Füge diese dem RMP hinzu (→ folgende Folien)
Existiert keine Route mit c̃r < 0
→ RMP ist optimal gelöst
Es ist nicht nötig, eine Route mit minimalen c̃r zu identifizieren
Anstatt nur eine neue Route zum RMP hinzuzufügen, können auch
mehrere (oder alle) Routen mit negativen reduzierten Kosten hinzugefügt
werden.
Das Subproblem lässt sich effizienter mit einem Labeling Algorithmus
lösen. (→ Kapitel 3.3)
29 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branch-&-Price – Schema
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)
nein
Wenn z(RMP(N)) < zBest , ja Ist die Lösung von RMP(N) nein
Branching
setze zBest = z(RMP(N)) ganzzahlig?
30 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
31 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
und
air = yi∗ für alle i ∈ N und a|N|+1,r = 1
31 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
und
air = yi∗ für alle i ∈ N und a|N|+1,r = 1
0
Die neue Spalte ar im aktuellen Simplextableau des RMP kann
berechnet werden als:
0
ar := (B −1 · (a1r , . . . , a|N|,r , a|N|+1,r )> )
31 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Unser Beispiel:
Die Lösung des Subproblems war:
→ zSub = 5 − 2M < 0
→ y2∗ = y4∗ = 1; x02
∗ ∗
= x24 ∗
= x40 = 1; u2∗ = 2; u4∗ = 3; T2∗ = 4; T4∗ = 5
→ alle anderen Variablen: Wert 0
32 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Unser Beispiel:
Die Lösung des Subproblems war:
→ zSub = 5 − 2M < 0
→ y2∗ = y4∗ = 1; x02
∗ ∗
= x24 ∗
= x40 = 1; u2∗ = 2; u4∗ = 3; T2∗ = 4; T4∗ = 5
→ alle anderen Variablen: Wert 0
Die zugehörige Routenvariable λ3 ist dann gegeben durch:
∗ ∗ ∗
→ c3 = 2x02 + 1x24 + 2x40 = 5 und
→ a23 = y2 = 1, a43 = y4∗ = 1, a13 = a33 = 0 und a53 = 1
∗
32 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Unser Beispiel:
Die Lösung des Subproblems war:
→ zSub = 5 − 2M < 0
→ y2∗ = y4∗ = 1; x02
∗ ∗
= x24 ∗
= x40 = 1; u2∗ = 2; u4∗ = 3; T2∗ = 4; T4∗ = 5
→ alle anderen Variablen: Wert 0
Die zugehörige Routenvariable λ3 ist dann gegeben durch:
∗ ∗ ∗
→ c3 = 2x02 + 1x24 + 2x40 = 5 und
→ a23 = y2 = 1, a43 = y4∗ = 1, a13 = a33 = 0 und a53 = 1
∗
32 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
33 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
33 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
33 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
cj 6 9 5 M M M M
cB xB λ1 λ2 λ3 s1 s2 s3 s4 s5 b0
6 λ1 1 1 1 −1 1
5 λ3 1 0 −1 1 0
9 λ2 1 0 1 0 1
M s1 1 −1 −1 1 0
0 s5 −1 −1 0 1 0
c̃j 2M − 6 2M − 10 1 15
34 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
cj 6 9 5 M M M M
cB xB λ1 λ2 λ3 s1 s2 s3 s4 s5 b0
6 λ1 1 1 1 −1 1
5 λ3 1 0 −1 1 0
9 λ2 1 0 1 0 1
M s1 1 −1 −1 1 0
0 s5 −1 −1 0 1 0
c̃j 2M − 6 2M − 10 1 15
Duale Preise:
π1 := cs1 − c̃s1 =M
π2 := cs2 − c̃s2 = −M + 6
π3 := cs3 − c̃s3 = −M + 10
π4 := cs4 − c̃s4 =M −1
µ := cs5 − c̃s5 =0
34 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
cj 6 9 5 M M M M
cB xB λ1 λ2 λ3 s1 s2 s3 s4 s5 b0
6 λ1 1 1 1 −1 1
5 λ3 1 0 −1 1 0
9 λ2 1 0 1 0 1
M s1 1 −1 −1 1 0
0 s5 −1 −1 0 1 0
c̃j 2M − 6 2M − 10 1 15
35 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
cj 6 9 5 6 4 10 M M M M
cB xB λ1 λ2 λ3 λ4 λ5 λ6 s1 s2 s3 s4 s5 b0
6 λ1 1 − 12 0 0 0 0 1
2
1
2
0 − 12 0 1
2
1 1
6 λ4 0 2
0 1 0 0 2
− 12 0 1
2
0 1
2
1
4 λ5 0 2
0 0 1 0 − 12 − 12 0 1
−2 1 1
2
1 1 1 1 1
10 λ6 0 2
0 0 0 1 2 2
1 2
−1 2
5 λ3 0 0 1 0 0 0 −1 0 −1 0 1 0
c̃j 2 M −4 M −3 M −5 M −3 1 13
35 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
cj 6 9 5 6 4 10 M M M M
cB xB λ1 λ2 λ3 λ4 λ5 λ6 s1 s2 s3 s4 s5 b0
6 λ1 1 − 12 0 0 0 0 1
2
1
2
0 − 12 0 1
2
1 1
6 λ4 0 2
0 1 0 0 2
− 12 0 1
2
0 1
2
1
4 λ5 0 2
0 0 1 0 − 12 − 12 0 1
−2 1 1
2
1 1 1 1 1
10 λ6 0 2
0 0 0 1 2 2
1 2
−1 2
5 λ3 0 0 1 0 0 0 −1 0 −1 0 1 0
c̃j 2 M −4 M −3 M −5 M −3 1 13
Lösung:
λ∗1 = λ∗4 = λ∗5 = λ∗6 = 12 , alle anderen Variablen: Wert 0.
35 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branch-&-Price – Schema
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)
nein
Wenn z(RMP(N)) < zBest , ja Ist die Lösung von RMP(N) nein
Branching
setze zBest = z(RMP(N)) ganzzahlig?
36 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branching
Ist die optimale Lösung λ∗r des RMP nicht ganzzahlig, muss
Ganzzahligkeit mittels Branch-&-Bound hergestellt werden.
37 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branching
Ist die optimale Lösung λ∗r des RMP nicht ganzzahlig, muss
Ganzzahligkeit mittels Branch-&-Bound hergestellt werden.
Ein direktes Verzweigen auf den λr -Variablen ist nicht geschickt
1 Entscheidung λr = 1 sehr stark, λr = 0 sehr schwach
→ Unausgeglichener Branch-&-Bound Baum
2 Im Subproblem schwer einzuhalten
37 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branching
Ist die optimale Lösung λ∗r des RMP nicht ganzzahlig, muss
Ganzzahligkeit mittels Branch-&-Bound hergestellt werden.
Ein direktes Verzweigen auf den λr -Variablen ist nicht geschickt
1 Entscheidung λr = 1 sehr stark, λr = 0 sehr schwach
→ Unausgeglichener Branch-&-Bound Baum
2 Im Subproblem schwer einzuhalten
37 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branching
Ist die optimale Lösung λ∗r des RMP nicht ganzzahlig, muss
Ganzzahligkeit mittels Branch-&-Bound hergestellt werden.
Ein direktes Verzweigen auf den λr -Variablen ist nicht geschickt
1 Entscheidung λr = 1 sehr stark, λr = 0 sehr schwach
→ Unausgeglichener Branch-&-Bound Baum
2 Im Subproblem schwer einzuhalten
37 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branching – Supportgraph
Unser Beispiel:
Optimale Lösung der LP-Relaxation: λ∗1 = λ∗4 = λ∗5 = λ∗6 = 1
2
Korrespondierende Routen:
λ1 =
ˆ (0-1-2-0); λ4 =
ˆ (0-1-4-0); λ5 =
ˆ (0-3-0); λ6 =
ˆ (0-4-2-3-0)
38 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branching – Supportgraph
Unser Beispiel:
Optimale Lösung der LP-Relaxation: λ∗1 = λ∗4 = λ∗5 = λ∗6 = 1
2
Korrespondierende Routen:
λ1 =
ˆ (0-1-2-0); λ4 =
ˆ (0-1-4-0); λ5 =
ˆ (0-3-0); λ6 =
ˆ (0-4-2-3-0)
Supportgraph: 1
+ 12 = 1
2
1
2
[1,4] [3,9]
1 3
1
2
+ 12 = 1 1
2
1
1 2 1
[0,11] 2 2
2 4
1
Gegeben 2
[4,5] 1 [2,9]
Depot 2
Kunden mit Nachfragen und Zeitfenstern [ ] 1
Fahrzeuge mit Kapazität Q = 6 2
1
2
Werte der Bogenvariablen
38 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
Branching – Supportgraph
Unser Beispiel:
Optimale Lösung der LP-Relaxation: λ∗1 = λ∗4 = λ∗5 = λ∗6 = 1
2
Korrespondierende Routen:
λ1 =
ˆ (0-1-2-0); λ4 =
ˆ (0-1-4-0); λ5 =
ˆ (0-3-0); λ6 =
ˆ (0-4-2-3-0)
Supportgraph: 1
+ 12 = 1
2
1
2
[1,4] [3,9]
1 3
1
2
+ 12 = 1 1
2
1
1 2 1
[0,11] 2 2
2 4
1
Gegeben 2
[4,5] 1 [2,9]
Depot 2
Kunden mit Nachfragen und Zeitfenstern [ ] 1
Fahrzeuge mit Kapazität Q = 6 2
1
2
Werte der Bogenvariablen
Branch-&-Price – Schema
Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}
Knoten N
Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)
nein
Wenn z(RMP(N)) < zBest , ja Ist die Lösung von RMP(N) nein
Branching
setze zBest = z(RMP(N)) ganzzahlig?
39 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
ˆ (0 − 1 − 0) mit c7 = 4
Neu generierte Routen: λ7 =
Optimale Lösung der LP-Relaxation: λ∗6 = λ∗7 = 1 (ganzzahlig!)
mit Zielfunktionswert 14
41 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
ˆ (0 − 4 − 0) mit c8 = 4
Neu generierte Routen: λ8 =
Optimale Lösung der LP-Relaxation: λ∗1 = λ∗2 = 1 (ganzzahlig!)
mit Zielfunktionswert 15
42 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur
x12 = 0 x12 = 1
N1 N2
UB = 14 UB = 15
[1,4] [3,9]
1 3
1
1
1
[0,11]
2 4
1
[4,5] [2,9]
1 43 / 43
Kapitel 3: Exakte Lösung von VRPs
Literatur
43 / 43