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)
Directed graph with nodes V and arcs A.
K
Number of commodities.
sk,tk
Source and sink node for commodity k.
dk
Demand for commodity k.
uij
Capacity of arc (i,j)∈A (shared across all commodities).
cijk
Unit cost of routing commodity k on arc (i,j).
fijk
Flow of commodity k on arc (i,j).
Block-Angular Structure
The LP can be written as:
mins.t.k=1∑K(i,j)∈A∑cijkfijkk=1∑Kfijk≤uij∀(i,j)∈A(coupling: capacity constraints)j:(i,j)∈A∑fijk−j:(j,i)∈A∑fjik=bik∀i∈V,k=1,…,K(sub-problem: flow balance for commodity k)fijk≥0∀(i,j)∈A,k
where bik=dk if i=sk, bik=−dk if i=tk, else 0.
Dantzig-Wolfe Decomposition Applied
By relaxing the capacity constraints with dual multipliers μij≥0, the Lagrangian breaks into K independent single-commodity minimum-cost flow problems.
Dual variables: μij represents the congestion price on arc (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: