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 SV (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,uV. Beweis: Jeder s-t-Schnitt ist entweder s-u-Schnitt (falls uV-S) oder u-t-Schnitt (falls uS). 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,tV. 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,tV 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: adG 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 vwT 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 eT ist fluss-äquivalent zu G. ● Für Knoten s,tV 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 sS und a,b Knoten in S. Dann existiert ein minimaler a-b-Schnitt X mit XS. (mit entweder aX oder bX) Beweis: ● Sei X' ein minimaler a-b-Schnitt mit tX' (o.B.d.A. aX') 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 XV → 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 sS und a,b Knoten in S. Dann existiert ein minimaler a-b-Schnitt X mit XS. (mit entweder aX oder bX) Beweis: ● Sei X' ein minimaler a-b-Schnitt mit tX' (o.B.d.A. aX') 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 aA, so dass T entweder ganz in A oder ganz in B enthalten ist. Korollar 2: G/T(a,b) = G(a,b) a,bS. (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 VvVwT ein aVv und bVw 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,bV Vv mit 2 Elementen existiert wegen k<n v ● A,B := minimaler a-b-Schnitt von G mit aA 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,bV Vv mit 2 Elementen existiert wegen k<n v ● A,B := minimaler a-b-Schnitt von G mit aA, so dass für alle Nachbarn Vw von Vv in Tk gilt: CwvA oder CwvB (Korollar 1) ● Splitte V in neue adjazente Knoten V A und V B und ersetze Endknoten v v v Vv jeder Kante VvVw durch VvA, falls CwvA, und durch VvB, falls CwvB. ● V := VvB und Vv := VvA. 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 CwvB 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 VvB 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 VvVwTk 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 aVv und bVk+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