anwendungen von netzwerkfluss - · pdf fileaktuelle themen in der algorithmik: anwendungen von...

Click here to load reader

Post on 19-Aug-2018

216 views

Category:

Documents

0 download

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

View more