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