Node-Arc Formulation of Multi-Commodity Flow

Translates a multi-commodity flow problem into a linear program with one decision variable per (arc, commodity) pair, subject to flow conservation at every node for every commodity and a shared bundle constraint on every arc.

Step 1 of 157%

Tutorial

Decision Variables and the Objective

The node-arc formulation models a multi-commodity flow problem as a linear program with one decision variable for each (arc, commodity) pair.

Let G=(N,A)G=(N,A) be a directed graph carrying KK commodities. For each arc (i,j)A(i,j)\in A and each commodity k{1,,K}k\in\{1,\ldots,K\}, define

xijk=units of commodity k shipped on arc (i,j).x_{ij}^k = \text{units of commodity } k \text{ shipped on arc } (i,j).

Each xijkx_{ij}^k has an associated per-unit cost cijkc_{ij}^k, and the objective is to minimize total shipping cost across all commodities and arcs:

min    k=1K(i,j)Acijkxijk.\min \;\; \sum_{k=1}^{K}\sum_{(i,j)\in A} c_{ij}^k\, x_{ij}^k.

For example, with K=2K=2 commodities on arcs (1,2)(1,2) and (2,3)(2,3), suppose

c121=3, c122=5, c231=2, c232=4,c_{12}^1=3,\ c_{12}^2=5,\ c_{23}^1=2,\ c_{23}^2=4,

and the flows are x121=4, x122=2, x231=4, x232=2.x_{12}^1=4,\ x_{12}^2=2,\ x_{23}^1=4,\ x_{23}^2=2. Then the objective evaluates to

3(4)+5(2)+2(4)+4(2)=12+10+8+8=38.3(4)+5(2)+2(4)+4(2) = 12+10+8+8 = 38.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle