Lecture 19: Maximum Flow Problem

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:

\[ \max \ x_{sr} \]

Subject to:

\[\begin{split} \begin{aligned} \sum_{j \in H(r)} x_{rj} & = x_{sr} \\ \sum_{i \in T(s)} x_{is} & = x_{sr} \\ \sum_{i \in T(j)} x_{ij} & = \sum_{k \in H(j)} x_{jk} & \ \forall \ j \in N \\ x_{ij} & \in [0,q_{ij}] & \ \forall \ (i,j) \in A \end{aligned} \end{split}\]

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,

\[\begin{split} \begin{aligned} T(i) & = \{j; \ (j,i) \in A\} \\ H(i) & = \{j; \ (i,j) \in A\} \end{aligned} \end{split}\]

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

  1. 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}\]
  2. 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.

  3. 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.

  4. 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

  1. 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}\]
  2. 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.