View
215
Download
0
Tags:
Embed Size (px)
Citation preview
Network transmission
Given a directed graph G A source node s A sink node t
Goal: To send as much information from s to t
Flows
An s-t flow is a function f which satisfies:
(capacity constraint)
(conservation of flows)
An s-t flow is a function f which satisfies:
(capacity constraint)
(conservation of flows)
Value of the flow
s t 10
10
9
8
4
10
10 6 2
10
3
9
9 9 10
7
0
G:6
Value = 19
Maximum flow problem: maximize this value
Cuts
An s-t cut is a set of edges whose removal
disconnect s and t
The capacity of a cut is defined as the sum of the
capacity of the edges in the cut
Minimum s-t cut problem:
minimize this capacity of a s-t cut
Reverse?
Value of max s-t flow ≤ capacity of min s-t cut
Suppose every s-t cut has capacity at least 4, is it
true that there is a max s-t flow of value 2?
Greedy method?
Find an s-t path where every edge has f(e) < c(e)
Add this path to the flow
Repeat until no such path can be found.
Does it work?
Finding an augmenting path
Find an s-t path in the residual graph
Add it to the current flow to obtain a larger flow.
Why?
1. Flow conservations
2. More flow going out from s
Ford-Fulkerson Algorithm
1. Start from an empty flow f
2. While there is an s-t path in G
G := G + P, and update
f
3. Return f
Max-flow min-cut theorem
Consider the set S of all vertices reachable from s
So, s is in S, but t is not in S
No incoming flow coming in S
Achieve full capacity from S to T
Min cut!
Complexity
Assume edge capacity between 1 to C
At most nC iterations
Finding an s-t path can be done in O(m) time
Total running time O(nmC)
Bipartite matching and more
Bipartite matching of size k max flow of size k
Work even for d-matching
Graph connectivity Minimum number of edges to disconnect a graph
[Menger 1927] Max number of edge-disjoint s-t paths =
Min size of an s-t cut.
Project selection Precedence constraints Each job has a revenus (can be negative)
Goal: Choose a feasible subset to maximize revenue.
Idea: minimize the jobs that lost money, and maximize the jobs that gain money.