Sensitivity Range for a Right-Hand Side

Determining the interval of values a constraint's right-hand side can take while keeping the current optimal basis (and therefore the shadow price) valid. Covers the slack-based range for non-binding constraints, the system-perturbation method for binding constraints, and using the shadow price to predict the new optimal objective within the range.

Step 1 of 157%

Tutorial

The Sensitivity Range and the Non-Binding Case

The sensitivity range for the right-hand side bib_i of a constraint (also called the range of feasibility) is the interval of values bib_i can take such that the current optimal basis stays optimal. Within this range:

  • the same set of constraints stays binding (and the same stays non-binding),
  • the shadow price yiy_i^* does not change,
  • the optimal objective zz^* changes linearly with bib_i.

We report the range as an allowable increase Δ+\Delta^+ and allowable decrease Δ\Delta^-, so

bi[biΔ,  bi+Δ+].b_i \in [\,b_i - \Delta^-,\; b_i + \Delta^+\,].

Non-binding constraint. Suppose constraint ii has the form jaijxjbi\sum_j a_{ij} x_j \le b_i and at the optimum jaijxj<bi\sum_j a_{ij} x_j^* < b_i. The slack is

si=bijaijxj.s_i^* = b_i - \sum_j a_{ij} x_j^*.

Making bib_i larger only adds more slack — nothing in the optimum changes. Making bib_i smaller eats into the slack, and the basis stays optimal until the slack is fully consumed. Therefore

Δ+=,Δ=si,yi=0.\Delta^+ = \infty, \qquad \Delta^- = s_i^*, \qquad y_i^* = 0.

For example, suppose a constraint reads x1+2x212x_1 + 2x_2 \le 12 and the optimum is (x1,x2)=(4,3).(x_1^*, x_2^*) = (4, 3). The slack is s=12(4+6)=2,s^* = 12 - (4 + 6) = 2, so bb can drop to 1010 or rise without bound. The sensitivity range is [10,).[10, \infty).

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