41
CSE202: Design and Analysis of Algorithms Ragesh Jaiswal, CSE, UCSD Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

CSE202: Design and Analysis of Algorithms

Ragesh Jaiswal, CSE, UCSD

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 2: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Dynamic Programming

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 3: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Dynamic Programming0-1 Knapsack

Problem

You are given n items with non-negative integer weights w(i) and aninteger W . You have to determine a subset S of {1, ..., n} such thatP

i2S w(i) is maximized subject toP

i2S w(i) W .

Dynamic Programming solution:M(i ,w): The maximum weight that can be filled using items{1, ..., i} subject to the sum being w .If w(i) > w , then M(i ,w) = M(i � 1,w)If w(i) w , thenM(i ,w) = max {M(i � 1,w),M(i � 1,w � w(i)) + w(i)}8w W , M(1,w) = w(1) if w(1) w and 0 otherwise.

What is the running time for filling the above table? O(n ·W )Is this a polynomial-time algorithm?

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 4: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Course Overview

Graph Algorithms

Algorithm Design Techniques:Greedy AlgorithmsDivide and ConquerDynamic ProgrammingNetwork Flows

Computational Intractability

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 5: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network Flow

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 6: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMain Idea

Main Idea: Reduction1 We will obtain an algorithm A for a Network Flow problem.2 Given a new problem, we will rephrase this problem as a

Network Flow problem.3 We will then use algorithm A to solve the rephrased problem

and obtain a solution.4 Finally, we build a solution for the original problem using the

solution to the rephrased problem.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 7: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowIntroduction

We want to model various kinds of networks using graphs andthen solve real world problems with respect to these networksby studying the underlying graph.

One problem that arises in network design is routing “flows”within the network.

Transportation Network: Vertices are cities and edges denotehighways. Every highway has certain tra�c capacity. We areinterested in knowing the maximum amount commodity thatcan be shipped from a source city to a destination city.Computer Networks: Edges are links and vertices are switches.Each link has some capacity of carrying packets. Again, we areinterested in knowing how much tra�c can a source node sendto a destination node.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 8: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowIntroduction

To model these problems, we consider weighted, directedgraph G = (V ,E ) with the following properties:

Capacity: Associated with each edge e is a capacity that is anon-negative integer denoted by c(e).Source node: There is a source node s with no in-comingedges.Sink node: There is a sink node t with no out-going edges.All other nodes are called internal nodes.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 9: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowIntroduction

To model these problems, we consider weighted, directedgraph G = (V ,E ) with the following properties:

Capacity: Associated with each edge e is a capacity that is anon-negative integer denoted by c(e).Source node: There is a source node s with no in-comingedges.Sink node: There is a sink node t with no out-going edges.All other nodes are called internal nodes.

Given such a graph, an “s � t flow” in the graph is a functionf that maps the edges to non-negative real numbers such thatthe following properties are satisfied:(a) Capacity constraint: For every edge e, 0 f (e) c(e).(b) Flow conservation: For every internal node v :

X

e into v

f (e) =X

e out of v

f (e)

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 10: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Problem

Find an s � t flow f in a given network graph such that the followingquantity is maximized:

v(f ) =X

e out of s

f (e)

Example:

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 11: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Problem

Find an s � t flow f in a given network graph such that the followingquantity is maximized:

v(f ) =X

e out of s

f (e)

Example:

Figure: Routing 20 units of flow from s to t. Is it possible to “push moreflow”?

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 12: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Problem

Find an s � t flow f in a given network graph such that the followingquantity is maximized:

v(f ) =X

e out of s

f (e)

Example:

Figure: We should reset initial flow (u, v) to 10.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 13: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Problem

Find an s � t flow f in a given network graph such that the followingquantity is maximized:

v(f ) =X

e out of s

f (e)

Example:

Figure: We should reset initial flow (u, v) to 10. Maximum flow from s is 30.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 14: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Approach

We will iteratively build larger s � t flows.Given an s � t flow f , we will build a residual graph G

f

that willallow us to reset flows along some of the edges.We will find an augmenting path in the residual graph G

f

, pushsome flow along this path and update the flow f 0.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 15: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Approach

We will iteratively build larger s � t flows.Given an s � t flow f , we will build a residual graph G

f

that willallow us to reset flows along some of the edges.We will find an augmenting path in the residual graph G

f

, pushsome flow along this path and update the flow f 0.

Figure: Graph Gf

. (f(s, u) = 20, f(s, v) = 0, f(u, v) = 20, f(u, t) = 0, f(v, t)= 20)

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 16: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Approach

We will iteratively build larger s � t flows.Given an s � t flow f , we will build a residual graph G

f

that willallow us to reset flows along some of the edges.We will find an augmenting path in the residual graph G

f

, pushsome flow along this path and update the flow f 0.

Figure: Augmenting path. (f’(s, u) = 20, f’(s, v) = 10, f’(u, v) = 10, f’(u, t)= 10, f’(v, t) = 20)

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 17: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Approach

We will iteratively build larger s � t flows.Given an s � t flow f , we will build a residual graph G

f

that willallow us to reset flows along some of the edges.We will find an augmenting path in the residual graph G

f

, pushsome flow along this path and update the flow f 0.

Figure: Graph Gf

0 . (f’(s, u) = 20, f’(s, v) = 10, f’(u, v) = 10, f’(u, t) = 10,f’(v, t) = 20)

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 18: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Residual graph Gf

:Forward edges: For every edge e in the original graph, there are(c(e)� f (e)) units of more flow we can send along that edge. So,we set the weight of this edge (c(e)� f (e)).Backward edges: For every edge e = (u, v) in the original graph,there are f (e) units of flow that we can undo. So we add a reverseedge e0 = (v , u) and set the weight of e0 to f (e).

Figure: Graph Gf

. (f(s, u) = 20, f(s, v) = 0, f(u, v) = 20, f(u, t) = 0, f(v, t)= 20)

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 19: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Augmenting flow in Gf

:Let P be a simple s � t path in G

f

. Note that this containsforward and backward edges.Let e

min

be an edge in the path P with minimum weight wmin

For every forward edge e in P , set f 0(e) f (e) + wmin

For every backward edge (x , y) in P , set f 0(y , x) f (y , x)� wmin

For all remaining edges e, f 0(e) = f (e)

Figure: Augmenting path. (f’(s, u) = 20, f’(s, v) = 10, f’(u, v) = 10, f’(u, t)= 10, f’(v, t) = 20)

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 20: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Claim 1: f 0 is an s � t flow.Proof sketch:

Capacity constraint for each edge is satisfied.Flow conservation at each vertex is satisfied.

Figure: Augmenting path. (f’(s, u) = 20, f’(s, v) = 10, f’(u, v) = 10, f’(u, t)= 10, f’(v, t) = 20)

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 21: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

What is the running time of the above algorithm?

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 22: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

What is the running time of the above algorithm?Claim 2: v(f 0) > v(f ).

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 23: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

What is the running time of the above algorithm?Claim 2: v(f 0) > v(f ).Claim 3: The while loop runs for at most C =

Pe out of s

c(e)iterations.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 24: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

What is the running time of the above algorithm?Claim 2: v(f 0) > v(f ).Claim 3: The while loop runs for at most C =

Pe out of s

c(e)iterations.Claim 4: Finding augmenting path and augmenting flow along thispath takes O(m) time.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 25: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

What is the running time of the above algorithm? O(m · C )Claim 2: v(f 0) > v(f ).Claim 3: The while loop runs for at most C =

Pe out of s

c(e)iterations.Claim 4: Finding augmenting path and augmenting flow along thispath takes O(m) time.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 26: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 27: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 28: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

Figure: Graph Gf

, where f (s, u) = 0, f (s, v) = 7, f (v , u) = 0, f (v , q) =7, f (u, p) = 0, f (p, v) = 0, f (p, t) = 7, f (q, p) = 7, f (q, t) = 0

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 29: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 30: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

Figure: Graph Gf

, where f (s, u) = 0, f (s, v) = 11, f (v , u) = 0, f (v , q) =11, f (u, p) = 0, f (p, v) = 0, f (p, t) = 7, f (q, p) = 7, f (q, t) = 4

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 31: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 32: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

Figure: Graph Gf

, where f (s, u) = 12, f (s, v) = 11, f (v , u) = 0, f (v , q) =11, f (u, p) = 12, f (p, v) = 0, f (p, t) = 19, f (q, p) = 7, f (q, t) = 4

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 33: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Algorithm

Ford-Fulkerson

- Start with a flow f such that f (e) = 0- While there is an s � t path P in G

f

- Augment flow along an s � t path and let f 0 be resulting flow- Update f to f 0 and G

f

to Gf

0

- return(f )

How do we prove that the flow returned by the Ford-Fulkersonalgorithm is the maximum flow?

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 34: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Theorem 1: Let f be the flow returned by the Ford-Fulkersonalgorithm. Then f maximizes v(f ) =

Pe out of s

f (e).

Definition (f in and f out)

Let S be a subset of vertices and f be a flow. Then

f in(S) =X

e into S

f (e) and f out(S) =X

e out of S

f (e)

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 35: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Theorem 1: Let f be the flow returned by the Ford-Fulkersonalgorithm. Then f maximizes v(f ) =

Pe out of s

f (e).

Definition (f in and f out)

Let S be a subset of vertices and f be a flow. Then

f in(S) =X

e into S

f (e) and f out(S) =X

e out of S

f (e)

Definition (s � t cut)

A partition of vertices (A,B) is called an s � t cut i↵ A contains s andB contains t.

Definition (Capacity of s � t cut)

The capacity of an s � t cut (A,B) is defined asC (A,B) =

Pe out of A

c(e).

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 36: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Theorem 1: Let f be the flow returned by the Ford-Fulkersonalgorithm. Then f maximizes v(f ) =

Pe out of s

f (e).

Proof

Claim 1.1: For any s � t cut (A,B) and any s � t flow f ,v(f ) = f out(A)� f in(A).

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 37: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Theorem 1: Let f be the flow returned by the Ford-Fulkersonalgorithm. Then f maximizes v(f ) =

Pe out of s

f (e).

Proof

Claim 1.1: For any s � t cut (A,B) and any s � t flow f ,v(f ) = f out(A)� f in(A).

Proof of claim 1.1.

v(f ) = f out({s})� f in({s}) and for all other nodesv 2 A, f out({v})� f in({v}) = 0. So,

v(f ) =X

v2A(f out({v})� f in({v})) = f out(A)� f in(A).

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 38: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Theorem 1: Let f be the flow returned by the Ford-Fulkersonalgorithm. Then f maximizes v(f ) =

Pe out of s

f (e).

Proof

Claim 1.1: For any s-t cut (A,B) and any s-t flow f ,v(f ) = f out(A)� f in(A).Claim 1.2: Let f be any s-t flow and (A,B) be any s-t cut. Thenv(f ) C (A,B).

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 39: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Theorem 1: Let f be the flow returned by the Ford-Fulkersonalgorithm. Then f maximizes v(f ) =

Pe out of s

f (e).

Proof

Claim 1.1: For any s-t cut (A,B) and any s-t flow f ,v(f ) = f out(A)� f in(A).Claim 1.2: Let f be any s-t flow and (A,B) be any s-t cut. Thenv(f ) C (A,B).

Proof of claim 1.2.

v(f ) = f out(A)� f in(A) f out(A) C (A,B).

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 40: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

Network FlowMaximum flow

Theorem 1: Let f be the flow returned by the Ford-Fulkersonalgorithm. Then f maximizes v(f ) =

Pe out of s

f (e).

Proof

Claim 1.1: For any s-t cut (A,B) and any s-t flow f ,v(f ) = f out(A)� f in(A).Claim 1.2: Let f be any s-t flow and (A,B) be any s-t cut. Thenv(f ) C (A,B).Claim 1.3: Let f be an s-t flow such that there is no s-t path inGf

. Then there is an s-t cut (A⇤,B⇤) such thatv(f ) = C (A⇤,B⇤). Furthermore, f is a flow with maximum valueand (A⇤,B⇤) is an s-t cut with minimum capacity.

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms

Page 41: CSE202: Design and Analysis of Algorithmscseweb.ucsd.edu/~rajaiswal/Winter2020/cse202/Slides/Week...Graph Algorithms Algorithm Design Techniques: Greedy Algorithms Divide and Conquer

End

Ragesh Jaiswal, CSE, UCSD CSE202: Design and Analysis of Algorithms