lpi_clp.cpp File Reference Detailed DescriptionLP interface for Clp. Notes on this interface:
Definition in file lpi_clp.cpp. #include <ClpSimplex.hpp> #include <ClpPrimalColumnSteepest.hpp> #include <ClpDualRowSteepest.hpp> #include <CoinIndexedVector.hpp> #include <ClpConfig.h> #include <config_clp.h> #include <cassert> #include <cstdlib> #include <iostream> #include <vector> #include <string> #include "lpi/lpi.h" #include "scip/bitencode.h" #include "scip/pub_message.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 66 of file lpi_clp.cpp. Referenced by SCIPlpiGetSolverName().
Definition at line 90 of file lpi_clp.cpp. Referenced by SCIPlpiGetSolFeasibility().
Definition at line 116 of file lpi_clp.cpp. Referenced by colpacketNum().
Definition at line 118 of file lpi_clp.cpp. Referenced by rowpacketNum(). Typedef Documentation
Definitions for storing basis status (copied from lpi_spx.cpp) Definition at line 115 of file lpi_clp.cpp.
Definition at line 117 of file lpi_clp.cpp. Function Documentation
resizes cstat array to have at least num entries
Definition at line 138 of file lpi_clp.cpp. References BMSreallocMemoryArray, SCIP_LPi::cstat, SCIP_LPi::cstatsize, MAX, SCIP_ALLOC, and SCIP_OKAY. Referenced by SCIPlpiGetState(), and SCIPlpiSetState().
resizes rstat array to have at least num entries
Definition at line 160 of file lpi_clp.cpp. References BMSreallocMemoryArray, MAX, SCIP_LPi::rstat, SCIP_LPi::rstatsize, SCIP_ALLOC, and SCIP_OKAY. Referenced by SCIPlpiGetState(), and SCIPlpiSetState().
returns the number of packets needed to store column packet information
Definition at line 189 of file lpi_clp.cpp. References COLS_PER_PACKET. Referenced by lpistateCreate(), and lpistateFree().
returns the number of packets needed to store row packet information
Definition at line 198 of file lpi_clp.cpp. References ROWS_PER_PACKET. Referenced by lpistateCreate(), and lpistateFree().
store row and column basis status in a packed LPi state object
Definition at line 207 of file lpi_clp.cpp. References SCIP_LPiState::ncols, SCIP_LPiState::nrows, SCIP_LPiState::packcstat, SCIP_LPiState::packrstat, and SCIPencodeDualBit(). Referenced by SCIPlpiGetState().
unpacks row and column basis status from a packed LPi state object
Definition at line 223 of file lpi_clp.cpp. References SCIP_LPiState::ncols, SCIP_LPiState::nrows, SCIP_LPiState::packcstat, SCIP_LPiState::packrstat, and SCIPdecodeDualBit(). Referenced by SCIPlpiSetState().
creates LPi state information object
Definition at line 239 of file lpi_clp.cpp. References BMSallocBlockMemory, BMSallocBlockMemoryArray, colpacketNum(), rowpacketNum(), SCIP_ALLOC, and SCIP_OKAY. Referenced by SCIPlpiGetState().
frees LPi state information
Definition at line 260 of file lpi_clp.cpp. References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, colpacketNum(), and rowpacketNum(). Referenced by SCIPlpiFreeState().
marks the current LP to be unsolved
Definition at line 284 of file lpi_clp.cpp. References FALSE, NULL, and SCIP_LPi::solved. Referenced by SCIPlpiAddCols(), SCIPlpiAddRows(), SCIPlpiChgBounds(), SCIPlpiChgCoef(), SCIPlpiChgObj(), SCIPlpiChgObjsen(), SCIPlpiChgSides(), SCIPlpiClear(), SCIPlpiCreate(), SCIPlpiDelCols(), SCIPlpiDelColset(), SCIPlpiDelRows(), SCIPlpiDelRowset(), SCIPlpiLoadColLP(), SCIPlpiScaleCol(), SCIPlpiScaleRow(), SCIPlpiSetBase(), SCIPlpiSolveBarrier(), SCIPlpiSolveDual(), and SCIPlpiSolvePrimal().
set factorization frequency
Definition at line 294 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIP_LPi::setFactorizationFrequency.
this methods sets parameters of Clp Perturbation: 50 - switch on perturbation 100 - auto perturb if takes too long (1.0e-6 largest nonzero) 101 - we are perturbed 102 - don't try perturbing again
for Clp 1.8 stable: 50 seems to be 10% faster than 100 Special options description from ClpModell.hpp: 1 - Don't keep changing infeasibility weight 2 - Keep nonLinearCost round solves 4 - Force outgoing variables to exact bound (primal) 8 - Safe to use dense initial factorization 16 - Just use basic variables for operation if column generation 32 - Create ray even in BAB 64 - Treat problem as feasible until last minute (i.e. minimize infeasibilities) 128 - Switch off all matrix sanity checks 256 - No row copy 512 - If not in values pass, solution guaranteed, skip as much as possible 1024 - In branch and bound 2048 - Don't bother to re-factorize if < 20 iterations 4096 - Skip some optimality checks 8192 - Do Primal when cleaning up primal 16384 - In fast dual (so we can switch off things) 32768 - called from Osi 65536 - keep arrays around as much as possible (also use maximumR/C) 131072 - transposeTimes is -1.0 and can skip basic and fixed 262144 - extra copy of scaled matrix 524288 - Clp fast dual 1048576 - don't need to finish dual (can return 3) NOTE - many applications can call Clp but there may be some short cuts which are taken which are not guaranteed safe from all applications. Vetted applications will have a bit set and the code may test this At present I expect a few such applications - if too many I will have to re-think. It is up to application owner to change the code if she/he needs these short cuts. I will not debug unless in Coin repository. See COIN_CLP_VETTED comments. 0x01000000 is Cbc (and in branch and bound) 0x02000000 is in a different branch and bound Comments: 2 - nonlinear costs are used in primal for infeasibility weight 4 - in anti-degeneracy operations can move variables just off a bound 8 - means dense nucleus in factorization - normally not safe in first factorization as singularity handling is not useful. Is switched on if going from dual to primal or vv. 16 - Used for "real" column generation 64 - Good idea, since in B&B most problems are feasible. 128 - Assumes user will not create tiny or duplicate elements. 256 - Normally Clp keeps a scaled row copy for speed. For very large problems you might want to turn it off. 512 - Means nonbasic variables should be at bounds and basis will be reasonable. 4096 - Skip some optimality checks 8192 - If the primal has a perturbed problem and needs to clean up, it normally uses dual - but in some cases can be better to use primal. 32768 - Just switches off some messages e.g. empty problem. 131072 - used internally 262144 - Normally Clp has unscaled column copy of matrix - this makes an extra scaled copy. 524288 - used internally 1048576 - only set by fastDual 0x02000000 - main point: does allow use of disaster handler Cbc seems to use the following special options: lpi->clp->setSpecialOptions(64|128|1024|2048|4096|32768|262144|0x01000000); Sometimes 512+8192 and 8192 or 8 are used as well.
Definition at line 308 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_LPi::fastmip, and TRUE. Referenced by SCIPlpiSetIntpar().
this methods sets parameters of Clp
Definition at line 403 of file lpi_clp.cpp. References SCIP_LPi::clp, FALSE, and SCIP_LPi::fastmip. Referenced by SCIPlpiSetIntpar().
gets name and version of LP solver Definition at line 433 of file lpi_clp.cpp. References CLP_VERSION.
gets description of LP solver (developer, webpage, ...) Definition at line 442 of file lpi_clp.cpp.
gets pointer for LP solver - use only with great care
Definition at line 450 of file lpi_clp.cpp. References SCIP_LPi::clp.
creates an LP problem object
Definition at line 469 of file lpi_clp.cpp. References BMSallocMemory, FALSE, invalidateSolution(), SCIP_ALLOC, SCIP_CALL, SCIP_LPPAR_PRICING, SCIP_OKAY, SCIP_PRICING_LPIDEFAULT, SCIPdebugMessage, and SCIPlpiSetIntpar().
deletes an LP problem object
Definition at line 538 of file lpi_clp.cpp. References BMSfreeMemory, BMSfreeMemoryArrayNull, SCIP_OKAY, and SCIPdebugMessage.
copies LP data with column matrix into LP solver
Definition at line 572 of file lpi_clp.cpp. References BMSallocMemoryArray, BMScopyMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, invalidateSolution(), SCIP_LPi::ncols, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
adds columns to the LP
Definition at line 638 of file lpi_clp.cpp. References BMSallocMemoryArray, BMScopyMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, invalidateSolution(), SCIP_LPi::ncols, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
deletes all columns in the given range from LP
Definition at line 705 of file lpi_clp.cpp. References BMSallocMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, invalidateSolution(), NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
deletes columns from SCIP_LPI; the new position of a column must not be greater that its old position
Definition at line 736 of file lpi_clp.cpp. References BMSallocMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, invalidateSolution(), SCIP_LPi::ncols, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
adds rows to the LP
Definition at line 782 of file lpi_clp.cpp. References BMSallocMemoryArray, BMScopyMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, invalidateSolution(), SCIP_LPi::nrows, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
deletes all rows in the given range from LP
Definition at line 844 of file lpi_clp.cpp. References BMSallocMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, invalidateSolution(), NULL, SCIP_ALLOC, 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 876 of file lpi_clp.cpp. References BMSallocMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, invalidateSolution(), SCIP_LPi::nrows, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
clears the whole LP
Definition at line 922 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_OKAY, and SCIPdebugMessage.
changes lower and upper bounds of columns
Definition at line 941 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_LPi::ncols, SCIP_OKAY, and SCIPdebugMessage.
changes left and right hand sides of rows
Definition at line 1007 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_LPi::nrows, SCIP_OKAY, and SCIPdebugMessage.
changes a single coefficient
Definition at line 1035 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_OKAY, and SCIPdebugMessage.
changes the objective sense
Definition at line 1058 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_OKAY, and SCIPdebugMessage.
changes objective values of columns in the LP
Definition at line 1078 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_LPi::ncols, SCIP_OKAY, and SCIPdebugMessage.
multiplies a row with a non-zero scalar; for negative scalars, the row's sense is switched accordingly
Definition at line 1105 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_OKAY, SCIP_Real, and SCIPdebugMessage.
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 1178 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_OKAY, SCIP_Real, and SCIPdebugMessage.
gets the number of rows in the LP
Definition at line 1255 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
gets the number of columns in the LP
Definition at line 1273 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
gets the number of nonzero elements in the LP constraint matrix
Definition at line 1291 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
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 0, or both have to be non-0, either nnonz, beg, ind, and val have to be 0, or all of them have to be non-0.
Definition at line 1312 of file lpi_clp.cpp. References BMScopyMemoryArray, SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
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 0, or both have to be non-0, either nnonz, beg, ind, and val have to be 0, or all of them have to be non-0.
Definition at line 1379 of file lpi_clp.cpp. References BMScopyMemoryArray, SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
gets column names
Definition at line 1443 of file lpi_clp.cpp. References SCIP_LPERROR, and SCIPerrorMessage.
gets row names
Definition at line 1459 of file lpi_clp.cpp. References SCIP_LPERROR, and SCIPerrorMessage.
tries to reset the internal status of the LP solver in order to ignore an instability of the last solving call
Definition at line 1475 of file lpi_clp.cpp. References SCIP_LPi::clp, FALSE, NULL, SCIP_OKAY, and SCIPdebugMessage.
gets the objective sense of the LP
Definition at line 1493 of file lpi_clp.cpp. References SCIP_LPi::clp, NULL, SCIP_OBJSEN_MAXIMIZE, SCIP_OBJSEN_MINIMIZE, and SCIP_OKAY.
gets objective coefficients from LP problem object
Definition at line 1513 of file lpi_clp.cpp. References BMScopyMemoryArray, SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
gets current bounds from LP problem object
Definition at line 1536 of file lpi_clp.cpp. References BMScopyMemoryArray, SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
gets current row sides from LP problem object
Definition at line 1567 of file lpi_clp.cpp. References BMScopyMemoryArray, SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
gets a single coefficient
Definition at line 1598 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
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 1632 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIPdebugMessage, SCIPlpiWriteLP(), SCIPlpiWriteState(), SCIP_LPi::setFactorizationFrequency, SCIP_LPi::solved, SCIP_LPi::startscratch, TRUE, and SCIP_LPi::validFactorization.
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 1705 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_CALL, SCIP_LPERROR, SCIP_OKAY, SCIPdebugMessage, SCIPlpiWriteLP(), SCIPlpiWriteState(), SCIP_LPi::setFactorizationFrequency, SCIP_LPi::solved, SCIP_LPi::startscratch, TRUE, and SCIP_LPi::validFactorization.
calls barrier or interior point algorithm to solve the LP with crossover to simplex basis
Definition at line 1780 of file lpi_clp.cpp. References SCIP_LPi::clp, invalidateSolution(), SCIP_LPERROR, SCIP_OKAY, SCIPdebugMessage, SCIP_LPi::solved, and TRUE.
start strong branching - call before any strongbranching
Definition at line 1821 of file lpi_clp.cpp. References SCIP_OKAY.
end strong branching - call after any strongbranching
Definition at line 1830 of file lpi_clp.cpp. References SCIP_OKAY.
performs strong branching iterations on one arbitrary candidate Clp special options: 1 - Don't keep changing infeasibility weight 2 - Keep nonLinearCost round solves 4 - Force outgoing variables to exact bound (primal) 8 - Safe to use dense initial factorization 16 - Just use basic variables for operation if column generation 32 - Create ray even in BAB 64 - Treat problem as feasible until last minute (i.e. minimize infeasibilities) 128 - Switch off all matrix sanity checks 256 - No row copy 512 - If not in values pass, solution guaranteed, skip as much as possible 1024 - In branch and bound 2048 - Don't bother to re-factorize if < 20 iterations 4096 - Skip some optimality checks 8192 - Do Primal when cleaning up primal 16384 - In fast dual (so we can switch off things) 32768 - called from Osi 65536 - keep arrays around as much as possible (also use maximumR/C) 131072 - transposeTimes is -1.0 and can skip basic and fixed 262144 - extra copy of scaled matrix 524288 - Clp fast dual 1048576 - don't need to finish dual (can return 3) NOTE - many applications can call Clp but there may be some short cuts which are taken which are not guaranteed safe from all applications. Vetted applications will have a bit set and the code may test this At present I expect a few such applications - if too many I will have to re-think. It is up to application owner to change the code if she/he needs these short cuts. I will not debug unless in Coin repository. See COIN_CLP_VETTED comments. 0x01000000 is Cbc (and in branch and bound) 0x02000000 is in a different branch and bound 2048 does not seem to work 262144 does not seem to work For strong branching. On input lower and upper are new bounds while on output they are change in objective function values (>1.0e50 infeasible). Return code is 0 if nothing interesting, -1 if infeasible both ways and +1 if infeasible one way (check values to see which one(s)) -2 if bad factorization Solutions are filled in as well - even down, odd up - also status and number of iterations The bools are: bool stopOnFirstInfeasible bool alwaysFinish At the moment: we need alwaysFinish to get correct bounds.
Definition at line 1840 of file lpi_clp.cpp. References BMSallocMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, EPSCEIL, EPSFLOOR, SCIP_LPi::ncols, NULL, SCIP_ALLOC, SCIP_LPERROR, SCIP_OKAY, SCIPdebugMessage, TRUE, and SCIP_LPi::validFactorization. Referenced by SCIPlpiStrongbranchFrac(), and SCIPlpiStrongbranchInt().
performs strong branching iterations on given arbitrary candidates Clp special options: 1 - Don't keep changing infeasibility weight 2 - Keep nonLinearCost round solves 4 - Force outgoing variables to exact bound (primal) 8 - Safe to use dense initial factorization 16 - Just use basic variables for operation if column generation 32 - Create ray even in BAB 64 - Treat problem as feasible until last minute (i.e. minimize infeasibilities) 128 - Switch off all matrix sanity checks 256 - No row copy 512 - If not in values pass, solution guaranteed, skip as much as possible 1024 - In branch and bound 2048 - Don't bother to re-factorize if < 20 iterations 4096 - Skip some optimality checks 8192 - Do Primal when cleaning up primal 16384 - In fast dual (so we can switch off things) 32768 - called from Osi 65536 - keep arrays around as much as possible (also use maximumR/C) 131072 - transposeTimes is -1.0 and can skip basic and fixed 262144 - extra copy of scaled matrix 524288 - Clp fast dual 1048576 - don't need to finish dual (can return 3) NOTE - many applications can call Clp but there may be some short cuts which are taken which are not guaranteed safe from all applications. Vetted applications will have a bit set and the code may test this At present I expect a few such applications - if too many I will have to re-think. It is up to application owner to change the code if she/he needs these short cuts. I will not debug unless in Coin repository. See COIN_CLP_VETTED comments. 0x01000000 is Cbc (and in branch and bound) 0x02000000 is in a different branch and bound 2048 does not seem to work 262144 does not seem to work For strong branching. On input lower and upper are new bounds while on output they are change in objective function values (>1.0e50 infeasible). Return code is 0 if nothing interesting, -1 if infeasible both ways and +1 if infeasible one way (check values to see which one(s)) -2 if bad factorization Solutions are filled in as well - even down, odd up - also status and number of iterations The bools are: bool stopOnFirstInfeasible bool alwaysFinish At the moment: we need alwaysFinish to get correct bounds.
Definition at line 1999 of file lpi_clp.cpp. References BMSallocMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, EPSCEIL, EPSFLOOR, SCIP_LPi::ncols, NULL, SCIP_ALLOC, SCIP_LPERROR, SCIP_OKAY, SCIPdebugMessage, TRUE, and SCIP_LPi::validFactorization. Referenced by SCIPlpiStrongbranchesFrac(), and SCIPlpiStrongbranchesInt().
performs strong branching iterations on one fractional candidate
Definition at line 2169 of file lpi_clp.cpp. References lpiStrongbranch(), SCIP_CALL, and SCIP_OKAY.
performs strong branching iterations on given fractional candidates
Definition at line 2190 of file lpi_clp.cpp. References lpiStrongbranches(), NULL, SCIP_CALL, and SCIP_OKAY.
performs strong branching iterations on one candidate with integral value
Definition at line 2215 of file lpi_clp.cpp. References lpiStrongbranch(), SCIP_CALL, and SCIP_OKAY.
performs strong branching iterations on given candidates with integral values
Definition at line 2236 of file lpi_clp.cpp. References lpiStrongbranches(), NULL, SCIP_CALL, and SCIP_OKAY. returns whether a solve method was called after the last modification of the LP
Definition at line 2271 of file lpi_clp.cpp. References NULL, and SCIP_LPi::solved.
gets information about primal and dual feasibility of the current LP solution
Definition at line 2281 of file lpi_clp.cpp. References SCIP_LPi::clp, FALSE, SCIP_OKAY, SCIPdebugMessage, SUMINFEASBOUND, and TRUE. 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 2326 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. 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 2344 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. returns TRUE iff LP is proven to be primal unbounded
Definition at line 2360 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. returns TRUE iff LP is proven to be primal infeasible
Definition at line 2374 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. returns TRUE iff LP is proven to be primal feasible
Definition at line 2393 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. 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 2409 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. 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 2427 of file lpi_clp.cpp. References SCIP_LPi::clp, FALSE, SCIPdebugMessage, and TRUE. returns TRUE iff LP is proven to be dual unbounded
Definition at line 2455 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. returns TRUE iff LP is proven to be dual infeasible
Definition at line 2472 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. returns TRUE iff LP is proven to be dual feasible
Definition at line 2486 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. returns TRUE iff LP was solved to optimality
Definition at line 2500 of file lpi_clp.cpp. References SCIP_LPi::clp, FALSE, SCIPdebugMessage, and SCIPlpiIsObjlimExc(). returns TRUE iff current LP basis is stable
Definition at line 2518 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. returns TRUE iff the objective limit was reached
Definition at line 2556 of file lpi_clp.cpp. References SCIP_LPi::clp, FALSE, SCIPdebugMessage, and TRUE. Referenced by SCIPlpiIsOptimal(). returns TRUE iff the iteration limit was reached
Definition at line 2588 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage. returns TRUE iff the time limit was reached
Definition at line 2604 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage.
returns the internal solution status of the solver
Definition at line 2620 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIPdebugMessage.
gets objective value of solution
Definition at line 2634 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, and SCIPdebugMessage.
gets primal and dual solution vectors
Definition at line 2652 of file lpi_clp.cpp. References BMScopyMemoryArray, SCIP_LPi::clp, 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 2696 of file lpi_clp.cpp. References BMScopyMemoryArray, SCIP_LPi::clp, SCIP_LPERROR, SCIP_OKAY, and SCIPdebugMessage.
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 2721 of file lpi_clp.cpp. References BMScopyMemoryArray, SCIP_LPi::clp, SCIP_LPERROR, SCIP_OKAY, and SCIPdebugMessage.
gets the number of LP iterations of the last solve call
Definition at line 2753 of file lpi_clp.cpp. References SCIP_LPi::clp, and SCIP_OKAY.
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 2771 of file lpi_clp.cpp. 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 2798 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_INVALIDDATA, SCIP_OKAY, SCIPABORT, SCIPdebugMessage, and SCIPerrorMessage. Referenced by SCIPlpiGetState().
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 2886 of file lpi_clp.cpp. References SCIP_LPi::clp, EPSEQ, invalidateSolution(), SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_INVALIDDATA, SCIP_OKAY, SCIPABORT, SCIPdebugMessage, and SCIPerrorMessage. Referenced by SCIPlpiSetState().
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 3002 of file lpi_clp.cpp. References BMSallocMemoryArray, BMSfreeMemoryArray, SCIP_LPi::clp, SCIP_LPi::ncols, SCIP_LPi::nrows, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
get dense row of inverse basis matrix B^-1
Definition at line 3054 of file lpi_clp.cpp. References SCIP_LPi::clp, NULL, SCIP_OKAY, and SCIPdebugMessage.
get dense column of inverse basis matrix B^-1
Definition at line 3089 of file lpi_clp.cpp. References SCIP_LPi::clp, NULL, SCIP_OKAY, and SCIPdebugMessage.
get dense row of inverse basis matrix times constraint matrix B^-1 * A
Definition at line 3127 of file lpi_clp.cpp. References SCIP_LPi::clp, NULL, SCIP_OKAY, and SCIPdebugMessage.
get dense column of inverse basis matrix times constraint matrix B^-1 * A
Definition at line 3162 of file lpi_clp.cpp. References SCIP_LPi::clp, NULL, SCIP_OKAY, and SCIPdebugMessage.
stores LPi state (like basis information) into lpistate object
Definition at line 3202 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_LPi::cstat, ensureCstatMem(), ensureRstatMem(), lpistateCreate(), lpistatePack(), SCIP_LPi::ncols, SCIP_LPi::nrows, SCIP_LPi::rstat, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPlpiGetBase().
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 3242 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_LPi::cstat, ensureCstatMem(), ensureRstatMem(), lpistateUnpack(), SCIP_LPiState::ncols, SCIP_LPiState::nrows, REALABS, SCIP_LPi::rstat, SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpiIsInfinity(), and SCIPlpiSetBase().
clears current LPi state (like basis information) of the solver
Definition at line 3296 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, SCIPdebugMessage, and SCIP_LPi::validFactorization.
frees LPi state information
Definition at line 3312 of file lpi_clp.cpp. References lpistateFree(), NULL, SCIP_OKAY, and SCIPdebugMessage.
checks, whether the given LP state contains simplex basis information
Definition at line 3330 of file lpi_clp.cpp. 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 3339 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, SCIP_READERROR, 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 3356 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, SCIP_WRITEERROR, and SCIPdebugMessage. Referenced by SCIPlpiSolveDual(), and SCIPlpiSolvePrimal().
stores LPi pricing norms information
Definition at line 3393 of file lpi_clp.cpp.
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 3409 of file lpi_clp.cpp.
frees pricing norms information
Definition at line 3422 of file lpi_clp.cpp.
gets integer parameter of LP
Definition at line 3447 of file lpi_clp.cpp. References SCIP_LPi::clp, FALSE, SCIP_LPi::fastmip, SCIP_LPi::pricing, SCIP_LPPAR_FASTMIP, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_LPINFO, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_PRICING, SCIP_LPPAR_SCALING, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIPdebugMessage, SCIP_LPi::startscratch, and TRUE.
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 3491 of file lpi_clp.cpp. References SCIP_LPi::clp, FALSE, SCIP_LPi::pricing, SCIP_INVALIDDATA, SCIP_LPERROR, SCIP_LPPAR_FASTMIP, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_LPINFO, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_PRICING, SCIP_LPPAR_SCALING, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_PRICING_AUTO, SCIP_PRICING_DEVEX, SCIP_PRICING_FULL, SCIP_PRICING_LPIDEFAULT, SCIP_PRICING_STEEP, SCIP_PRICING_STEEPQSTART, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, setFastmipClpParameters(), SCIP_LPi::startscratch, TRUE, and unsetFastmipClpParameters(). Referenced by SCIPlpiCreate().
gets floating point parameter of LP
Definition at line 3593 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_LPPAR_BARRIERCONVTOL, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_LOBJLIM, SCIP_LPPAR_LPTILIM, SCIP_LPPAR_UOBJLIM, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, and SCIPdebugMessage.
sets floating point parameter of LP
Definition at line 3639 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_LPPAR_BARRIERCONVTOL, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_LOBJLIM, SCIP_LPPAR_LPTILIM, SCIP_LPPAR_UOBJLIM, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, and SCIPdebugMessage. returns value treated as infinity in the LP solver Definition at line 3696 of file lpi_clp.cpp. References SCIPdebugMessage. checks if given value is treated as infinity in the LP solver
Definition at line 3707 of file lpi_clp.cpp. References SCIPdebugMessage. Referenced by SCIPlpiSetState().
returns, whether the given file exists
Definition at line 3731 of file lpi_clp.cpp. Referenced by SCIPlpiReadLP().
reads LP from a file read file in MPS format parameters: filename bool keepNames bool ignoreErrors
Definition at line 3747 of file lpi_clp.cpp. References SCIP_LPi::clp, fileExists(), SCIP_NOFILE, SCIP_OKAY, SCIP_READERROR, 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 3775 of file lpi_clp.cpp. References SCIP_LPi::clp, SCIP_OKAY, SCIP_WRITEERROR, and SCIPdebugMessage. Referenced by SCIPlpiSolveDual(), and SCIPlpiSolvePrimal(). |