Reduced Costs and the Optimality Criterion

Defines the reduced cost of a nonbasic variable at a basic feasible solution and uses the sign pattern of reduced costs to (a) certify optimality and (b) select an entering variable in the simplex method.

Step 1 of 157%

Tutorial

What Is a Reduced Cost?

Consider a linear program in standard form:

minimize cTxsubject toAx=b, x0.\text{minimize } \mathbf{c}^T\mathbf{x} \quad \text{subject to} \quad A\mathbf{x}=\mathbf{b},\ \mathbf{x}\geq\mathbf{0}.

At a basic feasible solution, the variables split into basic variables xB\mathbf{x}_B (with cost vector cB\mathbf{c}_B) and nonbasic variables xN\mathbf{x}_N. The columns of AA corresponding to the basic variables form the invertible basis matrix BB.

For any nonbasic variable xjx_j, the reduced cost is defined as

cˉj=cjcBTB1Aj,\bar{c}_j = c_j - \mathbf{c}_B^T B^{-1} \mathbf{A}_j,

where Aj\mathbf{A}_j is the jjth column of AA.

The quantity yj=B1Aj\mathbf{y}_j = B^{-1}\mathbf{A}_j is exactly the column of xjx_j in the simplex tableau after row-reduction, so we will write the formula compactly as

cˉj=cjcBTyj.\bar{c}_j = c_j - \mathbf{c}_B^T \mathbf{y}_j.

Interpretation: cˉj\bar{c}_j is the rate of change of the objective per unit increase of xjx_j above 00. If cˉj<0\bar{c}_j<0, pushing xjx_j up decreases the objective; if cˉj>0\bar{c}_j>0, pushing xjx_j up makes things worse.

Note: For every basic variable, cˉj=0\bar{c}_j=0 — the column yj\mathbf{y}_j is a unit vector ei\mathbf{e}_i, and cBTei=cBi=cj\mathbf{c}_B^T\mathbf{e}_i=c_{B_i}=c_j.

Illustrative computation. Suppose a nonbasic variable has cj=5c_j=5, cB=[24]\mathbf{c}_B=\begin{bmatrix}2\\4\end{bmatrix}, and yj=[11]\mathbf{y}_j=\begin{bmatrix}1\\-1\end{bmatrix}. Then

cˉj=5[24][11]=5(24)=5(2)=7.\bar{c}_j = 5 - \begin{bmatrix}2 & 4\end{bmatrix}\begin{bmatrix}1\\-1\end{bmatrix} = 5 - (2-4) = 5-(-2) = 7.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle