©30.11.18 Jens M. Schmidt
Gomory-Hu Bäume
Jens M. Schmidt b
S a
T
t X‘
V-X‘
X
©30.11.18
●
Flussäquivalente Graphen und Gomory-Hu Bäume
●
Nicht-kreuzende Schnitte, Symmetrische Submodulare Mengenfunktionen
●
Algorithmus von Gomory und Hu
Überblick
©30.11.18 Jens M. Schmidt
Sei G ungerichtet mit Gewichtsfunktion (Gewicht 0 <=> keine Kante).
(für negative Gewichte ist schon Min-Schnitt NP-schwer wegen Max-Schnitt) d(S) := Größe des Schnittes S V
(s,t) := Größe d(S) eines minimalen s-t-Schnittes S
Lemma [Transitivität von ]: (s,t) min{ (s,u), (u,t)} für alle s,t,u V.
Beweis: Jeder s-t-Schnitt ist entweder s-u-Schnitt (falls u V-S) oder u-t-Schnitt (falls u S).
Fluss-äquivalente Graphen
u S
s
V-S
t
©30.11.18
Lemma: Es gibt höchstens n-1 verschiedene Werte (s,t) über alle s,t V.
Beweis:
●
Betrachte K
nmit Kantengewichten
G(s,t)
●
T := maximaler Spannbaum von K
n●
Beh.: Für jede Knoten s,t und der Kante vw kleinsten Gewichts auf dem s-t-Pfad P in T gilt (s,t) = (v,w).
●
(s,t) (v,w), sonst wäre T nicht maximal
●
Sei P := sp
1...p
kt
●
(s,t) min{ (s,p
1), (p
1,t)} nach Transitivität min{ (s,p
1),..., (p
k,t)}
= (v,w)
→ jetzt: stärkere Baumdarstellung dieser minimalen s-t-Schnittgrößen
Fluss-äquivalente Graphen
41
3 2
1
p
1s
t
w
v
P
©30.11.18 Jens M. Schmidt
Zwei Graphen G und H auf der Knotenmenge V heißen fluss-äquivalent, wenn für alle s,t V gilt:
H(s,t) =
G(s,t).
●
Jeder Graph G hat einen fluss-äquivalenten Baum H.
(z.B. der vorige maximale Spannbaum)
●
Achtung: H muss nicht Teilgraph von G sein.
T := Baum mit Kante vw
C
vw:= Knotenmenge der Komponente von T-vw, die v enthält
Ein Baum T auf der Knotenmenge V heißt Gomory-Hu Baum von G, falls C
vwfür jede Kante vw T ein minimaler v-w-Schnitt von G ist.
Fluss-äquivalente Graphen
1 1
1 1
1
e
d
a b
c
2 2
1 1
e d
a b
c
G
fluss-äquivalent zu G
kein Teilgraph von G: ad G
kein GH-Baum: C
de= {a,d}, d
G(C
de)=3 Gomory-Hu Baum sogar Pfad → Übung
2 1
1
e
2c
a d b
©30.11.18
Lemma: Ein Gomory-Hu Baum T von G mit Gewichtung d(C
e) für jedes e T ist fluss-äquivalent zu G.
●
Für Knoten s,t V sei vw eine kleinste Kante auf dem s-t-Pfad P:=sp
1...p
kt in T
→
T(s,t) =
T(v,w) =
G(v,w) da T Baum und nach Gomory-Hu-Definition
●
G(s,t)
G(v,w) =
T(s,t) da v-w-Schnitt C
vwvon G auch s-t-Schnitt von G ist
●
G(s,t)
G(v,w) =
T(s,t):
●
G(s,t) min{
G(s,p
1),...,
G(v,w),
G(p
k,t)} nach Transitivität
Fluss-äquivalente Graphen
41
3 2
1
s
t
w v
P
©30.11.18 Jens M. Schmidt
●
Flussäquivalente Graphen und Gomory-Hu Bäume
●
Nicht-kreuzende Schnitte, Symmetrische Submodulare Mengenfunktionen
●
Algorithmus von Gomory und Hu
Überblick
©30.11.18
Lemma: Sei S,T ein minimaler s-t-Schnitt mit s S und a,b Knoten in S. Dann
existiert ein minimaler a-b-Schnitt X mit X S. (mit entweder a X oder b X) Beweis:
●
Sei X' ein minimaler a-b-Schnitt mit t X' (o.B.d.A. a X')
→ S X' ist s-t-Schnitt (enthält s, aber nicht t)
→ d(S X') d(S) (da S minimal)
●
Für X := S X' gilt wegen Submodularität von d:
●
d(X) + d(S X') d(S) + d(X')
→ d(X) d(X')
→ X ist (wie X') ein minimaler a-b-Schnitt
benötigt Submodularität von d
benötigt Symmetrie von d: d(X)=d(V-X) für alle X V
→ Gomory-Hu Bäume können sogar für beliebige nicht-negative symmetrische submodulare Mengenfunktionen d mit der gleichen Methode konstruiert werden.
Nicht-kreuzende minimale Schnitte
b S a
T
t X‘
V-X‘
X
©30.11.18 Jens M. Schmidt
Lemma: Sei S,T ein minimaler s-t-Schnitt mit s S und a,b Knoten in S. Dann
existiert ein minimaler a-b-Schnitt X mit X S. (mit entweder a X oder b X) Beweis:
●
Sei X' ein minimaler a-b-Schnitt mit t X' (o.B.d.A. a X')
→ S X' ist s-t-Schnitt (enthält s, aber nicht t)
→ d(S X') d(S) (da S minimal)
●
Für X := S X' gilt wegen Submodularität von d:
●
d(X) + d(S X') d(S) + d(X')
→ d(X) d(X')
→ X ist (wie X') ein minimaler a-b-Schnitt
Korollar 1 [merken]: minimaler a-b-Schnitt A,B mit a A, so dass T entweder ganz in A oder ganz in B enthalten ist. (A ist entweder X oder V-X)
Korollar 2:
G/T(a,b) =
G(a,b) a,b S. (Kontraktion senkt nicht+min.Schnitt bleibt)
Nicht-kreuzende minimale Schnitte
Kontraktion
b S a
T
t X‘
V-X‘
X
©30.11.18
●
Flussäquivalente Graphen und Gomory-Hu Bäume
●
Nicht-kreuzende Schnitte, Symmetrische Submodulare Mengenfunktionen
●
Algorithmus von Gomory und Hu
Überblick
©30.11.18 Jens M. Schmidt
Sei V
1,...,V
kPartition von V.
T := Baum auf der Knotenmenge {V
1,...,V
k}.
Für Baumkante V
vV
wsei C
vw:= C
VvVw.
T ist Gomory-Hu Baum für V
1,...,V
k, falls für jede Kante V
vV
w T ein a V
vund b V
wexistiert, so dass C
vwein minimaler a-b-Schnitt von G ist.
→ Gomory-Hu Baum für {v
1},...,{v
n} ist Gomory-Hu Baum.
Generalisierte Gomory-Hu Bäume
d(Cvw)=3
Cvw Cvw
V
vV
2V
1V
4V
wV
3©30.11.18
Algorithmus [gibt Gomory-Hu Baum T
naus]:
●
k := 1 und somit V
1:= {V} T
1:=({V}, ) ist GH-Baum für einzigen Knoten {V}
●
Für k := 1 bis n-1 konstruiere GH-Baum T
k+1(1 Knoten mehr) aus GH-Baum T
k●
Wähle v mit a,b V
vV
vmit 2 Elementen existiert wegen k<n
●
A,B := minimaler a-b-Schnitt von G mit a A
Gomory-Hu Algorithmus
Gomory-Hu Baum T Gomory-Hu Baum T
2V
1A B
a b V
1∩B
l(a,b)
A∩V
1A B
V1
:= V2
:=
©30.11.18 Jens M. Schmidt Cw v
V2 V1
Vv
A B
a b
V3
Vw V4
Cvw
Algorithmus [gibt Gomory-Hu Baum T
naus]:
●
k := 1 und somit V
1:= {V} T
1:=({V}, ) ist GH-Baum für einzigen Knoten {V}
●
Für k := 1 bis n-1 konstruiere GH-Baum T
k+1(1 Knoten mehr) aus GH-Baum T
k●
Wähle v mit a,b V
vV
vmit 2 Elementen existiert wegen k<n
●
A,B := minimaler a-b-Schnitt von G mit a A,
so dass für alle Nachbarn V
wvon V
vin T
kgilt: C
wv A oder C
wv B (Korollar 1)
●
Splitte V
vin neue adjazente Knoten V
v A und V
v B und ersetze Endknoten V
vjeder Kante V
vV
wdurch V
v A, falls C
wv A, und durch V
v B, falls C
wv B.
●
V
k+1:= V
v B und V
v:= V
v A.
Gomory-Hu Algorithmus
Gomory-Hu Baum T
kmit C
wv B
Gomory-Hu Baum T
k+1V
wist adjazent zu V
v B
T aus Korollar 1 (C
vwist min. s-t-Schnitt wegen T
k)
V2
V1 A B
V3
Vw
V4 Vv∩B
A∩Vv
l(a,b)
Vv Vk+ 1
:= :=
©30.11.18 Jens M. Schmidt
Korrektheit:
●
T
kBaum => T
k+1Baum
●
Schnitt A,B existiert nach Korollar 1 nicht-kreuzender Schnitte (iterativ angewandt für alle V
vV
w T
kmit jeweils S=C
vwund T=C
wv)
●
Gomory-Hu Baum-Bedingung für T
k+1erfüllt für
●
Neue Kante V
vV
k+1durch a V
vund b V
k+1●
Alte Kanten nicht inzident zu V
voder V
k+1da Kantenendblöcke unverändert
Gomory-Hu Algorithmus
Cw v
V2 V1
Vv
A B
a b
V3
Vw V4
Cvw
V2 V1
A B
V3
Vw
V4 Vk+1
Vv
b a
©30.11.18 Jens M. Schmidt
●
Alte Kanten inzident zu o.B.d.A. V
k+1:
●
C
vwwar minimaler s-t-Schnitt in T
k●
Falls s in V
k+1: weiterhin erfüllt durch s und t
●
Falls s in V
v:
Gomory-Hu Algorithmus
Cw v
V2 V1
Vv
A B
a b
V3
Vw V4
Cvw
V2 V1
A B
V3
Vw
V4 Vk+1
Vv
l(a,b)
t s
l(s,t)
b a
©30.11.18 Jens M. Schmidt
●
Alte Kanten inzident zu o.B.d.A. V
k+1:
●
C
vwwar minimaler s-t-Schnitt in T
k●
Falls s in V
k+1: weiterhin erfüllt durch s und t
●
Falls s in V
v:
Gomory-Hu Algorithmus
Cw v
V2 V1
Vv
A B
a b
V3
Vw V4
Cvw
V2 V1
A B
V3
Vw
V4 Vk+1
Vv
t s
l(s,t)
b a
©30.11.18 Jens M. Schmidt
●
Alte Kanten inzident zu o.B.d.A. V
k+1:
●
C
vwwar minimaler s-t-Schnitt in T
k●
Falls s in V
k+1: weiterhin erfüllt durch s und t
●
Falls s in V
v: erfüllt durch b und t (zu zeigen ist (b,t)= (s,t)):
●
(b,t) (s,t) da b auf Seite von s im min. Schnitt C
vwin T
kwar
●
(b,t) (s,t): wie bekommen wir für Transitivität a und s zusammen?
●
Kontrahiere minimalen a-b-Schnitt A
●
Nach Korollar 2 bleibt (b,t) dadurch unverändert
●
(b,t) min{ (b,{A}), ({A},t)} Transitivität
●
({A},b) = (a,b) (s,t) da a-b-Schnitt A auch s-t-Schnitt ist
●
({A},t) (s,t) da jeder {A}-t-Schnitt auch s-t-Schnitt ist
Gomory-Hu Algorithmus
Cw v
V2 V1
Vv
A B
a b
V3
Vw V4
Cvw
V2 V1
A B
V3
Vw
V4 Vk+1
Vv
l(a,b)
t s
l(s,t)
b a
©30.11.18 Jens M. Schmidt
Theorem: Ein Gomory-Hu Baum kann in Zeit O(n Fluss(n,m)) berechnet werden.
(Fluss(n,m) := Zeit für das Berechnen eines maximalen s-t-Flusses) Beweis:
●
Kontrahiere jedes C
jizu Einzelknoten in Zeit O(n+m).
●
Mit Korollar 2 reicht es aus, einen beliebigen min. a-b-Schnitt zu berechnen.
●
Finde Zugehörigkeit der kontrahierten Knoten zu A oder B.
●
Gesamtlaufzeit: O(Fluss(n,m)) pro Iteration (dominiert Kontraktionszeit)
Verschärfungen von Gomory-Hu Bäumen auf nicht-triviale min-cuts existieren:
[2017 Lo, S.]. Implikation: Jeder Graph hat O(n/ ) -kantenzshngd. Komponenten.
Gomory-Hu Algorithmus
Cw v
V
2V
1V
vA B
a b
V
3V
wV
4Cvw