• Keine Ergebnisse gefunden

Flow problems

N/A
N/A
Protected

Academic year: 2022

Aktie "Flow problems"

Copied!
19
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

v1

v2

v3

v4

s t

Vancouver

Edmonton Saskatoon

Winnipeg

Regina Calgary

Let G=(V,E) be the graph of a flow problem. The company in Vancouver is called source s, the market in Winipeg target t. many goods must be brought to the target via some streets. Only cu,v such goods can be transported over (u,v). How can we transport as many goods as possible from Vancouver to Winnipeg,

utilizing all paths from s to t?

16

13

10 4

12

9 14

4 20

Flow networks are used in order to model distribution problems, transport- and reload problems … Transported are water power, gas, cars …

Flow problems

(2)

Flow problem

Flow network:

•  G=(V,E), directed graph,

•  for all (u,v)∈E, we have a non-negative capacity restriction c(u,v) > 0

•  if (u,v)∉E, then c(u,v)=0

•  there are two special nodes: source s and target t (also called sink)

•  for each node v, a path from s to v and from v to t exists

Let G=(V,E) be a flow network, let s be the source and t the sink. A flow in G is a function f: V×V → IR with:

•  capacity constraint: f(u,v) ≤ c(u,v) für alle u,v∈V

•  symmetry: f(u,v) = -f(v,u) für alle u,v,∈V

•  flow conservation: ∑vV f(u,v) = 0 The value of a flow is

|f| = ∑v∈V f(s,v), i.e. the total flow out of s

(3)

Def.: Given is a flow network and a feasible flow x from s to t. An „augmenting path“ (or „improving path“) is a path P from s to t, where the edge directions are ignored, with the following properties:

•  For each edge (a,b), which is forward-directed in P, it is valid: f(a,b) < c(a,b).

I.e. Forward edges have free capacities.

•  For each edge (b,a), which is backwards-directed in P, it is valid: f(a,b) > 0.

0/10 1/4

11/14 12/12

s 7/7 t

Maximum change along P:

min c(a,b)-f(a,b) following forward edges f(a,b) following backward edges

edges of P

Flow problem

Ford-Fulkerson Algorithm

(4)

Flow problem

Ford-Fulkerson Algorithm

Ford-Fulkerson(G,s,t) 1. initialize flow to 0

2. while there is an augmenting path p do 3. improve the flow along p

4. return f

We start with flow value 0 and increase the flow step by step.

(5)

Flow problem

Residual Networks

Let f be a flow in G. cf(u,v) = c(u,v) - f(u,v) is called residual capacity.

Let G=(V,E) be a flow network and f a flow. The residual network then is

Gf = (V,Ef) with Ef = {(u,v)∈V×V | cf(u,v)>0}. Note, in the residual graph may be more nodes than in the original graph.

(why? f(v,u)>0 ⇒ f(u,v) < 0 ⇒cf(u,v) > c(u,v)):

0/10 1/4

11/14 12/12

s 7/7 t

(6)

Flow problem

Residual Networks

11 3

3 0

s 7 t

0/10 1/4

11/14 12/12

s 7/7 t

11 12

0

(7)

Flow problem

Residual Networks

11 3

3 0

s 7 t

11 12

0

0/10 1/4

11/14 12/12

s 7/7 t

(8)

Cut:

A cut of a network is a partition of V into S and T = V \ S, such that s ∈ S and t ∈ T.

If f is a flow, then a so called netflow over a cut (S,T) is : ∑ f(a,b)

The capacity of a cut (S,T) is: C(S,T) := ∑ c(a,b)

(a,b)E a S b T (a,b)E

a S b T

0/10 1/4

11/14 12/12

s 7/7 t

S T

Netflow over (S,T) is 19 Capacity C(S,T) = 26

Flow problem

Note: If (a,b) ∉ E, then it is c(a,b) = 0, but f(a,b) possiblly is < 0.

(9)

Claim ResNet1: Let G = (V,E) be a flow network and let f be a flow. Let G‘ be the residual network of G and let f‘ be a flow in G‘ along an improving path. Then it is valid for the sum of the flows f + f‘: |f + f‘| = |f| + |f‘|

Proof: follows directly from the construction of G‘

Claim ResNet2: If (S,T) is a cut, the flow from S to T cannot be larger then the capacity of the cut.

Proof: Für each single edge (u,v) from S to T it is f(u,v) ≤ c(u,v). Thus it is also valid for the sum over all edges from S to T:

u∈S,v∈Tf(u,v) ≤ ∑u∈S,v∈T c(u,v)

Flow problems

Residual networks

(10)

Max-flow min-cut Theorem

Let f be a flow in a flow network G=(V,E) with source s and sink t. Then, the following statements are equivalant to each other:

1.  f is a maximum flow

2.  the residual network Gf contains no augmenting path 3.  there is a cut (S,T) such that |f| = ∑uS,vT c(u,v)

1 ⇒ 2: Let us assume that f is a maximum flow, and Gf contains an augmenting (improving) path f‘. However, the augmenting path is chosen such that it helps improving the flow. This would imply |f + f‘| > |f|. Then f was not maximum.

2 ⇒ 3: Let no augmenting path exist. Then there is no path in Gf from s to t (, with capacities > 0). Define

S := {v∈V with: there is a path from s to v in Gf}

Then it is (S,T=V\S) a partition and for each edge (u,v) with u∈S and v∈T it is f(u,v)=c(u,v), because otherwise: (u,v)∈Ef.

Flow network

Residual Network

(11)

Max-flow min-cut Theorem

Let f be a flow in a network G=(V,E) with source s and sink t. Then the following statements are equivalent to each other:

1.  f is a maximum flow

2.  The residual network Gf contains no augmenting path 3.  there is a cut (S,T) such that |f| = ∑uS,vT c(u,v)

3 ⇒ 1: Let |f| = ∑u∈S,v∈T c(u,v), for S and T as in point 2. Because of Caim ResNet2 there is no increasing flow.

How do we find imrpving paths? With Breadth First Search.

Flow problems

Residual networks

(12)

Flow problem

Residual Network

11 3

3 0

s 7 t

0/10 1/4

11/14 12/12

s 7/7 t

11 12

0

(13)

Flow problem

Residual Network

11 3

3 0

s 7 t

0/10 1/4

11/14 12/12

s 7/7 t

11 12

0

(14)

Flow problem

Residual Network

11 3

3 0

s 7 t

0/10 1/4

11/14 12/12

s 7/7 t

11 12

0

(15)

ClaimFF1: When the Ford-Fulkerson Algorithm halts, it terminates with optimal solution.

Prf.: After termination, build the sets S and T as in the Max-flow min-cut Theorem. All forward edges are then saturated, all backward edges empty.

(Otherwise, the algorithm would not have halted). The (S,T)-cut has the same value as the flow delivered by the algorithm.

ClaimFF2: The Ford-Fulkerson Algorithm terminates after finitely many steps, as long as all input parameters are natural or rational numbers.

Prf.: natural numbers: clear, because the flow is increased by integer units.

Rational numbers: clear, because we can multiply all numbers with a common denominator.

Flow problem

Ford-Fulkerson Algorithm

(16)

Adjunct problems of the maximum flow problem

1. Several sources and sinks

s1 t1

t2 s2

s

∞ t

(17)

Adjunct problems of the maximum flow problem

2. Maximum Matching in bipartite graphs

Matching of size 2 Maximum-Matching of size 3

L R L R

(18)

Adjunct problems of the maximum flow problem

2. Maximum Matching in bipartiten Graphs

L R E‘ = { (s,u) : u∈L }

∪{(u,v) : u∈L,v∈R, (u,v)∈E}

∪{ (u,t) : u∈R }

, and unit weights for edges

s t

(19)

Adjunct problems of the maximum flow problem

2. Maximum Matching in bipartiten graphs

Claim MaxBiMa: Let G=(V,E) be a bipartite graph with node partitioning V = L ∪ R. Let G‘=(V‘,E‘) the corresponding flow network. Then:

If M is a matching in G, then there is an integer flow G‘ with

|f| = |M|. If vice versa f is an integer flow in G‘, then there is a matching M in G with |f|=|M|.

Proof: Exercise

Referenzen

ÄHNLICHE DOKUMENTE

1.23 we know that the standard involutions (and hence the reduced norms) on A and on A 0 are unique. Let us denote both standard involutions by · and both reduced norms by nrd.

Both the exhaustible and renewable resources available in Arab countries generate rents that are likely to be further mobilized for development and where the knowledge

In particular, we compile an accurate database of world- wide mobile phone prefixes (cf. § II) and demonstrate in § III that their hashes can be reversed in just 0.1 ms amortized

A natural number different from 1 that is divisible by 1 and itself only is called a prime number [Primzahl].. Examples of primes are: 2, 3, 5, 7, 2003, 2 13

[r]

Stellen Sie für das abgebildete Netzwerk ein Gleichungssystem aus drei Gleichungen mit drei unbekannten Strömen auf und lösen Sie dieses mit Hilfe von Matlab für gegebene

(((For 1.1b), 1.2), 1.4) you can hand it in, if you actually have more details or comments than the original proofs.))) For ticking the boxes (crosses) in teh onlien-kreuze-system,

(iii) (more difficult) The graph G of (ii) is isomorphic to the graph H obtained from the vector space Z 3 2 by defining {u, v} to be an edge in E(H) if and only if u and v differ