Kap. 2: Maximum Cut in planaren Graphen Überblick 2.1 Einführung

Werbung
Überblick
Kap. 2: Maximum Cut in
planaren Graphen
• 2.1 Einführung
– Schnitte in Graphen
– Planare Graphen
– Euler-Graphen
Professor Dr. Petra Mutzel
Lehrstuhl für Algorithm Engineering, LS11
• 2.2 Transformation in T-Join Problem
5./6. VO
• 2.3 Algorithmus für das T-Join Problem
kleinsten Gewichts
13./20. November 2006
2
2.1 Einführung
Maximum Cut Problem
• Sei G=(V,E) ungerichtet:
• Eine Kantenmenge F⊆E heißt Schnitt (engl.: Cut ),
wenn es eine Knotenmenge W⊆V gibt, so dass
F := δ(W) := { uv∈E: u∈W, v∈V\W } gilt.
• Gegeben: Graph G=(V,E), ungerichtet, mit
Kantengewichten c∈RE.
• Gesucht: Schnitt F = δ(W) mit maximalem Gewicht
c(F):= ∑ c(e)
e∈F
Cut δ(W):
W={2,3}
1
W 3
2
Cut δ(W):
5
4
1
W={2,3}
6
W 3
5
4
2
6
Achtung: Cut ≠ (s,t)-Cut (trennt geg. s von t)
3
4
Planare Graphen
Komplexität
Ein Rätsel
Das Maximum Cut Problem ist NP-schwierig, sogar
wenn alle Gewichte c(e)=1 sind.
In polynomieller Zeit lösbar, wenn
• alle Gewichte negativ sind (bis auf höchstens ein
c(e)), dann: Minimum Cut Problem (lösbar z.B.
mit Hilfe von Maximalen Flüssen in Netzwerken.
• G ein planarer Graph ist Reduktion zu T-Join
Problem (Hadlock 1975) → jetzt!
A
B
C
G
W
E
Rätselbuch von Dudeney, 1911
5
6
1
Erster Versuch
Neuer Versuch
A
B
C
A
B
C
G
W
E
G
W
E
7
8
Def. planarer Graph
Nach Umordnung
B
• G=(V,E) ist planar genau dann, wenn eine injektive
Abbildung der Knoten und Kanten von G auf die Ebene
existiert, die folgende Bedingungen erfüllt:
– Jedem Knoten wird ein Punkt zugeordnet und
– jede Kante vw wird auf eine stetige Kurve abgebildet, die
die Bilder von v und w verbindet.
– Dabei dürfen die Bilder verschiedener Kanten nur die
Bilder ihrer gemeinsamen Endpunkte gemeinsam haben.
C
E
G
A
• Das Bild einer solchen Abbildung heißt planare Zeichnung.
Das geht nicht!
W
9
Planare Graphen
3
2
1
5
4
G ist planar
6
3
2
a
Geordnete Liste (Uhrzeiger) der Liste (Gegenuhrzeiger) der
Randknoten jeder Region:
C Nachbarn für jeden Knoten:
e
A
b
B
c
d
≅
a
5
4
10
Kombinatorische Planare Einbettungen
• G heißt eben, wenn G planar in die Ebene
eingebettet ist.
• Ein ebener Graph unterteilt die Ebene in
verschiedene zusammenhängende Gebiete
(Flächen, engl.: faces). Eine davon ist
unbegrenzt, sie heißt Außenfläche.
1
• G ist also planar, wenn er eine planare Zeichnung besitzt
(d.h. ohne Kantenkreuzungen in die Ebene gezeichnet
werden kann).
b
a:
b:
c:
d:
e:
c
6
und jetzt auch eben
11
≅
≅
a
e
A: a, b, e
B: b, a, c, d
C: c, a, e, b, d
c, e, b
e, d, a
a, d
b, c
b, a
Spiegelbild
e
e
b
a
d
d
c
b
d
c
Ein planarer 3-zusammenhängender Graph hat genau
2 kombinatorische Einbettungen
12
2
Kombinatorische Einbettungen
Theorem von Kuratowski
Ein (planarer) Graph kann exponentiell viele
verschiedene Einbettungen besitzen
Ein Graph ist genau dann planar wenn er
keine Unterteilung des K3,3 und K5 enthält.
a
c
d
e ..... ..
Graph G mit n Knoten und
(n-2)! kombinatorischen
Einbettungen
b
K3,3
Viele Optimierungsprobleme über der Menge aller
kombinatorischen Einbettungen sind NP-schwierig
13
K5
Planaritätstest und Einbettungsberechnung:
lineare Zeit (später in VO)
Planare Graphen
14
Euler-Graphen
Def.: Ein Graph heißt Euler-Graph (Eulersch),
wenn ein geschlossener Kantenzug existiert, der
alle Knoten besucht und dabei jede Kante genau
einmal durchläuft.
Lemma: Sei G ein planarer Graph. Dann gilt:
|E| ≤ 3|V|-6 für |V|≥3.
Beweis: aus Eulerscher Polyederformel:
|E|+2 = |V|+|F|
Lemma: Sei G=(V,E) zusammenhängend. Dann
sind die folgenden Aussagen äquivalent:
• G ist Eulersch
• Jeder Knoten in G hat geraden Knotengrad
• Die Kantenmenge von G kann in kantendisjunkte
Kreise zerlegt werden.
15
Duale Graphen
Beweis: Übung
16
Beispiel: Dualer Graph
Def.: Geg. ein ebener Graph G=(V,E) mit Flächen R.
Dann ist der geometrisch duale Graph G*=(V*,E*)
def. als:
• V*:= R
• Kanten E* sind def. wie folgt: für alle f,g∈R und
e∈E, so dass e die Flächen f und g begrenzt,
entsteht eine Kante e*=fg.
Beobachtungen:
• Für jede Kante in E existiert eine eindeutige Kante
in E* und vice versa.
• Es gilt: (G*)*=G
17
18
3
Duale Graphen
2.2 Max Cut in planaren Graphen
• Ein Elementarschnitt F in G ist ein Schnitt bei dem
für jedes F´⊂F gilt: F´ ist kein Schnitt.
• Eine Menge F⊆E ist ein Schnitt in G genau dann
wenn (V*,F*) ein Eulerscher Untergraph in G* ist.
minimal bzgl. Inklusion
• Jeder (einfache) Kreis in G entspricht einem
Elementarschnitt in G* und umgekehrt.
Bw.: „⇒“: Sei C ein Kreis in G. Betrachte G*\C*: zerfällt in zwei
Teile ⇒ C* ist Schnitt in G*.
„⇐“: klar
5
G
G*
1
C
3
2
7
6
4
19
Max Cut in planaren Graphen
• Bw.: „⇒“: Sei F=δ(W) Schnitt in G.
• F ist Vereinigung von Elementarschnitten
δ(W1)∪δ(W2)∪…∪δ(Wk).
• Jeder Elementarschnitt ist einfacher Kreis in G*
• Schnitt F* ≙ C1∪ C2∪…∪Ck, sogar kantendisjunkte Vereinigung
(weil jede Kante im Schnitt nur 1 Mal vorkommt)→Eulersch
•
•
•
•
„⇐“: Sei F* Eulerscher Untergraph
F*= C1⊍C2 ⊍ …⊍Ck (einfache Kreise)
Alle Ci entsprechen Elementarschnitten in G: δ(Wi)
F=δ(W1)∪ δ(W2)∪…∪δ(Wk).
20
T-Join und Euler-Graphen
• Idee: Bestimme einen maximalen Eulerschen
Untergraphen im dualen Graphen G* von G.
Lemma: J⊆E ist T-Join in G ⇔ (W,F) mit F:=E\J ist
Eulerscher Untergraph von G.
• Problem: Knoten mit ungeradem Knotengrad: nicht
Eulersch.
• Bw.: „⇒“: Sei J ein T-Join.
• Menge der ungeraden Knoten in G = Menge der ungeraden
Knoten in (V,J)
• F:=E\J enthält keine ungeraden Knoten.
Def. T-Join:
• Knoten heißt gerade, wenn er geraden Knotengrad hat,
sonst ungerade.
• T: Menge der ungeraden Knoten in G
• Kantenmenge J⊆E heißt T-Verbindung (T-Join), falls in
(V,J) alle Knoten aus T einen ungeraden Grad und alle
Knoten aus V \ T einen geraden Grad haben.
• „⇐“: Sei (W,F) Eulerscher Untergraph von G. Sei J:=E\F.
• Menge der ungeraden Knoten in E und J ist die gleiche
• In (V, E\F) behalten also alle Knoten aus T ungeraden Grad
und alle Knoten aus V\T geraden Grad.
• J:=E\F ist folglich ein T-Join.
21
T-Join und Eulersche Graphen
22
Das minimale T-Join Problem
Gegeben: Graph G=(V,E) mit Gewichten ce∈R für
alle e∈E und eine Knotenmenge T⊆V, |T| gerade.
Gesucht ist ein T-Join kleinsten Gewichts.
Lemma: Sei G=(V,E) ein Graph mit Gewichten ce für
alle e∈E, F,J⊆E und T:= {Menge der ungeraden
Knoten in G}.
Dann ist das Problem
max c(F) mit F Eulersch
äquivalent zu
min c(J) mit J ist T-Join.
Definitionen:
• E– := {e∈E: ce<0}
• N := {v∈V: v ungerade in (V,E–)}
• T´:= T ∆ N, wobei T Menge der ungeraden Knoten
• T´ sind also Knoten, die mit ungerader Anzahl von
Kanten mit nichtnegativem Gewicht inzident sind.
23
24
4
Das minimale T-Join Problem
Das minimale T-Join Problem
Bw.: „⇒“: z.z.: Sei v∈T´= T ∆ N , z.z.: v ist ungerade in J ∆ E–
Fall 1: v∈T und v∉N: v ist in (V,J) ungerade aber in (V,E–)
gerade ⇒ v ist in (V,J ∆ E–) ungerade.
Fall 2: v∉T und v∈N: v ist in (V,J) gerade aber in (V,E–)
ungerade ⇒ v ist in (V,J ∆ E–) ungerade.
Lemma: Sei G=(V,E), J⊆E, J´:=J∆E–, T und T´:= T ∆ N.
Das Problem
min ∑ c(e) mit J ist T-Join
e∈J
ist äquivalent zu
min ∑ |c(e)| mit J´ ist T´-Join
e∈J´
Sei v∈ V \ T´ , z.z.: v ist gerade in J ∆ E– :
Fall 1: v∈T und v∈N: v ist in (V,J) und in (V,E–) ungerade ⇒ v
ist in (V,J ∆ E–) gerade.
Fall 2: v∉T und v∉N: v ist in (V,J) und in (V,E–) gerade ⇒ v ist
in (V,J ∆ E–) gerade.
„⇐“: genauso: 4 Fälle
Bw.: Für alle e mit c(e)≥0 gilt: e∈J ⇔ e ∈ J ∆ E–
• Für alle e mit c(e)<0 gilt: e∈J ⇔ e ∉ J ∆ E–
• c(J) = c(J\ E–) + c(J∩ E–) =
•
= c(J\ E–) - c(E–\J) + c(E–\J) + c(J∩ E–) =
•
= |c| (J ∆ E–) + c(E–),
c(E–) ist konstant.
Lemma: Es gilt: J ist T-Join ⇔ J ∆ E– ist T´-Join
25
2.3 Lösung des minimalen T-Join Problems
Gegeben: Graph G=(V,E) mit Gewichten de≥0 für alle
e∈E und eine Knotenmenge T´⊆V, |T´| gerade.
Gesucht ist ein T´-Join kleinsten Gewichts.
26
Algorithmus zur Lösung des minimalen
T-Join Problems
• Für alle Knotenpaare (u,v)∈T´: berechne kürzesten
(u,v)-Weg bzgl. Gewichte d → Länge sei wuv.
• Sei (T´, ET´) der vollständige Graph auf der
Knotenmenge T´. Jede Kante (u,v)∈ET´ sei mit dem
Gewicht wuv belegt. Bestimme in (T´,ET´) ein
minimales perfektes Matching M.
Spezialfälle:
• Falls |T´|=2, dann: kürzester (u,v)-Weg (T={u,v}).
• Falls alle Knoten v∈V ungerade sind, und |V|
ungerade, dann: existiert keine Lösung.
• Falls alle Knoten v∈V ungerade sind, und |V|
gerade, dann: minimales perfektes Matching
• Seien Puv die in (1) bestimmten Wege für uv∈M.
Setze J´:= ∆ Puv.
uv∈M
27
Satz: Der Algorithmus berechnet einen T´-Join
kleinsten Gewichts.
Bw.: Das Ergebnis ist T´-Join: klar. z.z.: optimal
• Sei d(J´) := ∑ de . Sei J1 eine weitere T´-Verbindung.
e∈J´
• Wir zeigen: d(J1)≥d(J´). Enthält J1 einen Kreis C, so ist
J2:=J1∆C auch T´-Join mit d(J2)≤d(J1). Wiederhole, bis
T´-Join Tk, der keinen Kreis enthält und d(Jk)≤d(J1).
• Es ist leicht zu sehen, dass Jk eine Vereinigung von
(|T´| / 2) (ui,vi)-Wegen Pi mit ui,vi∈T´ ist. Die Länge von
Pi ist nicht kleiner als wuivi.
• Summe der Weglängen ist ≥ w(M´) mit
M´={u1v1,…,umvm} in (T´,ET´).
29
• Aus d(J1)≥d(Jk)≥w(M´) ≥w(M)≥d(J´) folgt die Beh.
28
Algorithmus für planares Max Cut
1. Berechne den dualen Graphen G*
2. Bestimme T´:={v∈V*: ungerade mit Gewicht ≥ 0}
3. Für alle Knotenpaare in T´: Berechne kürzesten
(u,v)-Weg bzgl. Gewichte |c|
4. Berechne den vollständigen Graphen (T´, ET´)
5. Bestimme in (T´,ET´) ein minimales perfektes
Matching M.
6. Seien Puv die in (3) bestimmten Wege für uv∈M.
Dann setze J´:= ∆ Puv
Beispiel: s. Tafel
uv∈M
7. Für jede Kante e∈E: Falls (e∈J´ und ce<0) oder
(e∈E\J´ und ce≥0) , dann liegt e im maximalen
30
Schnitt.
5
Analyse des Algorithmus
Lemma:
• Der Algorithmus berechnet den maximalen Schnitt
in G=(V,E) korrekt.
• Die Laufzeit wird dominiert von der Laufzeit zur
Bestimmung eines perfekten Matchings kleinsten
Gewichts.
• Dieses kann z.B. in Zeit O(|V|2 |E|) berechnet
werden.
• In Bezug auf |T´| ist die Laufzeit O(|T´|4).
31
6
Herunterladen