Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

February 5, 2018 | Author: Anonymous | Category: Ingenieurwissenschaften, Informatik, Datenstruktur
Share Embed Donate


Short Description

Download Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse...

Description

Fl¨ usse

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Fl¨usse Dipl-Math. Wolfgang Kinzner

3.4.2012

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Kapitel 4: Fl¨usse

Netzwerk, Fluss, s,t-Schnitt, Kapazit¨at MaxFlow-MinCut-Theorem Restnetzwerk und Erh¨ ohen des Flusswertes Ford-Fulkerson-Algorithmus Edmonds-Karp-Algorithmus

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Definition Netzwerk, Fluss, Wert des Flusses Ein Netzwerk ist ein Tupel N = (V , A, s, t, c), wobei G = (V , A, c) ein gerichteter Graph mit Kapazit¨atsfunktion c : A → R≥0 ist und s, t ∈ V zwei ausgezeichnetene Knoten sind. Die Knoten s bzw. t werden Quelle bzw. Senke genannt. Eine Abbildung f : A → R≥0 heisst s-t-Fluss (engl. flow) in N, wenn X X f ((x , y )) ∀x ∈ V \{s, t} [Flusserhaltung], f ((y , x )) = y∈N − (x)

y∈N + (x)

f ((x , y )) ≤ c((x , y ))

∀(x , y ) ∈ A

Der Wert von f ist definiert als X f (s, y ) − val(f ) := y∈N + (s)

[Zul¨assigkeit] .

X

f (y , s)

y∈N − (s)

Ein Fluss f hat maximalen Wert in N, falls val(f ) ≥ val(f ′ ) f¨ ur alle Fl¨ usse f ′ in N gilt. Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Definition Schnitt, Kapazit¨at

Eine Menge X ⊆ V mit s ∈ X und t ∈ V \ X heißt s-t-Schnitt (engl. cut). Die Kapazit¨ at von X ist definiert durch cap(X ) :=

X

c(u, v )

u∈X ,v ∈N + (u)\X

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Zusammenhang Fluss-Schnitt

Wenn f ein Fluss und X ein s-t-Schnitt im Netzwerk N sind, dann gilt val(f ) ≤ cap(X ). val(f ) =

P

x ∈X ,y ∈N +(x )\X

f (x, y ) −

MaxFlow-MinCut-Theorem: max

f : Fluss in N

val(f ) =

Dipl-Math. Wolfgang Kinzner

P

x ∈X ,y ∈N − (x )\X

min

X : s-t-Schnitt in N

f (y , x)

cap(X )

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

¨ Ubung 15 (MaxFlow-MinCut-Theorem) Bestimmen Sie einen minimalen Schnitt im folgenden Graphen. Wie groß ist der maximale s,t-Fluss? K¨ onnen Sie anhand eines oder mehrerer minimaler Schnitte einen maximalen s,t-Fluss bestimmen? 2

v1 2 5 s

v4 1

7

v3

3 4

4

t

5

6

6 v2

v5 3

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Restnetzwerk

Sei N = (V , A, s, t, c) ein Netzwerk und f ein Fluss in N. Das Restnetzwerk von N bez¨ uglich f ist definiert als Nf := (V , Af , s, t, cf ), wobei wir zun¨achst die Kapazit¨atsfunktion c mittels c(x, y ) := 0 f¨ ur (x, y ) 6∈ A auf ganz V × V erweitern. Dann setzen wir cf (x, y ) :=

   c(x, y ) − f (x, y )

c(x, y ) + f (y , x)   c(x, y )

falls f (x, y ) > 0 falls f (y , x) > 0 sonst

sowie Af := {(x, y ) : cf (x, y ) > 0}.

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Erh¨ohen des Flusswertes

Wenn f ein Fluss in N und W ein gerichteter s-t-Kantenzug im Restnetzerk Nf ist, dann kann f entlang W zu einem Fluss f ′ erh¨oht werden mit val(f ′ ) = val(f ) + δ, wobei 0 < δ := mine∈W cf (e). Sei f ein Fluss in N. Wenn es in Nf keine s-t-Kantenzug mehr gibt, dann hat f maximalen Wert.

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Algorithmus von Ford-Fulkerson

Input: Netzwerk N = (V , A, s, t, c) Output: Fluss f Ford-Fulkerson(N = (V , A, s, t, c)) (1) f := 0 (2) while ∃ s-t-Kantenzug W in Nf (3)

erh¨ohe f entlang von W wie vorher beschrieben.

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Beispiel zum Ford-Fulkerson-Algorithmus

Folie 10

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

¨ Ubung 16 (Ford-Fulkerson-Algorithmus)

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

¨ Ubung 16 (Ford-Fulkerson-Algorithmus)

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Laufzeit und Probleme bei Ford-Fulkerson

Sei N ein Netzwerk mit Kapazit¨aten aus N0 . Dann terminiert der Ford-Fulkerson-Algorithmus nach h¨ ochstens P (u,v )∈A c(u, v ) Schritten mit einem Fluss maximalen Werts. Zwei Probleme k¨ onnen auftreten: Der Algorithmus ist sehr langsam. Im Falle nicht nat¨ urlicher Kapazit¨aten kann er eventuell gar nicht oder gegen einen suboptimalen Fluss konvergieren.

Zwei m¨ogliche Abhilfen: Erh¨ohe in jeder → Algorithmus Erh¨ohe in jeder → Algorithmus

Runde entlang des k¨ urzesten s-t-Weges. von Edmonds-Karp Runde entlang aller k¨ urzesten s-t-Wege. von Dinic

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

Algorithmus von Edmonds-Karp

Modifikation von Ford-Fulkerson: Edmonds-Karp(N = (V , A, s, t, c)) (1) f := 0 (2) while ∃ s-t-Kantenzug W in Nf (2’) finde k¨ urzesten s-t-Weg in Nf via Breitensuche (3) erh¨ohe f entlang von W um δ := mine∈W cf (e).

Laufzeit: O(|V | · |A|2 )

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

¨ Ubung 17 (Edmonds-Karp-Algorithmus) Die folgende Abbildung zeigt ein Netzwerk N mit seinen Flusskapazit¨aten. 4

v1 6

5 8

s

6 v3

6

v4 7 3

t

5 v2

Benutzen Sie den Algorithmus von Edmonds-Karp, um einen maximalen Fluss in N zu finden. Skizzieren Sie dazu die entsprechenden Restenetzwerke und skizzieren Sie jeweils darin die Breitensuche zum Finden eines augmentierenden Weges. Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

Fl¨ usse

¨ Ubung 18 (Diskrete Tomographie und Edmonds-Karp)

Es seien zwei Folgen (ai )i∈[n] , (bi )i∈[n] von nat¨ urlichen Zahlen gegeben. Gesucht ist ein gerichteter Graph G = ([n], A), in dem jeder Knoten i den Aus-Grad ai und den Ein-Grad bi hat. Gegen sie ein polynomielles Verfahren an, das eine m¨ogliche Adjazenzmatrix von G berechnet oder feststellt, dass eine solche nicht existiert.

Dipl-Math. Wolfgang Kinzner

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4:

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF