Operations Research Rainer Schrader Ganzzahlige lineare Programme Zentrum für Angewandte Informatik Köln 25. Juni 2007 1 / 49 2 / 49 Ganzzahlige lineare Programme Gliederung ganzzahlige lineare Programme Schnittebenen das Verfahren von Gomory Rucksack-Probleme ganzzahlige lineare Programme wir betrachten nun Optimierungsprobleme vom Typ min c T x Ax = b x 0, x ganzzahlig wir nehmen in diesem Kapitel durchweg an, dass sämtliche Problemparameter A, c, b rational sind nach Skalierung können wir sogar Ganzzahligkeit voraussetzen: wir setzen wieder A Z m n, c Z n, b Z m. P = {x R n Ax = b, x 0} (1) 3 / 49 4 / 49
ganzzahlige lineare Programme ganzzahlige lineare Programme min c T x Ax = b x 0, x ganzzahlig das Optimierungsproblem (1) ist kein lineares Programm : der Zulässigkeitsbereich ist F = {x P x N n } und damit im allgemeinen nicht konvex und kein Polyeder ist F endlich, so sei P I = conv F dann ist (1) äquivalent zu dem Problem (1) P I min c T x x P I ist die konvexe Hülle von endlich vielen Punkten daher existiert eine Matrix A und ein Vektor b mit P I = P(A, b ) wären A und b bekannt, so könnte man das Ausgangsproblem (1) z.b. mit der Simplexmethode lösen: min c T x A x b min c T x x P I da die Ecken von P I Polyeder ganzzahlig sind, ist auch P(A, b ) ein rationales 5 / 49 6 / 49 ganzzahlige lineare Programme da die Ecken von P I ganzzahlig sind, ist auch P(A, b ) ein rationales Polyeder diese Aussage gilt aber auch, wenn F nicht endlich ist seien A Z m n und b Z m gegeben und P das entsprechende rationale Polyeder P = P(A, b) = {x R n Ax b} wir interessieren uns für die Menge P I = conv{x P x Z n }. Proposition 1 Ist P eine rationales Polyeder, dann ist auch P I ein rationales Polyeder. ganzzahlige lineare Programme im Fall P I = ist nichts zu beweisen sei also P I nach dem Satz von Weyl-Minkowski existieren endliche Mengen V, W Q n so, dass P = conv V + cone W. nach geeigneter Skalierung dürfen wir annehmen, dass die Vektoren w W ganzzahlig sind jedes x P hat dann eine Darstellung der Form x = V s + W t mit s, t 0, 1 T s = 1 7 / 49 8 / 49
ganzzahlige lineare Programme x = V s + W t mit s, t 0, 1 T s = 1 sei t der folgende Vektor: 8 < t i, falls t i Q N t i = 0, falls t i = 0 : t i 1, sonst deshalb Schnittebenen P = {V s + W t s 0, 1 T s = 1, 0 t 1} P Z n = P Z n + {W z z 0 ganzzahlig} sei weiter t = t t 0 P ist ein Polytop und somit beschränkt dann lässt sich x schreiben als x = (V s + W t) + W t = x + W t wobei t ganzzahlig und x in dem Polytop damit ist P Z n weiter ist eine endliche Menge P I = conv(p Z n ) + cone W (2) P = {V s + W t s 0, 1 T s = 1, 0 t 1} wegen W t Z n folgt x Z n x Z n somit ist P I ein Polyeder. 9 / 49 10 / 49 Schnittebenen Schnittebenen Bemerkung 1: P I = conv(p Z n ) + cone W (2) aus (2) ließe sich im Prinzip (z.b. mit Fourier-Motzkin) eine lineare Beschreibung von P I durch Ungleichungen ableiten für das Optimierungsproblem (1) ist dies jedoch nicht interessant ein solches Vorgehen würde voraussetzen, dass man sämtliche ganzzahligen Vektoren in P auflisten müsste darunter auch die Optimallösung von (1) Bemerkung 2: die Voraussetzung der Rationalität der Daten ist wichtig betrachte das Polyeder P = {(x 1, x 2 ) x 1 + 2x 2 1 2 } dann kann P I kein Polyeder sein, denn: die lineare Zielfunktion x 1 + 2x 2 ist nach oben durch 1 beschränkt 2 das Supremum sup {x 1 + 2x 2 (x 1, x 2 ) P I } wird jedoch nicht angenommen. 11 / 49 12 / 49
Ganzzahlige lineare Programme Gliederung ganzzahlige lineare Programme das Verfahren von Gomory Rucksack-Probleme Das Verfahren von Gomory wir wollen eine lineare Beschreibung von P I erhalten wir gehen dazu von gültigen Ungleichungen für P = P(A, b) aus nach dem Lemma von Farkas können wir dazu ein beliebiges rationales y 0 und c T = y T A betrachten dann ist c T x z mit z = y T b eine gültige Ungleichung für P sei speziell c T = y T A ganzzahlig dann wird die folgende Ungleichung von allen ganzzahligen Vektoren in P erfüllt: c T x z mit z = y T b Z d.h. sie ist eine gültige Ungleichung für P I 13 / 49 14 / 49 Das Verfahren von Gomory Es genügt dabei, sich auf y [0, 1] m zu beschränken: denn sei y Q n +, z = y N n + und y = y z dann ist 0 y 1 und es gilt: (1) (y ) T A Z n (y + z) T A Z n y T A Z n (2) Ax b impliziert bereits die Ungleichung (z T A)x z T b Z (3) für ganzzahliges x P(A, b) gilt daher y T Ax y T b = y T Ax + z T Ax y T b + z T b = (y T + z T )Ax (y T + z T )b = (y ) T Ax (y ) T b damit erhalten wir das Gomory-Polyeder Schnittebenen P = {x P (y T A)x y T b, y [0, 1) m, y T A Z n }. die Menge {y T A 0 y < 1} ist eine beschränkte Menge von Zeilenvektoren in R n sie enthält deshalb nur endlich viele ganzzahlige Vektoren daher ist P tatsächlich ein Polyeder d.h. die Gültigkeit von y T Ax y T b impliziert die Gültigkeit von (y ) T Ax (y ) T b 15 / 49 16 / 49
Das Verfahren von Gomory Das Verfahren von Gomory iterieren wir diese Konstruktion, so ergibt sich die P P P... P I. Gomory-Folge der Beweis ist nicht schwierig, aber etwas aufwendig deshalb sei hier darauf verzichtet, wir beweisen nur: man bemerke, dass keine der Gomory-Ungleichungen einen ganzzahligen Punkt aus P abschneidet außerdem gilt: sobald bei der Gomory-Folge kein neues Polyeder konstruiert wird, hat man genügend viele Ungleichungen erzeugt, die P I festlegen. ohne Beweis bemerken wir Satz 2 (Gomory) Die Gomory-Folge eines rationalen Polyeders P hat endliche Länge und endet mit P I. Lemma 3 Sei P ein rationales Polytop mit P = P. Dann gilt P = P I. angenommen P P I dann hat P eine Ecke v mit (mindestens) einer Komponente v j wir wissen: zu jeder Seitenfläche F existiert eine Ungleichung c T x t so, dass F = P {x c T x = t} damit existiert ein c Z n derart, dass die Funktion f (x) = c T x über P genau von v maximiert wird / Z 17 / 49 18 / 49 seien v (1),..., v (k ) Das Verfahren von Gomory die übrigen Ecken von P und min l=1,...,k (ct v c T v (l) ) = ε > 0 max x P x 1 +... + x n = M <. sei K N so gewählt, dass K ε > 2M gilt sei weiter c T = [Kc 1,..., Kc j + 1,..., Kc n ] = K c T + e T j. Das Verfahren von Gomory wegen c T v K c T v = v j / Z ist entweder c T v / Z oder c T v / Z also ist eine der folgenden Ungleichung für P I gültig, nicht aber für P: c T x c T v oder c T x c T v eine d.h. P P. dann maximiert v auch die Funktion c T x über P: denn für jede andere Ecke v (l) von P gilt K (c T v (l) ) + v (l) j K (c T v ε) + M < K c T v M < K c T v + v j 19 / 49 20 / 49
Das Verfahren von Gomory Der Satz von Gomory führt zu einem endlichen Algorithmus zur Lösung des ganzzahligen Optimierungsproblems Gomory-Verfahren (1) setze P = {x Ax b} max c T x s.d. Ax b, x Z n. Ganzzahlige lineare Programme Gliederung ganzzahlige lineare Programme das Verfahren von Gomory Rucksack-Probleme (2) löse das lineare Programm max c T x s.d. x P (3) ist die Optimallösung x ganzzahlig, stop (4) andernfalls berechne das Gomory-Polyeder P (5) setze P = P und gehe zu (2) In der Praxis ist diese Vorgehensweise typischerweise höchst ineffizient. 21 / 49 22 / 49 das Gomory-Verfahren versucht, das Polyeder P I zu beschreiben für die Optimierung kann es reichen, P I nur lokal zu beschreiben d.h. in der Nähe des Optimums dies versuchen die Vorgehensweise der (1) löse die LP-Relaxierung des Problems (2) sei x die gefundene Optimallösung (3) ist x ganzzahlig, stop (4) andernfalls sei a T x b eine Schnittebene, die x abschneidet (5) füge die Ungleichung zum LP hinzu und gehe zu (1) sei dazu x / P I eine Schnittebene ist eine Hyperebene, die x von P I trennt 23 / 49 24 / 49
die Kunst liegt darin, schnell Schnittebenen bestimmen zu können sowie möglichst tiefe Schnitte zu finden bei speziellen kombinatorischen Problemen lassen sich oft gezielt Schnittebenen bestimmen, die zu praktikablen Algorithmen führen es ist aber immer möglich, aus dem Simplextableau Schnitte abzuleiten sei B die für die LP-Relaxierung gefundene optimale Basis sei die zugehörige Basislösung x noch nicht ganzzahlig dann existiert ein ein Index i B so, dass x i die i-te Zeile des Simplextableaus lautet: x i + X j N a ij x j = b i / N x i + X a ij x j = b i j N da die Variablen nicht negativ sind, folgt: x i + X a ij x j b i j N für ganzzahlige x folgt daraus die Gültigkeit der Ungleichung: x i + X a ij x j b i j N per Konstruktion ist dies eine Schnittebene für die Optimallösung wir illustrieren jetzt an einem Beispielproblem 25 / 49 26 / 49 Ganzzahlige lineare Programme Gliederung ganzzahlige lineare Programme Schnittebenen das Verfahren von Gomory Rucksack-Probleme Beispiel: Wir betrachten das folgende ganzzahlige lineare Programm: Rucksack-Problem gegeben: c 1,..., c n, a 1,..., a n, b N bestimme eine Teilmenge I {1,..., n} so, dass a(i) = P i I a i b c(i) = P i I c i maximal Die ist offensichtlich ein spezielles ganzzahliges lineares Programm. 27 / 49 28 / 49
Die ist offensichtlich ein spezielles ganzzahliges lineares Programm: max c 1 x 1 + c 2 x 2 +... + c n x n s.d a 1 x 1 + a 2 x 2 +... + a n x n b x 1 1 x 2 1. x n 1 x 1, x 2,..., x n, N zulässige Ungleichungen für das Rucksack-Problem: sei J {1,..., n} so, dass a(j) > b a(j j) b für alle j J dann ist die folgende Überdeckungs-Ungleichung zulässig: x(j) = X x j J 1 j J die Variablen liegen in {0, 1} das Programm enthält nur eine Restriktion 29 / 49 30 / 49 Beispiel: Wir betrachten das folgende ganzzahlige lineare Programm: max 40x 1 + 15x 2 + 20x 3 + 10x 4 s.d 4x 1 + 2x 2 + 3x 3 + 1x 3 6 x 1 1 x 1 1 x 1 1 x 1 1 x 1, x 2, x 3, x 4, N Eine Optimallösung der LP-Relaxierung lautet: x 1 = 1, x 2 = 0.5, x 3 = 0, x 4 = 1 mit z = 57.5 Eine Optimallösung der LP-Relaxierung lautet: x 1 = 1, x 2 = 0.5, x 3 = 0, x 4 = 1 mit z = 57.5 Die Restriktion lautet: 4x 1 + 2x 2 + 3x 3 + 1x 3 6 offensichtlich passen x 1, x 2 und x 4 nicht gleichzeitig in den Rucksack d.h. x 1 + x 2 + x 4 2 ist eine Schnittebene wir fügen diese Ungleichung zum LP hinzu und lösen erneut die Optimallösung des erweiterten LP s lautet: x 1 = 1, x 2 = 1 mit z = 55 31 / 49 32 / 49
Ganzzahlige lineare Programme Gliederung ganzzahlige lineare Programme das Verfahren von Gomory Rucksack-Probleme wir gehen das Ganzzahligkeitsproblem nun von einer anderen Seite an sei A Z m n und P = {x R n Ax = b, x 0} obda nehmen wir wieder m = rg A an wir suchen nach Bedingungen an A, die folgendes garantieren: ist b ganzzahlig, so hat P nur ganzzahlige Ecken. 33 / 49 34 / 49 Lemma 4 Sei A eine ganzzahlige, reguläre (m m)-matrix. Dann ist A 1 b Z m alle b Z m genau dann, wenn det A = 1. für Lemma 4 Sei A eine ganzzahlige, reguläre (m m)-matrix. Dann ist A 1 b Z m alle b Z m genau dann wenn det A = 1. für sei det A = 1 und x = A 1 b sei umgekehrt A 1 b Z m für alle b Z m nach der Cramerschen Regel gilt für die Komponenten von x: dann ist insbesondere A 1 e i Z m für alle Einheitsvektoren e i x j = det A(j, b) det A (j B), somit ist A 1 eine ganzzahlige Matrix damit sind sowohl det A als auch det A 1 ganzzahlig hierbei geht A(j, b) aus A hervor, indem die j-te Spalte durch b ersetzt wird da det A det A 1 = 1, folgt det A = 1. für b Z m ist dann det A(j, b) eine ganze Zahl 35 / 49 36 / 49
Sei A eine ganzzahlige Matrix mit vollem Zeilenrang. A heißt unimodular, wenn für jede (m m)-basisteilmatrix A B von A gilt:. Satz 5 det A B = 1 Sei A eine ganzzahlige (m n)-matrix mit vollem Zeilenrang. Dann sind folgende Aussagen äquivalent: (i) A ist unimodular, (ii) für jedes b Z m hat das Polyeder {x Ax = b, x 0} nur ganzzahlige Ecken. (ii) habe umgekehrt für jedes b Z m das Polyeder {x Ax = b, x 0} nur ganzzahlige Ecken sei A B eine Basismatrix und w Z m nach Lemma 4 müssen wir zeigen: A 1 B w ist ganzzahlig sei y Z m so, dass y + A 1 B w 0 sei b = A B (y + A 1 B w) dann ist b ganzzahlig weiter ist x B = y + A 1 B w, x N = 0 N Basislösung von {x Ax = b, x 0} nach Voraussetzung ist dann x B ganzzahlig und somit ist auch A 1 B w = x B y ganzzahlig. (i) zu jeder Ecke x existiert eine Basismatrix A B mit x = A 1 B b nach Lemma 4 ist dann x ganzzahlig für jedes b Z m 37 / 49 38 / 49 um Ganzzahligkeitsresultate auch für andere Polyederdarstellungen herleiten zu können, modifizieren wir den Begriff der eine Matrix A heißt total unimodular, wenn für jede quadratische Teilmatrix A von A gilt: det A { 1, 0, +1}. ist A total unimodular, so gilt insbesondere a ij { 1, 0 + 1} für alle i, j Lemma 6 A ist total unimodular [A, I] ist unimodular. sei [A, I] unimodular und B eine quadratische Teilmatrix von A dann ist B singluär (d.h. det B = 0) oder regulär im zweiten Fall kann B mit Einheitspalten zu einer Basismatrix B [A, I] erweitert werden nach Voraussetzung ist dann det B = 1 von Beispiel Die Matrix A =» 1 1 1 2 ist unimodular, aber nicht total unimodular. Der Zusammenhang zwischen und totaler wird u.a. durch das folgende Lemma beschrieben: Entwicklung von det B nach den Einheitsspalten zeigt det B = 1 sei umgekehrt A total unimodular und B eine Basismatrix von [A, I] enthält B keine Spalten von I, so folgt det B = 1 per Voraussetzung im anderen Fall folgt die Aussage wieder aus der Entwicklung nach den Einheitsspalten. 39 / 49 40 / 49
Damit folgt unmittelbar: Satz 7 Sei A eine ganzzahlige (m n)-matrix. Dann sind folgende Aussagen äquivalent: (i) A ist total unimodular, (ii) für jedes b Z m hat das Polyeder {x Ax b, x 0} nur ganzzahlige Ecken. wir erweitern wieder um Schlupfvariablen y dann ist äquvalent: {x Ax b, x 0} hat nur ganzzahlige Ecken {(x, y) Ax + Iy = b, x, y 0} hat nur ganzzahlige Ecken damit folgt die Aussage aus Satz 5. bevor wir Beispiele von total unimodularen Matrizen diskutieren, geben wir einige wichtige Matrixkonstruktionen an. Lemma 8 Sei A Z m n total unimodular und e Z m ein Einheitsvektor. Dann gilt: (i) wenn man eine Spalte von A mit 0 oder 1 multipliziert, erhält man wieder eine total unimodular Matrix (ii) A T total unimodular (iii) A = [A, e] ist total unimodular. (i) folgt aus der Tatsache, dass sich die Skalarmultiplikation eine Spalte einer Matrix in der Skalarmultiplikation der Determinante auswirkt (b) ergibt sich aus dem Transpositionssatz det C = det C T 41 / 49 42 / 49 (iii) betrachte eine quadratische Untermatrix A von [A, e] obda dürfen wir annehmen, dass die Spalte e in A auftaucht wir entwickeln die Determinate nach dieser Spalte e und finden det A = ±1 det A, wobei A eine quadratische Untermatrix von A ist also gilt det A { 1, 0 + 1}. Proposition 9 Sei A Z m n total unimodular, b Z m und l, u Z n derart, dass P = {x R n Ax b, l x u} =. Dann ist P eine Polytop mit ganzzahligen Ecken. ist A total unimodular, so folgt nach Lemma 8: A T ist total unimodular (A T I I) ist total unimodular (A T I I) T ist total unimodular damit ist P Lösungsmenge des total unimodularen Systems 2 3 2 3 A b 4 I 5 x 4 u 5 I l 43 / 49 44 / 49
Intervallmatrizen sei A eine (0, 1)-Matrix A heißt Intervallmatrix, wenn gilt: es gibt eine Umordnung der Zeilen so, dass in jeder Spalte die Einsen konsekutiv auftauchen Beispiele: 0 B @ 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 1 C A 0 B @ 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 C A offensichtlich ist jede quadratische Untermatrix einer Intervallmatrix wieder eine Intervallmatrix Die rechte Matrix ist keine Intervallmatrix, denn: die Zeilen 1 und 3, 2 und 4, 1 und 4 sowie 2 und 3 müssen benachbart sein damit muss die Permutation 231 oder 132 enthalten dann sind aber 2 und 4 oder 1 und 4 nicht benachbart 45 / 49 46 / 49 Es gilt: Lemma 10 Jede Intervallmatrix A ist total unimodular. obda sei A = [a ij ] quadratisch und j 1 für j = 1,..., k a j1 = 0 für j = k + 1,..., n. außerdem entspreche die erste Spalte von A dem kleinsten Intervall, das 1 enthält. im Fall k = 1 ist die erste Spalte ein Einheitsvektor Entwicklung der Determinante nach der ersten Spalte liefert dann die Behauptung per Induktion im Fall k 2 subtrahiere die erste Zeile von den Zeilen 2,..., k die resultierende Matrix ist wieder eine Intervallmatrix die Determinante hat sich nicht geändert auf die neue Matrix trifft dann der erste Fall zu. (0, 1)-Inzidenzmatrizen von allgemeinen Familien F von Teilmengen einer endlichen Grundmenge M sind typischerweise nicht total unimodular! 47 / 49 48 / 49
Lemma 11 (Poincaré) Ist A eine { 1, 0, 1}-Matrix, bei der jede Spalte höchstens eine +1 und eine 1 enthält, so ist A total unimodular. sei B eine (k, k )-Untermatrix ist k = 1, so ist det(b) { 1, 0, 1} sei also k > 1 hat B eine Spalte mit höchstens einem Eintrag ungleich Null: entwickle die Determinante nach dieser Spalte per Induktion folgt det(b) { 1, 0, 1} andernfalls ist die Summe aller Spalten Null und somit det(b) = 0. 49 / 49