Lecture 19: Maximum Flow Problem#
General Description#
For a network modeled as a directed graph \(G=(N,A)\), with \(N\) and \(A\) representing the set of nodes and arcs, respectively, the objective of a Maximum Flow Problem is to find the maximum amount of flow that can be transported this network from a source node \(r\) to a sink node \(s\), given that each arc \((i,j) \in A\) has a capacity \(q_{ij}\).
Objective:
Subject to:
Here, \(T(i)\) represents the set of predecessor (tail) nodes of node \(i\), while \(H(i)\) represents the set of successor (head) nodes, defined as follows,
Note, \(x_{ij}\) represents the amount of flow from node \(i\) to node \(j\).
Example#
The city of El Dorado is planning to optimize the passenger flow on its transportation network during peak hours. The city has a complex transportation network connecting residential areas, office districts, and commercial hubs. The goal is to maximize the passenger flow between a major residential area and a key office district while considering the network capacity.
Figure 1. El Dorado City Network
From |
To |
Capacity (passengers/hour) |
---|---|---|
1 |
2 |
700 |
1 |
3 |
300 |
2 |
3 |
100 |
2 |
5 |
600 |
3 |
4 |
800 |
4 |
5 |
200 |
4 |
6 |
800 |
5 |
6 |
200 |
Formulate a linear optimisation model for this problem.
Objective:
\[ \max \ x_{61} \]Subject to:
\[\begin{split} \begin{aligned} x_{61} & = x_{12} + x_{13} \\ x_{12} & = x_{23} + x_{25} \\ x_{13} + x_{23} & = x_{34} \\ x_{34} & = x_{45} + x_{46} \\ x_{25} + x_{45} & = x_{56} \\ x_{46} + x_{56} & = x_{61} \\ x_{12} & \in [0, 700] \\ x_{13} & \in [0, 300] \\ x_{23} & \in [0, 100] \\ x_{25} & \in [0, 600] \\ x_{34} & \in [0, 800] \\ x_{45} & \in [0, 200] \\ x_{46} & \in [0, 800] \\ x_{56} & \in [0, 200] \end{aligned} \end{split}\]Solve the above linear optimisation model using a spreadsheet to find the optimal solution.
From
To
Flow
1
2
300
1
3
300
2
3
100
2
5
200
3
4
400
4
5
0
4
6
400
5
6
200
The overall network flow is 600 passengers/hour.
As part of future proofing, El Dorado city wants to upgrade its network. Which streets should it invest in?
Streets 1-3, 2-3, and 5-6 could render improvements in network flow since these streets are capacitated.
How does an investment increasing capacity of these streets by 100 passengers/hour impact the overall network flow?
Naturally, in each of these cases, the overall network flow increases by 100, to 700 passengers/hour.
Instead of augmenting capacity to these arcs with additional lanes, El Dorado city added a street connecting node 5 with node 3, having a capacity of 300 passengers/hour.
Figure 2. Updated El Dorado City Network
Reformulate the linear optimisation problem.
Objective:
\[ \max \ x_{61} \]Subject to:
\[\begin{split} \begin{aligned} x_{61} & = x_{12} + x_{13} \\ x_{12} & = x_{23} + x_{25} \\ x_{13} + x_{23} + x_{53} & = x_{34} \\ x_{34} & = x_{45} + x_{46} \\ x_{25} + x_{45} & = x_{53} + x_{56} \\ x_{46} + x_{56} & = x_{61} \\ x_{12} & \in [0, 700] \\ x_{13} & \in [0, 300] \\ x_{23} & \in [0, 100] \\ x_{25} & \in [0, 600] \\ x_{34} & \in [0, 800] \\ x_{45} & \in [0, 200] \\ x_{46} & \in [0, 800] \\ x_{53} & \in [0, 300] \\ x_{56} & \in [0, 200] \end{aligned} \end{split}\]Solve the above linear optimisation model using a spreadsheet to find the optimal solution.
From
To
Flow
1
2
700
1
3
300
2
3
100
2
5
600
3
4
800
4
5
0
4
6
800
5
3
300
5
6
200
The overall network flow increases by 300, to 9000 passengers/hour.