All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
lpi_xprs.c File Reference Detailed DescriptionLP interface for Xpress-MP. This interface was revised for Xpress 26. Therefore, we removed all legacy code. Xpress requires that column and row names are unique. Since column and row names are not needed we ignore all column and row names to avoid the uniqueness issue. Definition in file lpi_xprs.c. #include <string.h> #include <assert.h> #include "xprs.h" #include "scip/bitencode.h" #include "lpi/lpi.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 40 of file lpi_xprs.c.
Definition at line 44 of file lpi_xprs.c. Referenced by SCIPlpiGetSolFeasibility(), SCIPlpiIsDualFeasible(), SCIPlpiIsOptimal(), SCIPlpiIsPrimalFeasible(), and SCIPlpiIsStable().
Value:
{ int _restat_; \
if( (_restat_ = (x)) != 0 ) \
{ \
SCIPmessagePrintWarning((messagehdlr), "LP Error: Xpress returned %d\n", _restat_); \
return SCIP_LPERROR; \
} \
}
void SCIPmessagePrintWarning(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...) Definition: type_retcode.h:40 Definition at line 46 of file lpi_xprs.c. Referenced by SCIPlpiAddCols(), SCIPlpiAddRows(), SCIPlpiChgBounds(), SCIPlpiChgCoef(), SCIPlpiChgObj(), SCIPlpiChgObjsen(), SCIPlpiChgSides(), SCIPlpiClear(), SCIPlpiCreate(), SCIPlpiDelCols(), SCIPlpiDelColset(), SCIPlpiDelRows(), SCIPlpiDelRowset(), SCIPlpiFree(), SCIPlpiGetBase(), SCIPlpiGetBasisInd(), SCIPlpiGetBInvACol(), SCIPlpiGetBInvARow(), SCIPlpiGetBInvCol(), SCIPlpiGetBInvRow(), SCIPlpiGetBounds(), SCIPlpiGetCoef(), SCIPlpiGetCols(), SCIPlpiGetDualfarkas(), SCIPlpiGetIntpar(), SCIPlpiGetNCols(), SCIPlpiGetNNonz(), SCIPlpiGetNRows(), SCIPlpiGetObj(), SCIPlpiGetObjsen(), SCIPlpiGetObjval(), SCIPlpiGetPrimalRay(), SCIPlpiGetRealpar(), SCIPlpiGetRows(), SCIPlpiGetSides(), SCIPlpiGetSol(), SCIPlpiGetState(), SCIPlpiLoadColLP(), SCIPlpiReadLP(), SCIPlpiReadState(), SCIPlpiScaleCol(), SCIPlpiScaleRow(), SCIPlpiSetBase(), SCIPlpiSetIntpar(), SCIPlpiSetRealpar(), SCIPlpiSetState(), SCIPlpiSolveBarrier(), SCIPlpiWriteLP(), and SCIPlpiWriteState().
Value:
{ int _restat_; \
if( (_restat_ = (x)) != 0 ) \
{ \
SCIPABORT(); \
return retval; \
} \
}
void SCIPmessagePrintWarning(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...) Definition at line 55 of file lpi_xprs.c. Referenced by SCIPlpiHasDualRay(), SCIPlpiHasPrimalRay(), SCIPlpiIsIterlimExc(), and SCIPlpiIsTimelimExc().
Definition at line 66 of file lpi_xprs.c.
Definition at line 68 of file lpi_xprs.c. Typedef Documentation
Definition at line 65 of file lpi_xprs.c.
Definition at line 67 of file lpi_xprs.c. Function Documentation
gets name and version of LP solver Definition at line 659 of file lpi_xprs.c.
gets description of LP solver (developer, webpage, ...) Definition at line 675 of file lpi_xprs.c.
gets pointer for LP solver - use only with great care Here we return the pointer to the LP environment.
Definition at line 686 of file lpi_xprs.c.
creates an LP problem object
Definition at line 702 of file lpi_xprs.c. References CHECK_ZERO, FALSE, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpiChgObjsen(), SCIPmessagePrintWarning(), and TRUE.
deletes an LP problem object
Definition at line 775 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
copies LP data with column matrix into LP solver
Definition at line 814 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPlpiChgObjsen().
adds columns to the LP
Definition at line 870 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
deletes all columns in the given range from LP
Definition at line 906 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
deletes columns from SCIP_LP; the new position of a column must not be greater that its old position
Definition at line 936 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
adds rows to the LP
Definition at line 985 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
deletes all rows in the given range from LP
Definition at line 1023 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
deletes rows from SCIP_LP; the new position of a row must not be greater that its old position
Definition at line 1052 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
clears the whole LP
Definition at line 1101 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
changes lower and upper bounds of columns
Definition at line 1118 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, and SCIPdebugMessage. Referenced by SCIPlpiScaleCol().
changes left and right hand sides of rows
Definition at line 1143 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPlpiScaleRow().
changes a single coefficient
Definition at line 1173 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPlpiScaleCol(), and SCIPlpiScaleRow().
changes the objective sense
Definition at line 1193 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPlpiCreate(), and SCIPlpiLoadColLP().
changes objective values of columns in the LP
Definition at line 1211 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPlpiScaleCol().
multiplies a row with a non-zero scalar; for negative scalars, the row's sense is switched accordingly
Definition at line 1229 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpiChgCoef(), SCIPlpiChgSides(), and SCIPlpiGetRows().
multiplies a column with a non-zero scalar; the objective value is multiplied with the scalar, and the bounds are divided by the scalar; for negative scalars, the column's bounds are switched
Definition at line 1287 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpiChgBounds(), SCIPlpiChgCoef(), SCIPlpiChgObj(), SCIPlpiGetCols(), and SCIPlpiGetObj().
gets the number of rows in the LP
Definition at line 1359 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
gets the number of columns in the LP
Definition at line 1376 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
gets the number of nonzero elements in the LP constraint matrix
Definition at line 1393 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPlpiGetCols(), and SCIPlpiGetRows().
gets columns from LP problem object; the arrays have to be large enough to store all values Either both, lb and ub, have to be NULL, or both have to be non-NULL, either nnonz, beg, ind, and val have to be NULL, or all of them have to be non-NULL.
Definition at line 1413 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPlpiGetNNonz(). Referenced by SCIPlpiScaleCol().
gets rows from LP problem object; the arrays have to be large enough to store all values. Either both, lhs and rhs, have to be NULL, or both have to be non-NULL, either nnonz, beg, ind, and val have to be NULL, or all of them have to be non-NULL.
Definition at line 1483 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiGetNNonz(), and SCIPlpiGetSides(). Referenced by SCIPlpiScaleRow().
gets column names
Definition at line 1550 of file lpi_xprs.c. References SCIP_LPERROR, and SCIPerrorMessage.
gets row names
Definition at line 1565 of file lpi_xprs.c. References SCIP_LPERROR, and SCIPerrorMessage.
gets the objective sense of the LP
Definition at line 1580 of file lpi_xprs.c. References CHECK_ZERO, SCIP_OBJSEN_MAXIMIZE, SCIP_OBJSEN_MINIMIZE, and SCIP_OKAY.
gets objective coefficients from LP problem object
Definition at line 1600 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPlpiScaleCol().
gets current bounds from LP problem object
Definition at line 1620 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
gets current row sides from LP problem object
Definition at line 1648 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPlpiGetRows().
gets a single coefficient
Definition at line 1677 of file lpi_xprs.c. References CHECK_ZERO, NULL, and SCIP_OKAY.
calls primal simplex to solve the LP startFinishOptions - bits 1 - do not delete work areas and factorization at end 2 - use old factorization if same number of rows 4 - skip as much initialization of work areas as possible (work in progress) 4 does not seem to work. Primal algorithm
Definition at line 1775 of file lpi_xprs.c.
calls dual simplex to solve the LP startFinishOptions - bits 1 - do not delete work areas and factorization at end 2 - use old factorization if same number of rows 4 - skip as much initialization of work areas as possible (work in progress) 4 does not seem to work. Dual algorithm
Definition at line 1784 of file lpi_xprs.c.
calls barrier or interior point algorithm to solve the LP with crossover to simplex basis
Definition at line 1793 of file lpi_xprs.c. References CHECK_ZERO, NULL, and TRUE.
start strong branching - call before any strong branching
Definition at line 1815 of file lpi_xprs.c. References SCIP_OKAY.
end strong branching - call after any strong branching
Definition at line 1824 of file lpi_xprs.c. References SCIP_OKAY.
performs strong branching iterations on one fractional candidate
Definition at line 2024 of file lpi_xprs.c.
performs strong branching iterations on given fractional candidates
Definition at line 2045 of file lpi_xprs.c.
performs strong branching iterations on one candidate with integral value
Definition at line 2067 of file lpi_xprs.c.
performs strong branching iterations on given candidates with integral values
Definition at line 2088 of file lpi_xprs.c. returns whether a solve method was called after the last modification of the LP
Definition at line 2118 of file lpi_xprs.c. References NULL.
gets information about primal and dual feasibility of the current LP solution here "true" should mean feasible, "false" should mean unknown
Definition at line 2131 of file lpi_xprs.c. References NULL, SCIP_Bool, SCIP_OKAY, SCIPdebugMessage, and XPRS_LP_OPTIMAL_SCALEDINFEAS. returns TRUE iff LP is proven to have a primal unbounded ray (but not necessary a primal feasible point); this does not necessarily mean, that the solver knows and can return the primal ray
Definition at line 2153 of file lpi_xprs.c. References NULL. returns TRUE iff LP is proven to have a primal unbounded ray (but not necessary a primal feasible point), and the solver knows and can return the primal ray
Definition at line 2167 of file lpi_xprs.c. References ABORT_ZERO, FALSE, and NULL. returns TRUE iff LP is proven to be primal feasible and unbounded
Definition at line 2184 of file lpi_xprs.c. References NULL, and SCIPdebugMessage. returns TRUE iff LP is proven to be primal infeasible
Definition at line 2203 of file lpi_xprs.c. References NULL, and SCIPdebugMessage. returns TRUE iff LP is proven to be primal feasible
Definition at line 2217 of file lpi_xprs.c. References NULL, SCIPdebugMessage, and XPRS_LP_OPTIMAL_SCALEDINFEAS. returns TRUE iff LP is proven to have a dual unbounded ray (but not necessary a dual feasible point); this does not necessarily mean, that the solver knows and can return the dual ray
Definition at line 2234 of file lpi_xprs.c. References NULL. returns TRUE iff LP is proven to have a dual unbounded ray (but not necessary a dual feasible point), and the solver knows and can return the dual ray
Definition at line 2248 of file lpi_xprs.c. References ABORT_ZERO, FALSE, and NULL. returns TRUE iff LP is proven to be dual unbounded
Definition at line 2264 of file lpi_xprs.c. References NULL, and SCIPdebugMessage. returns TRUE iff LP is proven to be dual infeasible
Definition at line 2278 of file lpi_xprs.c. References NULL, and SCIPdebugMessage. returns TRUE iff LP is proven to be dual feasible
Definition at line 2292 of file lpi_xprs.c. References NULL, SCIPdebugMessage, and XPRS_LP_OPTIMAL_SCALEDINFEAS. returns TRUE iff LP was solved to optimality
Definition at line 2307 of file lpi_xprs.c. References NULL, and XPRS_LP_OPTIMAL_SCALEDINFEAS. returns TRUE iff current LP basis is stable
Definition at line 2319 of file lpi_xprs.c. References FALSE, NULL, SCIPdebugMessage, TRUE, and XPRS_LP_OPTIMAL_SCALEDINFEAS. returns TRUE iff the objective limit was reached
Definition at line 2353 of file lpi_xprs.c. References NULL. returns TRUE iff the iteration limit was reached
Definition at line 2365 of file lpi_xprs.c. References ABORT_ZERO, FALSE, NULL, and TRUE. returns TRUE iff the time limit was reached
Definition at line 2386 of file lpi_xprs.c. References ABORT_ZERO, FALSE, NULL, and TRUE.
returns the internal solution status of the solver
Definition at line 2407 of file lpi_xprs.c. References NULL.
tries to reset the internal status of the LP solver in order to ignore an instability of the last solving call
Definition at line 2418 of file lpi_xprs.c.
gets objective value of solution
Definition at line 2433 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
gets primal and dual solution vectors
Definition at line 2449 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
gets primal ray for unbounded LPs Unbounded ray (NULL returned if none/wrong). Up to user to use delete [] on these arrays.
Definition at line 2491 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_LPERROR, and SCIP_OKAY.
gets dual Farkas proof for infeasibility Infeasibility ray (NULL returned if none/wrong). Up to user to use delete [] on these arrays.
Definition at line 2512 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_LPERROR, and SCIP_OKAY.
gets the number of LP iterations of the last solve call
Definition at line 2533 of file lpi_xprs.c.
gets information about the quality of an LP solution Such information is usually only available, if also a (maybe not optimal) solution is available. The LPI should return SCIP_INVALID for
Definition at line 2553 of file lpi_xprs.c. References NULL, SCIP_INVALID, and SCIP_OKAY.
gets current basis status for columns and rows; arrays must be large enough to store the basis status
Definition at line 2576 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
sets current basis status for columns and rows Whats changed since last solve. Is only used when startFinishOptions used in dual or primal. Bit 1 - number of rows/columns has not changed (so work arrays valid) 2 - matrix has not changed 4 - if matrix has changed only by adding rows 8 - if matrix has changed only by adding columns 16 - row lbs not changed 32 - row ubs not changed 64 - column objective not changed 128 - column lbs not changed 256 - column ubs not changed 512 - basis not changed (up to user to set this to 0) top bits may be used internally
Definition at line 2593 of file lpi_xprs.c. References CHECK_ZERO, FALSE, NULL, SCIP_OKAY, and SCIPdebugMessage.
returns the indices of the basic columns and rows; basic column n gives value n, basic row m gives value -1-m
Definition at line 2616 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_OKAY, and SCIPdebugMessage.
get dense row of inverse basis matrix B^-1
Definition at line 2663 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPlpiGetBInvARow().
get dense column of inverse basis matrix B^-1
Definition at line 2699 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
get dense row of inverse basis matrix times constraint matrix B^-1 * A
Definition at line 2739 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, and SCIPlpiGetBInvRow().
get dense column of inverse basis matrix times constraint matrix B^-1 * A
Definition at line 2814 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
stores LPi state (like basis information) into lpistate object
Definition at line 2866 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
loads LPi state (like basis information) into solver; note that the LP might have been extended with additional columns and rows since the state was stored with SCIPlpiGetState()
Definition at line 2917 of file lpi_xprs.c. References CHECK_ZERO, FALSE, NULL, REALABS, SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, and SCIPlpiIsInfinity().
clears current LPi state (like basis information) of the solver
Definition at line 2988 of file lpi_xprs.c.
frees LPi state information
Definition at line 3001 of file lpi_xprs.c.
checks, whether the given LP state contains simplex basis information
Definition at line 3019 of file lpi_xprs.c. References NULL.
reads LP state (like basis information from a file Read a basis from the given filename, returns -1 on file error, 0 if no values, 1 if values
Definition at line 3029 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
writes LP state (like basis information) to a file Write the basis in MPS format to the specified file. If writeValues true, writes values of structurals (and adds VALUES to end of NAME card) parameters:
Definition at line 3045 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
stores LPi pricing norms information
Definition at line 3071 of file lpi_xprs.c.
loads LPi pricing norms into solver; note that the LP might have been extended with additional columns and rows since the state was stored with SCIPlpiGetNorms()
Definition at line 3087 of file lpi_xprs.c.
frees pricing norms information
Definition at line 3100 of file lpi_xprs.c.
gets integer parameter of LP
Definition at line 3121 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_LPINFO, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_PRESOLVING, SCIP_LPPAR_PRICING, SCIP_LPPAR_SCALING, SCIP_LPPAR_THREADS, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, and SCIPdebugMessage.
sets integer parameter of LP Amount of print out: 0 - none 1 - just final 2 - just factorizations 3 - as 2 plus a bit more 4 - verbose above that 8,16,32 etc just for selective SCIPdebug
Definition at line 3177 of file lpi_xprs.c. References CHECK_ZERO, FALSE, NULL, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_LPINFO, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_PRESOLVING, SCIP_LPPAR_PRICING, SCIP_LPPAR_SCALING, SCIP_LPPAR_THREADS, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_PRICING_AUTO, SCIP_PRICING_DEVEX, SCIP_PRICING_LPIDEFAULT, SCIP_PRICING_PARTIAL, SCIPdebugMessage, and TRUE.
gets floating point parameter of LP
Definition at line 3239 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_LPPAR_BARRIERCONVTOL, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_LOBJLIM, SCIP_LPPAR_LPTILIM, SCIP_LPPAR_MARKOWITZ, SCIP_LPPAR_UOBJLIM, SCIP_OBJSEN_MAXIMIZE, SCIP_OBJSEN_MINIMIZE, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, and SCIPdebugMessage.
sets floating point parameter of LP
Definition at line 3294 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_LPPAR_BARRIERCONVTOL, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_LOBJLIM, SCIP_LPPAR_LPTILIM, SCIP_LPPAR_MARKOWITZ, SCIP_LPPAR_UOBJLIM, SCIP_OBJSEN_MAXIMIZE, SCIP_OBJSEN_MINIMIZE, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, and SCIPdebugMessage. returns value treated as infinity in the LP solver
Definition at line 3349 of file lpi_xprs.c. References NULL. checks if given value is treated as infinity in the LP solver
Definition at line 3358 of file lpi_xprs.c. References NULL. Referenced by SCIPlpiSetState().
reads LP from a file read file in MPS format parameters: filename bool keepNames bool ignoreErrors
Definition at line 3376 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage.
writes LP to a file write file in MPS format parameters: filename int formatType (0 - normal, 1 - extra accuracy, 2 - IEEE hex) int numberAcross (1 or 2 values should be specified on every data line in the MPS file) double objSense
Definition at line 3392 of file lpi_xprs.c. References CHECK_ZERO, NULL, SCIP_OKAY, and SCIPdebugMessage. |