Gomory-Hu Bäume

Werbung
Gomory-Hu Bäume
S
X‘
a
V-X‘
b
V-S
t
Jens M. Schmidt
© 21.01.17
Jens M. Schmidt
Überblick
●
Flussäquivalente Graphen und Gomory-Hu Bäume
●
Nicht-kreuzende Schnitte, Symmetrische Submodulare Mengenfunktionen
●
Algorithmus von Gomory und Hu
© 21.01.17
Jens M. Schmidt
Fluss-äquivalente Graphen
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).
s
t
u
S
V-S
© 21.01.17
Jens M. Schmidt
Fluss-äquivalente Graphen
4
Lemma: Es gibt höchstens n-1 verschiedene Werte (s,t) über alle s,tV.
Beweis:
● Betrachte K mit Kantengewichten  (s,t)
n
G
● 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
● (s,t)  (v,w), sonst wäre T nicht maximal
P
2
● Sei P := sp ...p t
1
k
p1
● (s,t)  min{(s,p ),(p ,t)} nach Transitivität
1
1
 min{(s,p1),...,(pk,t)}
v
= (v,w)
1
1
w
t
→ jetzt: Baumdarstellung dieser minimalen s-t-Schnittgrößen
3
© 21.01.17
Jens M. Schmidt
Fluss-äquivalente Graphen
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. sogar Pfad → Übung
(z.B. der vorige maximale Spannbaum)
● Achtung: H muss nicht Teilgraph von G sein.
e
1
b
G
e
2
c 1 b

fluss-äquivalent zu G
kein Teilgraph von G: adG
kein GH-Baum: Cde = {a,d}, dG(Cde)=3
c
a
1
1
a
a 1 d 2
2
1

c
e
2
d
1
1
1
d
b
Gomory-Hu Baum
T := Baum mit Kante vw
Cvw := Knotenmenge der Komponente von T-vw, die v enthält
© 21.01.17
Ein Baum T auf der Knotenmenge V heißt Gomory-Hu Baum von G, falls Cvw für jede
Jens M. Schmidt
Kante vwT ein minimaler v-w-Schnitt von G ist.
Fluss-äquivalente Graphen
Lemma: Ein Gomory-Hu Baum T von G mit Gewichtung d(Ce) 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 ...p t in T
1
k
→ T(s,t) = T(v,w) = G(v,w) da T Baum und nach Gomory-Hu-Definition
●  (s,t)   (v,w) =  (s,t) da v-w-Schnitt C
vw von G auch s-t-Schnitt von G ist
G
G
T
●  (s,t)   (v,w) =  (s,t):
s
G
G
T
2
●  (s,t)  min{ (s,p ),..., (v,w), (p ,t)} nach Transitivität
G
G
1
G
G k
4
P
1
v
1
w
t
3
© 21.01.17
Jens M. Schmidt
Überblick
●
Flussäquivalente Graphen und Gomory-Hu Bäume
●
Nicht-kreuzende Schnitte, Symmetrische Submodulare Mengenfunktionen
●
Algorithmus von Gomory und Hu
© 21.01.17
Jens M. Schmidt
Nicht-kreuzende minimale Schnitte
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
T
→ S  X' ist s-t-Schnitt (enthält s, aber nicht t)
→ d(S  X')  d(S) (da S minimal)
X‘
a
● Für X := S  X' gilt wegen Submodularität von d:
X
● d(X) + d(S  X')  d(S) + d(X')
→ d(X)  d(X')
→ X ist (wie X') ein minimaler a-b-Schnitt
V-X‘
b
t
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 konstruiert werden.
© 21.01.17
Jens M. Schmidt
Nicht-kreuzende minimale Schnitte
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
T
→ S  X' ist s-t-Schnitt (enthält s, aber nicht t)
→ d(S  X')  d(S) (da S minimal)
X‘
a
● Für X := S  X' gilt wegen Submodularität von d:
X
● d(X) + d(S  X')  d(S) + d(X')
→ d(X)  d(X')
→ X ist (wie X') ein minimaler a-b-Schnitt
V-X‘
b
t
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.
Korollar 2: G/T(a,b) = G(a,b) a,bS. (Kontraktion senkt  nicht+min.Schnitt bleibt)
© 21.01.17
Jens M. Schmidt
Kontraktion
Überblick
●
Flussäquivalente Graphen und Gomory-Hu Bäume
●
Nicht-kreuzende Schnitte, Symmetrische Submodulare Mengenfunktionen
●
Algorithmus von Gomory und Hu
© 21.01.17
Jens M. Schmidt
Generalisierte Gomory-Hu Bäume
Sei V1,...,Vk Partition von V.
T := Baum auf der Knotenmenge {V1,...,Vk}.
Für Baumkante VvVw sei Cvw:=CVvVw.
V3
V2
Vw
Vv
V1
V4
Cvw
d(C vw )=3
Cvw
T ist Gomory-Hu Baum für V1,...,Vk, falls für jede Kante VvVwT ein aVv und bVw
existiert, so dass Cvw ein minimaler a-b-Schnitt von G ist.
→ Gomory-Hu Baum für {v1},...,{vn} ist Gomory-Hu Baum.
© 21.01.17
Jens M. Schmidt
Gomory-Hu Algorithmus
Algorithmus [gibt Gomory-Hu Baum Tn aus]:
● k := 1 und somit V := {V}
T1:=({V},) ist GH-Baum für einzigen Knoten {V}
1
● Für k := 1 bis n-1
konstruiere GH-Baum Tk+1 (1 Knoten mehr) aus GH-Baum Tk
● Wähle v mit a,bV
Vv mit 2 Elementen existiert wegen k<n
v
● A,B := minimaler a-b-Schnitt von G mit aA
V1
A
B
b
A∩V1
V1∩B
:=
a
B
V1
Gomory-Hu Baum T1
:=
A
l(a,b)
V2
Gomory-Hu Baum T2
© 21.01.17
Jens M. Schmidt
Gomory-Hu Algorithmus
Algorithmus [gibt Gomory-Hu Baum Tn aus]:
● k := 1 und somit V := {V}
T1:=({V},) ist GH-Baum für einzigen Knoten {V}
1
● Für k := 1 bis n-1
konstruiere GH-Baum Tk+1 (1 Knoten mehr) aus GH-Baum Tk
● Wähle v mit a,bV
Vv mit 2 Elementen existiert wegen k<n
v
● A,B := minimaler a-b-Schnitt von G mit aA,
so dass für alle Nachbarn Vw von Vv in Tk gilt: CwvA oder CwvB (Korollar 1)
● Splitte V in neue adjazente Knoten V A und V B und ersetze Endknoten
v
v
v
Vv jeder Kante VvVw durch VvA, falls CwvA, und durch VvB, falls CwvB.
● V
:= VvB und Vv := VvA.
T aus Korollar 1 (C ist min. s-t-Schnitt wegen T )
k+1
vw
Cw v
Vw
C vw
V1
a
Vv
b
V2
B
Vw
V1
A∩Vv
V4
V3
Gomory-Hu Baum Tk
mit CwvB
A
V2
Vv∩B
:=
B
:=
A
k
Vv
Vk+ 1
l(a,b)
V4
V3
© 21.01.17
Gomory-Hu Baum Tk+1Jens M. Schmidt
Vw ist adjazent zu VvB
Gomory-Hu Algorithmus
Korrektheit:
● T Baum => T
Baum
k
k+1
● Schnitt A,B existiert nach Korollar 1 nicht-kreuzender Schnitte
(iterativ angewandt für alle VvVwTk mit jeweils S=Cvw und T=Cwv)
● Gomory-Hu Baum-Bedingung für T
erfüllt für
k+1
● Neue Kante V V
durch aVv und bVk+1
v k+1
● Alte Kanten nicht inzident zu V oder V
da Kantenendblöcke unverändert
v
k+1
A
B
Vw
C vw
V1
a
V2
Cw v
Vv
b
A
V1
V4
V3
B
Vv
a
Vk+1
b
V2
l(a,b)
Vw
© 21.01.17
V
4
Jens M. Schmidt
V3
Gomory-Hu Algorithmus
●
Alte Kanten inzident zu o.B.d.A. Vk+1:
● C
vw war minimaler s-t-Schnitt in Tk
● Falls s in V
: weiterhin erfüllt durch s und t
k+1
● Falls s in V :
v
A
B
Vw
C vw
V1
a
V2
Cw v
Vv
b
A
V1
V4
V3
B
Vv
a
s
V2
l(a,b)
Vk+1
b
Vw t
© 21.01.17
V
4
Jens M. Schmidt
V3
l(s,t)
Gomory-Hu Algorithmus
●
Alte Kanten inzident zu o.B.d.A. Vk+1:
● C
vw war minimaler s-t-Schnitt in Tk
● Falls s in V
: weiterhin erfüllt durch s und t
k+1
● Falls s in V :
v
A
B
Vw
C vw
V1
a
V2
Cw v
Vv
b
A
V1
V4
V3
B
Vv
a s
Vk+1
b
V2
l(a,b)
Vw t
© 21.01.17
V
4
Jens M. Schmidt
V3
l(s,t)
Gomory-Hu Algorithmus
●
Alte Kanten inzident zu o.B.d.A. Vk+1:
● C
vw war minimaler s-t-Schnitt in Tk
● Falls s in V
: weiterhin erfüllt durch s und t
k+1
● Falls s in V : erfüllt durch b und t (zu zeigen ist (b,t)=(s,t)):
v
● (b,t)  (s,t) da b auf Seite von s im min. Schnitt C
in Tk war
vw
● (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
A
B
Vw
C vw
V1
a
V2
Cw v
Vv
b
A
V1
V4
V3
B
Vv
a s
Vk+1
b
V2
l(a,b)
Vw t
© 21.01.17
V
4
Jens M. Schmidt
V3
l(s,t)
Gomory-Hu Algorithmus
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 zu Einzelknoten in Zeit O(n+m).
ji
● 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)
A
B
Vw
C vw
V1
a
V2
Cw v
Vv
b
V4
V3
© 21.01.17
Verschärfungen von Gomory-Hu Bäumen existieren: Lo+S. 2016.
Jens M. Schmidt
Herunterladen