Why Multi-Commodity Flow Breaks Total Unimodularity
The constraint matrix of multi-commodity flow stacks block-diagonal incidence matrices with bundling-row blocks. Each block is totally unimodular, but the combined matrix is not: it contains 3x3 submatrices with determinant of absolute value 2. As a consequence, the LP relaxation can have fractional vertices, and integer multi-commodity flow is hard.
Tutorial
The Multi-Commodity Flow Constraint Matrix
In single-commodity flow, the constraint matrix equals the node-arc incidence matrix , which is totally unimodular (TU). Every LP-relaxation vertex is therefore integer whenever the right-hand side is integer.
In -commodity flow, each commodity has its own flow vector , and arcs share capacity through bundling constraints on each arc . Stacking conservation (one block per commodity) and bundling (one block across all commodities) gives the block form
The top rows of blocks form the conservation block -- a block-diagonal stack of incidence matrices. The bottom strip is the bundling block -- copies of the identity placed side-by-side.
Each individual block ( or ) is TU. But TU is not preserved under stacking: contains square submatrices whose determinants escape . The next tutorial exhibits the smallest such obstruction.