Finding an Irreducible Infeasible Set (optlpe07)
/**********************************************************************/
/* */
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: optlpe07 */
/* TITLE: Finding an Irreducible Infeasible Set (optlpe07) */
/* PRODUCT: OR */
/* SYSTEM: ALL */
/* KEYS: OR */
/* PROCS: OPTLP */
/* DATA: */
/* */
/* SUPPORT: UPDATE: */
/* REF: */
/* MISC: Example 7 from the OPTLP chapter of Mathematical */
/* Programming. */
/* */
/**********************************************************************/
/* infeasible */
data exiis;
input field1 $ field2 $ field3 $ field4 field5 $ field6;
datalines;
NAME . . . . .
ROWS . . . . .
N cost . . . .
G con1 . . . .
L con2 . . . .
G con3 . . . .
COLUMNS . . . . .
. x1 cost 1 con1 1
. x1 con2 1 . .
. x2 cost 1 con1 1
. x2 con3 1 . .
. x3 cost 1 con2 1
. x3 con3 1 . .
RHS . . . . .
. rhs con1 10 con2 4
. rhs con3 4 . .
RANGES . . . . .
. r1 con3 1 . .
BOUNDS . . . . .
UP b1 x3 3 . .
ENDATA . . . . .
;
proc optlp data=exiis
iis=true
primalout=iis_vars
dualout=iis_cons
logfreq=1;
run;
title 'Constraints in the IIS';
proc print data=iis_cons label;
run;
title 'Variables in the IIS';
proc print data=iis_vars label;
run;
/* dropping con3, feasible */
data exiisf;
input field1 $ field2 $ field3 $ field4 field5 $ field6;
datalines;
NAME . . . . .
ROWS . . . . .
N cost . . . .
G con1 . . . .
L con2 . . . .
G con3 . . . .
COLUMNS . . . . .
. x1 cost 1 con1 1
. x1 con2 1 . .
. x2 cost 1 con1 1
. x2 con3 1 . .
. x3 cost 1 con2 1
. x3 con3 1 . .
RHS . . . . .
. rhs con1 10 con2 4
. rhs con3 4 . .
BOUNDS . . . . .
UP b1 x3 3 . .
ENDATA . . . . .
;
proc optlp data=exiisf
iis=true;
run;