## 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=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;

```