Calculation of Shadow Price Ranges

Description

For an LP problem

MAX

c^T x

s.t.

Ax ≤ b

x ≥ 0

AIMMS can calculate the shadow price ranges. The dual problem is given by

MIN

b^T y

s.t.

A^T y ≥ c

y ≥ 0

The shadow price range for constraint i is calculated by solving the following two problems

(S_max_i)

MAX

y_i

s.t.

A^T y ≥ c

b^T y = D_obj

y ≥ 0

and

(S_min_i)

MIN

y_i

s.t.

A^T y ≥ c

b^T y = D_obj

y ≥ 0

where D_obj denotes the optimal solution value of (D). The optimal solution value of (S_max_i) gives the largest shadow price and (S_min_i) the smallest shadow price.

In practice the problems (S_max_i) and (S_min_i) are sometimes infeasible because of numerical problems with the constraint

b^T y = D_obj .

Therefore AIMMS uses the constraint

b^T y ≤ R

instead where R is defined as

MAX[ D_obj * (1.0 +-eps_rel), D_obj + eps_abs ] if D_obj ≥ 0.0

MAX[ D_obj * (1.0 -+eps_rel), D_obj + eps_abs ] if D_obj ≤ 0.0

Here eps_rel is the value of the option Shadow Price Range Relative Tolerance and eps_abs the value of Shadow Price Range Absolute Tolerance . When the setting of both options is 0.0 (the default) R equals D_obj.

Remark

The subproblems (S_max_i) and (S_min_i) are not solved for constraints for which the nominal right hand side value is in the interior of the interval

[smallest right hand side, largest right hand side]

since for these constraints it is known that

smallest shadow price = largest shadow price = shadow price.

(Calculating the smallest and largest right hand side values is only supported by CPLEX and Gurobi, so only these solvers can skip solving some of the subproblems (S_max_i) and (S_min_i).)

Note

  • The option Time Limit Sensitivity Ranges can be used to set a time limit for each LP problem that is solved while calculating shadow price ranges (or variable value ranges).

Learn more about