Description
The routine CPXgetiis() is used to examine the IIS for an infeasible LP problem. The IIS must already have been computed using a call to CPXfindiis() or CPXiiswrite(). Upon successful completion, the CPXgetiis() arguments return information about the IIS that can be used to diagnose the cause of infeasibility. The number of rows and bound constraints in the IIS, as well as the indices of the IIS members, are returned.Return Value
The routine returns a zero on success, and a nonzero if an error occurs.Synopsis
int CPXgetiis (CPXENVptr env,
CPXLPptr lp,
int *iisstat_p,
int *rowind,
int *rowbdstat,
int *iisnumrows_p,
int *colind,
int *colbdstat,
int *iisnumcols_p);
CPXENVptr envThe pointer to the CPLEX environment as returned by one of the
CPXopenCPLEX routines.
CPXLPptr lpA pointer to a CPLEX LP problem object as returned by
CPXcreateprob().
int *iisstat_pA pointer to an integer that will contain the result of the IIS algorithm. The specific values which
*iisstat_p can take and their meanings are:
|
1
|
CPXIIS_COMPLETE
|
IIS found
|
|
2
|
CPXIIS_PARTIAL
|
Time limit exceeded, partial IIS found
|
int *rowindA pointer to an array that will contain the indices of the rows in the IIS. The length of the array must be at least as large as the number of rows in the IIS.
int *rowbdstatA pointer to an array that will identify the right-hand side value for each row in the IIS that is causing the infeasibility. Possible values are:
|
0
|
CPXIIS_AT_LOWER
|
Row is at lower bound
|
|
1
|
CPXIIS_FIXED
|
Row is fixed
|
|
2
|
CPXIIS_AT_UPPER
|
Row is at upper bound
|
|
|
This information is needed only for ranged rows. For all other row senses, the value is uniquely determined by the sense. The length of the array must be at least as large as the number of rows in the IIS. |
int *iisnumrows_pA pointer to an integer that will contain the number of rows in the IIS.
int *colindA pointer to an array that will contain the indices of the columns in the IIS. The length of the array must be at least as large as the number of columns in the IIS.
int *colbdstatA pointer to an array identifying the bound for each column in the IIS that is causing the infeasibility. Possible values are:
|
0
|
CPXIIS_AT_LOWER
|
Column is at lower bound
|
|
1
|
CPXIIS_FIXED
|
Column is fixed
|
|
2
|
CPXIIS_AT_UPPER
|
Column is at upper bound
|
The length of the array must be at least as large as the number of columns in the IIS.
int *iisnumcols_pA pointer to an integer that will contain the number of columns in the IIS.
status = CPXgetiis (env, lp, &iisstat, rowind, rowbdstat,
&iisnumrows, colind, colbdstat, &iisnumcols);