KAPITEL 5 Ganzzahlige lineare Programme Wir betrachten nun Optimierungsprobleme vom Typ (42) min c T x s.d. Ax = b, x 0, x ganzzahlig, wobei die Matrix A R m n und die Vektoren c R n, b R m gegeben seien. Wir setzen P = {x R n Ax = b, x 0}. Das mathematische Optimierungsproblem (42) ist kein lineares Programm im strengen Sinn, da der Zulässigkeitsbereich F = {x P x N n } eine diskrete Menge und im allgemeinen kein Polyeder ist. Ist F endlich und setzen wir P I = conv F, so ist (42) äquivalent zu dem Problem min c T x s.d. x P I. Wäre eine Matrix A und ein Vektor b mit P I = P (A, b ) bekannt, so könnte man das Ausgangsproblem (42) z.b. dadurch lösen, indem man mit der Simplexmethode löst. min c T x s.d. A x b VEREINBARUNG. In diesem Kapitel nehmen wir durchweg an, dass sämtliche Problemparameter A, c, b rational sind. OBdA dürfen (und werden) wir bei der Problemanalyse deshalb sogar Ganzzahligkeit annehmen: A Z m n, c Z n, b Z m. 1. Schnittebenen Es seien A Z m n und b Z m gegeben und P = P (A, b) = {x R n Ax b} das entsprechende rationale Polyeder. Wir interessieren uns für die Menge P I = conv {x P x Z n }. PROPOSITION 5.1. Ist P eine rationales Polyeder, dann ist auch P I ist ein rationales Polyeder. 59
60 5. GANZZAHLIGE LINEARE PROGRAMME Beweis. Im Fall P I = ist nichts zu beweisen. Sei also P I. Nach dem Dekompositionssatz von Weyl-Minkowski existieren endliche Mengen V, W Q n so, dass P = conv V + cone W. Nach geeigneter Skalierung dürfen wir die Vektoren w W obda dabei als ganzzahlig annehmen. Ein beliebiges x P kann in der Form x = V s + W t mit s, t 0, 1 T s = 1 dargestellt werden. Bezeichen wir mit t der ganzzahlig nach unten gerundeten Komponenten von t und setzen t = t t 0, dann erhalten wir x = (V s + W t) + W t = x + W t mit dem ganzzahligen t und x in dem Polytop(!) Wegen W t Z n finden wir und deshalb P = {V s + W t s 0, 1 T s = 1, 0 t 1}. x Z n x Z n P Z n = P Z n + {W z z 0 ganzzahlig}. Da P ein Polytop (und somit beschränkt) ist, ist P Z n eine endliche Menge. Wegen (43) P I = conv (P Z n ) + cone W erkennen wir P I somit als Polyeder. Im Prinzip könnte man aus der Darstellung (43) (z.b. mit Fourier-Motzkin) eine lineare Beschreibung von P I durch Ungleichungen ableiten. Für das Optimierungsproblem (42) ist dies jedoch nicht interessant, da ein solches Vorgehen bedeutet, dass man ohnehin zuerst sämtliche ganzzahligen Vektoren in P (darunter auch die Optimallösung von (43) ) auflisten müsste. 1.1. Das Verfahren von Gomory. Um eine lineare Beschreibung von P I zu erzielen, gehen wir von gültigen Ungleichungen für das Polyeder P = P (A, b) aus. Gemäss dem Lemma von Farkas betrachten wir deshalb ein beliebiges rationales y 0 und c T = y T A. Dann ist c T x z mit z = y T b eine gültige Ungleichung für P. Wir dürfen y als ganzzahlig annnehmen. Der springende Punkt ist dann die Beobachtung c T = y T A ist ganzzahlig und c T x z mit z = y T b Z eine gültige Ungleichung für P I, da sie von allen ganzzahligen Vektoren in P erfüllt wird.
1. SCHNITTEBENEN 61 Tatsächlich genügt es, sich dabei auf y mit Komponenten y i [0, 1] zu beschränken. Denn bei allgemeinem y Q n + und z Z n + mit 0 y = y z 1 ist die Ungleichung (z T A)x z T b Z ja ohnehin schon von Ax b impliziert. Für ganzzahliges x P (A, b) gilt darum (y ) T Ax (y ) T b y T Ax y T b. Damit erhalten wir das Gomory-Polyeder P = {x P (y T A)x y T b, y [0, 1] m, y T A Z n }. BEMERKUNG. P ist tatsächlich ein Polyeder, denn es gibt nur endlich viele verschiedene Gomory-Schnitte. Das sieht man so: Die Menge {y T A 0 y 1} ist eine beschränkte Menge von Zeilenvektoren in R n und enthält deshalb nur endlich viele ganzzahlige Vektoren. Iterieren wir diese Konstruktion, so ergibt sich die Gomory-Folge P P P... P I. Man bemerke, dass keine der Gomory-Ungleichungen einen ganzzahligen Punkt aus P abschneidet. Ausserdem 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 5.1 (Gomory). Die Gomory-Folge eines rationalen Polyeders P hat endliche Länge und endet mit P I. Der Beweis ist nicht schwer aber etwas aufwendig. Deshalb sei hier darauf verzichtet. Wir beweisen nur: LEMMA 5.1. Sei P ein rationales Polytop mit P = P. Dann gilt P = P I. Beweis. Sei P P I. Dann besitzt P eine Ecke v mit (mindestens) einer Komponente v j / Z. Ausserdem existiert ein c Z n derart, dass die Funktion f(x) = c T x über P genau von v maximiert wird. Seien v (1),..., v (k) die übrigen Ecken von P und max l=1,...,k (ct v c T v (l) ) = ε > 0 max 1 +... + x n x P = M <. Sei K N so gewählt, dass Kε > 2M erfüllt ist. Dann maximiert v auch die Funktion f(x) = c T x über P, mit c T = [Kc 1,..., Kc j + 1,..., Kc n ] = Kc T + e T j.
62 5. GANZZAHLIGE LINEARE PROGRAMME Denn für jede andere Ecke v (l von P gilt K(c T v (l) ) + v (l) j < K(c T v ε) + M < Kc T v M < Kc T v + v j. Wegen c T v Kc T v = v j / Z ist entweder c T v oder c T v keine ganze Zahl. Also ist c T x c T v oder c T x c T v eine Ungleichung, die zwar für P I gültig ist aber nicht für P. D.h. P P. Der Satz von Gomory führt zu einem endlichen Algorithmus zur Lösung von des ganzzahligen Optimierungsproblems Man löst die LP-Relaxierung max c T x s.d. Ax b, x Z n. max c T x s.d. Ax b. Ist die gefundene Optimallösung x ganzzahlig, dann ist nichts weiter zu tun. Andernfalls berechnet man das Gomory-Polyeder P und löst max x P ct x usw. bis das ganzzahlige Optimum gefunden ist. In der Praxis ist diese Vorgehensweise typischerweise jedoch hoffnungslos ineffizient. 1.2. Schnittebenenverfahren. Die Idee hinter Schnittebenenverfahren zur Lösung ganzzahliger linearer Programme ist wie die des Gomory-Verfahrens: Man löst die LP-Relaxierung des Problems. Ist die gefundene Optimallösung x, so fügt man dem LP eine Ungleichung a T x b hinzu, die für alle x P Z n gilt und von x verletzt wird. Die entsprechende Hyperebene H(a, b) = {x R n a T x = b} heisst Schnittebene (bzgl. P und P I ). Unter der Ausnutzung der speziellen kombinatorischen Struktur, die das Optimierungsproblem haben mag, lassen sich in der Praxis oft gezielt Schnittebenen bestimmen, die zu effizienteren Algorithmen führen als das Allzweck-Gomoryverfahren. Ein Schnittebenen-Verfahren geht nach folgendem Prinzip zur Lösung des Problems vor: max c T x s.d. Ax b, x Z n (SE0) Löse das relaxierte LP-Problem max c T x s.d. Ax b. Ist die gefundene Optimallösung x ganzzahlig, STOP.
1. SCHNITTEBENEN 63 (SE1) Bestimme im Fall x / Z n eine Schnittebenenungleichung a T x b für P I, die von x verletzt wird (d.h. a T x > b) und füge diese den Restriktionen hinzu. Löse nun max c T x s.d. Ax b, a T x b. Ist die gefundene Optimallösung x ganzzahlig, STOP. (SE2) Bestimme im Fall x / Z n eine Schnittebenenungleichung a T x b für P I, die von x verletzt wird (d.h. a T x > b) und füge diese den bisherigen Restriktionen hinzu usw. 1.2.1. Quadratische boolesche Optimierung. Als Beispiel betrachten wir zu gegebenen Paramentern q ij R das Problem n n max q ij x i x j, x i {0, 1}. i=1 j=1 Sei V = {1,..., n} und E die Menge aller Paarmengen {i, j}. Zu e = {i, j} setzen wir d i = q ii und c e = q ij + q ji. Wegen x 2 i = x i und y e = x i x j {0, 1} erhalten wir eine Formulierung als ganzzahliges LP: max i V d i x i + e E c e y e (44) s.d. y e x i 0 e E, i e x i + x j y e 1 e = {i, j} x i, y e 1 x i, y e 0 x i, y e ganzzahlig. BEMERKUNG. Man kann sich dieses Problem vorstellen als die Aufgabe, im vollständigen Graphen K n mit Knotenmenge V und Kantenmenge E einen vollständigen Untergraphen maximalen Gesamtgewichts zu wählen. Dabei sind die Knoten i V mit d i und die Kanten e E mit c e gewichtet. Als Schnittebenen für das von den ganzzahligen Lösungen von (44) erzeugte Polytop P I kommen alle Ungleichungen in frage, die von den ganzzahligen Lösungsvektoren erfüllt werden. Beispiele sind etwa die Dreiecksungleichungen x i + x j + x k y e y f y g 1 für jeweils drei Knoten i, j, k V und die dazugehörigen Kanten e, f, g E des entsprechenden Dreiecks {i, j, k}. Dieses Beispiel kann verallgemeinert werden. Dazu setzen für S V mit S 2 x(s) = x i und y(s) = y e, i S e E(S)
64 5. GANZZAHLIGE LINEARE PROGRAMME wobei E(S) die Menge aller Paarmengen e = {i, j} S ist. Zu α N definieren wir die entsprechende Cliquenungleichung als αx(s) y(s) α(α + 1)/2. LEMMA 5.2. Jede zulässige (0, 1)-Lösung (x, y) von (44) erfüllt jede Cliquenungleichung. Beweis. Sei C = {i S x i = 1} und s = C S. Dann gilt x(s) = s und y(s) = s(s 1)/2. Also finden wir α(α + 1)/2 αx(s) y(s) = [α(α + 1) 2αs + s(s 1)]/2 = (α s)(α s + 1)/2. Da α und s ganze Zahlen sind, ist der letzte Ausdruck immer nichtnegativ. Es gibt allein schon 2 n n 1 Cliquenungleichungen. Diese genügen noch nicht, um P I vollständig zu beschreiben. Bei nicht zu grossen booleschen Problemen (n 40) kommt man damit aber in der Praxis schon recht weit. 2. Unimodularität Wir gehen das Ganzzahligkeitsproblem nun von einer anderen Seite an und suchen nach Bedingungen für die Matrix A Z m n, die garantieren, dass jede Ecke des Polyeders P = {x R n Ax = b, x 0} ganzzahlige Ecken hat, sofern b ganzzahlig ist. OBdA nehmen wir wieder m = rg A an. Wir nennen A unimodular, wenn jede (m m)-basisteilmatrix A B von A die Eigenschaft det A B = 1 besitzt. Sei A B eine Basismatrix mit zugeordneter Basislösung x. Nach der Cramerschen Regel ergeben sich die Komponenten als x j = det A B(j, b) det A B (j B), wobei A B (j, b) aus A B hervorgeht, indem die Spalte j durch den Vektor b ersetzt wird. Im Fall b Z m ist det A B (j, b) eine ganze Zahl. Folglich finden wir A unimodular = x j Z für alle b Z m. PROPOSITION 5.2. Sei A Z m n eine unimodulare Matrix vom Rang m = rg A und b Z m. Dann gilt für jedes c R n : Entweder hat das lineare Programm min c T x s.d. Ax = b, x 0 keine Optimallösung oder es existiert eine optimale Lösung x mit ganzzahligen Komponenten x j.
Beweis. Simplexalgorithmus. 2. UNIMODULARITÄT 65 Für viele Anwendungen ist es geschickt, den Begriff der Unimodularität zu verschärfen. Wir nennen eine Matrix A total unimodular, wenn für jede quadratische Teilmatrix A von A unimodular ist, d.h. det A { 1, 0, +1}. Insbesondere gilt a ij { 1, 0 + 1} für alle Koeffizienten der total unimodularen Matrix A = [a ij ]. EX. 5.1. Die Matrix A = [ ] 1 1 ist unimodular aber nicht total unimodular. 1 2 Bevor wir Beispiele von total unimodularen Matrizen diskutieren, geben wir einige wichtige Matrixkonstruktionen an. LEMMA 5.3. Sei A Z m n total unimodular und e Z m ein Einheitsvektor. Dann gilt: (a) Wenn man Spalte von A mit 0 oder 1 multipliziert, erhält man wieder eine total unimodular Matrix. (b) A T total unimodular. (c) A = [A, e] total unimodular. Beweis. (a) 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. Um (c) einezusehen, betrachten wir 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 5.3. 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. Beweis. P ist die Lösungsmenge des total unimodularen Ungleichungssystems A I x b u I l
66 5. GANZZAHLIGE LINEARE PROGRAMME Intervallmatrizen. Sei M = {1,..., m}. Unter einem Intervall versteht man eine Teilmenge F M derart, dass Elemente i, j M existieren mit der Eigenschaft F = {k M i k j}. Eine (0, 1)-Matrix A heisst Intervallmatrix, wenn die Zeilen von A in einer solchen Reihenfolge angeordnet werden können, dass jede Spalte der (0, 1)-Inzidenzvektor eines Intervalls der Zeilenindices ist. Es ist klar, dass jede quadratische Untermatrix einer Intervallmatrix selber eine Intervallmatrix ist. Es gilt LEMMA 5.4. Jede Intervallmatrix A ist total unimodular. Beweis. OBdA sei A = [a ij ] quadratisch und { 1 für j = 1,..., k a 1j = 0 für j = k + 1,..., n. Ausserdem entspreche die erste Spalte von A dem kleinsten Intervall, das 1 enthält. Im Fall k = 1 ist die erste Zeile ein Einheitsvektor. Entwicklung der Determinante nach der ersten Zeile liefert dann die Behauptung per Induktion wie bei Netzwerkmatrizen. Im Fall k 2 subtrahiert man die erste Spalte von den Spalten 2,..., k. Die resultierende Matrix ist wieder eine Intervallmatrix und die Determinante hat sich nicht geändert. Auf die neue Matrix trifft aber der vorige Fall zu. BEMERKUNG. (0, 1)-Inzidenzmatrizen von allgemeinen Familien F von Teilmengen einer endlichen Grundmenge M sind typischerweise nicht total unimodular!