XPRSgetiisdata
XPRSgetiisdata |
Purpose
Returns information for an Irreducible Infeasible Set: size, variables (row and column vectors) and conflicting sides of the variables, duals and reduced costs.
Synopsis
int XPRS_CC XPRSgetiisdata(XPRSprob prob, int num, int *rownumber, int *colnumber, int miisrow[], int miiscol[], char constrainttype[], char colbndtype[], double duals[], double rdcs[], char isolationrows[], char isolationcols[]);
Arguments
prob
|
The current problem.
|
||||||||||||||||
num
|
The ordinal number of the IIS to get data for.
|
||||||||||||||||
rownumber
|
Pointer to an integer where the number of rows in the IIS will be returned.
|
||||||||||||||||
colnumber
|
Pointer to an integer where the number of bounds in the IIS will be returned.
|
||||||||||||||||
miisrow
|
Indices of rows in the IIS. Can be NULL if not required.
|
||||||||||||||||
miiscol
|
Indices of bounds (columns) in the IIS. Can be NULL if not required.
|
||||||||||||||||
constrainttype
|
Sense of rows in the IIS:
Can be NULL if not required.
|
||||||||||||||||
colbndtype
|
Sense of bound in the IIS:
Can be NULL if not required.
|
||||||||||||||||
duals
|
The
dual multipliers associated with the rows. Can be NULL if not required.
|
||||||||||||||||
rdcs
|
The dual multipliers (reduced costs) associated with the bounds. Can be NULL if not required.
|
||||||||||||||||
isolationrows
|
The isolation status of the rows:
Can be NULL if not required.
|
||||||||||||||||
isolationcols
|
The isolation status of the bounds:
|
Example
This example first retrieves the size of IIS 1, then gets the detailed information for the IIS.
XPRSgetiisdata(myprob, 1, &nrow, &ncol, NULL, NULL, NULL, NULL, NULL,NULL,NULL,NULL); rows = malloc(nrow*sizeof(int)); cols = malloc(ncol*sizeof(int)); constrainttype = malloc(nrow); colbndtype = malloc(ncol); duals = malloc(nrow*sizeof(double)); rdcs = malloc(ncol*sizeof(double)); isolationrows = malloc(nrow); isolationcols = malloc(ncol); XPRSgetiisdata(myprob, 1, &nrow, &ncol, rows, cols, constrainttype, colbndtype, duals, rdcs, isolationrows, isolationcols);
Further information
1. Calling
IIS from the console automatically prints most of the above IIS information to the screen. Extra information can be printed with the
IIS
-p command.
2. IISs are numbered from 1 to
NUMIIS. Index number 0 refers to the IIS approximation.
3. If
miisrow and
miiscol both are NULL, only the
rownumber and
colnumber are returned.
4. The arrays may be NULL if not required. However, arrays
constrainttype,
duals and
isolationrows are only returned if
miisrow is not NULL. Similarly, arrays
colbndtype,
rdcs and
isolationcols are only returned if
miiscol is not NULL.
5. All the non NULL arrays should be of length
rownumber or
colnumber, respectively.
6. For the initial IIS approximation (
num = 0) the number of rows and columns with a nonzero Lagrange multiplier (dual/reduced cost respectively) are returned. Please note that, in such cases, it might be necessary to call
XPRSiisstatus to retrieve the necessary size of the return arrays.
7. If there are Special Ordered Sets in the IIS, their number is included in the
miisrow array.
8. For non LP IISs, some column indices may appear more than once in the
miiscol array, for example an integrality and a bound restriction for the same column.
9. Duals, reduced cost and isolation information is not available for nonlinear IIS problems, and for those the arrays are filled with zero values in case they are provided.
Related topics
XPRSiisall,
XPRSiisclear,
XPRSiisfirst,
XPRSiisisolations,
XPRSiisnext,
XPRSiisstatus,
XPRSiiswrite,
IIS, Section
IIS description file in CSV format.