14_flow_III

14_flow_III - Chapter 8 Network Flow III - Applications By...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Chapter 8 Network Flow III - Applications By Sariel Har-Peled , October 15, 2007 ± Version: 0.1 8.1 Edge disjoint paths 8.1.1 Edge-disjoint paths in a directed graphs Question 8.1.1 Given a graph G (either directed or undirected), two vertices s and t, and a pa- rameter k, the task is to compute k paths from s to t in G , such that they are edge disjoint ; namely, these paths do not share an edge. To solve this problem, we will convert G (assume G is a directed graph for the time being) into a network flow graph H , such that every edge has capacity 1. Find the maximum flow in G (between s and t ). We claim that the value of the maximum flow in the network H , is equal to the number of edge disjoint paths in G . Lemma 8.1.2 If there are k edge disjoint paths in G between s and t, then the maximum flow in H is at least k. Proof: Given k such edge disjoint paths, push one unit of flow along each such path. The resulting flow is legal in h and it has value k . Definition 8.1.3 ( 0 / 1 -flow.) A flow f is 0 / 1 -flow if every edge has either no flow on it, or one unit of flow. Lemma 8.1.4 Let f be a 0 / 1 flow in a network H with flow value μ . Then there are μ edge disjoint paths between s and t in H. Proof: By induction on the number of edges in H that has one unit of flow assigned to them by f . If μ = 0 then there is nothing to prove. ± This work is licensed under the Creative Commons Attribution-Noncommercial 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Otherwise, start traversing the graph H from s traveling only along edges with flow 1 assigned to them by f . We mark such an edge as used, and do not allow one to travel on such an edge again. There are two possibilities: (i) We reached the target vertex t . In this case, we take this path, add it to the set of output paths, and reduce the flow along the edges of the generated path π to 0. Let H 0 be the resulting flow network and f 0 the resulting flow. We have | f 0 | = μ - 1, H 0 has less edges, and by induction, it has μ - 1 edge disjoint paths in H 0 between s and t . Together with π this forms μ such paths. (ii) We visit a vertex v for the second time. In this case, our traversal contains a cycle C , of edges in H that have flow 1 on them. We set the flow along the edges of C to 0 and use induction on the remaining graph (since it has less edges with flow 1 on them). The value of the flow f did not change by removing C , and as such it follows by induction that there are μ edge disjoint paths between s and t in H . Since the graph G is simple, there are at most n = | V ( H ) | edges that leave s . As such, the maximum flow in H is n . Thus, applying the Ford-Fulkerson algorithm, takes O ( mn ) time. The extraction of the paths can also be done in linear time by applying the algorithm in the proof of Lemma 8.1.4. As such, we get: Theorem 8.1.5 Given a directed graph
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 6

14_flow_III - Chapter 8 Network Flow III - Applications By...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online