Reading a Solver Sensitivity Report

Interpret the Variable Cells and Constraints sections of a linear-programming solver's sensitivity report — reduced costs, shadow prices, and allowable ranges — and apply the 100% rule to handle simultaneous parameter changes.

Step 1 of 157%

Tutorial

The Sensitivity Report and Reduced Costs

When you solve a linear program with a software solver (Excel Solver, LINDO, Gurobi, etc.), you can request a sensitivity report that summarizes how the optimal solution would respond to small changes in the model's coefficients.

The report has two parts.

The Variable Cells section has one row per decision variable, with columns

Final Value,  Reduced Cost,  Objective Coefficient,  Allowable Increase,  Allowable Decrease.\text{Final Value},\;\text{Reduced Cost},\;\text{Objective Coefficient},\;\text{Allowable Increase},\;\text{Allowable Decrease}.

The Constraints section has one row per functional constraint, with columns

Final Value,  Shadow Price,  Constraint RHS,  Allowable Increase,  Allowable Decrease.\text{Final Value},\;\text{Shadow Price},\;\text{Constraint RHS},\;\text{Allowable Increase},\;\text{Allowable Decrease}.

We begin with the Variable Cells.

The reduced cost of a decision variable is the rate of change in the optimal objective per unit increase of that variable away from its current optimal value (with the remaining basic variables adjusting to preserve feasibility).

  • A basic variable (one taking a positive value in the optimum) has reduced cost 00.
  • A nonbasic variable sits at its lower bound — typically 00 — with reduced cost 0\le 0 for a maximization and 0\ge 0 for a minimization.

Forcing a nonbasic variable xjx_j from 00 up to some level Δ\Delta (along the local parametric direction) changes the optimal objective by

Δz=(reduced cost)Δ.\Delta z = (\text{reduced cost})\cdot \Delta.

For example, suppose a max LP with z=50z^* = 50 returns the row

VarFinalRed. CostCoefAllow IncAllow Decx202621030\begin{array}{|c|c|c|c|c|c|}\hline \text{Var}&\text{Final}&\text{Red. Cost}&\text{Coef}&\text{Allow Inc}&\text{Allow Dec}\\\hline x_2 & 0 & -2 & 6 & 2 & 10^{30}\\\hline\end{array}

Forcing x2x_2 from 00 up to 33 changes the objective by (2)(3)=6(-2)(3) = -6, giving a new objective of 506=4450 - 6 = 44. Equivalently, x2x_2's coefficient would have to rise by more than 22 — above 88 — before x2x_2 might enter the optimal basis.

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