All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
lpi.h
Go to the documentation of this file.
22 * This file specifies a generic LP solver interface used by SCIP to create, modify, and solve linear programs of the
29 * and query information about the solution. Although it includes a few SCIP header files, e.g., because it uses SCIP's
32 * In the methods accessing information about the (inverse of the) basis matrix, the interface assumes the following
33 * column-oriented format: slack variables of rows have coefficient +1 and the basis matrix is a regular m times m
34 * submatrix of (A,I), where m is the number of rows and I is the identity matrix. This means that if, internally, the
35 * LP solver uses coefficients -1 for some of the slack variables, then rows associated with slacks variables whose
36 * coefficient is -1 should be negated in order to return the result in terms of the LP interface definition.
39 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
145 * @note ind array is not checked for duplicates, problems may appear if indeces are added more than once
169 /** deletes columns from SCIP_LPI; the new position of a column must not be greater that its old position */
180 * @note ind array is not checked for duplicates, problems may appear if indeces are added more than once
203 /** deletes rows from SCIP_LPI; the new position of a row must not be greater that its old position */
263 /** multiplies a row with a non-zero scalar; for negative scalars, the row's sense is switched accordingly */
271 /** multiplies a column with a non-zero scalar; the objective value is multiplied with the scalar, and the bounds
320 /** gets columns from LP problem object; the arrays have to be large enough to store all values;
362 int namestoragesize, /**< size of namestorage (if 0, -storageleft returns the storage needed) */
374 int namestoragesize, /**< size of namestorage (if 0, -storageleft returns the storage needed) */
440 /** calls barrier or interior point algorithm to solve the LP with crossover to simplex basis */
550 /** returns TRUE iff LP is proven to have a primal unbounded ray (but not necessary a primal feasible point);
558 /** returns TRUE iff LP is proven to have a primal unbounded ray (but not necessary a primal feasible point),
584 /** returns TRUE iff LP is proven to have a dual unbounded ray (but not necessary a dual feasible point);
592 /** returns TRUE iff LP is proven to have a dual unbounded ray (but not necessary a dual feasible point),
654 /** tries to reset the internal status of the LP solver in order to ignore an instability of the last solving call */
702 * Such information is usually only available, if also a (maybe not optimal) solution is available.
703 * The LPI should return SCIP_INVALID for @p quality, if the requested quantity is not available.
724 /** gets current basis status for columns and rows; arrays must be large enough to store the basis status */
740 /** returns the indices of the basic columns and rows; basic column n gives value n, basic row m gives value -1-m */
749 * @note The LP interface defines slack variables to have coefficient +1. This means that if, internally, the LP solver
750 * uses a -1 coefficient, then rows associated with slacks variables whose coefficient is -1, should be negated;
762 * @note The LP interface defines slack variables to have coefficient +1. This means that if, internally, the LP solver
763 * uses a -1 coefficient, then rows associated with slacks variables whose coefficient is -1, should be negated;
779 * @note The LP interface defines slack variables to have coefficient +1. This means that if, internally, the LP solver
780 * uses a -1 coefficient, then rows associated with slacks variables whose coefficient is -1, should be negated;
787 const SCIP_Real* binvrow, /**< row in (A_B)^-1 from prior call to SCIPlpiGetBInvRow(), or NULL */
793 * @note The LP interface defines slack variables to have coefficient +1. This means that if, internally, the LP solver
794 * uses a -1 coefficient, then rows associated with slacks variables whose coefficient is -1, should be negated;
824 /** loads LPi state (like basis information) into solver; note that the LP might have been extended with additional
887 /** loads LPi pricing norms into solver; note that the LP might have been extended with additional
SCIP_RETCODE SCIPlpiReadState(SCIP_LPI *lpi, const char *fname) Definition: lpi_clp.cpp:3313 SCIP_RETCODE SCIPlpiFreeNorms(SCIP_LPI *lpi, BMS_BLKMEM *blkmem, SCIP_LPINORMS **lpinorms) Definition: lpi_clp.cpp:3396 SCIP_RETCODE SCIPlpiGetDualfarkas(SCIP_LPI *lpi, SCIP_Real *dualfarkas) Definition: lpi_clp.cpp:2721 SCIP_RETCODE SCIPlpiGetRealSolQuality(SCIP_LPI *lpi, SCIP_LPSOLQUALITY qualityindicator, SCIP_Real *quality) Definition: lpi_clp.cpp:2771 SCIP_Bool SCIPlpiHasStateBasis(SCIP_LPI *lpi, SCIP_LPISTATE *lpistate) Definition: lpi_clp.cpp:3304 SCIP_RETCODE SCIPlpiGetRealpar(SCIP_LPI *lpi, SCIP_LPPARAM type, SCIP_Real *dval) Definition: lpi_clp.cpp:3567 SCIP_Bool SCIPlpiIsPrimalUnbounded(SCIP_LPI *lpi) Definition: lpi_clp.cpp:2360 SCIP_RETCODE SCIPlpiStrongbranchesInt(SCIP_LPI *lpi, int *cols, int ncols, SCIP_Real *psols, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, int *iter) Definition: lpi_clp.cpp:2236 SCIP_RETCODE SCIPlpiLoadColLP(SCIP_LPI *lpi, SCIP_OBJSEN objsen, int ncols, const SCIP_Real *obj, const SCIP_Real *lb, const SCIP_Real *ub, char **colnames, int nrows, const SCIP_Real *lhs, const SCIP_Real *rhs, char **rownames, int nnonz, const int *beg, const int *ind, const SCIP_Real *val) Definition: lpi_clp.cpp:572 SCIP_RETCODE SCIPlpiIgnoreInstability(SCIP_LPI *lpi, SCIP_Bool *success) Definition: lpi_clp.cpp:1475 SCIP_RETCODE SCIPlpiAddCols(SCIP_LPI *lpi, int ncols, const SCIP_Real *obj, const SCIP_Real *lb, const SCIP_Real *ub, char **colnames, int nnonz, const int *beg, const int *ind, const SCIP_Real *val) Definition: lpi_clp.cpp:638 SCIP_RETCODE SCIPlpiGetObj(SCIP_LPI *lpi, int firstcol, int lastcol, SCIP_Real *vals) Definition: lpi_clp.cpp:1513 SCIP_RETCODE SCIPlpiEndStrongbranch(SCIP_LPI *lpi) Definition: lpi_clp.cpp:1830 SCIP_RETCODE SCIPlpiScaleRow(SCIP_LPI *lpi, int row, SCIP_Real scaleval) Definition: lpi_clp.cpp:1105 SCIP_RETCODE SCIPlpiGetBInvARow(SCIP_LPI *lpi, int r, const SCIP_Real *binvrow, SCIP_Real *coef) Definition: lpi_clp.cpp:3114 SCIP_RETCODE SCIPlpiChgCoef(SCIP_LPI *lpi, int row, int col, SCIP_Real newval) Definition: lpi_clp.cpp:1035 SCIP_RETCODE SCIPlpiGetRowNames(SCIP_LPI *lpi, int firstrow, int lastrow, char **rownames, char *namestorage, int namestoragesize, int *storageleft) Definition: lpi_clp.cpp:1459 SCIP_RETCODE SCIPlpiGetIntpar(SCIP_LPI *lpi, SCIP_LPPARAM type, int *ival) Definition: lpi_clp.cpp:3421 SCIP_RETCODE SCIPlpiGetSides(SCIP_LPI *lpi, int firstrow, int lastrow, SCIP_Real *lhss, SCIP_Real *rhss) Definition: lpi_clp.cpp:1567 type definitions for return codes for SCIP methods Definition: lpi_cpx.c:191 SCIP_RETCODE SCIPlpiSetNorms(SCIP_LPI *lpi, BMS_BLKMEM *blkmem, SCIP_LPINORMS *lpinorms) Definition: lpi_clp.cpp:3383 SCIP_RETCODE SCIPlpiGetBounds(SCIP_LPI *lpi, int firstcol, int lastcol, SCIP_Real *lbs, SCIP_Real *ubs) Definition: lpi_clp.cpp:1536 SCIP_RETCODE SCIPlpiFreeState(SCIP_LPI *lpi, BMS_BLKMEM *blkmem, SCIP_LPISTATE **lpistate) Definition: lpi_clp.cpp:3286 SCIP_RETCODE SCIPlpiStrongbranchFrac(SCIP_LPI *lpi, int col, SCIP_Real psol, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, int *iter) Definition: lpi_clp.cpp:2169 SCIP_RETCODE SCIPlpiGetObjsen(SCIP_LPI *lpi, SCIP_OBJSEN *objsen) Definition: lpi_clp.cpp:1493 type definitions for specific LP solvers interface SCIP_RETCODE SCIPlpiDelRows(SCIP_LPI *lpi, int firstrow, int lastrow) Definition: lpi_clp.cpp:844 SCIP_RETCODE SCIPlpiChgSides(SCIP_LPI *lpi, int nrows, const int *ind, const SCIP_Real *lhs, const SCIP_Real *rhs) Definition: lpi_clp.cpp:1007 SCIP_RETCODE SCIPlpiStartStrongbranch(SCIP_LPI *lpi) Definition: lpi_clp.cpp:1821 SCIP_RETCODE SCIPlpiGetObjval(SCIP_LPI *lpi, SCIP_Real *objval) Definition: lpi_clp.cpp:2634 SCIP_RETCODE SCIPlpiGetBInvCol(SCIP_LPI *lpi, int c, SCIP_Real *coef) Definition: lpi_clp.cpp:3082 SCIP_Bool SCIPlpiIsPrimalInfeasible(SCIP_LPI *lpi) Definition: lpi_clp.cpp:2374 SCIP_RETCODE SCIPlpiGetSol(SCIP_LPI *lpi, SCIP_Real *objval, SCIP_Real *primsol, SCIP_Real *dualsol, SCIP_Real *activity, SCIP_Real *redcost) Definition: lpi_clp.cpp:2652 SCIP_Bool SCIPlpiIsInfinity(SCIP_LPI *lpi, SCIP_Real val) Definition: lpi_clp.cpp:3681 SCIP_RETCODE SCIPlpiScaleCol(SCIP_LPI *lpi, int col, SCIP_Real scaleval) Definition: lpi_clp.cpp:1178 SCIP_RETCODE SCIPlpiSetIntpar(SCIP_LPI *lpi, SCIP_LPPARAM type, int ival) Definition: lpi_clp.cpp:3465 SCIP_RETCODE SCIPlpiChgObj(SCIP_LPI *lpi, int ncols, int *ind, SCIP_Real *obj) Definition: lpi_clp.cpp:1078 SCIP_RETCODE SCIPlpiGetPrimalRay(SCIP_LPI *lpi, SCIP_Real *ray) Definition: lpi_clp.cpp:2696 SCIP_RETCODE SCIPlpiReadLP(SCIP_LPI *lpi, const char *fname) Definition: lpi_clp.cpp:3721 SCIP_RETCODE SCIPlpiSetRealpar(SCIP_LPI *lpi, SCIP_LPPARAM type, SCIP_Real dval) Definition: lpi_clp.cpp:3613 SCIP_RETCODE SCIPlpiGetBInvRow(SCIP_LPI *lpi, int r, SCIP_Real *coef) Definition: lpi_clp.cpp:3054 SCIP_RETCODE SCIPlpiStrongbranchesFrac(SCIP_LPI *lpi, int *cols, int ncols, SCIP_Real *psols, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, int *iter) Definition: lpi_clp.cpp:2190 SCIP_RETCODE SCIPlpiGetBase(SCIP_LPI *lpi, int *cstat, int *rstat) Definition: lpi_clp.cpp:2798 SCIP_RETCODE SCIPlpiAddRows(SCIP_LPI *lpi, int nrows, const SCIP_Real *lhs, const SCIP_Real *rhs, char **rownames, int nnonz, const int *beg, const int *ind, const SCIP_Real *val) Definition: lpi_clp.cpp:782 SCIP_RETCODE SCIPlpiWriteLP(SCIP_LPI *lpi, const char *fname) Definition: lpi_clp.cpp:3749 SCIP_RETCODE SCIPlpiGetNorms(SCIP_LPI *lpi, BMS_BLKMEM *blkmem, SCIP_LPINORMS **lpinorms) Definition: lpi_clp.cpp:3367 SCIP_RETCODE SCIPlpiGetRows(SCIP_LPI *lpi, int firstrow, int lastrow, SCIP_Real *lhs, SCIP_Real *rhs, int *nnonz, int *beg, int *ind, SCIP_Real *val) Definition: lpi_clp.cpp:1379 SCIP_RETCODE SCIPlpiChgBounds(SCIP_LPI *lpi, int ncols, const int *ind, const SCIP_Real *lb, const SCIP_Real *ub) Definition: lpi_clp.cpp:941 SCIP_RETCODE SCIPlpiGetState(SCIP_LPI *lpi, BMS_BLKMEM *blkmem, SCIP_LPISTATE **lpistate) Definition: lpi_clp.cpp:3176 SCIP_RETCODE SCIPlpiSetState(SCIP_LPI *lpi, BMS_BLKMEM *blkmem, SCIP_LPISTATE *lpistate) Definition: lpi_clp.cpp:3216 SCIP_RETCODE SCIPlpiCreate(SCIP_LPI **lpi, SCIP_MESSAGEHDLR *messagehdlr, const char *name, SCIP_OBJSEN objsen) Definition: lpi_clp.cpp:469 SCIP_RETCODE SCIPlpiChgObjsen(SCIP_LPI *lpi, SCIP_OBJSEN objsen) Definition: lpi_clp.cpp:1058 SCIP_RETCODE SCIPlpiGetSolFeasibility(SCIP_LPI *lpi, SCIP_Bool *primalfeasible, SCIP_Bool *dualfeasible) Definition: lpi_clp.cpp:2281 SCIP_RETCODE SCIPlpiGetCols(SCIP_LPI *lpi, int firstcol, int lastcol, SCIP_Real *lb, SCIP_Real *ub, int *nnonz, int *beg, int *ind, SCIP_Real *val) Definition: lpi_clp.cpp:1312 SCIP_RETCODE SCIPlpiStrongbranchInt(SCIP_LPI *lpi, int col, SCIP_Real psol, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, int *iter) Definition: lpi_clp.cpp:2215 SCIP_RETCODE SCIPlpiGetIterations(SCIP_LPI *lpi, int *iterations) Definition: lpi_clp.cpp:2753 SCIP_RETCODE SCIPlpiDelCols(SCIP_LPI *lpi, int firstcol, int lastcol) Definition: lpi_clp.cpp:705 SCIP_RETCODE SCIPlpiSetBase(SCIP_LPI *lpi, int *cstat, int *rstat) Definition: lpi_clp.cpp:2886 SCIP_RETCODE SCIPlpiWriteState(SCIP_LPI *lpi, const char *fname) Definition: lpi_clp.cpp:3330 common defines and data types used in all packages of SCIP SCIP_RETCODE SCIPlpiGetCoef(SCIP_LPI *lpi, int row, int col, SCIP_Real *val) Definition: lpi_clp.cpp:1598 SCIP_RETCODE SCIPlpiGetBInvACol(SCIP_LPI *lpi, int c, SCIP_Real *coef) Definition: lpi_clp.cpp:3143 SCIP_RETCODE SCIPlpiGetBasisInd(SCIP_LPI *lpi, int *bind) Definition: lpi_clp.cpp:3002 SCIP_RETCODE SCIPlpiGetColNames(SCIP_LPI *lpi, int firstcol, int lastcol, char **colnames, char *namestorage, int namestoragesize, int *storageleft) Definition: lpi_clp.cpp:1443 SCIP_RETCODE SCIPlpiSolveBarrier(SCIP_LPI *lpi, SCIP_Bool crossover) Definition: lpi_clp.cpp:1780 |