Vortrag zum

Werbung
Outlines
Ganzzahlige Optimierung
Minikurs im Cluster Intelligent Systems for Decision Support
Winfried Hochstättler
Diskrete Mathematik und Optimierung
FernUniversität in Hagen
16. Juni 2009
Outlines
Outline I
Grundbegriffe
Ganzzahlige Optimierungsaufgaben
Beispiele kombinatorischer IPs
Alternative Modellierungen
Gutartige Probleme
Das Assignment Problem
Total unimodulare Matrizen
Nichtbipartites Matching
Weitere gutartige Probleme
Outlines
Outline II
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Grundbegriffe
Gutartige Probleme
Outline
Grundbegriffe
Ganzzahlige Optimierungsaufgaben
Beispiele kombinatorischer IPs
Alternative Modellierungen
Gutartige Probleme
Das Assignment Problem
Total unimodulare Matrizen
Nichtbipartites Matching
Weitere gutartige Probleme
Grundbegriffe
Gutartige Probleme
Ganzzahlige Optimierungsaufgabe
Seien A ∈ Zm×n , G ∈ Zm×r , b ∈ Zm , c ∈ Zn , h ∈ Zr . Ein
Grundbegriffe
Gutartige Probleme
Ganzzahlige Optimierungsaufgabe
Seien A ∈ Zm×n , G ∈ Zm×r , b ∈ Zm , c ∈ Zn , h ∈ Zr . Ein
gemischt ganzzahliges Programm in Standardform hat die Gestalt
max
(MIP)
c>x
Ax
x
+ h> y
+ Gy
∈
Zn+
,y
= b
≥ 0,
Grundbegriffe
Gutartige Probleme
Ganzzahlige Optimierungsaufgabe
Seien A ∈ Zm×n , G ∈ Zm×r , b ∈ Zm , c ∈ Zn , h ∈ Zr . Ein
gemischt ganzzahliges Programm in Standardform hat die Gestalt
max
(MIP)
ganzzahliges Programm
(IP)
c>x
Ax
x
+ h> y
+ Gy
∈
Zn+
max
c>x
Ax
x
,y
=
b
∈ Zn+ ,
= b
≥ 0,
Grundbegriffe
Gutartige Probleme
Ganzzahlige Optimierungsaufgabe
Seien A ∈ Zm×n , G ∈ Zm×r , b ∈ Zm , c ∈ Zn , h ∈ Zr . Ein
gemischt ganzzahliges Programm in Standardform hat die Gestalt
max
(MIP)
ganzzahliges Programm
c>x
Ax
x
+ h> y
+ Gy
∈
Zn+
max
c>x
Ax
x
(IP)
boolsches Programm
max
(BIP)
c>x
Ax
x
,y
= b
≥ 0,
=
b
∈ Zn+ ,
=
b
∈ {0, 1}n .
Grundbegriffe
Gutartige Probleme
Ergebnisse des Linearen Programms runden?
max
100x1
50x1
−3x1
+64x2
+31x2
+2x2
x1 , x2
≤
≤
∈
250
4
Z+ .
Grundbegriffe
Gutartige Probleme
Ergebnisse des Linearen Programms runden?
max
100x1
50x1
−3x1
+64x2
+31x2
+2x2
x1 , x2
≤
≤
∈
250
4
Z+ .
1
1
Grundbegriffe
Gutartige Probleme
Ergebnisse des Linearen Programms runden?
max
100x1
50x1
−3x1
+64x2
+31x2
+2x2
x1 , x2
≤
≤
∈
250
4
Z+ .
1
1
950
Optimallösung ohne Ganzzahligkeitsbedingung ( 376
193 , 193 ).
Grundbegriffe
Gutartige Probleme
Ergebnisse des Linearen Programms runden?
max
100x1
50x1
−3x1
+64x2
+31x2
+2x2
x1 , x2
≤
≤
∈
250
4
Z+ .
1
1
950
Optimallösung ohne Ganzzahligkeitsbedingung ( 376
193 , 193 ).
Optimallösung des IP ist (5, 0) mit ZFW 500.
Grundbegriffe
Gutartige Probleme
Ergebnisse des Linearen Programms runden?
max
100x1
50x1
−3x1
+64x2
+31x2
+2x2
x1 , x2
≤
≤
∈
250
4
Z+ .
1
1
950
Optimallösung ohne Ganzzahligkeitsbedingung ( 376
193 , 193 ).
Optimallösung des IP ist (5, 0) mit ZFW 500.
Mittels Runden (2, 4) mit ZFW 456, 10% unter Optimalwert.
Grundbegriffe
Gutartige Probleme
Outline
Grundbegriffe
Ganzzahlige Optimierungsaufgaben
Beispiele kombinatorischer IPs
Alternative Modellierungen
Gutartige Probleme
Das Assignment Problem
Total unimodulare Matrizen
Nichtbipartites Matching
Weitere gutartige Probleme
Grundbegriffe
Gutartige Probleme
Das Zuweisungsproblem – Assignment Problem
Gegeben n Arbeitnehmer und n
Arbeitsplätze. Besetzung von Arbeitsplatz j durch Arbeitnehmer i
bringt Nutzen cij ≥ 0. Maximiere
den Gesamtnutzen.
Grundbegriffe
Gutartige Probleme
Das Zuweisungsproblem – Assignment Problem
Gegeben n Arbeitnehmer und n
Arbeitsplätze. Besetzung von Arbeitsplatz j durch Arbeitnehmer i
bringt Nutzen cij ≥ 0. Maximiere
den Gesamtnutzen.
Grundbegriffe
Gutartige Probleme
Das Zuweisungsproblem – Assignment Problem
Gegeben n Arbeitnehmer und n
Arbeitsplätze. Besetzung von Arbeitsplatz j durch Arbeitnehmer i
bringt Nutzen cij ≥ 0. Maximiere
den Gesamtnutzen. Setze xij =
1 falls i Platz j zugeordnet wird,
xij = 0 sonst:
Grundbegriffe
Gutartige Probleme
Das Zuweisungsproblem – Assignment Problem
Gegeben n Arbeitnehmer und n
Arbeitsplätze. Besetzung von Arbeitsplatz j durch Arbeitnehmer i
bringt Nutzen cij ≥ 0. Maximiere
den Gesamtnutzen. Setze xij =
1 falls i Platz j zugeordnet wird,
xij = 0 sonst:
max
Pn
i=1
Pn
j=1
cij xij
xij
∈
{0, 1}
Grundbegriffe
Gutartige Probleme
Das Zuweisungsproblem – Assignment Problem
Gegeben n Arbeitnehmer und n
Arbeitsplätze. Besetzung von Arbeitsplatz j durch Arbeitnehmer i
bringt Nutzen cij ≥ 0. Maximiere
den Gesamtnutzen. Setze xij =
1 falls i Platz j zugeordnet wird,
xij = 0 sonst:
max
(AP)
Pn
i=1
Pn
j=1 cij xij
P
n
xij
Pj=1
n
i=1 xij
xij
= 1
∀i = 1, . . . , n
= 1
∀j = 1, . . . , n
∈ {0, 1}
Grundbegriffe
Gutartige Probleme
Das Rucksack Problem (Knapsack Problem)
Gegeben sei ein Rucksack
mit Kapazität b ∈ N und
n Gegenstände. Gegenstand i hat Gewicht (Volumen) ai und bringt Nutzen
ci .
Packe Rucksack so,
dass der Nutzen maximiert
wird.
a
a http://en.wikipedia.org/wiki/Knapsack_problem
Grundbegriffe
Gutartige Probleme
Das Rucksack Problem (Knapsack Problem)
Gegeben sei ein Rucksack
mit Kapazität b ∈ N und
n Gegenstände. Gegenstand i hat Gewicht (Volumen) ai und bringt Nutzen
ci .
Packe Rucksack so,
dass der Nutzen maximiert
wird.
Pn
max
j=1 cj xj
xj
∈
{0, 1}
a
a http://en.wikipedia.org/wiki/Knapsack_problem
Grundbegriffe
Gutartige Probleme
Das Rucksack Problem (Knapsack Problem)
Gegeben sei ein Rucksack
mit Kapazität b ∈ N und
n Gegenstände. Gegenstand i hat Gewicht (Volumen) ai und bringt Nutzen
ci .
Packe Rucksack so,
dass der Nutzen maximiert
wird.
Pn
max
cx
Pnj=1 j j
(KP)
≤ b
j=1 aj xj
xj ∈ {0, 1}
a
a http://en.wikipedia.org/wiki/Knapsack_problem
Grundbegriffe
Gutartige Probleme
Rundreiseproblem (Travelling Salesman Problem TSP)
Man will n Städte in Rundreise besuchen und zum
Ausgangspunkt zurückkehren.
Reisezeit von Stadt i zu
Stadt j ist cij .
Minimiere
Gesamtreisezeit.
b
b TeleData
c
PPWK 2009
Grundbegriffe
Gutartige Probleme
Rundreiseproblem (Travelling Salesman Problem TSP)
Man will n Städte in Rundreise besuchen und zum
Ausgangspunkt zurückkehren.
Reisezeit von Stadt i zu
Stadt j ist cij .
Minimiere
Gesamtreisezeit. Setze xij = 1,
wenn Stadt i unmittelbar vor
Stadt j besucht wird.
b
b TeleData
c
PPWK 2009
Grundbegriffe
Gutartige Probleme
Rundreiseproblem (Travelling Salesman Problem TSP)
Man will n Städte in Rundreise besuchen und zum
Ausgangspunkt zurückkehren.
Reisezeit von Stadt i zu
Stadt j ist cij .
Minimiere
Gesamtreisezeit. Setze xij = 1,
wenn Stadt i unmittelbar vor
Stadt j besucht wird.
Pn Pn
min
i=1
j=1 cij xij
xij
b
b TeleData
c
∈
{0, 1}
PPWK 2009
Grundbegriffe
Gutartige Probleme
Rundreiseproblem (Travelling Salesman Problem TSP)
Man will n Städte in Rundreise besuchen und zum
Ausgangspunkt zurückkehren.
Reisezeit von Stadt i zu
Stadt j ist cij .
Minimiere
Gesamtreisezeit. Setze xij = 1,
wenn Stadt i unmittelbar vor
Stadt j besucht wird.
Pn Pn
b TeleData
c
PPWK 2009
min
i=1
j=1 cij xij
P
n
(TSP)
xij = 1
∀i = 1, . . . , n
Pj=1
n
x
=
1
∀j
= 1, . . . , n
ij
i=1
xij
∈
{0, 1}
b
Grundbegriffe
Gutartige Probleme
Rundreiseproblem (Travelling Salesman Problem TSP)
Man will n Städte in Rundreise besuchen und zum
Ausgangspunkt zurückkehren.
Reisezeit von Stadt i zu
Stadt j ist cij .
Minimiere
Gesamtreisezeit. Setze xij = 1,
wenn Stadt i unmittelbar vor
Stadt j besucht wird.
Pn Pn
min
i=1
j=1 cij xij
P
n
(TSP)
xij
Pj=1
n
x
P P i=1 ij
i∈S
j6∈S xij
xij
b
b TeleData
c
= 1
= 1
≥ 1
∈ {0, 1}
PPWK 2009
∀i = 1, . . . , n
∀j = 1, . . . , n
∀∅ =
6 S ⊂ {1, . . . , n}
Grundbegriffe
Gutartige Probleme
Kapazitierte Tourenplanung CVRP
V0 Menge von Knoten in gewichtetem Graph (Kunden) mit
Bestellmengen bv ∈ N. v0 6∈ V0 ein Depot. C ∈ N Kapazität der k ∈ N
LKW. Seien ce Kosten des Transports entlang Kante e. Beliefere
Kunden kostenminimal.
Grundbegriffe
Gutartige Probleme
Kapazitierte Tourenplanung CVRP
V0 Menge von Knoten in gewichtetem Graph (Kunden) mit
Bestellmengen bv ∈ N. v0 6∈ V0 ein Depot. C ∈ N Kapazität der k ∈ N
LKW. Seien ce Kosten des Transports entlang Kante e. Beliefere
Kunden kostenminimal.
8
30
3
6
4
8
2
8
5
1
4
7
2
8
3
1
2
3
6
5
9
5
Grundbegriffe
Gutartige Probleme
Kapazitierte Tourenplanung CVRP
V0 Menge von Knoten in gewichtetem Graph (Kunden) mit
Bestellmengen bv ∈ N. v0 6∈ V0 ein Depot. C ∈ N Kapazität der k ∈ N
LKW. Seien ce Kosten des Transports entlang Kante e. Beliefere
Kunden kostenminimal.
P
min
e∈E ce xe
Grundbegriffe
Gutartige Probleme
Kapazitierte Tourenplanung CVRP
V0 Menge von Knoten in gewichtetem Graph (Kunden) mit
Bestellmengen bv ∈ N. v0 6∈ V0 ein Depot. C ∈ N Kapazität der k ∈ N
LKW. Seien ce Kosten des Transports entlang Kante e. Beliefere
Kunden kostenminimal.
P
min Pe∈E ce xe
= 2
∀v ∈ V0
Pv ∈e xe
x
=
2k
v0 ∈e e
Grundbegriffe
Gutartige Probleme
Kapazitierte Tourenplanung CVRP
V0 Menge von Knoten in gewichtetem Graph (Kunden) mit
Bestellmengen bv ∈ N. v0 6∈ V0 ein Depot. C ∈ N Kapazität der k ∈ N
LKW. Seien ce Kosten des Transports entlang Kante e. Beliefere
Kunden kostenminimal.
P
min Pe∈E ce xe
= 2
∀v ∈ V0
Pv ∈e xe
x
=
2k
e
P
Pv0 ∈e
bv
≥ 2 v ∈S
∀S ⊆ V0
e=(u,v ) xe
C
u∈S63v
Grundbegriffe
Gutartige Probleme
Kapazitierte Tourenplanung CVRP
V0 Menge von Knoten in gewichtetem Graph (Kunden) mit
Bestellmengen bv ∈ N. v0 6∈ V0 ein Depot. C ∈ N Kapazität der k ∈ N
LKW. Seien ce Kosten des Transports entlang Kante e. Beliefere
Kunden kostenminimal.
P
min Pe∈E ce xe
= 2
∀v ∈ V0
Pv ∈e xe
x
=
2k
e
P
Pv0 ∈e
bv
≥ 2 v ∈S
∀S ⊆ V0
e=(u,v ) xe
C
u∈S63v
xe
xe
∈
∈
{0, 1}
{0, 1, 2}
∀e ∈ V0 × V0
∀v0 ∈ e
Grundbegriffe
Gutartige Probleme
Outline
Grundbegriffe
Ganzzahlige Optimierungsaufgaben
Beispiele kombinatorischer IPs
Alternative Modellierungen
Gutartige Probleme
Das Assignment Problem
Total unimodulare Matrizen
Nichtbipartites Matching
Weitere gutartige Probleme
Grundbegriffe
Gutartige Probleme
Polyeder
Seien A ∈ Zm×n , b ∈ Zm .
Grundbegriffe
Gutartige Probleme
Polyeder
Seien A ∈ Zm×n , b ∈ Zm . Die Menge P := {x ∈ Rn | Ax ≤ b} heißt
ein Polyeder.
Grundbegriffe
Gutartige Probleme
Polyeder
Seien A ∈ Zm×n , b ∈ Zm . Die Menge P := {x ∈ Rn | Ax ≤ b} heißt
ein Polyeder. Sei X ⊆ Zr × Rp .
Grundbegriffe
Gutartige Probleme
Polyeder
Seien A ∈ Zm×n , b ∈ Zm . Die Menge P := {x ∈ Rn | Ax ≤ b} heißt
ein Polyeder. Sei X ⊆ Zr × Rp . Wir sagen, das Polyeder P modelliert
X genau dann, wenn X = P ∩ (Zr × Rp ).
Grundbegriffe
Gutartige Probleme
Polyeder
Seien A ∈ Zm×n , b ∈ Zm . Die Menge P := {x ∈ Rn | Ax ≤ b} heißt
ein Polyeder. Sei X ⊆ Zr × Rp . Wir sagen, das Polyeder P modelliert
X genau dann, wenn X = P ∩ (Zr × Rp ). Zwei Modellierungen von
{(1, 1), (2, 1), (3, 1), (1, 2), (2, 2), (3, 2), (2, 3)}.
1
1
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen
Eine Modellierung ist gut, wenn die Ecken des Polyeders möglichst
gute Informationen über die gesuchten Lösungen liefern. Im Idealfall
sind bereits alle Ecken ganzzahlig.
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen
Eine Modellierung ist gut, wenn die Ecken des Polyeders möglichst
gute Informationen über die gesuchten Lösungen liefern. Im Idealfall
sind bereits alle Ecken ganzzahlig.
Warum betrachten wir Polyeder, wenn wir diskrete (ganzzahlige)
Lösungsmengen betrachten?
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen
Eine Modellierung ist gut, wenn die Ecken des Polyeders möglichst
gute Informationen über die gesuchten Lösungen liefern. Im Idealfall
sind bereits alle Ecken ganzzahlig.
Warum betrachten wir Polyeder, wenn wir diskrete (ganzzahlige)
Lösungsmengen betrachten?
Seien x1 , . . . , xk ∈ Rn und λ ∈ Rk . Dann heißt
x=
k
X
λi xi
i=1
Pk
Konvexkombination, wenn λ ≥ 0, i=1 λi = 1. Die Menge aller
Konvexkombinationen von Elementen in X , nennen wir die konvexe
Hülle Conv(X ).
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen
Eine Modellierung ist gut, wenn die Ecken des Polyeders möglichst
gute Informationen über die gesuchten Lösungen liefern. Im Idealfall
sind bereits alle Ecken ganzzahlig.
Warum betrachten wir Polyeder, wenn wir diskrete (ganzzahlige)
Lösungsmengen betrachten?
Satz (Minkowski): Ist X endlich, so ist Conv(X ) ein Polyeder und alle
Ecken von Conv(X ) liegen in X .
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen
Eine Modellierung ist gut, wenn die Ecken des Polyeders möglichst
gute Informationen über die gesuchten Lösungen liefern. Im Idealfall
sind bereits alle Ecken ganzzahlig.
Satz: Die konvexe Hülle der zulässigen Punkte eines IP ist ein
Polyeder.
1
1
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen
Eine Modellierung ist gut, wenn die Ecken des Polyeders möglichst
gute Informationen über die gesuchten Lösungen liefern. Im Idealfall
sind bereits alle Ecken ganzzahlig.
Satz: Die konvexe Hülle der zulässigen Punkte eines IP ist ein
Polyeder.
Wir können also die Optimierungsaufgabe maxx∈X c > x äquivalent
ersetzen durch maxx∈Conv(X ) c > x.
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen
Eine Modellierung ist gut, wenn die Ecken des Polyeders möglichst
gute Informationen über die gesuchten Lösungen liefern. Im Idealfall
sind bereits alle Ecken ganzzahlig.
Satz: Die konvexe Hülle der zulässigen Punkte eines IP ist ein
Polyeder.
Wir können also die Optimierungsaufgabe maxx∈X c > x äquivalent
ersetzen durch maxx∈Conv(X ) c > x. Leider hat oftmals Conv(X ) eine
Beschreibung, die exponentiell in der Anzahl der Punkte von X ist
oder aus prinzipiellen Gründen nicht in geschlossener Form bekannt
sein kann (mehr dazu später).
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen II
Seien P1 , P2 zwei Modellierungen von X . Dann sagen wir P1 ist
besser als P2 , wenn P1 ⊂ P2 .
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen II
Seien P1 , P2 zwei Modellierungen von X . Dann sagen wir P1 ist
besser als P2 , wenn P1 ⊂ P2 .
8
30
3
6
4
8
8
5
2
8
3
1
2
3
1
P
Pe∈E ce xe
Pv ∈e xe
v ∈e xe
P0
e=(u,v ) xe
=
=
≥
u∈S63v
4
7
min
2
6
5
9
5
xe
xe
∈
∈
∀v ∈ V0
2
2kP
2
v ∈S
bv
C
{0, 1}
{0, 1, 2}
∀S ⊆ V0
∀e ∈ V0 × V0
∀v0 ∈ e
Grundbegriffe
Gutartige Probleme
Gute und ideale Formulierungen II
Seien P1 , P2 zwei Modellierungen von X . Dann sagen wir P1 ist
besser als P2 , wenn P1 ⊂ P2 .
8
30
3
6
4
8
8
5
2
8
3
1
2
3
1
P
Pe∈E ce xe
Pv ∈e xe
v ∈e xe
P0
e=(u,v ) xe
6
5
9
5
xe
xe
∀v ∈ V0
=
=
2
2k
≥
2d
∈
∈
{0, 1}
{0, 1, 2}
u∈S63v
4
7
min
2
P
v ∈S
C
bv
e
∀S ⊆ V0
∀e ∈ V0 × V0
∀v0 ∈ e
Grundbegriffe
Gutartige Probleme
Outline
Grundbegriffe
Ganzzahlige Optimierungsaufgaben
Beispiele kombinatorischer IPs
Alternative Modellierungen
Gutartige Probleme
Das Assignment Problem
Total unimodulare Matrizen
Nichtbipartites Matching
Weitere gutartige Probleme
Grundbegriffe
Gutartige Probleme
Das Assignment Problem
Gegeben n Arbeitnehmer und n
Arbeitsplätze. Besetzung von Arbeitsplatz j durch Arbeitnehmer i
bringt Nutzen cij ≥ 0. Maximiere
den Gesamtnutzen.
max
(AP)
Pn
i=1
Pn
j=1 cij xij
P
n
xij
Pj=1
n
i=1 xij
xij
= 1
= 1
∈ {0, 1}
∀i = 1, . . . , n
∀j = 1, . . . , n
Grundbegriffe
Gutartige Probleme
Ganzzahlige Hülle
Zu P = P(A, b) := {x ∈ Rn | Ax ≤ b} bezeichnen wir die konvexe
Hülle der ganzzahligen Punkte als die ganzzahlige Hülle PI von P.
Grundbegriffe
Gutartige Probleme
Ganzzahlige Hülle
Zu P = P(A, b) := {x ∈ Rn | Ax ≤ b} bezeichnen wir die konvexe
Hülle der ganzzahligen Punkte als die ganzzahlige Hülle PI von P.
Wir untersuchen hinreichende Kriterien dafür, dass P = PI für ein
Polyeder P = P(A, b) gilt.
Grundbegriffe
Gutartige Probleme
Ganzzahlige Hülle
Zu P = P(A, b) := {x ∈ Rn | Ax ≤ b} bezeichnen wir die konvexe
Hülle der ganzzahligen Punkte als die ganzzahlige Hülle PI von P.
Wir untersuchen hinreichende Kriterien dafür, dass P = PI für ein
Polyeder P = P(A, b) gilt.
Satz
x ∈ P ist genau dann Ecke von P = P(A, b), wenn es n linear
unabhängige Zeilen I von A gibt, mit AI x = bI also x = A−1
I b.
Grundbegriffe
Gutartige Probleme
Ganzzahlige Hülle
Zu P = P(A, b) := {x ∈ Rn | Ax ≤ b} bezeichnen wir die konvexe
Hülle der ganzzahligen Punkte als die ganzzahlige Hülle PI von P.
Wir untersuchen hinreichende Kriterien dafür, dass P = PI für ein
Polyeder P = P(A, b) gilt.
Satz
x ∈ P ist genau dann Ecke von P = P(A, b), wenn es n linear
unabhängige Zeilen I von A gibt, mit AI x = bI also x = A−1
I b.
Wie sehen Matrizen A aus, so dass P(A, b) = PI für beliebige
ganzzahlige Vektoren b?
Grundbegriffe
Gutartige Probleme
Outline
Grundbegriffe
Ganzzahlige Optimierungsaufgaben
Beispiele kombinatorischer IPs
Alternative Modellierungen
Gutartige Probleme
Das Assignment Problem
Total unimodulare Matrizen
Nichtbipartites Matching
Weitere gutartige Probleme
Grundbegriffe
Gutartige Probleme
Totale Unimodularität
Eine Matrix A ∈ Zm×n heißt total unimodular wenn alle ihre Unterdeterminanten in {0, 1, −1} liegen. Insbesondere A ∈ {0, ±1}m×n .
Grundbegriffe
Gutartige Probleme
Totale Unimodularität
Eine Matrix A ∈ Zm×n heißt total unimodular wenn alle ihre Unterdeterminanten in {0, 1, −1} liegen. Insbesondere A ∈ {0, ±1}m×n .
Satz
Sei A ∈ Zm×n total unimodular, b ∈ Zm und P = P(A, b). Dann ist
P = PI .
Grundbegriffe
Gutartige Probleme
Totale Unimodularität
Eine Matrix A ∈ Zm×n heißt total unimodular wenn alle ihre Unterdeterminanten in {0, 1, −1} liegen. Insbesondere A ∈ {0, ±1}m×n .
Satz
Sei A ∈ Zm×n total unimodular, b ∈ Zm und P = P(A, b). Dann ist
P = PI .
Beweis.
Sei x Ecke von P und I mit AI x = b.
Grundbegriffe
Gutartige Probleme
Totale Unimodularität
Eine Matrix A ∈ Zm×n heißt total unimodular wenn alle ihre Unterdeterminanten in {0, 1, −1} liegen. Insbesondere A ∈ {0, ±1}m×n .
Satz
Sei A ∈ Zm×n total unimodular, b ∈ Zm und P = P(A, b). Dann ist
P = PI .
Beweis.
Sei x Ecke von P und I mit AI x = b. Nach Cramerscher Regel ist
xj =
det(Ã)
= ±det(Ã),
det AI
wobei à die ganzzahlige Matrix ist, die aus AI entsteht, wenn man die
j-te Spalte durch b ersetzt.
Grundbegriffe
Gutartige Probleme
Totale Unimodularität
Eine Matrix A ∈ Zm×n heißt total unimodular wenn alle ihre Unterdeterminanten in {0, 1, −1} liegen. Insbesondere A ∈ {0, ±1}m×n .
Satz
Sei A ∈ Zm×n total unimodular, b ∈ Zm und P = P(A, b). Dann ist
P = PI .
Beweis.
Sei x Ecke von P und I mit AI x = b. Nach Cramerscher Regel ist
xj =
det(Ã)
= ±det(Ã),
det AI
wobei à die ganzzahlige Matrix ist, die aus AI entsteht, wenn man die
j-te Spalte durch b ersetzt. Die Determinante einer ganzzahligen
Matrix ist ganzzahlig.
Grundbegriffe
Gutartige Probleme
Totale Unimodularität II
Satz
Sind c ∈ Zn , b ∈ Zm und ist A ∈ Zm×n total unimodular. Dann haben
das primale Problem und das duale Problem
max
(P)
c>x
Ax
x
= b
≥ 0
ganzzahlige Optimallösungen.
min
(D)
u>b
u>A
≥ c>
Grundbegriffe
Gutartige Probleme
Totale Unimodularität II
Satz
Sind c ∈ Zn , b ∈ Zm und ist A ∈ Zm×n total unimodular. Dann haben
das primale Problem und das duale Problem
max
(P)
c>x
Ax
x
= b
≥ 0
min
(D)
u>b
u>A
≥ c>
ganzzahlige Optimallösungen.
Satz (Hoffman und Kruskal 1956)
Sei A ∈ Zm×n . Dann ist P = {x ∈ Rn | Ax ≤ b, x ≥ 0} genau dann für
alle ganzzahligen b ∈ Zm ganzzahlig, wenn A total unimodular ist.
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp
Ist G = (V , A) ein Netzwerk, so ist die Inzidenzmatrix A ∈ {±1, 0}V ×A
gegeben durch

v =h
 1 falls
−1 falls
v =t
Av ,a=(h,t) =

0 sonst
3
1
a
b

1
1
1
2  −1
0
3
0 −1
c
b
a
2
c

0
1 .
−1
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp II
Satz
Die Inzidenzmatrix A eines Digraphen ist total unimodular.
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp II
Satz
Die Inzidenzmatrix A eines Digraphen ist total unimodular.
Beweis.
Sei B eine quadratische Untermatrix von A.
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp II
Satz
Die Inzidenzmatrix A eines Digraphen ist total unimodular.
Beweis.
Sei B eine quadratische Untermatrix von A.
1. Fall: Es gibt eine Nullspalte
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp II
Satz
Die Inzidenzmatrix A eines Digraphen ist total unimodular.
Beweis.
Sei B eine quadratische Untermatrix von A.
1. Fall: Es gibt eine Nullspalte ⇒ det(B) = 0.
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp II
Satz
Die Inzidenzmatrix A eines Digraphen ist total unimodular.
Beweis.
Sei B eine quadratische Untermatrix von A.
1. Fall: Es gibt eine Nullspalte ⇒ det(B) = 0.
2. Fall: Jede Spalte hat genau eine 1 und eine −1
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp II
Satz
Die Inzidenzmatrix A eines Digraphen ist total unimodular.
Beweis.
Sei B eine quadratische Untermatrix von A.
1. Fall: Es gibt eine Nullspalte ⇒ det(B) = 0.
2. Fall: Jede Spalte hat genau eine 1 und eine −1
⇒ det(B) = 0.
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp II
Satz
Die Inzidenzmatrix A eines Digraphen ist total unimodular.
Beweis.
Sei B eine quadratische Untermatrix von A.
1. Fall: Es gibt eine Nullspalte ⇒ det(B) = 0.
2. Fall: Jede Spalte hat genau eine 1 und eine −1
⇒ det(B) = 0.
3. Fall: Es gibt eine Spalte, die genau ein Element 6= 0 enthält.
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp II
Satz
Die Inzidenzmatrix A eines Digraphen ist total unimodular.
Beweis.
Sei B eine quadratische Untermatrix von A.
1. Fall: Es gibt eine Nullspalte ⇒ det(B) = 0.
2. Fall: Jede Spalte hat genau eine 1 und eine −1
⇒ det(B) = 0.
3. Fall: Es gibt eine Spalte, die genau ein Element 6= 0 enthält.
Entwicklung nach diese Spalte, Induktion, fertig.
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp III
Probleme vom „Netzwerktyp“ wie
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp III
Probleme vom „Netzwerktyp“ wie
• Maximale Flüsse
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp III
Probleme vom „Netzwerktyp“ wie
• Maximale Flüsse
• Zuweisungsprobleme
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp III
Probleme vom „Netzwerktyp“ wie
• Maximale Flüsse
• Zuweisungsprobleme
• Minimale Schnitte
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp III
Probleme vom „Netzwerktyp“ wie
• Maximale Flüsse
• Zuweisungsprobleme
• Minimale Schnitte
• Kürzeste Wege
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp III
Probleme vom „Netzwerktyp“ wie
• Maximale Flüsse
• Zuweisungsprobleme
• Minimale Schnitte
• Kürzeste Wege
• Kostenminimale Flüsse
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp III
Probleme vom „Netzwerktyp“ wie
• Maximale Flüsse
• Zuweisungsprobleme
• Minimale Schnitte
• Kürzeste Wege
• Kostenminimale Flüsse
haben total unimodulare Restriktionsmatrizen. Lineare Optimierung
liefert also schon ganzzahlige Lösungen.
Grundbegriffe
Gutartige Probleme
Probleme vom Netzwerktyp III
Probleme vom „Netzwerktyp“ wie
• Maximale Flüsse
• Zuweisungsprobleme
• Minimale Schnitte
• Kürzeste Wege
• Kostenminimale Flüsse
haben total unimodulare Restriktionsmatrizen. Lineare Optimierung
liefert also schon ganzzahlige Lösungen.
Satz (Seymour 1980)
Alle total unimodularen Matrizen lassen sich aus
Netzwerkflussmatrizen, deren Transponierten und einer weiteren
speziellen Matrix durch zwei Verknüpfungsoperationen konstruieren.
Grundbegriffe
Gutartige Probleme
Outline
Grundbegriffe
Ganzzahlige Optimierungsaufgaben
Beispiele kombinatorischer IPs
Alternative Modellierungen
Gutartige Probleme
Das Assignment Problem
Total unimodulare Matrizen
Nichtbipartites Matching
Weitere gutartige Probleme
Grundbegriffe
Gutartige Probleme
Nichtbipartites Matching
Sei G = Kn der vollständige Graph mit n Knoten
und Kantengewichtsfunktion c. Für v ∈ V sei
δ(v ) die Menge der zu v inzidenten Kanten. Das
gewichtete Minimum Perfect Matching Problem
wird durch folgendes BP modelliert.
Grundbegriffe
Gutartige Probleme
Nichtbipartites Matching
Sei G = Kn der vollständige Graph mit n Knoten
und Kantengewichtsfunktion c. Für v ∈ V sei
δ(v ) die Menge der zu v inzidenten Kanten. Das
gewichtete Minimum Perfect Matching Problem
wird durch folgendes BP modelliert.
P
min
e∈E ce xe
xe
∈
{0, 1}
Grundbegriffe
Gutartige Probleme
Nichtbipartites Matching
Sei G = Kn der vollständige Graph mit n Knoten
und Kantengewichtsfunktion c. Für v ∈ V sei
δ(v ) die Menge der zu v inzidenten Kanten. Das
gewichtete Minimum Perfect Matching Problem
wird durch folgendes BP modelliert.
P
min Pe∈E ce xe
(MPMP)
= 1
∀v ∈ V
e∈δ(v ) xe
xe ∈ {0, 1}
Grundbegriffe
Gutartige Probleme
Nichtbipartites Matching
Sei G = Kn der vollständige Graph mit n Knoten
und Kantengewichtsfunktion c. Für v ∈ V sei
δ(v ) die Menge der zu v inzidenten Kanten. Das
gewichtete Minimum Perfect Matching Problem
wird durch folgendes BP modelliert.
P
min Pe∈E ce xe
(MPMP)
= 1
∀v ∈ V
e∈δ(v ) xe
xe ∈ {0, 1}
1
2
1 1
2 2
1
2
1
2
1
2
Grundbegriffe
Gutartige Probleme
Nichtbipartites Matching
Sei G = Kn der vollständige Graph mit n Knoten
und Kantengewichtsfunktion c. Für v ∈ V sei
δ(v ) die Menge der zu v inzidenten Kanten. Das
gewichtete Minimum Perfect Matching Problem
wird durch folgendes BP modelliert.
P
min Pe∈E ce xe
(MPMP)
= 1
∀v ∈ V
e∈δ(v ) xe
xe ≥
0
1
2
1 1
2 2
1
2
1
2
1
2
Grundbegriffe
Gutartige Probleme
Schnittebenen
Die halbzahlige Lösung verletzt die folgende, offensichtlich für alle perfekten
Matchings gültige Ungleichung.
S
1
2
1 1
2 2
1
2
1
2
1
2
Grundbegriffe
Gutartige Probleme
Schnittebenen
Die halbzahlige Lösung verletzt die folgende, offensichtlich für alle perfekten
Matchings gültige Ungleichung.
X
xe ≥ 1.
S
1
2
1 1
2 2
e∈δ(S)
Dabei bezeichne δ(S) die Menge aller
Kanten, die genau einen Endknoten in S
haben.
1
2
1
2
1
2
Grundbegriffe
Gutartige Probleme
Schnittebenen
Die halbzahlige Lösung verletzt die folgende, offensichtlich für alle perfekten
Matchings gültige Ungleichung.
X
xe ≥ 1.
S
1
2
1 1
2 2
e∈δ(S)
Dabei bezeichne δ(S) die Menge aller
Kanten, die genau einen Endknoten in S
haben.
1
2
1
2
1
2
Verletzte Ungleichungen dieses Typs kann man beim
Matchingproblem effizient finden. Das Separationsproblem für das
Perfect Matching Polytope ist polynomiell lösbar.
Grundbegriffe
Gutartige Probleme
Grötschel, Lovász, Schrijver
Sei P ⊆ Qn eine konvexe Menge x ∈ Qn .
Grundbegriffe
Gutartige Probleme
Grötschel, Lovász, Schrijver
Sei P ⊆ Qn eine konvexe Menge x ∈ Qn . Das Separationsproblem
besteht darin,
Grundbegriffe
Gutartige Probleme
Grötschel, Lovász, Schrijver
Sei P ⊆ Qn eine konvexe Menge x ∈ Qn . Das Separationsproblem
besteht darin,
• entweder zu bestätigen, dass x ∈ P oder
Grundbegriffe
Gutartige Probleme
Grötschel, Lovász, Schrijver
Sei P ⊆ Qn eine konvexe Menge x ∈ Qn . Das Separationsproblem
besteht darin,
• entweder zu bestätigen, dass x ∈ P oder
• ein c ∈ Qn anzugeben mit
∀z ∈ P : c > x < c > z.
Grundbegriffe
Gutartige Probleme
Grötschel, Lovász, Schrijver
Sei P ⊆ Qn eine konvexe Menge x ∈ Qn . Das Separationsproblem
besteht darin,
• entweder zu bestätigen, dass x ∈ P oder
• ein c ∈ Qn anzugeben mit
∀z ∈ P : c > x < c > z.
Satz (Grötschel, Lovász, Schrijver ’81)
Separieren und Optimieren sind polynomiell äquivalent für jede
gegebene Klasse von Polyedern.
Grundbegriffe
Gutartige Probleme
Grötschel, Lovász, Schrijver
Sei P ⊆ Qn eine konvexe Menge x ∈ Qn . Das Separationsproblem
besteht darin,
• entweder zu bestätigen, dass x ∈ P oder
• ein c ∈ Qn anzugeben mit
∀z ∈ P : c > x < c > z.
Satz (Grötschel, Lovász, Schrijver ’81)
Separieren und Optimieren sind polynomiell äquivalent für jede
gegebene Klasse von Polyedern.
Der Beweis fußt auf der Polynomialität der Ellipsoidmethode.
Grundbegriffe
Gutartige Probleme
Das Perfect Matching Polytope
min
(MPMP)
P
Pe∈E ce xe
e∈δ(v ) xe
xe
= 1
∈ {0, 1}
∀v ∈ V
Grundbegriffe
Gutartige Probleme
Das Perfect Matching Polytope
min
(MPMP)
P
Pe∈E ce xe
e∈δ(v ) xe
P
e∈δ(S) xe
xe
= 1
≥ 1
≥ 0
∀v ∈ V
für S⊆V
|S| ungerade
Grundbegriffe
Gutartige Probleme
Das Perfect Matching Polytope
min
(MPMP)
P
Pe∈E ce xe
e∈δ(v ) xe
P
e∈δ(S) xe
xe
= 1
≥ 1
≥ 0
∀v ∈ V
für S⊆V
|S| ungerade
Das Perfect Matching Polytope MPMPI lässt sich vollständig
beschreiben – allerdings mittels exponentiell vieler Ungleichungen.
Grundbegriffe
Gutartige Probleme
Outline
Grundbegriffe
Ganzzahlige Optimierungsaufgaben
Beispiele kombinatorischer IPs
Alternative Modellierungen
Gutartige Probleme
Das Assignment Problem
Total unimodulare Matrizen
Nichtbipartites Matching
Weitere gutartige Probleme
Grundbegriffe
Gutartige Probleme
Spezielle rechte Seiten
Darüber hinaus untersucht man Ganzzahligkeitseigenschaften für spezielle Paare
von Matrizen und rechten Seiten. Solche
findet etwa man unter den Stichworten
• TDI-Systeme
Grundbegriffe
Gutartige Probleme
Spezielle rechte Seiten
Darüber hinaus untersucht man Ganzzahligkeitseigenschaften für spezielle Paare
von Matrizen und rechten Seiten. Solche
findet etwa man unter den Stichworten
• TDI-Systeme
• perfekte Matrizen (bei
Packungsproblemen)
Grundbegriffe
Gutartige Probleme
Spezielle rechte Seiten
Darüber hinaus untersucht man Ganzzahligkeitseigenschaften für spezielle Paare
von Matrizen und rechten Seiten. Solche
findet etwa man unter den Stichworten
• TDI-Systeme
• perfekte Matrizen (bei
Packungsproblemen)
• ideale Matrizen (bei
Überdeckungsproblemen).
Grundbegriffe
Gutartige Probleme
Spezielle rechte Seiten
Darüber hinaus untersucht man Ganzzahligkeitseigenschaften für spezielle Paare
von Matrizen und rechten Seiten. Solche
findet etwa man unter den Stichworten
• TDI-Systeme
• perfekte Matrizen (bei
Packungsproblemen)
• ideale Matrizen (bei
Überdeckungsproblemen).
NP und pseudopolynomielle Probleme
Facetten jagen
Outline II
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Das Rucksack Problem (Knapsack Problem)
Gegeben sei ein Rucksack
mit Kapazität b ∈ N und
n Gegenstände. Gegenstand i hat Gewicht (Volumen) ai und bringt Nutzen
ci .
Packe Rucksack so,
dass der Nutzen maximiert
wird.
Pn
max
cx
Pnj=1 j j
(KP)
a
≤ b
j=1 j xj
xj ∈ {0, 1}
NP und pseudopolynomielle Probleme
Facetten jagen
Outline
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Entscheidungsprobleme, P
Π : Σ∗ → {ja, nein}
Entscheidungsproblem
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Entscheidungsprobleme, P
Π : Σ∗ → {ja, nein}
Entscheidungsproblem
5
Beim
Knapsackproblem
lautet
die
Version
als
Entscheidungsproblem etwa:
„Kann ich mit dem Rucksack
Waren im Wert von mindestens 14$ mitnehmen?“
4
1
3
2
NP und pseudopolynomielle Probleme
Facetten jagen
Entscheidungsprobleme, P
Π : Σ∗ → {ja, nein}
AΠ
Entscheidungsproblem
Algorithmus für Π
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Entscheidungsprobleme, P
Π : Σ∗ → {ja, nein}
AΠ
∗
`AΠ : Σ → N
Entscheidungsproblem
Algorithmus für Π
Laufzeitfunktion
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Entscheidungsprobleme, P
Π : Σ∗ → {ja, nein}
AΠ
∗
`AΠ : Σ → N
`wc
AΠ
:N→N
Entscheidungsproblem
Algorithmus für Π
Laufzeitfunktion
`wc
AΠ (n) := max{`AΠ (σ) | hσi = n}
Dabei ist hσi die Kodierungslänge der Eingabe σ.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Entscheidungsprobleme, P
Π : Σ∗ → {ja, nein}
AΠ
∗
`AΠ : Σ → N
`wc
AΠ : N → N
Entscheidungsproblem
Algorithmus für Π
Laufzeitfunktion
`wc
AΠ (n) := max{`AΠ (σ) | hσi = n}
Dabei ist hσi die Kodierungslänge
Pnder Eingabe σ. Beim
Knapsackproblem etwa log2 b + i=1 (log2 ai + log2 ci ).
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Entscheidungsprobleme, P
Π : Σ∗ → {ja, nein}
AΠ
∗
`AΠ : Σ → N
`wc
AΠ
:N→N
Entscheidungsproblem
Algorithmus für Π
Laufzeitfunktion
`wc
AΠ (n) := max{`AΠ (σ) | hσi = n}
Dabei ist hσi die Kodierungslänge der Eingabe σ. AΠ heißt
polynomiell, wenn es k ∈ N gibt mit
k
`wc
AΠ (n) ≤ n für alle hinreichend großen n ∈ N.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Entscheidungsprobleme, P
Π : Σ∗ → {ja, nein}
AΠ
∗
`AΠ : Σ → N
`wc
AΠ
:N→N
Entscheidungsproblem
Algorithmus für Π
Laufzeitfunktion
`wc
AΠ (n) := max{`AΠ (σ) | hσi = n}
Dabei ist hσi die Kodierungslänge der Eingabe σ. AΠ heißt
polynomiell, wenn es k ∈ N gibt mit
k
`wc
AΠ (n) ≤ n für alle hinreichend großen n ∈ N.
P bezeichne die Menge aller Entscheidungsprobleme, die mit einem
Algorithmus mit polynomieller Laufzeit gelöst werden können.
NP und pseudopolynomielle Probleme
Facetten jagen
Outline
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
N P und N P-vollständige Probleme
Mit N P bezeichnen wir die Menge aller Entscheidungsprobleme, bei
denen Instanzen, bei denen die Antwort ja lautet, mit dem richtigen
Zertifikat (Hinweis von außen) mit einem Algorithmus mit
polynomieller Laufzeit verifiziert werden können.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
N P und N P-vollständige Probleme
Mit N P bezeichnen wir die Menge aller Entscheidungsprobleme, bei
denen Instanzen, bei denen die Antwort ja lautet, mit dem richtigen
Zertifikat (Hinweis von außen) mit einem Algorithmus mit
polynomieller Laufzeit verifiziert werden können.
5
4
Beim
Knapsackproblem
lautet das Zertifikat hier etwa
{1, 2, 4}.
1
3
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
N P und N P-vollständige Probleme
Mit N P bezeichnen wir die Menge aller Entscheidungsprobleme, bei
denen Instanzen, bei denen die Antwort ja lautet, mit dem richtigen
Zertifikat (Hinweis von außen) mit einem Algorithmus mit
polynomieller Laufzeit verifiziert werden können.
Problem
Ist P =
6 N P?
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
N P und N P-vollständige Probleme
Mit N P bezeichnen wir die Menge aller Entscheidungsprobleme, bei
denen Instanzen, bei denen die Antwort ja lautet, mit dem richtigen
Zertifikat (Hinweis von außen) mit einem Algorithmus mit
polynomieller Laufzeit verifiziert werden können.
Problem
Ist P =
6 N P?
Ein Problem heißt N P-vollständig, wenn es in N P liegt und von
einem Algorithmus mit polynomieller Laufzeit für dieses Problem
ebensolche Algorithmen für beliebige Probleme in N P abgeleitet
werden können.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
N P und N P-vollständige Probleme
Mit N P bezeichnen wir die Menge aller Entscheidungsprobleme, bei
denen Instanzen, bei denen die Antwort ja lautet, mit dem richtigen
Zertifikat (Hinweis von außen) mit einem Algorithmus mit
polynomieller Laufzeit verifiziert werden können.
Problem
Ist P =
6 N P?
Ein Problem heißt N P-vollständig, wenn es in N P liegt und von
einem Algorithmus mit polynomieller Laufzeit für dieses Problem
ebensolche Algorithmen für beliebige Probleme in N P abgeleitet
werden können.
Satz
Das Knapsack Problem ist N P-vollständig (und damit insbesondere
auch die ganzzahlige Optimierung).
NP und pseudopolynomielle Probleme
Facetten jagen
Outline
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dynamic Programming
5
4
0
Bezeichnen wir mit R(b , i) den
maximalen Nutzen eines Rucksacks mit Kapazität b0 , der mit den
Items {1, 2, . . . , i} gepackt wird, so
ist
1
3
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dynamic Programming
5
4
0
Bezeichnen wir mit R(b , i) den
maximalen Nutzen eines Rucksacks mit Kapazität b0 , der mit den
Items {1, 2, . . . , i} gepackt wird, so
ist
1
3
2
R(b0 , i) = max{R(b0 , i − 1), R(b0 − ai , i − 1) + ci }
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dynamic Programming
5
4
0
Bezeichnen wir mit R(b , i) den
maximalen Nutzen eines Rucksacks mit Kapazität b0 , der mit den
Items {1, 2, . . . , i} gepackt wird, so
ist
1
3
2
R(b0 , i) = max{R(b0 , i − 1), R(b0 − ai , i − 1) + ci }
R(5, 2) = 12,
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dynamic Programming
5
4
0
Bezeichnen wir mit R(b , i) den
maximalen Nutzen eines Rucksacks mit Kapazität b0 , der mit den
Items {1, 2, . . . , i} gepackt wird, so
ist
1
3
2
R(b0 , i) = max{R(b0 , i − 1), R(b0 − ai , i − 1) + ci }
R(5, 2) = 12, R(8, 3) = R(6, 3) = R(5, 2) + c3 = 13,
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dynamic Programming
5
4
0
Bezeichnen wir mit R(b , i) den
maximalen Nutzen eines Rucksacks mit Kapazität b0 , der mit den
Items {1, 2, . . . , i} gepackt wird, so
ist
1
3
2
R(b0 , i) = max{R(b0 , i − 1), R(b0 − ai , i − 1) + ci }
R(5, 2) = 12, R(8, 3) = R(6, 3) = R(5, 2) + c3 = 13,
R(8, 4) = R(6, 3) + c4 = 15,
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dynamic Programming
5
4
0
Bezeichnen wir mit R(b , i) den
maximalen Nutzen eines Rucksacks mit Kapazität b0 , der mit den
Items {1, 2, . . . , i} gepackt wird, so
ist
1
3
2
R(b0 , i) = max{R(b0 , i − 1), R(b0 − ai , i − 1) + ci }
R(5, 2) = 12, R(8, 3) = R(6, 3) = R(5, 2) + c3 = 13,
R(8, 4) = R(6, 3) + c4 = 15,
R(15, 5) = max{R(3, 4) + 4, R(15, 4)} = 15.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dynamic Programming
5
4
0
Bezeichnen wir mit R(b , i) den
maximalen Nutzen eines Rucksacks mit Kapazität b0 , der mit den
Items {1, 2, . . . , i} gepackt wird, so
ist
1
3
2
R(b0 , i) = max{R(b0 , i − 1), R(b0 − ai , i − 1) + ci }
Satz:
Das Knapsack Problem kann in O(bn) gelöst werden.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dynamic Programming
5
4
0
Bezeichnen wir mit R(b , i) den
maximalen Nutzen eines Rucksacks mit Kapazität b0 , der mit den
Items {1, 2, . . . , i} gepackt wird, so
ist
1
3
2
R(b0 , i) = max{R(b0 , i − 1), R(b0 − ai , i − 1) + ci }
Satz:
Das Knapsack Problem kann in O(bn) gelöst werden.
Der Algorithmus ist pseudopolynomiell, polynomiell in der Anzahl der
Gegenstände aber exponentiell in der Kodierungslänge.
NP und pseudopolynomielle Probleme
Facetten jagen
Outline
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Egon Balas “Facets of the Knapsack Polytope”
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Egon Balas “Facets of the Knapsack Polytope”
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Egon Balas “Facets of the Knapsack Polytope”
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Egon Balas “Facets of the Knapsack Polytope”
Beobachtung (Edmonds ’68?)
Es gibt für kein Polytop PI eines N P-vollständigen Problems eine
explizite Beschreibung aller Facetten, es sei denn N P = co-N P.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Egon Balas “Facets of the Knapsack Polytope”
Beobachtung (Edmonds ’68?)
Es gibt für kein Polytop PI eines N P-vollständigen Problems eine
explizite Beschreibung aller Facetten, es sei denn N P = co-N P.
Beweis:
Wir haben zu zeigen, dass die Frage: „Gibt es eine Packung des
Rucksacks mit Wert 16$“ mit Hilfe von außen in Polynomialzeit
verneint werden kann, wenn man die Facetten des
Knapsack-Polytops kennt.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Egon Balas “Facets of the Knapsack Polytope”
Beobachtung (Edmonds ’68?)
Es gibt für kein Polytop PI eines N P-vollständigen Problems eine
explizite Beschreibung aller Facetten, es sei denn N P = co-N P.
Beweis:
Wir haben zu zeigen, dass die Frage: „Gibt es eine Packung des
Rucksacks mit Wert 16$“ mit Hilfe von außen in Polynomialzeit
verneint werden kann, wenn man
Pndie Facetten des
Knapsack-Polytops kennt. Da j=1 cj xj ≤ 15 eine gültige
Ungleichung für das Polytop ist, kann man diese durch positive
Linearkombinationen von Facettenungleichungen herleiten.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Egon Balas “Facets of the Knapsack Polytope”
Beobachtung (Edmonds ’68?)
Es gibt für kein Polytop PI eines N P-vollständigen Problems eine
explizite Beschreibung aller Facetten, es sei denn N P = co-N P.
Beweis:
Wir haben zu zeigen, dass die Frage: „Gibt es eine Packung des
Rucksacks mit Wert 16$“ mit Hilfe von außen in Polynomialzeit
verneint werden kann, wenn man
Pndie Facetten des
Knapsack-Polytops kennt. Da j=1 cj xj ≤ 15 eine gültige
Ungleichung für das Polytop ist, kann man diese durch positive
Linearkombinationen von Facettenungleichungen herleiten. Diese
Facettenungleichungen und die Koeffizienten werden als Hinweis von
außen gegeben.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Typen von Facetten
Erinnerung (Satz von Minkowski)
Jedes Polytop PI lässt sich durch ein Ungleichungssystem
beschreiben. Ungleichungen, die zu einer Facette gehören, nennen
wir selber Facetten.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Typen von Facetten
Erinnerung (Satz von Minkowski)
Jedes Polytop PI lässt sich durch ein Ungleichungssystem
beschreiben. Ungleichungen, die zu einer Facette gehören, nennen
wir selber Facetten.
Wir unterscheiden bei Polytopen PI von N P-vollständigen Problemen
zwischen Facetten, die
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Typen von Facetten
Erinnerung (Satz von Minkowski)
Jedes Polytop PI lässt sich durch ein Ungleichungssystem
beschreiben. Ungleichungen, die zu einer Facette gehören, nennen
wir selber Facetten.
Wir unterscheiden bei Polytopen PI von N P-vollständigen Problemen
zwischen Facetten, die
• wir in Polynomialzeit separieren können,
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Typen von Facetten
Erinnerung (Satz von Minkowski)
Jedes Polytop PI lässt sich durch ein Ungleichungssystem
beschreiben. Ungleichungen, die zu einer Facette gehören, nennen
wir selber Facetten.
Wir unterscheiden bei Polytopen PI von N P-vollständigen Problemen
zwischen Facetten, die
• wir in Polynomialzeit separieren können,
• wir kennen, wir aber nicht in Polynomialzeit separieren können,
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Typen von Facetten
Erinnerung (Satz von Minkowski)
Jedes Polytop PI lässt sich durch ein Ungleichungssystem
beschreiben. Ungleichungen, die zu einer Facette gehören, nennen
wir selber Facetten.
Wir unterscheiden bei Polytopen PI von N P-vollständigen Problemen
zwischen Facetten, die
• wir in Polynomialzeit separieren können,
• wir kennen, wir aber nicht in Polynomialzeit separieren können,
• wir kennen, bei denen das Separationsproblem selbst wieder
N P-vollständig ist,
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Typen von Facetten
Erinnerung (Satz von Minkowski)
Jedes Polytop PI lässt sich durch ein Ungleichungssystem
beschreiben. Ungleichungen, die zu einer Facette gehören, nennen
wir selber Facetten.
Wir unterscheiden bei Polytopen PI von N P-vollständigen Problemen
zwischen Facetten, die
• wir in Polynomialzeit separieren können,
• wir kennen, wir aber nicht in Polynomialzeit separieren können,
• wir kennen, bei denen das Separationsproblem selbst wieder
N P-vollständig ist,
• wir nicht kennen, bzw. nicht in Polynomialzeit verifizieren können.
NP und pseudopolynomielle Probleme
Facetten jagen
Outline
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Schnittebenen
Schnittebenenverfahren kombiniert mit Branch & Bound sind die
erfolgreichsten Methoden, IPs zu lösen.
Die Idee von Schnittebenenverfahren ist die Folgende:
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Schnittebenen
Schnittebenenverfahren kombiniert mit Branch & Bound sind die
erfolgreichsten Methoden, IPs zu lösen.
Die Idee von Schnittebenenverfahren ist die Folgende: Ausgehend von einer Modellierung
P1 des Problems
1
1
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Schnittebenen
Schnittebenenverfahren kombiniert mit Branch & Bound sind die
erfolgreichsten Methoden, IPs zu lösen.
Die Idee von Schnittebenenverfahren ist die Folgende: Ausgehend von einer Modellierung
P1 des Problems mit einer fraktionalen Optimallösung x1 ,
1
1
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Schnittebenen
Schnittebenenverfahren kombiniert mit Branch & Bound sind die
erfolgreichsten Methoden, IPs zu lösen.
Die Idee von Schnittebenenverfahren ist die Folgende: Ausgehend von einer Modellierung
P1 des Problems mit einer fraktionalen Optimallösung x1 , finde
Ungleichung ax ≤ b, die für x ∈
PI gültig ist mit ax1 > b. Füge
diese zum Modell hinzu und erhalte neues Modell P2 .
1
1
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Generisches Schnittebenenverfahren
Eingabe: A ∈ Zm×n , b ∈ Zm , c ∈ Zn .
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Generisches Schnittebenenverfahren
Eingabe: A ∈ Zm×n , b ∈ Zm , c ∈ Zn .
Ausgabe: x ∗ ∈ Zn mit c > x ∗ = max{c > x | Ax ≤ b, x ∈ Zn+ }.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Generisches Schnittebenenverfahren
Eingabe: A ∈ Zm×n , b ∈ Zm , c ∈ Zn .
Ausgabe: x ∗ ∈ Zn mit c > x ∗ = max{c > x | Ax ≤ b, x ∈ Zn+ }.
Verfahren: Sei P = P(A, b). Iteriere
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Generisches Schnittebenenverfahren
Eingabe: A ∈ Zm×n , b ∈ Zm , c ∈ Zn .
Ausgabe: x ∗ ∈ Zn mit c > x ∗ = max{c > x | Ax ≤ b, x ∈ Zn+ }.
Verfahren: Sei P = P(A, b). Iteriere
• Löse das lineare Programm x ∗ := maxx∈P c > x.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Generisches Schnittebenenverfahren
Eingabe: A ∈ Zm×n , b ∈ Zm , c ∈ Zn .
Ausgabe: x ∗ ∈ Zn mit c > x ∗ = max{c > x | Ax ≤ b, x ∈ Zn+ }.
Verfahren: Sei P = P(A, b). Iteriere
• Löse das lineare Programm x ∗ := maxx∈P c > x.
• Falls x ∗ ∈ Zn . Stop, gib x ∗ aus.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Generisches Schnittebenenverfahren
Eingabe: A ∈ Zm×n , b ∈ Zm , c ∈ Zn .
Ausgabe: x ∗ ∈ Zn mit c > x ∗ = max{c > x | Ax ≤ b, x ∈ Zn+ }.
Verfahren: Sei P = P(A, b). Iteriere
• Löse das lineare Programm x ∗ := maxx∈P c > x.
• Falls x ∗ ∈ Zn . Stop, gib x ∗ aus.
• Falls x ∗ 6∈ Zn , löse das Separationsproblem und
finde neue Ungleichung a> x ≤ β.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Generisches Schnittebenenverfahren
Eingabe: A ∈ Zm×n , b ∈ Zm , c ∈ Zn .
Ausgabe: x ∗ ∈ Zn mit c > x ∗ = max{c > x | Ax ≤ b, x ∈ Zn+ }.
Verfahren: Sei P = P(A, b). Iteriere
• Löse das lineare Programm x ∗ := maxx∈P c > x.
• Falls x ∗ ∈ Zn . Stop, gib x ∗ aus.
• Falls x ∗ 6∈ Zn , löse das Separationsproblem und
finde neue Ungleichung a> x ≤ β.
• Setze P := P ∩ {x ∈ Rn | a> x ≤ β} und iteriere
weiter.
In diesem speziellen Falle ist das Separationsproblem stets lösbar,
z.B. mittels Chvátal-Gomory-Schnitten.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Chvátal-Gomory-Schnitte
Satz
Ist u ≥ 0 und Ax ≤ b gültig für PI so auch
m
X
bu > A.j cxj ≤ bu > bc.
j=1
(1)
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Chvátal-Gomory-Schnitte
Satz
Ist u ≥ 0 und Ax ≤ b gültig für PI so auch
m
X
bu > A.j cxj ≤ bu > bc.
j=1
Tatsächlich erhalten wir auf „diese Weise“ auf Dauer alle gültigen
Ungleichungen.
(1)
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Beispiel für einen Chvátal-Gomory-Schnitt
max
unter
x1
7x1
2x1
−
x2
− 2x2
x2
− 2x2
wir lösen das Lineare Programm
≤ 14
≤ 3
≤ 3
x1 , x2 ∈ Z+
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Beispiel für einen Chvátal-Gomory-Schnitt
max
unter
x1
7x1
2x1
−
x2
− 2x2
x2
− 2x2
≤ 14
≤ 3
≤ 3
x1 , x2 ∈ Z+
wir lösen das Lineare Programm
1
7
0
2
−1 0 0 0
−2 1 0 0
1 0 1 0
−2 0 0 1
0
14
3
3
0
0
0
1
0 0 0 −0.5
5 1 0 −3.5
1 0 1
0
−1 0 0
0.5
−1.5
3.5
3
1.5
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Beispiel für einen Chvátal-Gomory-Schnitt
max
unter
x1
7x1
2x1
−
x2
− 2x2
x2
− 2x2
≤ 14
≤ 3
≤ 3
x1 , x2 ∈ Z+
wir lösen das Lineare Programm
1
7
0
2
−1 0 0 0
−2 1 0 0
1 0 1 0
−2 0 0 1
0
14
3
3
0
0
0
1
0 0 0 −0.5
5 1 0 −3.5
1 0 1
0
−1 0 0
0.5
aus der letzten Zeile schließen wir nun x1 − x2 ≤ 1
−1.5
3.5
3
1.5
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Beispiel für einen Chvátal-Gomory-Schnitt
max
unter
x1
7x1
2x1
−
x2
− 2x2
x2
− 2x2
≤ 14
≤ 3
≤ 3
x1 , x2 ∈ Z+
wir lösen das Lineare Programm
1
7
0
2
−1 0 0 0
−2 1 0 0
1 0 1 0
−2 0 0 1
0
14
3
3
0
0
0
1
0 0 0 −0.5
5 1 0 −3.5
1 0 1
0
−1 0 0
0.5
−1.5
3.5
3
1.5
aus der letzten Zeile schließen wir nun x1 − x2 ≤ 1 ⇒ y3 ≥ 1.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Beispiel für einen Chvátal-Gomory-Schnitt
1
7
0
2
−1 0 0 0
−2 1 0 0
1 0 1 0
−2 0 0 1
0
14
3
3
0
0
0
1
0 0 0 −0.5
5 1 0 −3.5
1 0 1
0
−1 0 0
0.5
−1.5
3.5
3
1.5
aus der letzten Zeile schließen wir nun x1 − x2 ≤ 1 ⇒ y3 ≥ 1.
0
0
0
1
0
0 0 0 −0.5 0
5 1 0 −3.5 0
1 0 1
0 0
−1 0 0
0.5 0
0 0 0
-1 1
−1.5
3.5
3
1.5
−1
0
0 0 0 0 −0.5
0
5 1 0 0 −3.5
0
1 0 1 0
0
1 −1 0 0 0
0.5
0
0 0 0 1
−1
−1
7
3
1
1
NP und pseudopolynomielle Probleme
Facetten jagen
Outline
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Schnittebenen
Obwohl Gomory-Chvátal-Schnitte einen endlichen Algorithmus
liefern, werden sie in der Praxis „nur im Notfall“ eingesetzt.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Schnittebenen
Obwohl Gomory-Chvátal-Schnitte einen endlichen Algorithmus
liefern, werden sie in der Praxis „nur im Notfall“ eingesetzt.
S
1
2
1 1
2 2
Wichtiger sind zunächst kombinatorisch motiverte Schnitte.
Kennengelernt haben wir einen
solchen Typ bei Matching.
1
2
1
2
1
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Schnittebenen
Obwohl Gomory-Chvátal-Schnitte einen endlichen Algorithmus
liefern, werden sie in der Praxis „nur im Notfall“ eingesetzt.
Wichtiger sind zunächst kombinatorisch motiverte Schnitte.
Kennengelernt haben wir einen
solchen Typ bei Matching. Analoges gilt für das Rundreiseproblem.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Das symmetrische TSP
min
Pn
Pn
cij xij
(ij)∈δ(v ) xij
P
i=1
P
j=1
(ij)∈δ(S)
xij
= 2
≥ 2
∈ {0, 1}
∀v ∈ V
∀∅ =
6 S 6= V
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dantzig, Fulkerson und Johnson 1954
Beispiel einer Ungleichung auf einem Graphen mit 20 Knoten, die wir
nicht in Polynomialzeit verifizieren können.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dantzig, Fulkerson und Johnson 1954
Beispiel einer Ungleichung auf einem Graphen mit 20 Knoten, die wir
nicht in Polynomialzeit verifizieren können.
X
rote und schwarze Kanten
xij ≤ 19.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dantzig, Fulkerson und Johnson 1954
Beispiel einer Ungleichung auf einem Graphen mit 20 Knoten, die wir
nicht in Polynomialzeit verifizieren können.
X
xij ≤ 19.
rote und schwarze Kanten
Der Graph der roten und
schwarzen Kanten hat keinen
Hamiltonkreis.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dantzig, Fulkerson und Johnson 1954
Beispiel einer Ungleichung auf einem Graphen mit 20 Knoten, die wir
nicht in Polynomialzeit verifizieren können.
X
xij ≤ 19.
rote und schwarze Kanten
Der Graph der roten und
schwarzen Kanten hat keinen
Hamiltonkreis.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dantzig, Fulkerson und Johnson 1954
Beispiel einer Ungleichung auf einem Graphen mit 20 Knoten, die wir
nicht in Polynomialzeit verifizieren können.
X
xij ≤ 19.
rote und schwarze Kanten
Der Graph der roten und
schwarzen Kanten hat keinen
Hamiltonkreis.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Dantzig, Fulkerson und Johnson 1954
Beispiel einer Ungleichung auf einem Graphen mit 20 Knoten, die wir
nicht in Polynomialzeit verifizieren können.
X
xij ≤ 19.
rote und schwarze Kanten
Der Graph der roten und
schwarzen Kanten hat keinen
Hamiltonkreis.
Das Hamiltonkreisproblem
ist
N Pvollständig.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
xij +
p
X
X
k =1 (ij)∈Tk
xij ≤ |H| +
p
X
k =1
|Tk | − d
3p
e.
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
xij +
p
X
X
k =1 (ij)∈Tk
xij ≤ |H| +
p
X
k =1
|Tk | − d
3p
e.
2
Beweis
Wir müssen zeigen, dass Rundtouren die Ungleichung stets erfüllen.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
xij +
p
X
X
xij ≤ |H| +
k =1 (ij)∈Tk
k =1
Beweis
O.E. liegen keine Knoten in H \
p
X
S
Tj .
|Tk | − d
3p
e.
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
xij +
p
X
X
xij ≤ |H| +
k =1 (ij)∈Tk
k =1
Beweis
O.E. liegen keine Knoten in H \
p
X
S
Tj .
|Tk | − d
3p
e.
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
xij +
p
X
X
xij ≤ |H| +
k =1 (ij)∈Tk
k =1
Beweis
O.E. liegen keine Knoten in H \
p
X
S
Tj .
|Tk | − d
3p
e.
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
xij +
p
X
X
k =1 (ij)∈Tk
xij ≤ |H| +
p
X
k =1
Beweis
O.E. liegen genau zwei Knoten in jedem Tj .
|Tk | − d
3p
e.
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
Beweis
xij +
p
X
X
k =1 (ij)∈Tk
xij ≤ |H| +
p
X
k =1
|Tk | − d
3p
e.
2
Die maximale Anzahl Kanten, die links gezählt werden ist p + b p2 c.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
Beweis
xij +
p
X
X
k =1 (ij)∈Tk
xij ≤ |H| +
p
X
k =1
|Tk | − d
3p
e.
2
Die maximale Anzahl Kanten, die links gezählt werden ist p + b p2 c.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
Beweis
xij +
p
X
X
k =1 (ij)∈Tk
xij ≤ |H| +
p
X
k =1
|Tk | − d
3p
e.
2
Die maximale Anzahl Kanten, die links gezählt werden ist p + b p2 c.
Rechts werden 3p Knoten gezählt.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
xij +
p
X
X
k =1 (ij)∈Tk
xij ≤ |H| +
p
X
|Tk | − d
k =1
Beweis
3p − d
3p
p
e = p + b c.
2
2
3p
e.
2
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Kammungleichungen (Grötschel & Padberg 1979)
Ein Kamm besteht aus einer
Knotenmenge H (wie handle) und
einer ungeraden Anzahl paarweise
disjunkter Zähne T1 , . . . , Tp , p ≥ 3
mit ∀j : H ∩ Tj 6= ∅ 6= Tj ∩ H. Dann
gilt die Kammungleichung
X
(ij)∈H
xij +
p
X
X
k =1 (ij)∈Tk
xij ≤ |H| +
p
X
k =1
|Tk | − d
3p
e.
2
Die Komplexität der Separation von Kammungleichungen scheint im
allgemeinen Fall noch offen zu sein.
NP und pseudopolynomielle Probleme
Facetten jagen
Outline
NP und pseudopolynomielle Probleme
Entscheidungsprobleme
Warum Probleme in N P nicht a priori schwer sind
Pseudopolynomielle Probleme
Facetten jagen
Facetten N P-vollständiger Probleme
Schnittebenenverfahren
Kombinatorische Schnitte
Branch and Cut
Branch and Price and Cut
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Branch and Cut
Die Schnittebenenverfahren kombiniert man mit Branch & Bound.
1
1
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Branch and Cut
Die Schnittebenenverfahren kombiniert man mit Branch & Bound.
59/7
F
5
x1 >= 2
x1 <= 1
7.5
F1
x2 >= 1
x2 = 0
1
1
F11
F2
5
4
4
F12
7
7
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Branch and Cut
Die Schnittebenenverfahren kombiniert man mit Branch & Bound.
59/7
F
5
x1 >= 2
x1 <= 1
7.5
F1
1 F1
F2
1
x2 >= 1
x2 = 0
F11
F2
5
4
4
F12
7
7
NP und pseudopolynomielle Probleme
Facetten jagen
Das TSP als Referenzproblem
1832 Der Handlungsreisende - wie
er sein soll und was er zu thun
hat, um Auftraege zu erhalten
und eines gluecklichen
Erfolgs in seinen Geschaeften
gewiss zu sein - Von einem
alten Commis-Voyageur
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Das TSP als Referenzproblem
1954 Dantzig, Fulkerson &
Johnson: 49 Städte in USA
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Das TSP als Referenzproblem
1954 Dantzig, Fulkerson &
Johnson: 49 Städte in USA
1977 Grötschel 120 Städte
(Deutscher General Atlas)
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Das TSP als Referenzproblem
1954 Dantzig, Fulkerson &
Johnson: 49 Städte in USA
1977 Grötschel 120 Städte
(Deutscher General Atlas)
2001 Applegate, Bixby, Chvátal,
Cook (ABCC): 15112 Städte
(22,6 Prozessorjahre auf 110
Alpha 500 MHz Prozessoren).
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Das TSP als Referenzproblem
Alle jüngsten Rekorde wurden von
ABCC mit dem Programm Concorde erzielt. Derzeitiger Rekord
(2006) liegt bei 85,900 Städten in
einem VLSI Problem.
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Das TSP als Referenzproblem
Alle jüngsten Rekorde wurden von
ABCC mit dem Programm Concorde erzielt. Derzeitiger Rekord
(2006) liegt bei 85,900 Städten in
einem VLSI Problem. Damit sind
alle Probleme aus der TSPLIB von
Günter Reinelt (Heidelberg) optimal gelöst.
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Jenseits des TSP
Während man beim TSP Probleme mit mehreren Tausend Knoten
fast routinemäßig exakt lösen kann, gibt es beim CVRP
Benchmark-Instanzen mit weniger als 100 Kunden, bei denen die
Optimallösung nicht bekannt ist.
8
30
3
6
4
8
2
8
5
1
4
7
2
8
3
1
2
3
6
5
9
5
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Jenseits des TSP
8
30
3
6
4
8
2
8
5
1
4
7
2
8
3
1
2
3
6
5
9
5
Hier wendet man auch einen zu den Schnittebenenverfahren dualen
Ansatz an, bei dem man nicht neue Ungleichungen sondern neue
Variablen generiert. Diese Verfahren nennt man
Spaltengenerierungsverfahren.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Column Generation
Seien T1 , . . . , Tk die Menge aller zulässigen Touren die vom Depot
ausgehen und die Kapazitätsbeschränkung berücksichtigen.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Column Generation
Seien T1 , . . . , Tk die Menge aller zulässigen Touren die vom Depot
ausgehen und die Kapazitätsbeschränkung berücksichtigen. Sei
χ(Ti ) ∈ {0, 1}V0 der Inzidenzvektor, der anzeigt, welche Kunden von
Ti bedient werden. Seien schließlich c(Ti ) die Kosten von Tour Ti .
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Column Generation
Seien T1 , . . . , Tk die Menge aller zulässigen Touren die vom Depot
ausgehen und die Kapazitätsbeschränkung berücksichtigen. Sei
χ(Ti ) ∈ {0, 1}V0 der Inzidenzvektor, der anzeigt, welche Kunden von
Ti bedient werden. Seien schließlich c(Ti ) die Kosten von Tour Ti .
Wir setzen xTi = 1, wenn wir Tour Ti fahren und xTi = 0 sonst.
Dann haben wir folgendes Boolsches Programm für das VRCP
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Column Generation
Seien T1 , . . . , Tk die Menge aller zulässigen Touren die vom Depot
ausgehen und die Kapazitätsbeschränkung berücksichtigen. Sei
χ(Ti ) ∈ {0, 1}V0 der Inzidenzvektor, der anzeigt, welche Kunden von
Ti bedient werden. Seien schließlich c(Ti ) die Kosten von Tour Ti .
Wir setzen xTi = 1, wenn wir Tour Ti fahren und xTi = 0 sonst.
Dann haben wir folgendes Boolsches Programm für das VRCP
min
Pk
c(Ti )xTi
Pki=1
χ(T
i )xTi
i=1
xTi
≥ 1
∈ {0, 1}
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Column Generation II
Wir haben also nun ein Problem mit mehr als exponentiell vielen
Variablen.
• Diese Variablen betrachtet man nicht alle, sondern man hält
einen Pool von „aussichtsreichen Touren“ und löst das Problem
mit diesen.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Column Generation II
Wir haben also nun ein Problem mit mehr als exponentiell vielen
Variablen.
• Diese Variablen betrachtet man nicht alle, sondern man hält
einen Pool von „aussichtsreichen Touren“ und löst das Problem
mit diesen.
• Hat man ein solches Problem optimal gelöst, sucht man nach
weiteren Touren, deren Variable positive reduzierte Kosten im
Tableau hat. Dieses Problem nennt man das Pricing-Problem.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Column Generation II
Wir haben also nun ein Problem mit mehr als exponentiell vielen
Variablen.
• Diese Variablen betrachtet man nicht alle, sondern man hält
einen Pool von „aussichtsreichen Touren“ und löst das Problem
mit diesen.
• Hat man ein solches Problem optimal gelöst, sucht man nach
weiteren Touren, deren Variable positive reduzierte Kosten im
Tableau hat. Dieses Problem nennt man das Pricing-Problem.
• Gibt es keine solche Tour ist das Problem optimal gelöst.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Column Generation II
Wir haben also nun ein Problem mit mehr als exponentiell vielen
Variablen.
• Diese Variablen betrachtet man nicht alle, sondern man hält
einen Pool von „aussichtsreichen Touren“ und löst das Problem
mit diesen.
• Hat man ein solches Problem optimal gelöst, sucht man nach
weiteren Touren, deren Variable positive reduzierte Kosten im
Tableau hat. Dieses Problem nennt man das Pricing-Problem.
• Gibt es keine solche Tour ist das Problem optimal gelöst.
• Um Ganzzahligkeit zu erreichen, kombiniert man auch dies mit
Branch& Bound und nennt dies Branch & Price.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
ColumnGeneration III
Allgemein verwendet man Column Generation insbesondere bei
Problemen, die ein Überdeckungsteilproblem haben.
Column Generation alleine scheint beim kapazitierten
Tourenplanungsproblem nicht konkurrenzfähig zu sein. In
Kombination mit Schnittebenen erhält man Branch & Price & Cut mit
dem 2005 einige bisher ungelöste Benchmarkinstanzen gelöst
werden konnten.
NP und pseudopolynomielle Probleme
Facetten jagen
Zusammenfassung
• Ganzzahlige Programme haben üblicherweise Struktur.
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Zusammenfassung
• Ganzzahlige Programme haben üblicherweise Struktur.
• Netzwerkstrukturen liefern gutartige (Teil-)Probleme.
Branch and Price and Cut
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Zusammenfassung
• Ganzzahlige Programme haben üblicherweise Struktur.
• Netzwerkstrukturen liefern gutartige (Teil-)Probleme.
• Die Kenntnis auch weiterer gutartiger Probleme ist oft hilfreich.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Zusammenfassung
• Ganzzahlige Programme haben üblicherweise Struktur.
• Netzwerkstrukturen liefern gutartige (Teil-)Probleme.
• Die Kenntnis auch weiterer gutartiger Probleme ist oft hilfreich.
• Pack- und Seuqnzierungsprobleme lassen sich häufig mit
dynamischer Programmierung lösen.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Zusammenfassung
• Ganzzahlige Programme haben üblicherweise Struktur.
• Netzwerkstrukturen liefern gutartige (Teil-)Probleme.
• Die Kenntnis auch weiterer gutartiger Probleme ist oft hilfreich.
• Pack- und Seuqnzierungsprobleme lassen sich häufig mit
dynamischer Programmierung lösen.
• Cutting Plane Methods sind ein allgemeines und oft erfolgreiches
Verfahren.
NP und pseudopolynomielle Probleme
Facetten jagen
Branch and Price and Cut
Zusammenfassung
• Ganzzahlige Programme haben üblicherweise Struktur.
• Netzwerkstrukturen liefern gutartige (Teil-)Probleme.
• Die Kenntnis auch weiterer gutartiger Probleme ist oft hilfreich.
• Pack- und Seuqnzierungsprobleme lassen sich häufig mit
dynamischer Programmierung lösen.
• Cutting Plane Methods sind ein allgemeines und oft erfolgreiches
Verfahren.
• Das TSP hat man recht gut im Griff, das CVRP weniger.
NP und pseudopolynomielle Probleme
Facetten jagen
Geschafft
Vielen Dank für Ihre
Aufmerksamkeit
Branch and Price and Cut
Herunterladen