XPRSiisfirst
XPRSiisfirst |
Purpose
Initiates a search for an Irreducible Infeasible Set (IIS) in an infeasible problem.
Synopsis
int XPRS_CC XPRSiisfirst(XPRSprob prob, int iismode, int *status_code);
Arguments
prob
|
The current problem.
|
iismode
|
The IIS search mode:
|
0
|
stops after finding the initial infeasible subproblem;
|
1
|
find an IIS, emphasizing simplicity of the IIS;
|
2
|
find an IIS, emphasizing a quick result.
|
status_code
|
The status after the search:
|
0
|
success;
|
1
|
if problem is feasible;
|
2
|
error (when the function returns nonzero).
|
Example
This looks for the first IIS.
XPRSiisfirst(myprob,1,&status);
Further information
1. Calling
IIS from the console has the same effect as this function.
2. A model may have several infeasibilities. Repairing a single IIS may not make the model feasible. For this reason the Optimizer can find an IIS for each of the infeasibilities in a model. For the generation of several independent IISs use functions
XPRSiisnext (
IIS
-n) or
XPRSiisall (
IIS
-a).
3. IIS sensitivity filter: after an optimal but infeasible first phase primal simplex, it is possible to identify a subproblem containing all the infeasibilities (corresponding to the given basis) to reduce the size of the IIS working problem dramatically, i.e., rows with zero duals (thus with artificials of zero reduced cost) and columns that have zero reduced costs may be deleted. Moreover, for rows and columns with nonzero costs, the sign of the cost is used to relax equality rows either to less than or greater than equal rows, and to drop either possible upper or lower bounds on columns.
4. Initial infeasible subproblem: The subproblem identified after the sensitivity filter is referred to as initial infeasible subproblem. Its size is crucial to the running time of the deletion filter and it contains all the infeasibilities of the first phase simplex, thus if the corresponding rows and bounds are removed the problem becomes feasible.
5.
XPRSiisfirst performs the initial sensitivity analysis on rows and columns to reduce the problem size, and sets up the initial infeasible subproblem. This subproblem significantly speeds up the generation of IISs, however in itself it may serve as an approximation of an IIS, since its identification typically takes only a fraction of time compared to the identification of an IIS.
6. The IIS approximation and the IISs generated so far are always available.
Related topics
XPRSgetiisdata,
XPRSiisall,
XPRSiisclear,
XPRSiisisolations,
XPRSiisnext,
XPRSiisstatus,
XPRSiiswrite,
IIS.