Skip to main content

Multi-Commodity Network Flow

Network Flow

Network structure gives a natural block-angular LP. Dantzig-Wolfe Decomposition exploits commodity-level independence to decompose into per-commodity shortest-path sub-problems.

Problem Description

A multi-commodity network flow problem routes several distinct commodities through a shared network. Each commodity has its own origin, destination, and demand, but all commodities share the same arc capacities. The objective is to satisfy all demands at minimum total cost.

Notation (all symbols defined before first use):

G=(V,A)G = (V, A)

Directed graph with nodes VV and arcs AA.

KK
Number of commodities.
sk,tks^k, t^k

Source and sink node for commodity kk.

dkd^k

Demand for commodity kk.

uiju_{ij}

Capacity of arc (i,j)A(i,j) \in A (shared across all commodities).

cijkc_{ij}^k

Unit cost of routing commodity kk on arc (i,j)(i,j).

fijkf_{ij}^k

Flow of commodity kk on arc (i,j)(i,j).

Block-Angular Structure

The LP can be written as:

mink=1K(i,j)Acijkfijks.t.k=1Kfijkuij(i,j)A(coupling: capacity constraints)j:(i,j)Afijkj:(j,i)Afjik=bikiV,k=1,,K(sub-problem: flow balance for commodity k)fijk0(i,j)A,k\begin{aligned} \min \quad & \sum_{k=1}^{K} \sum_{(i,j)\in A} c_{ij}^k f_{ij}^k \\ \text{s.t.} \quad & \sum_{k=1}^{K} f_{ij}^k \le u_{ij} \quad \forall (i,j) \in A \quad \text{(coupling: capacity constraints)} \\ & \sum_{j:(i,j)\in A} f_{ij}^k - \sum_{j:(j,i)\in A} f_{ji}^k = b_i^k \quad \forall i \in V, \, k = 1,\ldots,K \quad \text{(sub-problem: flow balance for commodity } k\text{)} \\ & f_{ij}^k \ge 0 \quad \forall (i,j) \in A, \, k \end{aligned}

where bik=dkb_i^k = d^k if i=ski = s^k, bik=dkb_i^k = -d^k if i=tki = t^k, else 00.

Dantzig-Wolfe Decomposition Applied

By relaxing the capacity constraints with dual multipliers μij0\mu_{ij} \ge 0, the Lagrangian breaks into KK independent single-commodity minimum-cost flow problems.

Dual variables: μij\mu_{ij} represents the congestion price on arc (i,j)(i,j). It penalises each unit of flow on a congested arc, effectively redistributing commodities away from bottlenecks.

Master problem: The RMP aggregates convex combinations of extreme flows for each commodity:

mink=1KpPkckpλkps.t.k=1KpPkaijkpλkpuij(i,j)A(coupling)pPkλkp=1k(convexity)λkp0\begin{aligned} \min \quad & \sum_{k=1}^K \sum_{p \in P^k} c^{kp} \lambda^{kp} \\ \text{s.t.} \quad & \sum_{k=1}^K \sum_{p \in P^k} a_{ij}^{kp} \lambda^{kp} \le u_{ij} \quad \forall (i,j) \in A \quad \text{(coupling)} \\ & \sum_{p \in P^k} \lambda^{kp} = 1 \quad \forall k \quad \text{(convexity)} \\ & \lambda^{kp} \ge 0 \end{aligned}

where PkP^k is the set of paths from sks^k to tkt^k, aijkp=1a_{ij}^{kp} = 1 if path pp uses arc (i,j)(i,j), else 00.

Pricing sub-problem for commodity kk: Find the minimum reduced-cost path from sks^k to tkt^k under the modified arc costs:

c^ijk=cijk+μij\hat{c}_{ij}^k = c_{ij}^k + \mu_{ij}^*

This is a shortest path problem — solvable in polynomial time for each commodity independently.

Citation

Ford, L. R., & Fulkerson, D. R. (1958). A suggested computation for maximal multi-commodity network flows . Management Science, 5(1), 97–101. doi:10.1287/mnsc.5.1.97