Sie sind auf Seite 1von 108

Kapitel 3: Exakte Lösung von VRPs

Literatur

Folien zur Vorlesung1


Transportlogistik
Kapitel 3: Exakte Lösung von VRPs

Prof. Timo Gschwind, Prof. Stefan Irnich, Dr. Christian Tilk

1
Version 2.0.1
1 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Kapitel 3.2: Column Generation und


Branch-&-Price

Lesen Sie...

(Desaulniers u. a., 2014)


(Kallehauge u. a., 2005)

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

Wiederholung: VRP with Time Windows

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

Wiederholung: VRP with Time Windows

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.

Gesucht: Eine Menge von Fahrzeugrouten, so dass


Jeder Kunde genau einmal besucht wird
Jede Route am Depot startet und am Depot endet
Jede Route zulässig bezüglich der Fahrzeugkapazität und der
Zeitfenster ist
Die Summe der Kosten aller Routen minimiert wird

4 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

3-Index Formulierung – Notation


Input:
N Menge von Kunden i mit Nachfrage qi und Zeitfenster [ai , bi ]
o, d Start- und Enddepot
K Menge von Fahrzeugen mit Kapazität Q
A Bogenmenge

5 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

3-Index Formulierung – Notation


Input:
N Menge von Kunden i mit Nachfrage qi und Zeitfenster [ai , bi ]
o, d Start- und Enddepot
K Menge von Fahrzeugen mit Kapazität Q
A Bogenmenge

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

3-Index Formulierung – Modell


X X
z3I−MTZ = min cij xijk (1)
k∈K (i,j)∈A
K
X
so dass yik = 1 für alle i ∈ N (2)
k=1
X X
xjik = xijk = yik für alle i ∈ N, k ∈ K (3)
(j,i)∈δ − (i) (i,j)∈δ + (i)
X
x0jk ≤ 1 für alle k ∈ K (4)
(0,j)∈δ + (0)

uik − ujk + Qxijk ≤ Q − qj für alle (i, j) ∈ A(N), k ∈ K (5)


qi ≤ uik ≤Q für alle i ∈ N, k ∈ K (6)
Tik − Tjk + Mij xijk ≤ Mij − tij für alle (i, j) ∈ A(N), k ∈ K(7)
ai ≤ Tik ≤ bi für alle i ∈ N, k ∈ K (8)
yik ∈ {0, 1} für alle i ∈ N, k ∈ K (9)
xijk ∈ {0, 1} für alle (i, j) ∈ A, k ∈ K (10)
6 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

3-Index Formulierung – Modell

(1) Minimiere die gesamten Routingkosten


(2) Jeder Kunde wird von genau einem Fahrzeug bedient
(3) Kunde i wird von Fahrzeug k genau einmal besucht, wenn er von
Fahrzeug k bedient wird
(4) Jedes Fahrzeug fährt höchstens eine Route
(5) Festlegen der Beladungsvariablen uik und Verbot von Subtouren
(6) Kapazitätsbedingungen
(7) Festlegen der Zeitvariablen Tik und Verbot von Subtouren
(8) Zeitfensterbedingungen

7 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

3-Index Formulierung – Eigenschaften

Eigenschaften der Formulierung:


Anzahl der Variablen:
→ O (|V |2 · |K |) binäre Variablen
→ |N| · |K | kontinuierliche Variablen
O (|N 2 | · |K |) Nebenbedingungen

8 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

3-Index Formulierung – Eigenschaften

Eigenschaften der Formulierung:


Anzahl der Variablen:
→ O (|V |2 · |K |) binäre Variablen
→ |N| · |K | kontinuierliche Variablen
O (|N 2 | · |K |) Nebenbedingungen
Kompaktes Modell
Vielfältig erweiterbar

8 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

3-Index Formulierung – Eigenschaften

Eigenschaften der Formulierung:


Anzahl der Variablen:
→ O (|V |2 · |K |) binäre Variablen
→ |N| · |K | kontinuierliche Variablen
O (|N 2 | · |K |) Nebenbedingungen
Kompaktes Modell
Vielfältig erweiterbar
Schwaches Modell
Symmetrieproblematik

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

λkr ∈ {0, 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!

Aggregierte Problemformu- Definition der aggregierten Routenvariablen:


lierung mit Routenvariablen:
X Ω = {r = (yi , xij )} , mit
min cr λr
r ∈Ω
X X
X xji = xij = yi für alle i ∈ N
air λr = 1 für alle i ∈ N (j,i)∈δ − (i) (i,j)∈δ + (i)
r ∈Ω X
X x0j = 1
λr ≤ |K | (0,j)∈δ + (0)
r ∈Ω
ui − uj + Qxij ≤ Q − qj für alle (i, j) ∈ A(N)
λr ∈ {0, 1} für alle r ∈ Ω
qi ≤ ui ≤ Q für alle i ∈ N

⇒ 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

Eigenschaften der Formulierung:


Exponentiell viele Variablen
|N| + 1 Nebenbedingungen
Sehr starkes Modell

12 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Pfadbasierte Formulierung

Eigenschaften der Formulierung:


Exponentiell viele Variablen
|N| + 1 Nebenbedingungen
Sehr starkes Modell
Modell kann nicht vollständig ausformuliert und mit
Standardsoftware gelöst werden. Lösung mittels Branch-&-Price:
1 Löse LP-Relaxation des Modells mit einer kleinen Teilmenge
von Variablen
2 Iterativ: Identifiziere fehlende Variablen und füge sie dem
Modell hinzu
3 Bei nicht ganzzahliger Lösung der LP-Relaxation, Herstellung
der Ganzzahligkeit der λr mittels Branch-&-Bound

12 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Erinnerung: Branch-&-Bound – Schema

Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}

Knoten N

Konstruiere initales LP(N)


Füge Kinder-
knoten von N
zu S hinzu
Löse LP(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

Erinnerung: Branch-&-Bound – Schema

Wähle nächsten Knoten N ∈ S mit LB(N) < zBest und setze S = S \ {N}

Knoten N

Konstruiere initales LP(N)


Füge Kinder-
knoten von N
zu S hinzu
Löse LP(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

Column Generation Konstruiere initales RMP(N)


(Spaltengenerierung)

Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)

Konstruiere Routen R mit ne- ja Löse Subproblem SP(πi , µ)


gativen reduzierten Kosten z(SP(πi , µ)) < 0 ?

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

Column Generation Konstruiere


Konstruiere initales
initales RMP(N)
(Spaltengenerierung)

Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)

Konstruiere Routen R mit ne- ja Löse Subproblem SP(πi , µ)


gativen reduzierten Kosten z(SP(πi , µ)) < 0 ?

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

Restricted Master Problem (RMP)

Das Restricted Master Problem (RMP) ist die LP-Relaxation der


Pfadformulierung, in der zusätzlich die Menge Ω der zulässigen Routen
durch eine (kleine) Teilmenge Ω̄ ersetzt wird.

15 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Restricted Master Problem (RMP)

Das Restricted Master Problem (RMP) ist die LP-Relaxation der


Pfadformulierung, in der zusätzlich die Menge Ω der zulässigen Routen
durch eine (kleine) Teilmenge Ω̄ ersetzt wird.

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 ∈Ω̄

λr ≥ 0 für alle r ∈ Ω̄ (4)

15 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Restricted Master Problem (RMP)

Das Restricted Master Problem (RMP) ist die LP-Relaxation der


Pfadformulierung, in der zusätzlich die Menge Ω der zulässigen Routen
durch eine (kleine) Teilmenge Ω̄ ersetzt wird.

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 ∈Ω̄

λr ≥ 0 für alle r ∈ Ω̄ (4)

Initialisierung der Teilmenge Ω̄: Zum Beispiel mit heuristischer Lösung.

15 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Restricted Master Problem (RMP) – Beispiel

[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

Restricted Master Problem (RMP) – Beispiel


Heuristische Lösung:
2

[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

Restricted Master Problem (RMP) – Beispiel

Initiales RMP mit Touren aus heuristischer Lösung: siehe Tafel!

17 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Restricted Master Problem (RMP) – Beispiel

Initiales RMP mit Touren aus heuristischer Lösung: siehe Tafel!

min 6λ1 +9λ2


λ1 =1
λ1 =1
λ2 =1
λ2 =1
λ1 +λ2 ≤2
λ1 ≥0
λ2 ≥0

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

Column Generation Konstruiere initales RMP(N)


(Spaltengenerierung)

Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)

Konstruiere Routen R mit ne- ja Löse Subproblem SP(πi , µ)


gativen reduzierten Kosten z(SP(πi , µ)) < 0 ?

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

Lösung des RMPs und Duale Preise

Einschub: Simplexalgorithmus bei Minimierungsproblem

19 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise

Einschub: Simplexalgorithmus bei Minimierungsproblem

Definition (Standardproblem der LP bei Minimierung)

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

Lösung des RMPs und Duale Preise

Einschub: Simplexalgorithmus bei Minimierungsproblem

Unterschiede/Gemeinsamkeiten zu Maximierungsproblem:

20 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise

Einschub: Simplexalgorithmus bei Minimierungsproblem

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

Lösung des RMPs und Duale Preise

Einschub: Simplexalgorithmus bei Minimierungsproblem

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

Lösung des RMPs und Duale Preise

Einschub: Simplexalgorithmus bei Minimierungsproblem

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

Lösung des RMPs und Duale Preise


Einschub: Simplexalgorithmus bei Minimierungsproblem

Transformation in Standardproblem bei “=-Restriktionen (ohne Spalte ei )”:

21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Einschub: Simplexalgorithmus bei Minimierungsproblem

Transformation in Standardproblem bei “=-Restriktionen (ohne Spalte ei )”:


Zum Erreichen des Standardproblems der linearen Programmierung fehlen evtl.
die (positiven!) Spalten der Einheitsmatrix I in der Koeffizientenmatrix.

21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Einschub: Simplexalgorithmus bei Minimierungsproblem

Transformation in Standardproblem bei “=-Restriktionen (ohne Spalte ei )”:


Zum Erreichen des Standardproblems der linearen Programmierung fehlen evtl.
die (positiven!) Spalten der Einheitsmatrix I in der Koeffizientenmatrix.
Addition nicht-negativer Hilfsvariablen xh zur linken Seite und Zuordnung sehr
hoher Kosten M als Zielfunktionskoeffizienten,

21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Einschub: Simplexalgorithmus bei Minimierungsproblem

Transformation in Standardproblem bei “=-Restriktionen (ohne Spalte ei )”:


Zum Erreichen des Standardproblems der linearen Programmierung fehlen evtl.
die (positiven!) Spalten der Einheitsmatrix I in der Koeffizientenmatrix.
Addition nicht-negativer Hilfsvariablen xh zur linken Seite und Zuordnung sehr
hoher Kosten M als Zielfunktionskoeffizienten, denn
a1 x1 + a2 x2 + · · · + an xn = b
(a1 , a2 , . . . , an , b ∈ R) ist äquivalent zu
a1 x1 + a2 x2 + · · · + an xn + xh = b
mit Hilfsvariable xh ≥ 0, die man mit
z = min c > x + (M)xh
in die Zielfunktion aufnimmt.

21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Einschub: Simplexalgorithmus bei Minimierungsproblem

Transformation in Standardproblem bei “=-Restriktionen (ohne Spalte ei )”:


Zum Erreichen des Standardproblems der linearen Programmierung fehlen evtl.
die (positiven!) Spalten der Einheitsmatrix I in der Koeffizientenmatrix.
Addition nicht-negativer Hilfsvariablen xh zur linken Seite und Zuordnung sehr
hoher Kosten M als Zielfunktionskoeffizienten, denn
a1 x1 + a2 x2 + · · · + an xn = b
(a1 , a2 , . . . , an , b ∈ R) ist äquivalent zu
a1 x1 + a2 x2 + · · · + an xn + xh = b
mit Hilfsvariable xh ≥ 0, die man mit
z = min c > x + (M)xh
in die Zielfunktion aufnimmt.
In einer optimalen Lösung (falls existent) muss wegen der hohen Kosten stets
xh = 0 gelten!
21 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise – Beispiel


RMP mit heuristischer Lösung in Standardform:
min 6λ1 9λ2 +Ms1 +Ms2 +Ms3 +Ms4
λ1 +s1 =1
λ1 +s2 =1
λ2 +s3 =1
λ2 +s4 =1
λ1 +λ2 +s5 =2
λ1 , λ2 , s1 , s2 , s3 , s4 , s5 ≥ 0

22 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise – Beispiel


RMP mit heuristischer Lösung in Standardform:
min 6λ1 9λ2 +Ms1 +Ms2 +Ms3 +Ms4
λ1 +s1 =1
λ1 +s2 =1
λ2 +s3 =1
λ2 +s4 =1
λ1 +λ2 +s5 =2
λ1 , λ2 , s1 , s2 , s3 , s4 , s5 ≥ 0

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

Lösung des RMPs und Duale Preise – Beispiel


RMP mit heuristischer Lösung in Standardform:
min 6λ1 9λ2 +Ms1 +Ms2 +Ms3 +Ms4
λ1 +s1 =1
λ1 +s2 =1
λ2 +s3 =1
λ2 +s4 =1
λ1 +λ2 +s5 =2
λ1 , λ2 , s1 , s2 , s3 , s4 , s5 ≥ 0

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

Lösung des RMPs und Duale Preise – Beispiel


RMP mit heuristischer Lösung in Standardform:
min 6λ1 9λ2 +Ms1 +Ms2 +Ms3 +Ms4
λ1 +s1 =1
λ1 +s2 =1
λ2 +s3 =1
λ2 +s4 =1
λ1 +λ2 +s5 =2
λ1 , λ2 , s1 , s2 , s3 , s4 , s5 ≥ 0

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

Lösung des RMPs und Duale Preise – Beispiel


RMP mit heuristischer Lösung in Standardform:
min 6λ1 9λ2 +Ms1 +Ms2 +Ms3 +Ms4
λ1 +s1 =1
λ1 +s2 =1
λ2 +s3 =1
λ2 +s4 =1
λ1 +λ2 +s5 =2
λ1 , λ2 , s1 , s2 , s3 , s4 , s5 ≥ 0

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

Lösung des RMPs und Duale Preise – Beispiel


2. Simplextableau:
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
6 λ1 1 0 1 1
M s2 0 −1 1 0
M s3 1 0 1 1
M s4 1 0 1 1
0 s5 1 −1 1 1
c̃j 9 − 2M 2M − 6 2M + 6

23 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise – Beispiel


2. Simplextableau:
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
6 λ1 1 0 1 1
M s2 0 −1 1 0
M s3 1 0 1 1
M s4 1 0 1 1
0 s5 1 −1 1 1
c̃j 9 − 2M 2M − 6 2M + 6

23 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise – Beispiel


2. Simplextableau:
cj 6 9 M M M M
cB xB λ1 λ2 s1 s2 s3 s4 s5 b0
6 λ1 1 0 1 1
M s2 0 −1 1 0
M s3 1 0 1 1
M s4 1 0 1 1
0 s5 1 −1 1 1
c̃j 9 − 2M 2M − 6 2M + 6
3. Simplextableau (Endtableau):
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
0 s5 −1 −1 1 0
c̃j 2M − 6 2M − 9 15
23 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Duale Variablen und Duale Preise:
Jede Nebenbedingung ist mit einer dualen Variable assoziiert
Im Optimum gibt der Wert der Dualvariable (auch: Schattenpreis, dualer
Preis) einer Restriktion an (innerhalb gewisser Grenzen), wie sich der Ziel-
funktionswert ändert, wenn die rechte Seite um eine Einheit erhöht wird.

24 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Duale Variablen und Duale Preise:
Jede Nebenbedingung ist mit einer dualen Variable assoziiert
Im Optimum gibt der Wert der Dualvariable (auch: Schattenpreis, dualer
Preis) einer Restriktion an (innerhalb gewisser Grenzen), wie sich der Ziel-
funktionswert ändert, wenn die rechte Seite um eine Einheit erhöht wird.
Andere Interpretation: Attraktivität einen Kunden in einer fehlenden
Route zu besuchen, ausgehend von aktueller RMP-Lösung

24 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Duale Variablen und Duale Preise:
Jede Nebenbedingung ist mit einer dualen Variable assoziiert
Im Optimum gibt der Wert der Dualvariable (auch: Schattenpreis, dualer
Preis) einer Restriktion an (innerhalb gewisser Grenzen), wie sich der Ziel-
funktionswert ändert, wenn die rechte Seite um eine Einheit erhöht wird.
Andere Interpretation: Attraktivität einen Kunden in einer fehlenden
Route zu besuchen, ausgehend von aktueller RMP-Lösung
Duale Preise cB> B −1

24 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Duale Variablen und Duale Preise:
Jede Nebenbedingung ist mit einer dualen Variable assoziiert
Im Optimum gibt der Wert der Dualvariable (auch: Schattenpreis, dualer
Preis) einer Restriktion an (innerhalb gewisser Grenzen), wie sich der Ziel-
funktionswert ändert, wenn die rechte Seite um eine Einheit erhöht wird.
Andere Interpretation: Attraktivität einen Kunden in einer fehlenden
Route zu besuchen, ausgehend von aktueller RMP-Lösung
Duale Preise cB> B −1

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 ∈Ω̄

xr ≥ 0 für alle r ∈ Ω̄ (4)


24 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Lösung des RMPs und Duale Preise


Drittes Simplextableau (Endtableau):

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

Lösung des RMPs und Duale Preise


Drittes Simplextableau (Endtableau):

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

Die dualen Preise einer Nebenbedingung entspricht gerade der Differenz


aus Kosten und reduzierten Kosten der zugehörigen Schlupf-/Hilfsvariable
π1 := cs1 − c̃s1 = −M + 6
π2 := cs2 − c̃s2 = M
π3 := cs3 − c̃s3 = −M + 9
π4 := cs4 − c̃s4 = M
µ := cs5 − c̃s5 = 0
25 / 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

Column Generation Konstruiere initales RMP(N)


(Spaltengenerierung)

Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)

Konstruiere Routen R mit ne- ja Löse Subproblem SP(πi , µ)


gativen reduzierten Kosten z(SP(πi , µ)) < 0 ?

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

→ Problem: Route r ist unbekannt


→ Kosten cr und besuchte Kunden aij sind unbekannt

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

→ Problem: Route r ist unbekannt


→ Kosten cr und besuchte Kunden aij sind unbekannt
Routen r müssen zulässig sein, d.h. r ∈ Ω

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

→ Problem: Route r ist unbekannt


→ Kosten cr und besuchte Kunden aij sind unbekannt
Routen r müssen zulässig sein, d.h. r ∈ Ω
⇒ Optimierungsproblem: Finde eine zulässige Route r (d.h. bestimme
cr und aij ) mit möglichst kleinen reduzierten Kosten bei gegebenem πi
und µ
min c̃r
r ∈Ω
27 / 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)

ui − uj + Qxij ≤ Q − qj für alle (i, j) ∈ A(N) (4)


qi ≤ ui ≤ Q für alle i ∈ N (5)
Ti − Tj + Mij xij ≤ Mij − tij für alle (i, j) ∈ A(N) (6)
ai ≤ Ti ≤ bi für alle i ∈ N, k ∈ K (7)
yi ∈ {0, 1} für alle i ∈ N (8)
xij ∈ {0, 1} für alle (i, j) ∈ A (9)

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)

ui − uj + Qxij ≤ Q − qj für alle (i, j) ∈ A(N) (4)


qi ≤ ui ≤ Q für alle i ∈ N (5)
Ti − Tj + Mij xij ≤ Mij − tij für alle (i, j) ∈ A(N) (6)
ai ≤ Ti ≤ bi für alle i ∈ N, k ∈ K (7)
yi ∈ {0, 1} für alle i ∈ N (8)
xij ∈ {0, 1} für alle (i, j) ∈ A (9)
Nebenbedingungen (2)–(9) entsprechen Nebenbedingungen (3)–(10) der
3-Index Formulierung bis auf das Entfernen des Index k.
Das Subproblem ist ein elementares Kürzeste-Wege-Problem mit
Ressourcenbeschränkung. Es ist NP-schwer.
28 / 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

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

Column Generation Konstruiere initales RMP(N)


(Spaltengenerierung)

Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)

Konstruiere Routen R mit ja Löse Subproblem SP(πi , µ)


negativen reduzierten Ko- z(SP(πi , µ)) < 0 ?
sten

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

Konstruktion von Routen für das RMP


Für das RMP sind folgende Eigenschaften einer Route r ∈ Ω relevant:
cr Kosten der Route
air Anzahl der Besuche von Kunden i in Route r

31 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion von Routen für das RMP


Für das RMP sind folgende Eigenschaften einer Route r ∈ Ω relevant:
cr Kosten der Route
air Anzahl der Besuche von Kunden i in Route r

Diese Informationen können einfach aus der Lösung des Subproblems


extrahiert werden. Sei (x ∗ , y ∗ , u ∗ , T ∗ ) die optimale Lösung des
Subproblems, dann gilt: X
cr = cij xij∗
(i,j)∈A

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

Konstruktion von Routen für das RMP


Für das RMP sind folgende Eigenschaften einer Route r ∈ Ω relevant:
cr Kosten der Route
air Anzahl der Besuche von Kunden i in Route r

Diese Informationen können einfach aus der Lösung des Subproblems


extrahiert werden. Sei (x ∗ , y ∗ , u ∗ , T ∗ ) die optimale Lösung des
Subproblems, dann gilt: X
cr = cij xij∗
(i,j)∈A

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

Konstruktion von Routen für das RMP

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

Konstruktion von Routen für das RMP

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

Konstruktion von Routen für das RMP

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

Die Spalte im aktuellen Simplextableau des RMP lautet:


     
1 0 0 0 0 0 0
0
−1 1 0 0 0 1 1
a3 = 0 0 1 0 0 · 0 = 0
     
0 0 −1 1 0 1 1
−1 0 −1 0 1 1 1

32 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion von Routen für das RMP


Unser Beispiel: Um neue Spalte erweitertes Simplextableau
1. Simplextableau in 2. RMP-Iteration
cj 6 9 5 M M M M
cB xB λ1 λ2 λ3 s1 s2 s3 s4 s5 b0
6 λ1 1 0 1 0 1
M s2 1 −1 1 0 0
9 λ2 1 0 0 1 1
M s4 1 0 −1 1 0
0 s5 1 −1 −1 1 0
c̃j 2M − 6 2M − 9 15

33 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion von Routen für das RMP


Unser Beispiel: Um neue Spalte erweitertes Simplextableau
1. Simplextableau in 2. RMP-Iteration
cj 6 9 5 M M M M
cB xB λ1 λ2 λ3 s1 s2 s3 s4 s5 b0
6 λ1 1 0 1 0 1
M s2 1 −1 1 0 0
9 λ2 1 0 0 1 1
M s4 1 0 −1 1 0
0 s5 1 −1 −1 1 0
c̃j 5 − 2M 2M − 6 2M − 9 15

33 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion von Routen für das RMP


Unser Beispiel: Um neue Spalte erweitertes Simplextableau
1. Simplextableau in 2. RMP-Iteration
cj 6 9 5 M M M M
cB xB λ1 λ2 λ3 s1 s2 s3 s4 s5 b0
6 λ1 1 0 1 0 1
M s2 1 −1 1 0 0
9 λ2 1 0 0 1 1
M s4 1 0 −1 1 0
0 s5 1 −1 −1 1 0
c̃j 5 − 2M 2M − 6 2M − 9 15

33 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion von Routen für das RMP


Unser Beispiel: Um neue Spalte erweitertes Simplextableau
1. Simplextableau in 2. RMP-Iteration
cj 6 9 5 M M M M
cB xB λ1 λ2 λ3 s1 s2 s3 s4 s5 b0
6 λ1 1 0 1 0 1
M s2 1 −1 1 0 0
9 λ2 1 0 0 1 1
M s4 1 0 −1 1 0
0 s5 1 −1 −1 1 0
c̃j 5 − 2M 2M − 6 2M − 9 15
2. Simplextableau in 2. RMP-Iteration:
cj 6 9 5 M M M M
cB xB λ1 λ2 λ3 s1 s2 s3 s4 s5 b0
6 λ1 1 1 0 0 1
5 λ3 1 −1 1 0 0
9 λ2 1 0 0 1 1
M s4 1 −1 −1 1 0
0 s5 0 −1 −1 1 0
c̃j −1 2M − 5 2M − 9 15 33 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion von Routen für das RMP


Unser Beispiel:
3. Simplextableau in 2. RMP-Iteration:

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

Konstruktion von Routen für das RMP


Unser Beispiel:
3. Simplextableau in 2. RMP-Iteration:

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

Konstruktion von Routen für das RMP


Unser Beispiel:
3. Simplextableau in 2. RMP-Iteration:

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

(Eine) Optimale Lösung des Subproblems:


Duale Preise:
zSub = 7 − 2M < 0
π1 := cs1 − c̃s1 =M
y1∗ = y4∗ = 1; x04
∗ ∗
= x41 ∗
= x10 = 1;
π2 := cs2 − c̃s2 = −M + 6 ∗ ∗ ∗ ∗
u1 = 5; u4 = 1; T1 = 4; T4 = 2,
π3 := cs3 − c̃s3 = −M + 10
alle anderen Variablen: Wert 0
π4 := cs4 − c̃s4 =M −1
zugehörige Route λ4 :
µ := cs5 − c̃s5 =0
c4 = 6, a14 = a44 = a54 = 1, a24 = a34 = 0
34 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Beispiel – Weiterer Verlauf des Verfahrens


Duale Preise neue Spalte
Iter. π1 π2 π3 π4 µ # cr a1r a2r a3r a4r a5r
3 M-3 9-M M 9-M 0 5 4 0 0 1 0 1
4 6 5 9 5 -5 6 10 0 1 1 1 1
5 4 3 5 3 -1 zSub ≥0

35 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Beispiel – Weiterer Verlauf des Verfahrens


Duale Preise neue Spalte
Iter. π1 π2 π3 π4 µ # cr a1r a2r a3r a4r a5r
3 M-3 9-M M 9-M 0 5 4 0 0 1 0 1
4 6 5 9 5 -5 6 10 0 1 1 1 1
5 4 3 5 3 -1 zSub ≥0

Endtableau in 5. Iteration: (zum Nachrechnen)

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

Beispiel – Weiterer Verlauf des Verfahrens


Duale Preise neue Spalte
Iter. π1 π2 π3 π4 µ # cr a1r a2r a3r a4r a5r
3 M-3 9-M M 9-M 0 5 4 0 0 1 0 1
4 6 5 9 5 -5 6 10 0 1 1 1 1
5 4 3 5 3 -1 zSub ≥0

Endtableau in 5. Iteration: (zum Nachrechnen)

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

Column Generation Konstruiere initales RMP(N)


(Spaltengenerierung)

Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)

Konstruiere Routen R mit ne- ja Löse Subproblem SP(πi , µ)


gativen reduzierten Kosten z(SP(πi , µ)) < 0 ?

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

→ Verzweige auf den (aggregierten) Bogenvariablen xij = k∈K xijk


P
des Ursprungsproblems

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

→ Verzweige auf den (aggregierten) Bogenvariablen xij = k∈K xijk


P
des Ursprungsproblems
Dazu wird aus der Lösung λ∗r ein Supportgraph erstellt, in dem die
Routenvariablen λr zurück in die aggregierten Bogenvariablen xij
des Ursprungsproblems übersetzt werden.
Verzweigen auf einer Variable xij mit nicht-ganzzahligem Wert
→ z.B. Wert am nächsten bei 0,5
→ Zwei Kinderknoten: xij = 0 bzw. xij = 1

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

⇒ Verzweige (z.B.) auf x12


38 / 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

Column Generation Konstruiere initales RMP(N)


(Spaltengenerierung)

Löse RMP(N)
Routen R Füge Kinder-
knoten von N
Duale Preise
zu S hinzu
(πi , µ)

Konstruiere Routen R mit ne- ja Löse Subproblem SP(πi , µ)


gativen reduzierten Kosten z(SP(πi , µ)) < 0 ?

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

Konstruktion des RMPs nach Branching


Im RMP und im Subproblem müssen die im aktuellen Knoten
gültigen Branchingentscheidungen beachten werden.

40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion des RMPs nach Branching


Im RMP und im Subproblem müssen die im aktuellen Knoten
gültigen Branchingentscheidungen beachten werden.
Hier: Eine Branchingentscheidung erzwingt oder verbietet einen
Bogen
→ Kann durch Verwendung einer verkleinerten Bogenmenge
A0 ⊂ A umgesetzt werden:

40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion des RMPs nach Branching


Im RMP und im Subproblem müssen die im aktuellen Knoten
gültigen Branchingentscheidungen beachten werden.
Hier: Eine Branchingentscheidung erzwingt oder verbietet einen
Bogen
→ Kann durch Verwendung einer verkleinerten Bogenmenge
A0 ⊂ A umgesetzt werden:
xij =0 Entferne den Bogen (i, j) aus A0

40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion des RMPs nach Branching


Im RMP und im Subproblem müssen die im aktuellen Knoten
gültigen Branchingentscheidungen beachten werden.
Hier: Eine Branchingentscheidung erzwingt oder verbietet einen
Bogen
→ Kann durch Verwendung einer verkleinerten Bogenmenge
A0 ⊂ A umgesetzt werden:
xij =0 Entferne den Bogen (i, j) aus A0
xij =1 Entferne Bögen (i, k) für k 6= j und (h, j) für h 6= i aus A0

40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion des RMPs nach Branching


Im RMP und im Subproblem müssen die im aktuellen Knoten
gültigen Branchingentscheidungen beachten werden.
Hier: Eine Branchingentscheidung erzwingt oder verbietet einen
Bogen
→ Kann durch Verwendung einer verkleinerten Bogenmenge
A0 ⊂ A umgesetzt werden:
xij =0 Entferne den Bogen (i, j) aus A0
xij =1 Entferne Bögen (i, k) für k 6= j und (h, j) für h 6= i aus A0
→ Die zweite Implikation folgt, weil jeder Knoten exakt einmal
besucht wird und daher kein anderer der ausgehenden
(eingehenden) Bögen des Knotens i (j) den Wert 1 annehmen
darf.

40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion des RMPs nach Branching


Im RMP und im Subproblem müssen die im aktuellen Knoten
gültigen Branchingentscheidungen beachten werden.
Hier: Eine Branchingentscheidung erzwingt oder verbietet einen
Bogen
→ Kann durch Verwendung einer verkleinerten Bogenmenge
A0 ⊂ A umgesetzt werden:
xij =0 Entferne den Bogen (i, j) aus A0
xij =1 Entferne Bögen (i, k) für k 6= j und (h, j) für h 6= i aus A0
→ Die zweite Implikation folgt, weil jeder Knoten exakt einmal
besucht wird und daher kein anderer der ausgehenden
(eingehenden) Bögen des Knotens i (j) den Wert 1 annehmen
darf.
Implementierung der Branchingentscheidungen:
→ Entferne alle Routen aus dem RMP, die ausgeschlossene Bögen
nutzen
→ Löse das Subproblem über der reduzierten Bogenmenge A0
40 / 43
Kapitel 3: Exakte Lösung von VRPs
Kapitel 3.2: Column Generation und Branch-&-Price
Literatur

Konstruktion des RMPs nach Branching


Unser Beispiel: (Knoten N1 )
Routen im RMP: λ1 = ˆ (0-1-2-0); λ2 =
ˆ (0-3-4-0);λ3 =
ˆ (0-2-4-0);λ4
=
ˆ (0-1-4-0); λ5 =
ˆ (0-3-0); λ6 =
ˆ (0-4-2-3-0)
Branchingentscheidung x12 = 0 ⇒ Entferne Route λ1
Erstes Simplextableau:
cj 9 5 6 4 10 M M M M
cB xB λ2 λ3 λ4 λ5 λ6 s1 s2 s3 s4 s5 b0
M s1 0 0 1 0 0 1 1
M s2 0 1 0 0 1 1 1
M s3 1 0 0 1 1 1 1
M s4 1 1 1 0 1 1 1
0 s5 1 1 1 1 1 1 2
c̃j 9 − 2M 5 − 2M 6 − 2M 4−M 10 − 3M 4M

ˆ (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

Konstruktion des RMPs nach Branching


Unser Beispiel: (Knoten N2 )
Routen im RMP: λ1 = ˆ (0-1-2-0); λ2 =
ˆ (0-3-4-0);λ3 =
ˆ (0-2-4-0);λ4
=
ˆ (0-1-4-0); λ5 =
ˆ (0-3-0); λ6 =
ˆ (0-4-2-3-0)
Branchingentscheidung x12 = 1 ⇒ Entferne Routen λ3 , λ4 und λ6
Erstes Simplextableau:
cj 6 9 4 M M M M
cB xB λ1 λ2 λ5 s1 s2 s3 s4 s5 b0
M s1 1 0 0 1 1
M s2 1 0 0 1 1
M s3 0 1 1 1 1
M s4 0 1 0 1 1
0 s5 1 1 1 1 2
c̃j 6 − 2M 9 − 2M 4−M 4M

ˆ (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

Branch-&-Bound Baum – Beispiel


N0
LB = 13

x12 = 0 x12 = 1

N1 N2
UB = 14 UB = 15

Das Branch-&-Price Verfahren endet nach dem Abarbeiten der beiden


Kinderknoten N1 und N2 , da beide ganzzahlige Lösungen haben.
Die optimale Lösung des Beispiels ist damit die Lösung von Knoten
N1 mit Zielfunktionswert 14. 1

[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

[Desaulniers u. a. 2014] Desaulniers, G. ; Madsen, O. B. G. ; Ropke, S.:


Chapter 5: The Vehicle Routing Problem with Time Windows. In: Toth, P.
(Hrsg.) ; Vigo, D. (Hrsg.): Vehicle Routing. Philadelphia, PA : Society for
Industrial and Applied Mathematics, 2014, S. 119–159
[Kallehauge u. a. 2005] Kallehauge, B. ; Larsen, J. ; Madsen, O. B. G. ;
Solomon, M. M.: Vehicle Routing Problem with Time Windows. In:
Desaulniers, Guy (Hrsg.) ; Desrosiers, Jacques (Hrsg.) ; Solomon, Marius M.
(Hrsg.): Column Generation. Springer-Verlag, 2005, S. 67–98

43 / 43

Das könnte Ihnen auch gefallen