Seminar: Das Max-Cut Problem -Eine Einführung-

Werbung
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
Herunterladen