Column Generation: The Master/Subproblem Pattern

Introduces the column-generation decomposition for path-based multi-commodity flow: the Restricted Master Problem produces dual prices that drive a shortest-path pricing subproblem, which returns new columns until no negative-reduced-cost path remains.

Step 1 of 157%

Tutorial

The Master/Subproblem Pattern

In the path-based formulation of multi-commodity flow, every sks_ktkt_k path is a candidate variable xp.x_p. For realistic networks the number of paths is astronomical — far too many to enumerate.

Column generation sidesteps this by maintaining only a small subset of paths at a time and adding new ones on demand. The procedure alternates between two LPs.

Restricted Master Problem (RMP). The original LP restricted to the current working set of path variables. Solving the RMP returns a primal flow and a set of optimal dual prices:

  • αk0\alpha_k \ge 0 on each commodity kk's demand constraint — the marginal value of one more unit of demand for commodity k;k;
  • βe0\beta_e \ge 0 on each edge ee's capacity constraint — the shadow price of capacity on edge e.e.

Pricing subproblem. Search outside the working set for a path with negative reduced cost. For a path pPk,p \in \mathcal{P}_k,

cˉp  =  ep(ce+βe)    αk.\bar c_p \;=\; \sum_{e \in p}(c_e + \beta_e) \;-\; \alpha_k.

If cˉp<0,\bar c_p < 0, adding pp to the RMP can improve the objective, so pp enters as a new column. If no path anywhere has cˉp<0,\bar c_p < 0, the current RMP solution is already optimal for the full LP.

This is the master/subproblem pattern: the master sends prices (αk,βe)(\alpha_k, \beta_e) down to the subproblem; the subproblem returns a column.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle