This example demonstrates the use of the IIS= option to locate an irreducible infeasible set. Suppose you want to solve a linear program that has the following simple formulation:
The corresponding MPS-format SAS data set is as follows:
/* 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 . . . . . ;
It is easy to verify that the following three constraints (or rows) and one variable (or column) bound form an IIS for this problem.
You can use the IIS= ON option to detect this IIS by using the following statements:
proc optlp data=exiis iis=on primalout=iis_vars dualout=iis_cons logfreq=1; run;
The OPTLP procedure outputs the detected IIS to the data sets specified by the PRIMALOUT= and DUALOUT= options, then stops. The notes shown in Output 12.7.1 are printed to the log.
Output 12.7.1: The IIS= Option: Log
NOTE: The problem has 3 variables (0 free, 0 fixed). |
NOTE: The problem has 3 constraints (1 LE, 0 EQ, 1 GE, 1 range). |
NOTE: The problem has 6 constraint coefficients. |
NOTE: The IIS= option is enabled. |
Objective Entering Leaving |
Phase Iteration Value Time Variable Variable |
P 1 1 1.400000E+01 0 x2 con3 (S) |
P 1 2 5.000000E+00 0 x1 con2 (S) |
P 1 3 1.000000E+00 0 |
NOTE: Applying the IIS sensitivity filter. |
NOTE: The sensitivity filter removed 1 constraints and 3 variable bounds. |
NOTE: Applying the IIS deletion filter. |
NOTE: Processing constraints. |
Processed Removed Time |
0 0 0 |
1 0 0 |
2 0 0 |
3 0 0 |
NOTE: Processing variable bounds. |
Processed Removed Time |
0 0 0 |
1 0 0 |
2 0 0 |
3 0 0 |
NOTE: The deletion filter removed 0 constraints and 0 variable bounds. |
NOTE: The IIS= option found this problem to be infeasible. |
NOTE: The IIS= option found an irreducible infeasible set with 1 variables and |
3 constraints. |
NOTE: The IIS solve time is 0.00 seconds. |
NOTE: The data set WORK.IIS_VARS has 3 observations and 10 variables. |
NOTE: The data set WORK.IIS_CONS has 3 observations and 10 variables. |
The data sets iis_cons
and iis_vars
are shown in Output 12.7.2.
Output 12.7.2: Identify Rows and Columns in the IIS
The constraint , which is an element of the IIS, is created by the RANGES section. The original constraint is con3, a "" constraint with an RHS value of 4. If you choose to remove the constraint , you can accomplish this by removing con3 from the RANGES section in the MPS-format SAS data set exiis
. Since con3 is the only observation in the section, the identifier observation can also be removed. The modified LP problem
is specified in the following SAS statements:
/* 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 . . . . . ;
Since one element of the IIS has been removed, the modified LP problem should no longer contain the infeasible set. Due to the size of this problem, there should be no additional irreducible infeasible sets. You can confirm this by submitting the following SAS statements:
proc optlp data=exiisf iis=on; run;
The notes shown in Output 12.7.3 are printed to the log.
Output 12.7.3: The IIS= Option: Log
NOTE: The problem has 3 variables (0 free, 0 fixed). |
NOTE: The problem has 3 constraints (1 LE, 0 EQ, 2 GE, 0 range). |
NOTE: The problem has 6 constraint coefficients. |
NOTE: The IIS= option is enabled. |
Objective |
Phase Iteration Value Time |
P 1 1 1.400000E+01 0 |
P 1 3 0.000000E+00 0 |
NOTE: The IIS= option found this problem to be feasible. |
NOTE: The IIS solve time is 0.00 seconds. |
NOTE: The data set WORK.EXSS has 8 observations and 3 variables. |
The solution summary is displayed in Output 12.7.4.
Output 12.7.4: Infeasibility Removed