Resources

Finding an Irreducible Infeasible Set (optlp7)

/**********************************************************************/
/*                                                                    */
/*                  S A S   S A M P L E   L I B R A R Y               */
/*                                                                    */
/*    NAME: optlp7                                                    */
/*   TITLE: Finding an Irreducible Infeasible Set (optlp7)            */
/* 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=on
   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
   pout=po
   iis=on;
run;

title 'Primal Solution';
proc print data=po label;
run;