anwendungen von netzwerkfluss - · pdf fileaktuelle themen in der algorithmik: anwendungen von...
Post on 19-Aug-2018
216 views
Embed Size (px)
TRANSCRIPT
Anwendungen von Netzwerkfluss
Wojciech PolcwiartekInstitut fr InformatikFU Berlin13. 01. 2009
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Gliederung
Einfhrung Netzwerk, Fluss und Schnitt Max-Flow-Min-Cut Theorem
Algorithmen zum Bestimmen vom maximalen Fluss Ford Fulkerson Algorithmus Edmonds Karp Algorithmus
Anwendungen Bipartites Matching Zirkulation mit Anforderungen (mit unteren Schranken) Umfrageentwurf Bildsegmentierung Projektauswahl
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Einfhrung: Netzwerk
Ein Netzwerk N=(V, E, s, t, c) ist ... ein gerichteter Graph
ohne Mehrfachkanten mit zwei ausgezeichneten Knoten
Quelle s aus V Senke t aus V
mit einer Kapazittsfunktion c, die jeder Kante e aus E eine nicht-negative, reellwertige Kapazitt c(e) zuweist
Ein Restnetzwerk (Residualnetzwerk) vom N ist ein Netzwerk N'=(V, E, s, t, c'), in dem die Kapazitten jeder Kante um den Fluss durch diese Kante vermindert wurden
s t
c=1
c=3
c=0
c=2
c=4
c=2
c=3
c=1
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Einfhrung: s-t-Fluss
Ein s-t-Fluss ist eine Funktion f, die jeder Kante e im Netzwerk einen nicht-negativen, reellen Flusswert f(e) zuweist
Bedingungen vom Fluss: Kapazittsbeschrnkung
Flusserhaltung
Wert vom Fluss im Netzwerk
Verbesserungspfad ist ein Pfad (v[1], ..., v[k]), wobei v[1] = s, v[k]=t c(v[i],v[i+1]) f(v[i], v[i+1]) > 0
s t
c=1 f=0
c=3 f=1
c=1 f=1
c=2 f=0
c=4 f=1
c=2 f=1
c=3 f=2
c=1 f=0
einc v
f ee ausv
f e=0
0 f ec e , eE
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Einfhrung: Schnitt
Ein Schnitt ist eine Menge von Kanten eines Graphen G = (V,E), die zwischen zwei Knotenmengen S und T liegt, wobei
Kapazitt c(S, T) vom Schnitt (S,T)
s t
c=1
c=3
c=0
c=2
c=4
c=2
c=3
c=1
S
T
ST=VST=
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Einfhrung: Max-Flow-Min-Cut
Der maximale Fluss im Netzwerk hat genau den Wert dessen minimalen Schnitts.
Die folgenden Aussagen sind quivalent: f ist der maximale Fluss in G das Restnetzwerk G' enthlt keinen Verbesserungspfad |f| = c(S,T) gilt fr irgendeinen Schnitt (S,T)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Gliederung
Einfhrung Netzwerk, Fluss und Schnitt Max-Flow-Min-Cut Theorem
Algorithmen zum Bestimmen vom maximalen Fluss Ford Fulkerson Algorithmus Edmonds Karp Algorithmus
Anwendungen Bipartites Matching Zirkulation mit Anforderungen (mit unteren Schranken) Umfrageentwurf Bildsegmentierung Projektauswahl
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson
Erfinder Lester Randolph Ford, Jr
beteiligt auch an Bellman-Ford Algorithmus
Delbert Ray Fulkerson
Idee:Solange es im Netzwerk einen Verbesserungspfad gibt, richte den Fluss durch diesen Pfad
Laufzeit: O( |E| * f' ) f' ist der maximale Fluss im Graphen Vorsicht: Algorithmus muss nicht terminieren
Uri Zwick: The smallest networks on which the Ford-Fulkerson maximum flow procedure may fail to terminate
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (1/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (2/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (3/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (4/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (5/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (6/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (7/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (8/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Ford-Fulkerson (9/9)
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Algorithmen: Edmonds-Karp
Erfinder Yefim Dinitz (1970) (University of the Negev) Jack Edmonds und Richard Karp (1972) (Univ. of California)
R. Karp bekannt auch wegen Karp's 21 NP-C problems
IdeeFunktioniert hnlich zum Ford-Fulkerson Algorithmus.Der Verbesserungspfad wird aber mit Hilfe von Breitensuche ausgewhlt, so dass die Lnge der Verbesserungspfade steigt.
Laufzeit: O( |V| * |E| ) Beweis: siehe Cormen, Leierson, Rivest und Stein
O( |E| ) - Verbesserungspfad finden Jedes Mal wird mind. eine Kante gesttigt Laenge vom Pfad ist max. |V|
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Gliederung
Einfhrung Netzwerk, Fluss und Schnitt Max-Flow-Min-Cut Theorem
Algorithmen zum Bestimmen vom maximalen Fluss Ford Fulkerson Algorithmus Edmonds Karp Algorithmus
Anwendungen Bipartites Matching Zirkulation mit Anforderungen (mit unteren Schranken) Umfrageentwurf Bildsegmentierung Projektauswahl
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Bipartites Matching
Reales Problem: Paarung der Menschen
Bipartites Matching / Paarung /Unabhngige Kantenmenge Eingabe: ungerichteter, bipatrtiter
Graph ist ein Matching, wenn zwei
beliebige Kanten aus M mit verschiedenen Knoten inzident sind
Ziel: finde Paarung mit der hchsten Kardinalitt
G=LR , E ME
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Bipartites Matching
Formulierung als Netzwerkflussproblem Erstelle Graph
Richte alle Kanten von L nach R und weise den unendliche Kapazitt zu Fge Quelle s und Senke t hinzu
Fge Kanten mit einer Kapazitt von 1 von der Quelle zu jedem der Knoten aus L
Fge Kanten mit einer Kapazitt von 1 von jedem der Knoten aus R zu der Senke
Rechne den maximalen Fluss in G' aus
G '=LR{s , t} ,E '
G G'
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Bipartites Matching
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Bipartites Matching
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Zirkulation mit Anforderungen
Reales Problem:Mehrere Datenquellen undDatensenken in einem Netzwerk
Eingabe Gerichteter Graph G=(V,E) Kantenkapazitt c(e), fr alle e aus E Angebot/Anforderung d(v), fr alle v aus V
Anforderung d(v) > 0 Angebot d(v) < 0
Gltige Zirkulation ist eine Funktion, die erfllt auf solchen Graphen Kapazittbeschrnkung Flusserhaltung
0 f ec e , eEeinc v
f ee ausv
f e=d v
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Zirkulation mit Anforderungen
Ntige Bedingung fr eine gltige Zirkulation
Formulierung als Netzwerkflussproblem Erstelle Graph
Fge eine Quelle s und Senke t hinzu Verbinde die Quelle mit jedem Knoten mit Angebot mit Hilfe
von einer gerichteter Kante mit der Kapazitt -d(v) Verbinde jeden Knoten mit Anforderung mit der Senke mit Hilfe
von einer gerichteter Kante mit der Kapazitt d(v)
v :d v0
d v = v: d v0
d v =D
G '=G{s , t }, E '
G G'
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Zirkulation mit Anforderungen
G hat eine gltige Zirkulation, wenn der maximale Fluss in G' den Wert D hat
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Zirkulation mit Anforderungen und unteren Schranken
Reales Problem:Netz der Abwasserkanle Minimaler Fluss ntig
Eingabe Gerichteter Graph G=(V,E) Kantenkapazitt c(e) und
untere Schranke l(e),fr alle e aus E Angebot/Anforderung d(v), fr alle v aus V
Anforderung d(v) > 0 Angebot d(v) < 0
Gltige Zirkulation ist eine Funktion, die erfllt auf solchen Graphen Kapazittbeschrnkung Flusserhaltung
l e f ec e , eEeinc v
f ee ausv
f e=d v
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Zirkulation mit Anforderungen und unteren Schranken
Formulierung als Netzwerkflussproblem Erstelle Graph wie in Zirkulation mit Anforderungen Modelliere untere Schranke mit Anforderungen im G'
Lasse l(e) Fluss durch die Kante durch Aktualisiere Anforderungen an beiden Enden
Weiter wie Zirkulation mit Anforderungen
G G'
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Umfagenentwurf
Reales ProblemMarktanalysen, Kundenumfragen
Problem Frage n Kunden nach m Produkten Man darf den Kunden i nur dann
nach Produkt j fragen, wenn i j besitzt Stelle dem Kunden i zwischen c(i) und c'(i) Fragen Befrage zwischen p(j) und p'(j) Kunden nach Produkt j
Ziel: Finde eine passende Umfrage, wenn mglich
Aktuelle Themen in der Algorithmik: Anwendungen von Netzwerkfluss
Anwendungen: Umfagenentwurf
Formulierung als Netzwerkflussproblem Mode