Restricted Master Problem and Pricing Subproblem

Introduces the restricted master problem (RMP) and the pricing subproblem that drive each iteration of column generation. After solving the RMP, its dual variables feed into the pricing subproblem, which computes reduced costs to decide whether to add a new column or terminate.

Step 1 of 157%

Tutorial

The Restricted Master Problem

In a column generation scheme, the master problem is a linear program of the form

min  cTxsubject toAxb,  x0,\min \; c^T x \quad \text{subject to} \quad Ax \geq b, \; x \geq 0,

in which the coefficient matrix AA has so many columns that we cannot enumerate them all. We don't attempt to solve it directly. Instead, we maintain a restricted master problem (RMP) — the same LP using only a subset SS of the columns:

min  jScjxjs.t.jSajxjb,  xj0.\min \; \sum_{j \in S} c_j x_j \quad \text{s.t.} \quad \sum_{j \in S} a_j x_j \geq b, \; x_j \geq 0.

Because S|S| is small, the RMP is an ordinary LP we can solve directly. Solving it produces two outputs:

  • a primal solution xx^*, using only columns in SS (columns outside SS are implicitly fixed at 00);
  • a vector of dual variables π=(π1,,πm)\pi = (\pi_1, \ldots, \pi_m), one for each of the mm master constraints.

For example, consider the master problem

min3x1+5x2+4x3+7x4s.t.{x1+2x2+x3+3x462x1+x2+4x3+x45,  xj0.\min 3x_1 + 5x_2 + 4x_3 + 7x_4 \quad \text{s.t.} \quad \begin{cases} x_1 + 2x_2 + x_3 + 3x_4 \geq 6 \\ 2x_1 + x_2 + 4x_3 + x_4 \geq 5 \end{cases},\; x_j \geq 0.

Restricting to S={2,3}S = \{2, 3\} produces the RMP

min5x2+4x3s.t.2x2+x36,  x2+4x35,  x2,x30.\min 5x_2 + 4x_3 \quad \text{s.t.} \quad 2x_2 + x_3 \geq 6, \; x_2 + 4x_3 \geq 5, \; x_2, x_3 \geq 0.

The dual π\pi is the critical output: it is what the next stage — the pricing subproblem — uses to decide which column outside of SS should enter.

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