Seminar: Das Max-Cut Problem -Eine EinführungSabrina Gippert 24. April 2006 Inhaltsverzeichnis 1 Einleitung 2 2 Das 2.1 2.2 2.3 Max-Cut Problem Begriffserläuterung . . . . . . . . . . . . . . . . . . . . . . . . . . Herleitung des Max-Cut Problems . . . . . . . . . . . . . . . . . Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 5 6 3 Das 3.1 3.2 3.3 3.4 Max-Cut Polytop Vorbemerkung . . . . . . . . . . . Herleitung des Max-Cut-Polytops . Beispiel . . . . . . . . . . . . . . . Auswahl der Ungleichungen für die Relaxierung . . . . . . . . . . . . . Relaxierung bei drei Knoten . . . . 3.5 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 10 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 14 1 Einleitung Das Thema meines Seminars ist das Max-Cut Problem. Dies ist ein Problem aus der kombinatorischen Optimierung und findet unter anderem Anwendung in der Physik, und auch in der Entwicklung von elektronischen Halbleiterchips. Dieses Problem hat seinen Ursprung in der Graphentheorie. Im Rahmen meines Seminars möchte ich zuerst die benötigten Begriffe aus der Graphentheorie erläutern, die für das inhaltliche Verständnis des Max-Cut Problems notwendig sind. Darauf basierend werde ich das Max-Cut Problem herleiten und veranschaulichen. Im Folgenden werde ich versuchen, die Lösungsmenge des Problems einzuschränken, indem ich auf das Max-Cut Polytop zu sprechen komme bzw. dieses herleite. Über den ganzen Vortrag hinweg werde ich die Theorie anhand eines konkreten, einfachen Beispiels darstellen, um die Zusammenhänge zu verdeutlichen. 2 2 Das Max-Cut Problem 2.1 Begriffserläuterung Sei G = (V, E) ein gewichteter, aber ungerichteter Graph, mit Knotenmenge V = {1, . . . , n} und Kantenmenge E ⊆ {ij | i ∈ V, j ∈ V }, die die Knoten verbindet. Es werden keine Graphen zugelassen, die Kanten mit gleichem Anfangsund Endpunkt also so genannte Schleifen enthalten. Die Kanten des Graphen sind gewichtet; es entstehen Kosten“, wenn man von einem Knoten zum an” deren gelangen will. Die Kantengewichte werden mit cij bezeichnet. Ein solcher Graph könnte beispielsweise wie folgt aussehen: Hier ist G=(V,E) mit Knotenmenge V = {1, 2, 3, 4, 5} und Kantenmenge E = {(1, 2); (1, 3); (1, 4); (2, 4); (2, 5); (3, 4); (3, 5); (4, 5)}. Sei nun S eine Teilmenge der Knotenmenge V, S ⊆ V und S = V \ S. Der Schnitt, im Englischen cut, ist eine Teilmenge der Kanten und ist definiert als δ(S) = {ij ∈ E | i ∈ S, j ∈ S}. Eine Kante ist die Verbindungsstrecke zweier Knoten. Sie liegt demnach im Schnitt, wenn ein Knoten in S und der andere in V \ S liegt. Das zugehörige P Schnittgewicht ist definiert als die Summe der Kantengewichte c(δ(S)) = ij∈δ(S) cij . Gesucht ist nun ein Schnitt, so dass die Summe der Kantengewichte maximal ist. 3 Das Max-Cut Problem lässt sich daher wie folgt darstellen: mc = = max c(δ(S)) S⊆V X max cij S⊆V ij∈δ(S) Beispiel: Hier ist G=(V,E) ein ungerichteter, gewichteter vollständiger Graph mit drei Knoten; Knotenmenge V = {1, 2, 3} und Kantenmenge E = {(1, 2); (1, 3); (2, 3)}. Es gibt für S ⊆ V nur die folgenden vier Möglichkeiten: 1. Kein Knoten liegt in S, also ist S die leere Menge und die Menge V \ S beinhaltet alle drei Knoten. Daher ist der Schnitt dann leer, da es keine Kanten gibt, deren Anfangspunkt“ in S und deren Endpunkt“ in V \ S ” ” liegt. Das Schnittgewicht ist also gleich Null. 2. Es liegt genau ein Knoten in S, d.h. zwingend liegen zwei Knoten in V \ S. Der Schnitt beinhaltet demnach zwei Kanten. 3. Es liegen genau zwei Knoten in S, also liegt ein Knoten in V \ S, und der Schnitt beinhaltet wieder zwei Kanten. 4. Alle drei Knoten liegen in S. Damit ist die Menge V \ S leer, und auch der Schnitt kann keine Kanten enthalten. Also beinhaltet der nicht-leere Schnitt δ(S) bei vollständigen Graphen mit drei Knoten immer genau zwei Kanten. Demnach gibt es genau drei Möglichkeiten für den Schnitt. Um das Schnittgewicht zu bestimmen, werden die Gewichte der Kanten, die im Schnitt liegen, addiert. In diesem Beispiel ist also der Schnitt mit maximaler Summe von Kantengewichten der Schnitt 1. 4 2.2 Herleitung des Max-Cut Problems Sei nun G=(V,E) so ein ungerichteter, aber gewichteter Graph mit Kantengewichten cij . Die Kantengewichte können in einer Adjazentenmatrix C ⊆ IR|V |×|V | dargestellt werden. 0 c12 . . . c1n c21 0 . . . c2n C= . .. .. .. .. . . . cn1 cn2 ... 0 Diese Matrix ist symmetrisch, da G ein ungerichteter Graph ist. Die Kosten“ ” von Knoten A nach Knoten B sind die gleichen wie die von B nach A. Die Diagonale besteht nur aus Nullen, da ja keine Kanten zugelassen sind, deren Anfangspunkt“ gleich deren Endpunkt“ ist. ” ” Da die graphentheoretische Darstellung des Max-Cut Problems P mc = max ij∈δ(S) cij für algorithmische Zwecke nicht geeignet ist, wird die Menge S oft durch einen Vektor x ∈ {−1, 1}n dargestellt. Es soll gelten: xi = 1 ⇔ i ∈ S xi = −1 ⇔ i ∈ V \ S ⇒ ij ∈ δ(S) ⇔ xi xj = −1 Für das Schnittgewicht gilt: c(δ(S)) = X cij i,j∈δ(S) X = cij , i < j da die Gewichte sonst doppelt addiert würden xi xj =−1,i<j = 1 2x X 1 2x X i xj =−1,i<j = cij (1 − xi xj ) | {z } =2 cij (1 − xi xj ) + i xj =−1,i<j X 1 cij (1 − xi xj ) 2 x x =1,i<j i j | {z } =0 = 1X cij (1 − xi xj ) 2 i<j = 1X cij (1 − xi xj ) 4 i,j = 1 X ( cij − cij xi xj ) 4 i,j 5 Sei L die Laplacematrix mit L := −C + Diag(Ce) mit e = (1, . . . , 1)T von geeigneter Dimension. Die Diagonale der Matrix L ist die Zeilensumme der Matrix C. ⇒ 1 X ( cij − cij xi xj ) 4 i,j = X 1 X ( lii + lij xi xj ) 4 i = 1X xi lij xj 4 i,j = 1 T x Lx 4 i6=j Das Max-Cut Problem kann also wie folgt formuliert werden: mc = max x∈{−1,1}n 1 T x Lx. 4 Um ein Max-Cut Problem zu lösen, müsste man also 2n verschiedene Vektoren x in die Gleichung einsetzen, um das maximale Schnittgewicht zu bestimmen. Es ist vorstellbar, wie aufwendig das für sehr große n wäre. Diese Lösungsmethode hat dann eine exponentielle Laufzeit und wird in der Informatik als NP-schwierig bezeichnet. NP ist die Abkürzung für Non-deterministic ” Polynomial-time“, das bedeutet, dass das Problem besonders aufwendig in der Berechnung ist. 2.3 Beispiel Sei G=(V,E) ein ungerichteter aber gewichteter Graph mit drei Knoten. Also ist 0 C= 1 3 Da L = −C mit der Diagonalen Ce ist, 4 L = −1 −3 6 1 0 9 3 9 0 sieht L folgendermaßen aus: −1 −3 10 −9 −9 12 Also folgt für das Max-Cut Problem: 1 T x Lx = 4 1 4 x1 x2 x3 4 −1 −3 x1 −1 10 −9 x2 −3 −9 12 x3 1 (26 − 2x1 x2 − 6x1 x3 − 18x2 x3 ) 4 3 13 1 − x1 x2 − x1 x3 − ⇒ mc = max 3 2 2 x∈{−1,1} 2 = da x2i = 1 9 x2 x3 2 Dieses Problem gilt es jetzt durch Einsetzen aller möglichen Lösungsvektoren x zu lösen. Vektor 1 1 1 mc 1 1 −1 0 −1 −1 −1 0 −1 −1 1 12 −1 1 −1 10 12 1 −1 −1 mc 1 −1 1 Vektor 10 4 −1 1 1 4 1 −1 ⇒ das Maximum befindet sich bei den Vektoren 1 und −1 . −1 1 Diese Vektoren entsprechen sich, da es für den Schnitt keinen Unterschied macht, ob xi ∈ S oder xi ∈ V \ S. Es ist nur wichtig, dass ein Knoten der Kante in S und der andere inV \ S liegt. Der Schnitt kann also nur folgendermaßen verlaufen, um ein maximales Schnittgewicht zu erreichen: 7 8 3 Das Max-Cut Polytop Da das Einsetzen aller möglichen Lösungsvektoren in die Gleichung zu aufwendig ist, wird im Folgenden versucht, die Lösungsmenge einzuschränken. 3.1 Vorbemerkung Definition: Spur Für eine quadratische Matrix wird der Begriff Spur als Summe ihrer Diagonalelemente definiert: Sei A ∈ IRn×n spur(A) := n X aii i=1 Eigenschaft: spur(AB) = spur(BA) Beweis: A = Sei C (aij ) B = (bij ) n X = AB mit cik = aij bjk j=1 spur(C) = spur(AB) = n X cii = i=1 Sei BA = (djk ) mit djk = n X n X aij bji i=1 j=1 n X bji aik i=1 ⇒ spur(BA) = n X j=1 djj = n X n X j=1 i=1 9 bji aij = n X n X i=1 j=1 aij bji = spur(AB) 3.2 Herleitung des Max-Cut-Polytops Das Max-Cut Problem wurde folgendermaßen formuliert: mc = xT Lx = = sei X := ⇒ spur(LX) = mit L := ⇒ mc = max x∈{−1,1}n 1 T x Lx. 4 spur(xT Lx) da xT Lx eine 1 × 1- Matrix ist spur(LxxT ) da spur(AB) = spur(BA) {xxT | x ∈ {−1, 1}n } eine Rang-1-Matrix hL, Xi vec(L) d.h. alle Spalten von L untereinander und X := vec(X) 1 max hL, Xi mit X = xxT x∈{−1,1}n 4 Beweis: spur(LX) = hL, Xi L = (l ij ), X l11 l21 L= . .. ln1 = (xij ) mit xij = xi xj = xj xi l12 l13 . . . l1n x11 x21 l22 l23 . . . l2n .. .. .. X = .. .. . . . . . ln2 ln3 . . . lnn xn1 Pn l1i xi1 Pi=1 n i=1 l2i xi1 ⇒ LX = .. Pn . i=1 lni xi1 Pn l1i xi2 Pi=1 n i=1 l2i xi2 .. Pn . i=1 lni xi2 ⇒ spur(LX) = x12 x22 .. . x13 x23 .. . ... ... .. . x1n x2n .. . xn2 xn3 ... xnn Pn l1i xi3 Pi=1 n i=1 l2i xi3 .. Pn . i=1 lni xi3 n X lki xik = i=1,k=1 10 Pn l1i xin Pi=1 n i=1 l2i xin .. Pn . ... i=1 lni xin ... ... .. . n X i=1,k=1 lki xki hvec(L), vec(X)i = h l11 l21 .. . ln1 l12 l22 .. . ln2 .. . l1n l2n .. . lnn , x11 x21 .. . xn1 x12 x22 .. . xn2 .. . x1n x2n .. . i = Pn i=1,k=1 lki xki xnn ⇒ spur(LX) = hL, Xi Da X linear ist, ändert sich der Optimalwert nicht, wenn man die konvexe Hülle der zulässigen Menge betrachtet. ⇒ mc = max X∈P CU T 1 hL, Xi mit P CU T = conv{X | x ∈ {−1, 1}n } 4 Die Menge P CU T wird als Max-Cut-Polytop bezeichnet. 3.3 Beispiel Sei G=(V,E) wieder der Graph mit drei Knoten. Es gibt also 23 = 8 mögliche Lösungsvektoren x ∈ {−1, 1}3 . Das Schnitt-Polytop P CU T = conv{X = xxT | x ∈ {−1, 1}3 } soll nun berechnet werden. Mit acht Vektoren x bekommt man für das Polytop P CU T acht Rang-1-Matrizen X. Allerdings sind jeweils zwei von ihnen gleich. Um überflüssige Informationen auszuschließen, bleiben also nur noch vier Rang-1-Matrizen übrig. In diesem Beispiel sind das die vier folgenden Matrizen. 1 1 1 1 −1 1 1 1 −1 1 −1 −1 1 1 1 −1 1 −1 1 1 −1 −1 1 1 1 1 1 1 −1 1 −1 −1 1 −1 1 1 Diese Rang-1-Matrizen sind symmetrisch, daher ist nur die obere oder die untere Dreiecksmatrix relevant. Außerdem ist die Diagonale aller Matrizen eins und demnach ist auch diese Information redundant. Daher werden im Folgenden nur die echten unteren Dreiecksmatrizen verwendet und zu Vektoren zusammengebaut. So ergibt sich dann das Max-Cut-Polytop: 11 P CU T 3.4 1 −1 1 −1 = conv{ 1 1 −1 −1 } 1 −1 −1 1 Auswahl der Ungleichungen für die Relaxierung Das Max-Cut Polytop ist ein Polytop und damit ein beschränkter Polyeder. Ein Polyeder ist der Durchschnitt endlich vieler Halbräume. Daher lässt sich jedes Polytop und demnach auch das Max-Cut-Polytop durch endlich viele lineare Ungleichungen beschreiben. Das Problem liegt hier bei der Anzahl der Ungleichungen, die benötigt werden, um das Polytop exakt beschreiben zu können. Daher wird versucht, das Max-Cut-Polytop durch einfachere Beschreibungen zu approximieren. Dabei soll natürlich erreicht werden, dass die Optimallösung des Max-Cut-Problems für die Approximation zulässig ist. Diese Approximationen nennt man Relaxierungen des Max-Cut-Polytops. 12 Für die Auswahl der Ungleichungen, die bei der Relaxierung benutzt werden, sind folgende Definitionen hilfreich: Definition: gültige Ungleichung Eine Ungleichung aT x ≤ a0 ist gültig bzgl. einer Teilmenge X ⊆ IRm genau dann, wenn X ⊆ {x ∈ IRm | aT x ≤ a0 }. Definition: Seitenfläche, Ecke und Facette Eine Teilmenge F eines Polyeders P, F ⊆ P heißt Seitenfläche von P, falls es für P eine gültige Ungleichung aT x ≤ a0 gibt, so dass F = {x ∈ P | aT x = a0 }. Falls F 6= P , so ist F eine echte Seitenfläche. Echte Seitenflächen mit Dimension 0 sind die Eckpunkte von P, echte Seitenflächen mit Dimension dimP − 1 nennt man Facette von P. Lässt man eine Facette bei der Beschreibung eines Polytops weg, verändert sich das Polytop. Also sind Facetten die Ungleichungen, die für Relaxierungen bevorzugt werden. 13 3.5 Relaxierung bei drei Knoten Sei G=(V,E) ein ungerichteter, aber gewichteter, vollständiger Graph mit den drei Knoten i,j,k. Für die zugehörigen drei Kanten gilt offensichtlich, dass entweder keine der Kanten oder genau zwei Kanten in einem Schnitt liegen. Die Kanten werden mit xij , xjk , xki bezeichnet, und es gilt weiterhin, dass xab = −1 ⇔ ab ∈ δ(S). Es gilt also: xij + xjk + xki + 1 ≥ 0 höchstens zwei Kanten xij − xjk − xki + 1 ≥ 0 wenn zwei Kanten nicht im Schnitt liegen, dann auch die dritte nicht −xij + xjk − xki + 1 ≥ 0 −xij − xjk + xki + 1 ≥ 0 Beweis: Sei G = (V, E) dieser Graph mit Knotenmenge V = {i, j, k} und Kantenmenge E = {(i, j); (i, k); (j, k)}. Die dritte und vierte Ungleichung unterscheiden sich von der zweiten nur durch Umnummerierung der Kanten. Es reicht daher, die erste beiden Ungleichungen zu betrachten: Grundsätzlich gilt erstmal: xij + xjk + xki ≥ −3. Da aber nicht alle Kanten gleichzeitig im Schnitt liegen können, sondern höchstens zwei ⇒ xij + xjk + xki ≥ −1. Weiterhin gilt, dass wenn zwei Kanten nicht im Schnitt liegen, dann auch die dritte nicht: xij − xjk − xki ≥ −1. So ergeben sich dann auch die dritte und vierte Ungleichung. Diese Ungleichungen nennen sich metrisches Polytop, da diese über die Metrik motiviert werden. Nun wurde das Max-Cut Problem in ein Maximierungsproblem mit Ungleichungsrestriktionen umgeformt, die dann mit bekannten Verfahren, wie zum Beispiel mit dem KKT-Verfahren, gelöst werden können. 14