Integer Multi-Commodity Flow is NP-Hard
Establishes the NP-hardness of integer multi-commodity flow via reduction from edge-disjoint paths, illustrates the integrality gap on small instances, and classifies the complexity of related flow problems.
Tutorial
The Integer Multi-Commodity Flow Decision Problem
The multi-commodity flow problem takes as input a directed graph with edge capacities and commodities. Each commodity specifies a source , sink , and demand . A feasible solution assigns non-negative flows satisfying:
- Capacity: for every edge .
- Conservation: flow in equals flow out at every node that is not or .
- Demand: units of commodity leave and arrive at .
The integer version additionally requires . The decision version asks: does an integer feasible solution exist?
Theorem (Even, Itai, Shamir 1976). The decision version of integer multi-commodity flow is NP-complete, even when:
- (only two commodities),
- every edge capacity is , and
- every demand .
In other words, even the simplest non-trivial version of the problem admits no polynomial-time algorithm unless . This is sharply different from single-commodity flow (), where Ford–Fulkerson terminates in polynomial time and returns an integer-valued optimum whenever capacities are integer.