CPXXbasicpresolve and CPXbasicpresolve
The routine CPXXbasicpresolve/CPXbasicpresolve performs bound strengthening
and detects redundant rows.
int CPXXbasicpresolve( CPXCENVptr env, CPXLPptr lp, double * redlb, double * redub, int * rstat )
int CPXbasicpresolve( CPXCENVptr env, CPXLPptr lp, double * redlb, double * redub, int * rstat )
Description
This is an advanced routine. Advanced routines typically demand a thorough understanding of the algorithms used by CPLEX. Thus they incur a higher risk of incorrect behavior in your application, behavior that can be difficult to debug. Therefore, the team encourages you to consider carefully whether you can accomplish the same task by means of other Callable Library routines instead.
The routine CPXXbasicpresolve/CPXbasicpresolve performs bound strengthening
and detects redundant rows. CPXXbasicpresolve/CPXbasicpresolve does not create
a presolved problem.
Values for rstat[i]:
0 if row i is not redundant
1 if row i is redundant
In the case of a semi-continuous variable or a semi-integer variable, this routine produces the lower bound, not the semi-continuous bound, not the semi-integer lower bound. If the strengthened bound is a value less than or equal to zero, the semi-continuity or semi-integrality persists. In contrast, if the strengthened bound is a value strictly greater than zero, then this routine has concluded that zero can be eliminated from the domain of the variable. It is thus possible to change the type of a semi-continuous variable to continuous, or to change the type of a semi-integer variable to integer, without affecting the feasible region of the model.
Arguments
- env
-
A pointer to the CPLEX environment, as returned by
CPXXopenCPLEX/CPXopenCPLEX. - lp
-
A pointer to a CPLEX LP problem object, as returned by
CPXXcreateprob/CPXcreateprob. - redlb
- An array to receive the strengthened lower bounds. The array must be of length at least the number of columns in the LP problem object. May be NULL.
- redub
- An array to receive the strengthened upper bounds. The array must be of length at least the number of columns in the LP problem object. May be NULL.
- rstat
- An array to receive the status of the row. The array must be of length at least the number of rows in the LP problem object. May be NULL.
Return
The routine returns 0 (zero) if successful and nonzero if an error occurs.Example
status = CPXbasicpresolve (env, lp, reducelb, reduceub, rowstat);