Pricing via Shortest Path with Dual Values

In column generation for path-based multi-commodity flow, the pricing subproblem reduces to a shortest-path computation in a graph whose arc costs have been modified by the current dual values from the restricted master problem. This lesson covers computing reduced arc costs, finding the cheapest path, and deciding whether to add the resulting column to the RMP.

Step 1 of 157%

Tutorial

Pricing as a Shortest Path

In column generation for a path-based multi-commodity flow LP, the restricted master problem (RMP) has two families of constraints, each with its own dual variable:

  • A demand constraint pPkxp=dk\sum_{p\in P_k} x_p = d_k for each commodity kk, with dual σk\sigma_k.
  • A capacity constraint pδijpxpuij\sum_{p} \delta_{ij}^p\, x_p \le u_{ij} for each arc (i,j),(i,j), with dual πij0.\pi_{ij}\ge 0.

For a candidate path pp from source sks_k to sink tkt_k with arc cost cp=(i,j)pcij,c_p = \sum_{(i,j)\in p} c_{ij}, the reduced cost in the RMP is

cˉp  =  (i,j)pcij  +  (i,j)pπij    σk  =  (i,j)p(cij+πij)σk.\bar c_p \;=\; \sum_{(i,j)\in p} c_{ij} \;+\; \sum_{(i,j)\in p} \pi_{ij} \;-\; \sigma_k \;=\; \sum_{(i,j)\in p}\bigl(c_{ij}+\pi_{ij}\bigr) - \sigma_k.

Define the reduced arc cost

c~ij  =  cij+πij.\tilde c_{ij} \;=\; c_{ij} + \pi_{ij}.

Then cˉp=(i,j)pc~ijσk.\bar c_p = \sum_{(i,j)\in p}\tilde c_{ij} - \sigma_k. Minimizing cˉp\bar c_p over all sks_k-tkt_k paths is therefore a shortest-path problem in the graph with arc weights c~ij.\tilde c_{ij}. Because cij0c_{ij}\ge 0 and πij0,\pi_{ij}\ge 0, the reduced arc costs are non-negative, so Dijkstra's algorithm is applicable.

For instance, if arc (i,j)(i,j) has cij=6c_{ij}=6 and the current dual is πij=2,\pi_{ij}=2, then

c~ij=6+2=8.\tilde c_{ij} = 6 + 2 = 8.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle