Network Optimization Models: Maximum Flow Problems

1 / 14

Network Optimization Models: Maximum Flow Problems - PowerPoint PPT Presentation

Network Optimization Models: Maximum Flow Problems. In this handout: The problem statement Solving by linear programming Augmenting path algorithm. A. 4. 4. 6. B. O. D. 5. 5. T. 4. 4. 5. C. Maximum Flow Problem. Given : Directed graph G=(V, E),

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Network Optimization Models: Maximum Flow Problems

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Network Optimization Models:Maximum Flow Problems
• In this handout:
• The problem statement
• Solving by linear programming
• Augmenting path algorithm

A

4

4

6

B

O

D

5

5

T

4

4

5

C

Maximum Flow Problem
• Given: Directed graph G=(V, E),

Supply (source) node O,demand (sink) node T

Capacity function u: E  R .

• Goal: Given the arc capacities,

send as much flow as possible

from supply node O to demand node T

through the network.

• Example:
Characteristics of a feasible flow
• Let xij denote the flow through arc i  j .
• Capacity uij of arc i  j is the upper bound on the flow shipped through arc i  j .

Thus, we have the following constraints:

0  xij  uij , for any arc i  j

• Every node i, except the source and the sink,

should satisfy the conservation-of-flow constraint, i.e.,

flow into node i = flow out of node i

In terms of xij the constraint is

• For any flow that satisfies the conservation-of-flow constraints,

flow out of the source = flow into the sink

This is the amount we want to maximize.

Linear Program for the Maximum Flow Problem
• Summarizing, we have the following linear program:

0  xij  uij , for any arc i  j

• This linear program can be solved by a special type of the Simplex method, called Network Simplex.

(covered in Math 442/542)

• In this class, we will cover

a more efficient algorithm for the Maximum Flow Problem,

the Augmenting Path Algorithm.

Towards the Augmenting Path Algorithm
• Idea: Find a path from the sourceto the sink,

and use it to send as much flow as possible.

• In our example,

5 units of flow can be sent through the path O  B  D  T ;

Then use the path O  C  T to send 4 units of flow.

The total flow is 5 + 4 = 9 at this point.

• Can we send more?

A

4

4

5

5

B

5

O

D

5

6

T

4

5

4

4

4

C

5

Towards the Augmenting Path Algorithm
• If we redirect 1 unit of flow

from path O  B  D  T to path O  B  C  T,

then the freed capacity of arc D  T could be used

to send 1 more unit of flow through path O  A  D  T,

making the total flow equal to 9+1=10 .

• To realize the idea of redirecting the flow in a systematic way,

we need the concept of residual capacities.

A

1

1

4

4

4

5

5

4

B

5

O

D

5

6

T

4

5

4

4

1

5

4

C

5

Residual capacities

5

D

B

6

• Suppose we have an arc with capacity 6 and current flow 5:
• Then there is a residual capacity of 6-5=1

for any additional flow through B  D .

• On the other hand,

at most 5 units of flow can be sent back from D to B, i.e.,

5 units of previously assigned flow can be canceled.

In that sense, 5 can be considered as

the residual capacity of the reverse arc D  B .

• To record the residual capacities in the network,

we will replace the original directed arcs with undirected arcs:

5

1

B

The number at B is the residual capacity of BD;

the number at Dis the residual capacity of DB.

D

A

0

4

4

0

5

0

6

B

0

O

D

5

0

4

4

T

0

0

0

5

C

Residual Network
• The network given by the undirected arcs and residual capacities

is called residual network.

• In our example,

the residual network before sending any flow:

Note that the sum of the residual capacities on both ends of an arc

is equal to the original capacity of the arc.

• How to increase the flow in the network

based on the values of residual capacities?

Augmenting paths
• An augmenting path is a directed path

from the source to the sink in the residual network

such that

every arc on this path has positive residual capacity.

• The minimum of these residual capacities

is called the residual capacity of the augmenting path.

This is the amount

that can be feasibly added to the entire path.

• The flow in the network can be increased

by finding an augmenting path

and sending flow through it.

5

0

6

0

5

0

A

0

5

1

B

5

O

D

0

5

T

C

Updating the residual network by sending flow through augmenting paths

Continuing with the example,

• Iteration 1: O  B  D  T is an augmenting path

with residual capacity 5 = min{5, 6, 5}.

• After sending 5 units of flow

through the path O  B  D  T,

the new residual network is:

0

4

4

0

4

4

0

0

0

5

0

A

4

4

1

B

O

D

4

T

0

0

5

C

Updating the residual network by sending flow through augmenting paths
• Iteration 2:

O  C  T is an augmenting path

with residual capacity 4 = min{4, 5}.

• After sending 4 units of flow

through the path O  C  T,

the new residual network is:

0

4

4

0

0

5

1

5

0

5

4

0

A

0

1

4

3

3

4

0

1

1

2

B

4

5

O

D

3

4

T

4

5

0

1

0

1

C

Updating the residual network by sending flow through augmenting paths
• Iteration 3:

O  A  D  B  C  T is an augmenting path

with residual capacity 1 = min{4, 4, 5, 4, 1}.

• After sending 1 units of flow

through the path O  A  D  B  C  T ,

the new residual network is:

0

5

0

5

0

4

Terminating the Algorithm:Returning an Optimal Flow
• There are no augmenting paths in the last residual network.

So the flow from the source to the sink cannot be increased further, and the current flow is optimal.

• Thus, the current residual network is optimal.

The optimal flow on each directed arc of the original network

is the residual capacity of its reverse arc:

flow(OA)=1, flow(OB)=5, flow(OC)=4,

flow(AD)=1, flow(BD)=4, flow(BC)=1,

flow(DT)=5, flow(CT)=5.

The amount of maximum flow through the network is

5 + 4 + 1 = 10

(the sum of path flows of all iterations).

The Summary of the Augmenting Path Algorithm
• Initialization: Set up the initial residual network.
• Repeat
• Find an augmenting path.
• Identify the residual capacity c* of the path; increase the flow in this path by c*.
• Update the residual network: decrease by c* the residual capacity of each arc on the augmenting path; increase by c* the residual capacity of each arc in the opposite direction on the augmenting path.

Until no augmenting path is left

• Return the flow corresponding to

the current optimal residual network