Lower and upper limits for variables : sensitivity analysis

459 views
Skip to first unread message

paterijk

unread,
Aug 26, 2011, 7:39:32 AM8/26/11
to AMPL Modeling Language
Hello

I wish to perform a kind of sensitivity analysis on a MILP and I am
interested in the lower and upper limits that my continuous variables
can take without affecting the value of the objective function.

I have searched around the "option cplex_options 'sensitivity'"
command, however, if I understood well, the outputs via those suffixes
do not answer my above problem.

Does anybody have a hint on this, or maybe it is not directly feasible
in AMPL ...

Thank you for your help,

Patrick

Robert Fourer

unread,
Aug 27, 2011, 12:22:12 AM8/27/11
to am...@googlegroups.com
The "sensitivity" determined by CPLEX is easy to compute, but it only tells
you how much the objective coefficients and right-hand-side constants can be
changed before the current basis becomes suboptimal or infeasible. In my
experience the kinds of sensitivity that people usually want to know are
different and much more difficult to compute, if indeed they are computable
at all.

After you have optimized an objective, you can add a constraint to fix it at
its optimal value, and then introduce other objectives to maximize
individual variables. The session below gives an example of this (showing
only two of the variables being maximized, but the others can be done in the
same way). Of course this becomes less practical as the problem gets larger
and harder.

Bob Fourer
4...@ampl.com

--

ampl: model multmip3.mod;
ampl: data multmip3.dat;

ampl: solve;
CPLEX 12.3.0.0: optimal integer solution; objective 235625
356 MIP simplex iterations
49 branch-and-bound nodes

ampl: param min_cost;
ampl: let min_cost := Total_Cost;

ampl: subj to Fix_Cost:
ampl? sum {i in ORIG, j in DEST, p in PROD} vcost[i,j,p]*Trans[i,j,p] +
ampl? sum{i in ORIG, j in DEST} fcost[i,j]*Use[i,j] = min_cost;

ampl: maximize Trans_Var {i in ORIG, j in DEST, p in PROD}: Trans[i,j,p];

ampl: objective Trans_Var['CLEV','FRA','plate'];
ampl: solve;
CPLEX 12.3.0.0: optimal integer solution; objective 100
0 MIP simplex iterations
0 branch-and-bound nodes

ampl: objective Trans_Var['PITT','FRA','plate'];
ampl: solve;
CPLEX 12.3.0.0: optimal integer solution; objective 50
531 MIP simplex iterations
18 branch-and-bound nodes
ampl:

Reply all
Reply to author
Forward
0 new messages