Very simple methods for all pairs network flow analysis

Ähnliche Dokumente
Fortgeschrittene Netzwerk- und Graph-Algorithmen

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Wiederholung zu Flüssen

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

Das Steinerbaumproblem

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Mustererkennung: Graphentheorie

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Grundbegriffe der Informatik

Berechnung minimaler Spannbäume. Beispiel

Flüsse, Schnitte, Bipartite Graphen

Freie Bäume und Wälder

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

6. Flüsse und Zuordnungen

Algorithmentheorie Maximale Flüsse

ADS: Algorithmen und Datenstrukturen 2

9 Minimum Spanning Trees

Minimale Schnitte und Schnittbäume

Maximale s t-flüsse in Planaren Graphen

Flüsse, Schnitte, bipartite Graphen

Trennender Schnitt. Wie groß kann der Fluss in dem folgenden Flussnetzwerk höchstens sein?

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Algorithmen II Vorlesung am

Algorithmen & Komplexität

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007

Flüsse in Netzwerken. Seminar über Algorithmen SoSe Mike Rohland & Julia Schenk

Wie wird ein Graph dargestellt?

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin

Flüsse, Schnitte, bipartite Graphen

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Programmierkurs Python II

KAPITEL 4 FLÜSSE IN NETZWERKEN

Algorithmische Graphentheorie

Matching. Organisatorisches. VL-18: Matching. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger. Tanzabend

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Grundbegriffe der Informatik

Fortgeschrittene Netzwerk- und Graph-Algorithmen

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

5. Bäume und Minimalgerüste

Algorithmische Methoden der Netzwerkanalyse

6. Flüsse in Netzwerken Berechnung maximaler Flüsse. dann berechnet der Markierungsalgorithmus für beliebige Kapazitätsfunktionen

Einheit 11 - Graphen

1 DFS-Bäume in ungerichteten Graphen

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Nachklausur Grundlagen der Algorithmik (Niedermeier/Froese/Chen/Fluschnik, Wintersemester 2015/16)

durch Einfügen von Knoten konstruiert werden kann.

Flüsse und Schnitte von Graphen

Flüsse in Netzwerken

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

15. Elementare Graphalgorithmen

Algorithmische Graphentheorie

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Das Briefträgerproblem

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Minimal spannende Bäume

1.Aufgabe: Minimal aufspannender Baum

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Isomorphie von Bäumen

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Vorlesung 2 KÜRZESTE WEGE

6. Übung zur Linearen Optimierung SS08

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

16. November 2011 Zentralitätsmaße. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

WS 2008/09. Diskrete Strukturen

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Grundlagen: Algorithmen und Datenstrukturen

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Relationen und DAGs, starker Zusammenhang

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Theoretische Informatik 1

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Nachbarschaft, Grad, regulär, Inzidenz

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Algorithmen und Datenstrukturen

Kombinatorische Optimierung

Algorithmen und Datenstrukturen 2

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung.

Durchschnitt von Matroiden

Algorithmen II Vorlesung am

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2011

Bäume und Wälder. Definition 1

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Bemerkung: Der vollständige Graph K n hat n(n 1)

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Transkript:

Very simple methods for all pairs network flow analysis Tobias Ludes 02.07.07

Inhalt Einführung Algorithmen Modifikation der Gomory-Hu Methode

Einführung Nach Gomory-Hu nur n-1 Netzwerk-Fluss- Berechnungen nötig zur Berechnung des maximalen Flusswerts zwischen allen Knoten Darstellung durch flussäquivalenten Baum bzw. Schnittbaum

Einführung Definition: Ein flussäquivalenter Baum für einen ungerichteten Graphen G ist ein gewichteter Baum T mit n Knoten, wobei für jedes Knotenpaar (x,y) der maximale Fluss von x nach y in G genau das Gewicht einer Kante e auf dem Pfad von x nach y in T ist, für welche dieses minimal ist. Definition: i i Ein Gomory-Hu Schnittbaum (GH Schnittbaum) ist ein flussäquivalenter Baum, in dem für jedes Knotenpaar (x,y) die beiden Komponenten von T e, e wie in Definition i i von flussäqu. Baum, einen minimalen Schnitt zwischen x und y in G darstellen.

Einführung Anwendung bei Internetvernetzung In der Elektrotechnik t beim Network on Chip - Design zum Überprüfen ob Netzwerkkapazität ausreichend ist

Algorithmen Definition: Zwei Schnitte (X,Y) und (U,V) kreuzen sich, ihwenn alle vier Schnittmengen, X U, X V, Y U und Y V, nicht leer sind.

Algorithmus EQ: Algorithmen Input: ungerichteter Graph G mit Kantenkapazitäten Output: flussäquivalenter l Baum T 1. Erzeuge einen (Stern-)Baum T mit n Knoten, wobei Knoten 1 in der Mitte liegt und die Knoten 2 bis n Blätter sind. 2. s:=2 3. Berechne einen minimalen Schnitt (X,Y) in G zwischen Blatt s und seinem (eindeutigen) Nachbarn t in T. Beschrifte die Kante (s,t) in T mit der Kapazität von (X,Y). 4. Trenne jeden Knoten i > s in T, der ein Nachbar von t ist und auf der s- Seite von (X,Y) liegt, von t und verbinde i mit s. 5. Wenn s < n: s s+1 und gehe zu Schritt3, sonst gib flussäquivalenten Baum T aus.

Beispiel: Algorithmen

Beispiel: Algorithmen

Algorithmen Anmerkungen zu EQ: G wird nur zur minimalen Schnittberechnung gebraucht EQ kann man sich als n-1 Anfragen an ein Orakel vorstellen flussäquivalenter Baum kann aus n-1 Schnittabfragen abgeleitet werden

Algorithmen Lemma 1: Sei (X,Y) ein minimaler Schnitt in G zwischen den Knoten x X und y Y, u und v zwei Knoten auf der X-Seite des Schnitts und (U,V) ein beliebiger minimaler (u,v) Schnitt in G. Wenn y U, dann ist (U',V' )=(U Y,V X) ein minimaler (u,v) Schnitt; falls y V ist (U',V )=(U X,V Y) ein minimaler (u,v) Schnitt. Korollar 1: Sei (X,Y), (U,V) und (U',V' ) wie in Lemma 1. Dann kreuzt der minimale (u,v) Schnitt (U',V' ) nicht (X,Y) und teilt X genauso wie (U,V) X teilt.

Algorithmen Theorem 1: Für einen gegebenen Graphen G berechnet der Algorithmus EQ einen flussäquivalenten Baum T korrekt.

Algorithmen Definition: Für eine Teilmenge N i von Knoten von G ist die Kontraktion von N i die Ersetzung der Knoten von N i durch einen einzigen Knoten c i und für jeden Knoten v G-N i die Ersetzung der Kanten von v nach N i durch eine einzige Kante von v nach c i, wobei die Kapazität der Kante (v,c i ) die Summe der Kapazitäten der entfernten Kanten ist.

Algorithmen Gomory-Hu Methode: Input: ungerichteter Graph G mit n Knoten Output: GH Schnittbaum T für G 1. T (V T,E T ) mit V T ={V}, E T = 2. Wähle S V T mit S 2 und u,v S 3. N i ={x V x Q,Q ist in der i-ten Komponente von T-S} 4. Erzeuge Graph G(S) durch Kontraktion aller Mengen N i in G 5. Berechne maximalen Fluss f(u,v) und minimalen i Schnitt C(u,v) zwischen u und v in G(S) 6. S u ={x G x S und x liegt auf der u-seite des Schnitts C(u,v)}, S v ={x G x S und x liegt auf der v-seite des Schnitts C(u,v)} 7. Ersetze S in T durch S u und S v und verbinde S u und S v durch eine Kante mit Gewicht f(u,v); ersetze alle Kanten (S,S ) durch (S u,s ) falls S in kontrahiertem Knoten von G(S) auf der u-seite des Schnitts, sonst durch (S v,s ). 8. Wenn V T = V gib T aus, sonst gehe zu Schritt 2

Beispiel: Algorithmen 1 = {1,2,3,4,5} Iteration 1: S=T, u=1, v=5 S u ={1,2,3}, S v ={4,5} 1 = {1,2,3} {,, } 5 = {4,5}

Beispiel: Algorithmen 1 = {1,2,3} 5 = {4,5} Iteration 2: S=1, u=1, v=2 S u ={1,3}, S v ={2} N 1 ={4,5} 1 = {1,3} {, } 2 = {2} 5 = {4,5}

Beispiel: Algorithmen 1 = {1,3} 2 = {2} 5 = {4,5} Iteration 3: S=1, u=1, v=3 S u ={1}, S v ={3} N 1 ={2}, N 2 ={4,5} 1 = {1} 2 = {2} 3 = {3} 5 = {4,5}

Beispiel: Algorithmen 1 = {1} 2 = {2} 3 = {3} 5 = {4,5} Iteration 4: S=5, u=4, v=5 S u ={4}, S v ={5} N 1 ={1,2,3}

Modifikation des Gomory-Hu Algorithmus GH-Methode benötigt paarweise nicht- kreuzende Schnitte Knotenkontraktion t kti Knotenkontraktion schwierig zu implementieren Modifizierte i t GH-Methode um Knotenkontraktion zu vermeiden

Modifikation des Gomory-Hu Algorithmus Zu zeigen: Teilung von Superknoten und Neuverbinden der Nachbarn bei Kreuzschnitten Definition: Ein Paar von Knoten (x,y) heißt Schnittpaar für eine Kante e eines Zwischenschnittbaums T wenn die Knoten von G in den beiden Komponenten von T-e einen minimalen (x,y) Schnitt in G darstellen.

Modifikation des Gomory-Hu Algorithmus Lemma 2: Sei T ein Zwischenschnittbaum in der Berechnung eines GH Schnittbaums, und sei e eine Kante in T zwischen zwei Superknoten S und S. Dann gibt es ein Paar von Knoten (x,y) mit x Sund y S' so dass (x,y) ein Schnittpaar für e ist.

Modifikation des Gomory-Hu Algorithmus Theorem 2: Seien u und v zwei Knoten von G im Superknoten S eines GH-Zwischenbaums T. Wenn (U,V) ein beliebiger minimaler (u,v) Schnitt in G (mit u U und v V) ist, dann existiert ein minimaler (u,v) Schnitt (C u,c v ) im kontrahierten Graph G(S) (mit u C u und v C v ) so dass S U=S C u und S V=S C v und die Kapazität der beiden Schnitte gleich ist.

Modifikation des Gomory-Hu Algorithmus Nach Theorem 2 kann man durch minimalen Schnitt im ursprünglichen Graphen S teilen Möglicherweise teilt ein solcher Schnitt eine der Mengen N i neue Regeln zum Neuverbinden der Knoten

Modifikation des Gomory-Hu Algorithmus Modifikation der GH Methode damit jeder Knoten so genannten Repräsentanten r(s) enthält: 1. Beliebiger Knoten wird Repräsentant des ersten Superknotens 2. Bei Teilung gilt folgende Regel: Der berechnete Fluss muss zwischen r(s) und einem beliebigen anderen Knoten v von S sein. 3. Nach Teilung: r(s) Repräsentant von S r(s) und v Repräsentant von S v

Modifikation des Gomory-Hu Algorithmus Lemma 3: Sei T ein Zwischenschnittbaum und S, S zwei beliebige bi benachbarte Superknoten in T. Sei N i die Komponente von T-S die S enthält. Dann ist (G-N i,n i ) ein minimaler Schnitt in G, der r(s) und r(s ) trennt. Das heißt, (r(s),r(s ))( ( ist ein Schnittpaar für die Kante in T zwischen S und S.

Modifikation des Gomory-Hu Algorithmus Theorem 3: Sei S und N j für j k wie in Theorem 2 und für j ksei y j N j, x j (G-N j ) so dass (G-N j, N j ) minimaler i (x j, y j ) Schnitt in G (nach Lemma 2 existiert (x j, y j )). Weiter sei (U,V) ein beliebiger (u,v) Schnitt in G für u und v in S, und (U k,v k ) der minimale (u,v) Schnitt den man von (U,V) aus dem Beweis von Theorem 2 erhält. Dann gilt für ein festes j: Wenn x j =u, dann N j U k genau dann wenn y j U.

Modifikation des Gomory-Hu Algorithmus Korollar 2: Für einen Superknoten S in einem von der modifizierten GH-Methode erzeugten Zwischenbaum T und für v r(s), sei (U,V) ein beliebiger minimaler (r(s),v) Schnitt in G. Die folgende Regel entscheidet korrekt ob ein Nachbar S von S in T mit S r(s) oder mit S v verbunden werden sollte: Wenn r(s ) auf der r(s)-seite von (U,V) liegt, dann verbinde S mit S r(s), sonst mit S v.

Modifikation des Gomory-Hu Algorithmus Beweis: Nach Lemma 3 erfüllt r(s) die Bedingungen von x j (r(s) G-N j, (N j,g-n j ) minimaler (r(s),r(s j )) Schnitt mit S j Superknoten-Nachbar von S in N j ) in modifizierter GH Methode gilt: u=x j =r(s) für alle j nach h Theorem 3 existiert i minimaler i (u,v) Schnitt (U k,v k ) in G(S) so dass N j U k genau dann wenn r(s j ) U

Modifikation des Gomory-Hu Algorithmus MGH-Algorithmus Input: ungerichteter Graph mit n Knoten Output: GH Schnittbaum T für G 1. T (V T T,,E T) mit V T ={V}, E T =, r(v)=1 2. Wähle S V T mit S 2 und v S 3. Berechne maximalen Fluss f(r(s),v) und minimalen Schnitt C(r(S),v) zwischen r(s) und v in G 4. S v ={x G x S und x liegt auf der v-seite des Schnitts C(r(S),v)}, S=S-S v 5. Erzeuge neuen Superknoten S v in T mit r(s v )=v und verbinde S und S v durch eine Kante mit Gewicht f(r(s),v); ersetze alle Kanten (S,S S ) für die r(s ) auf der v-seite des Schnitts liegt durch (S v,s ) 6. Wenn V T = V V gib T aus, sonst gehe zu Schritt 2

Modifikation des Gomory-Hu Algorithmus Anmerkungen zu MGH: Wie bei EQ wird G nur zur Berechnung eines minimalen Schnitts gebraucht. Schnittbaum lässt sich aus n-1 Anfragen an ein Schnittbaum lässt sich aus n 1 Anfragen an ein Orakel ableiten

Modifikation des Gomory-Hu Algorithmus Man kann MGH auch in der Form von EQ darstellen: 1. Erzeuge einen (Stern-)Baum T mit n Knoten, wobei Knoten 1 in der Mitte liegt und die Knoten 2 bis n Blätter sind. 2. s:=2 3. Berechne einen minimalen Schnitt (X,Y) in G zwischen Blatt s und seinem (eindeutigen) Nachbarn t in T. Beschrifte die Kante (s,t) in T mit der Kapazität von (X,Y). 4. Trenne jeden Knoten i s in T, der ein Nachbar von t ist und auf der s- Seite von (X,Y) liegt, von t und verbinde i mit s. Beschrifte die neue Kante (i,s) mit dem Wert der alten Kante (i,t). 5. Wenn s < n: s s+1 und gehe zu Schritt3, sonst gib flussäquivalenten Baum T aus.

Modifikation des Gomory-Hu Algorithmus Vergleich von EQ und MGH EQ MGH

Zusammenfassung Modifizierter Algorithmus berechnet Schnittbaum ohne nicht-kreuzende Schnitte zu suchen oder beachten zu müssen ohne Knotenkontraktion leichter zu implementieren Ursprünglicher GH-Algorithmus dennoch in Praxis möglicherweise schneller

Vielen Dank für die Aufmerksamkeit!