internal methods for LP management
Definition in file lp.h.
#include <stdio.h>
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_misc.h"
#include "scip/type_lp.h"
#include "scip/type_var.h"
#include "scip/type_prob.h"
#include "scip/type_sol.h"
#include "scip/type_branch.h"
#include "scip/type_message.h"
#include "scip/pub_lp.h"
#include "scip/struct_lp.h"
Go to the source code of this file.
SCIP_RETCODE colLink | ( | SCIP_COL * | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp ) |
insert column coefficients in corresponding rows
col | column data |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
Definition at line 2353 of file lp.c.
References assert(), checkLinks, SCIP_Row::cols, i, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, rowAddCoef(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetDebugMsg, SCIPsetIsZero(), SCIPvarGetName(), SCIP_Col::vals, and SCIP_Col::var.
Referenced by lpFlushAddCols().
SCIP_RETCODE colUnlink | ( | SCIP_COL * | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp ) |
removes column coefficients from corresponding rows
col | column data |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
Definition at line 2396 of file lp.c.
References assert(), checkLinks, SCIP_Row::cols, i, SCIP_Col::len, SCIP_Col::linkpos, NULL, SCIP_Col::nunlinked, rowDelCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetDebugMsg, SCIPvarGetName(), and SCIP_Col::var.
Referenced by SCIPcolFree().
SCIP_RETCODE rowLink | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp ) |
insert row coefficients in corresponding columns
row | row data |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
Definition at line 2434 of file lp.c.
References assert(), checkLinks, colAddCoef(), SCIP_Row::cols, i, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::name, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetDebugMsg, SCIPsetIsZero(), and SCIP_Row::vals.
Referenced by lpFlushAddRows(), and SCIPflushRowExtensions().
SCIP_RETCODE rowUnlink | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_LP * | lp ) |
removes row coefficients from corresponding columns
row | row data |
set | global SCIP settings |
lp | current LP data |
Definition at line 2476 of file lp.c.
References assert(), colDelCoefPos(), SCIP_Row::cols, i, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Row::name, NULL, SCIP_Row::nunlinked, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, and SCIPsetDebugMsg.
Referenced by SCIProwFree().
SCIP_RETCODE SCIPcolCreate | ( | SCIP_COL ** | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_VAR * | var, | ||
int | len, | ||
SCIP_ROW ** | rows, | ||
SCIP_Real * | vals, | ||
SCIP_Bool | removable ) |
creates an LP column
col | pointer to column data |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
var | variable, this column represents |
len | number of nonzeros in the column |
rows | array with rows of column entries |
vals | array with coefficients of column entries |
removable | should the column be removed from the LP due to aging or cleanup? |
Definition at line 3277 of file lp.c.
References assert(), BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, i, SCIP_Stat::ncolidx, NULL, SCIP_ALLOC, SCIP_BASESTAT_ZERO, SCIP_Bool, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPsetIsZero(), SCIPstatIncrement, SCIPvarGetLbLazy(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetUbLazy(), SCIPvarGetUbLocal(), SCIPvarGetUnchangedObj(), SCIPvarIsIntegral(), TRUE, and var.
Referenced by SCIPvarColumn().
SCIP_RETCODE SCIPcolFree | ( | SCIP_COL ** | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp ) |
frees an LP column
col | pointer to LP column |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
Definition at line 3375 of file lp.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, colUnlink(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, and SCIPvarGetStatus().
Referenced by SCIPvarLoose(), and varFree().
void SCIPcolPrint | ( | SCIP_COL * | col, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
FILE * | file ) |
output column to file stream
col | LP column |
messagehdlr | message handler |
file | output file (or NULL for standard output) |
Definition at line 3405 of file lp.c.
References assert(), SCIP_Col::lb, SCIP_Col::len, SCIP_Row::name, NULL, SCIP_Col::obj, r, SCIP_Col::rows, SCIPmessageFPrintInfo(), SCIP_Col::ub, SCIP_Col::vals, and SCIP_Col::var.
SCIP_RETCODE SCIPcolAddCoef | ( | SCIP_COL * | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_ROW * | row, | ||
SCIP_Real | val ) |
adds a previously non existing coefficient to an LP column
col | LP column |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
row | LP row |
val | value of coefficient |
Definition at line 3445 of file lp.c.
References assert(), checkLinks, colAddCoef(), SCIP_Lp::diving, NULL, SCIP_CALL, SCIP_OKAY, and SCIP_Real.
SCIP_RETCODE SCIPcolDelCoef | ( | SCIP_COL * | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_ROW * | row ) |
deletes coefficient from column
deletes existing coefficient from column
col | column to be changed |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
row | coefficient to be deleted |
Definition at line 3466 of file lp.c.
References assert(), checkLinks, colDelCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, SCIP_Row::name, NULL, rowDelCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetIsEQ(), SCIPvarGetName(), SCIP_Col::vals, SCIP_Row::vals, and SCIP_Col::var.
SCIP_RETCODE SCIPcolChgCoef | ( | SCIP_COL * | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_ROW * | row, | ||
SCIP_Real | val ) |
changes or adds a coefficient to an LP column
col | LP column |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
row | LP row |
val | value of coefficient |
Definition at line 3511 of file lp.c.
References assert(), checkLinks, colAddCoef(), colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, NULL, rowChgCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIP_Col::vals, and SCIP_Row::vals.
SCIP_RETCODE SCIPcolIncCoef | ( | SCIP_COL * | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_ROW * | row, | ||
SCIP_Real | incval ) |
increases value of an existing or nonexisting coefficient in an LP column
increases value of an existing or non-existing coefficient in an LP column
col | LP column |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
row | LP row |
incval | value to add to the coefficient |
Definition at line 3562 of file lp.c.
References assert(), checkLinks, colAddCoef(), colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, NULL, rowChgCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsZero(), SCIP_Col::vals, and SCIP_Row::vals.
SCIP_RETCODE SCIPcolChgObj | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_LP * | lp, | ||
SCIP_Real | newobj ) |
changes objective value of column
col | LP column to change |
set | global SCIP settings |
lp | current LP data |
newobj | new objective value |
Definition at line 3696 of file lp.c.
References assert(), SCIP_Lp::divingobjchg, FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lb, SCIP_Col::lpipos, lpUpdateObjNorms(), SCIP_Lp::nchgcols, newobj, NULL, SCIP_Col::obj, SCIP_Col::objchanged, oldobj, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUnchangedObj(), TRUE, SCIP_Col::ub, SCIP_Col::unchangedobj, and SCIP_Col::var.
Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgObjDive().
SCIP_RETCODE SCIPcolChgLb | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_LP * | lp, | ||
SCIP_Real | newlb ) |
changes lower bound of column
col | LP column to change |
set | global SCIP settings |
lp | current LP data |
newlb | new lower bound value |
Definition at line 3755 of file lp.c.
References assert(), FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lb, SCIP_Col::lbchanged, SCIP_Col::lpipos, SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), TRUE, and SCIP_Col::var.
Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgLbDive().
SCIP_RETCODE SCIPcolChgUb | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_LP * | lp, | ||
SCIP_Real | newub ) |
changes upper bound of column
col | LP column to change |
set | global SCIP settings |
lp | current LP data |
newub | new upper bound value |
Definition at line 3800 of file lp.c.
References assert(), FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lpipos, SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), TRUE, SCIP_Col::ub, SCIP_Col::ubchanged, and SCIP_Col::var.
Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgUbDive().
calculates the reduced costs of a column using the given dual solution vector
col | LP column |
dualsol | dual solution vector for current LP rows |
Definition at line 3845 of file lp.c.
References assert(), i, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::obj, SCIP_Col::rows, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var.
gets the reduced costs of a column in last LP or after recalculation
col | LP column |
stat | problem statistics |
lp | current LP data |
Definition at line 3950 of file lp.c.
References assert(), colCalcInternalRedcost(), SCIP_Stat::lpcount, NULL, SCIP_Col::redcost, SCIP_INVALID, SCIP_Real, SCIP_Col::validredcostlp, and SCIP_Lp::validsollp.
Referenced by getImplVarRedcost(), SCIPcolGetFeasibility(), SCIPgetColRedcost(), SCIPlpGetDualDegeneracy(), SCIPprobUpdateBestRootSol(), and SCIPvarGetImplRedcost().
gets the feasibility of (the dual row of) a column in last LP or after recalculation
col | LP column |
set | global SCIP settings |
stat | problem statistics |
lp | current LP data |
Definition at line 3974 of file lp.c.
References assert(), SCIP_Col::lb, SCIP_Stat::lpcount, NULL, REALABS, SCIP_Real, SCIPcolGetRedcost(), SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIP_Col::ub, and SCIP_Lp::validsollp.
Referenced by SCIPpricestoreAddProbVars().
calculates the Farkas coefficient y^T A_i of a column i using the given dual Farkas vector y
col | LP column |
dualfarkas | dense dual Farkas vector for current LP rows |
Definition at line 4028 of file lp.c.
References assert(), i, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::rows, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var.
gets the Farkas coefficient y^T A_i of a column i in last LP (which must be infeasible)
gets the Farkas coefficient of a column in last LP (which must be infeasible)
col | LP column |
stat | problem statistics |
lp | current LP data |
Definition at line 4133 of file lp.c.
References assert(), colCalcInternalFarkasCoef(), SCIP_Col::farkascoef, SCIP_Stat::lpcount, NULL, SCIP_INVALID, SCIP_Real, SCIP_Col::validfarkaslp, and SCIP_Lp::validfarkaslp.
Referenced by SCIPcolGetFarkasValue(), and SCIPgetColFarkasCoef().
gets the Farkas value of a column in last LP (which must be infeasible), i.e. the Farkas coefficient y^T A_i times the best bound for this coefficient, i.e. max{y^T A_i x_i | lb <= x_i <= ub}
col | LP column |
stat | problem statistics |
lp | current LP data |
Definition at line 4159 of file lp.c.
References assert(), SCIP_Col::lb, NULL, SCIP_Real, SCIPcolGetFarkasCoef(), and SCIP_Col::ub.
Referenced by SCIPpricestoreAddProbVars().
SCIP_RETCODE SCIPlpStartStrongbranch | ( | SCIP_LP * | lp | ) |
start strong branching - call before any strong branching
lp | LP data |
Definition at line 4178 of file lp.c.
References assert(), SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiStartStrongbranch(), SCIP_Lp::strongbranching, and TRUE.
Referenced by SCIPstartStrongbranch().
SCIP_RETCODE SCIPlpEndStrongbranch | ( | SCIP_LP * | lp | ) |
end strong branching - call after any strong branching
lp | LP data |
Definition at line 4193 of file lp.c.
References assert(), FALSE, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiEndStrongbranch(), and SCIP_Lp::strongbranching.
Referenced by SCIPendStrongbranch().
void SCIPcolSetStrongbranchData | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp, | ||
SCIP_Real | lpobjval, | ||
SCIP_Real | primsol, | ||
SCIP_Real | sbdown, | ||
SCIP_Real | sbup, | ||
SCIP_Bool | sbdownvalid, | ||
SCIP_Bool | sbupvalid, | ||
SCIP_Longint | iter, | ||
int | itlim ) |
sets strong branching information for a column variable
col | LP column |
set | global SCIP settings |
stat | dynamic problem statistics |
lp | LP data |
lpobjval | objective value of the current LP |
primsol | primal solution value of the column in the current LP |
sbdown | dual bound after branching column down |
sbup | dual bound after branching column up |
sbdownvalid | is the returned down value a valid dual bound? |
sbupvalid | is the returned up value a valid dual bound? |
iter | total number of strong branching iterations |
itlim | iteration limit applied to the strong branching call |
Definition at line 4208 of file lp.c.
References assert(), SCIP_Lp::cols, SCIP_Lp::cutoffbound, SCIP_Col::lpipos, SCIP_Col::lppos, MIN, SCIP_Lp::ncols, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Col::nsbcalls, NULL, primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_Longint, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPcolIsIntegral(), SCIPstatAdd, SCIPstatIncrement, SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::strongbranchprobing, SCIP_Col::validsblp, and SCIP_Col::var.
Referenced by SCIPgetVarStrongbranchWithPropagation(), and SCIPsetVarStrongbranchData().
void SCIPcolInvalidateStrongbranchData | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp ) |
invalidates strong branching information for a column variable
col | LP column |
set | global SCIP settings |
stat | dynamic problem statistics |
lp | LP data |
Definition at line 4262 of file lp.c.
References assert(), SCIP_Lp::cols, FALSE, SCIP_Col::lpipos, SCIP_Col::lppos, SCIP_Lp::ncols, NULL, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_INVALID, SCIP_VARSTATUS_COLUMN, SCIPcolIsIntegral(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::strongbranchprobing, SCIP_Col::validsblp, and SCIP_Col::var.
Referenced by SCIPgetVarStrongbranchWithPropagation().
SCIP_RETCODE SCIPcolGetStrongbranch | ( | SCIP_COL * | col, |
SCIP_Bool | integral, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | prob, | ||
SCIP_LP * | lp, | ||
int | itlim, | ||
SCIP_Bool | updatecol, | ||
SCIP_Bool | updatestat, | ||
SCIP_Real * | down, | ||
SCIP_Real * | up, | ||
SCIP_Bool * | downvalid, | ||
SCIP_Bool * | upvalid, | ||
SCIP_Bool * | lperror ) |
gets strong branching information on a column variable
col | LP column |
integral | should integral strong branching be performed? |
set | global SCIP settings |
stat | dynamic problem statistics |
prob | problem data |
lp | LP data |
itlim | iteration limit for strong branchings |
updatecol | should col be updated, or should it stay in its current state ? |
updatestat | should stat be updated, or should it stay in its current state ? |
down | stores dual bound after branching column down |
up | stores dual bound after branching column up |
downvalid | stores whether the returned down value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value |
upvalid | stores whether the returned up value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value |
lperror | pointer to store whether an unresolved LP error occurred |
Definition at line 4297 of file lp.c.
References assert(), SCIP_Lp::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, SCIP_Stat::lpcount, lperror, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Col::lppos, SCIP_Lp::lpsolstat, MIN, SCIP_Lp::ncols, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Col::nsbcalls, NULL, SCIP_Col::primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_Longint, SCIP_LPERROR, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPclockStart(), SCIPclockStop(), SCIPcolIsIntegral(), SCIPlpGetObjval(), SCIPlpiStrongbranchFrac(), SCIPlpiStrongbranchInt(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsFeasIntegral(), SCIPsetIsIntegral(), SCIPstatAdd, SCIPstatIncrement, SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::solved, SCIP_Lp::strongbranching, SCIP_Stat::strongbranchtime, TRUE, SCIP_Col::validsblp, SCIP_Lp::validsollp, and SCIP_Col::var.
Referenced by SCIPgetVarStrongbranchFrac(), and SCIPgetVarStrongbranchInt().
SCIP_RETCODE SCIPcolGetStrongbranches | ( | SCIP_COL ** | cols, |
int | ncols, | ||
SCIP_Bool | integral, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | prob, | ||
SCIP_LP * | lp, | ||
int | itlim, | ||
SCIP_Real * | down, | ||
SCIP_Real * | up, | ||
SCIP_Bool * | downvalid, | ||
SCIP_Bool * | upvalid, | ||
SCIP_Bool * | lperror ) |
gets strong branching information on column variables
cols | LP columns |
ncols | number of columns |
integral | should integral strong branching be performed? |
set | global SCIP settings |
stat | dynamic problem statistics |
prob | problem data |
lp | LP data |
itlim | iteration limit for strong branchings |
down | stores dual bounds after branching columns down |
up | stores dual bounds after branching columns up |
downvalid | stores whether the returned down values are valid dual bounds, or NULL; otherwise, they can only be used as an estimate value |
upvalid | stores whether the returned up values are valid dual bounds, or NULL; otherwise, they can only be used as an estimate value |
lperror | pointer to store whether an unresolved LP error occurred |
Definition at line 4482 of file lp.c.
References assert(), SCIP_Lp::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, SCIP_Stat::lpcount, lperror, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Col::lppos, SCIP_Lp::lpsolstat, MIN, SCIP_Lp::ncols, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Col::nsbcalls, NULL, SCIP_Col::primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPERROR, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPclockStart(), SCIPclockStop(), SCIPcolIsIntegral(), SCIPlpGetObjval(), SCIPlpiStrongbranchesFrac(), SCIPlpiStrongbranchesInt(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasIntegral(), SCIPstatAdd, SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::solved, SCIP_Stat::strongbranchtime, TRUE, SCIP_Col::validsblp, SCIP_Lp::validsollp, and SCIP_Col::var.
Referenced by SCIPgetVarsStrongbranchesFrac(), and SCIPgetVarsStrongbranchesInt().
void SCIPcolGetStrongbranchLast | ( | SCIP_COL * | col, |
SCIP_Real * | down, | ||
SCIP_Real * | up, | ||
SCIP_Bool * | downvalid, | ||
SCIP_Bool * | upvalid, | ||
SCIP_Real * | solval, | ||
SCIP_Real * | lpobjval ) |
gets last strong branching information available for a column variable; returns values of SCIP_INVALID, if strong branching was not yet called on the given column; keep in mind, that the returned old values may have nothing to do with the current LP solution
col | LP column |
down | stores dual bound after branching column down, or NULL |
up | stores dual bound after branching column up, or NULL |
downvalid | stores whether the returned down value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value |
upvalid | stores whether the returned up value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value |
solval | stores LP solution value of column at last strong branching call, or NULL |
lpobjval | stores LP objective value at last strong branching call, or NULL |
Definition at line 4705 of file lp.c.
References assert(), NULL, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sblpobjval, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, and SCIP_Real.
Referenced by SCIPgetVarStrongbranchLast().
SCIP_Longint SCIPcolGetStrongbranchLPAge | ( | SCIP_COL * | col, |
SCIP_STAT * | stat ) |
if strong branching was already applied on the column at the current node, returns the number of LPs solved after the LP where the strong branching on this column was applied; if strong branching was not yet applied on the column at the current node, returns INT_MAX
col | LP column |
stat | dynamic problem statistics |
Definition at line 4737 of file lp.c.
References assert(), SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_Col::sbnode, SCIP_Longint, SCIP_LONGINT_MAX, and SCIP_Col::validsblp.
Referenced by SCIPgetVarStrongbranchLPAge().
marks a column to be not removable from the LP in the current node because it became obsolete
col | LP column |
stat | problem statistics |
Definition at line 4749 of file lp.c.
References assert(), SCIP_Stat::nnodes, NULL, and SCIP_Col::obsoletenode.
Referenced by SCIPmarkColNotRemovableLocal().
SCIP_RETCODE SCIProwCreate | ( | SCIP_ROW ** | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
const char * | name, | ||
int | len, | ||
SCIP_COL ** | cols, | ||
SCIP_Real * | vals, | ||
SCIP_Real | lhs, | ||
SCIP_Real | rhs, | ||
SCIP_ROWORIGINTYPE | origintype, | ||
void * | origin, | ||
SCIP_Bool | local, | ||
SCIP_Bool | modifiable, | ||
SCIP_Bool | removable ) |
creates and captures an LP row
row | pointer to LP row data |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
name | name of row |
len | number of nonzeros in the row |
cols | array with columns of row entries |
vals | array with coefficients of row entries |
lhs | left hand side of row |
rhs | right hand side of row |
origintype | type of origin of row |
origin | pointer to constraint handler or separator who created the row (NULL if unkown) |
local | is row only valid locally? |
modifiable | is row modifiable during node processing (subject to column generation)? |
removable | should the row be removed from the LP due to aging or cleanup? |
Definition at line 5108 of file lp.c.
References assert(), BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, i, SCIP_Col::index, SCIP_Stat::nrowidx, NULL, rowCalcNorms(), SCIP_ALLOC, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_ROWORIGINTYPE_CONS, SCIPconsCapture(), SCIPeventfilterCreate(), SCIProwCapture(), SCIPsetInfinity(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPstatIncrement, SCIPvarIsIntegral(), TRUE, SCIP_Col::var, and var.
Referenced by SCIPcreateEmptyRowCons(), SCIPcreateEmptyRowConshdlr(), SCIPcreateEmptyRowSepa(), SCIPcreateEmptyRowUnspec(), SCIPcreateRowCons(), SCIPcreateRowConshdlr(), SCIPcreateRowSepa(), SCIPcreateRowUnspec(), and SCIPreoptApplyCuts().
SCIP_RETCODE SCIProwFree | ( | SCIP_ROW ** | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_LP * | lp ) |
frees an LP row
row | pointer to LP row |
blkmem | block memory |
set | global SCIP settings |
lp | current LP data |
Definition at line 5257 of file lp.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, NULL, rowUnlink(), SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_CONS, SCIPconsRelease(), and SCIPeventfilterFree().
Referenced by SCIProwRelease().
void SCIProwPrint | ( | SCIP_ROW * | row, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
FILE * | file ) |
output row to file stream
row | LP row |
messagehdlr | message handler |
file | output file (or NULL for standard output) |
Definition at line 5297 of file lp.c.
References assert(), SCIP_Row::cols, SCIP_Row::constant, i, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::name, NULL, REALABS, SCIP_Row::rhs, SCIP_DEFAULT_EPSILON, SCIP_VARSTATUS_COLUMN, SCIPmessageFPrintInfo(), SCIPvarGetName(), SCIPvarGetStatus(), SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPprintRow().
SCIP_RETCODE SCIProwEnsureSize | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
int | num ) |
ensures, that column array of row can store at least num entries
row | LP row |
blkmem | block memory |
set | global SCIP settings |
num | minimum number of entries to store |
Definition at line 630 of file lp.c.
References assert(), BMSreallocBlockMemoryArray, SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::len, SCIP_Row::linkpos, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Row::size, and SCIP_Row::vals.
Referenced by rowAddCoef(), SCIPaddVarsToRow(), and SCIPaddVarsToRowSameCoef().
void SCIProwCapture | ( | SCIP_ROW * | row | ) |
increases usage counter of LP row
row | LP row |
Definition at line 5337 of file lp.c.
References assert(), SCIP_Row::name, SCIP_Row::nlocks, NULL, SCIP_Row::nuses, and SCIPdebugMessage.
Referenced by cutCreate(), forkCreate(), lpFlushAddRows(), pseudoforkCreate(), SCIPcaptureRow(), SCIPlpAddRow(), SCIProwCreate(), and SCIPsepastoreAddCut().
SCIP_RETCODE SCIProwRelease | ( | SCIP_ROW ** | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_LP * | lp ) |
decreases usage counter of LP row, and frees memory if necessary
row | pointer to LP row |
blkmem | block memory |
set | global SCIP settings |
lp | current LP data |
Definition at line 5350 of file lp.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIProwFree(), and SCIPsetDebugMsg.
Referenced by cutFree(), forkFree(), lpDelRowset(), lpFlushDelRows(), pseudoforkFree(), SCIPlpFree(), SCIPlpShrinkRows(), SCIPreleaseRow(), SCIPreoptApplyCuts(), SCIPsepastoreAddCut(), SCIPsepastoreClearCuts(), sepastoreDelCut(), and subrootFree().
void SCIProwDelaySort | ( | SCIP_ROW * | row | ) |
enables delaying of row sorting
row | LP row |
Definition at line 6146 of file lp.c.
References assert(), SCIP_Row::delaysort, NULL, and TRUE.
Referenced by SCIPaddVarsToRow(), SCIPaddVarsToRowSameCoef(), and SCIPcacheRowExtensions().
disables delaying of row sorting, sorts row and merges coefficients with equal columns
row | LP row |
set | global SCIP settings |
Definition at line 6157 of file lp.c.
References assert(), SCIP_Row::delaysort, FALSE, NULL, and rowMerge().
Referenced by SCIPaddVarsToRow(), SCIPaddVarsToRowSameCoef(), and SCIPflushRowExtensions().
SCIP_RETCODE SCIProwAddCoef | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_COL * | col, | ||
SCIP_Real | val ) |
adds a previously non existing coefficient to an LP row
row | LP row |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
col | LP column |
val | value of coefficient |
Definition at line 5407 of file lp.c.
References assert(), checkLinks, SCIP_Lp::diving, SCIP_Row::lppos, NULL, rowAddCoef(), SCIP_CALL, SCIP_OKAY, and SCIP_Real.
SCIP_RETCODE SCIProwDelCoef | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_COL * | col ) |
deletes coefficient from row
row | row to be changed |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
col | coefficient to be deleted |
Definition at line 5428 of file lp.c.
References assert(), checkLinks, colDelCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Row::name, NULL, rowDelCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetIsEQ(), SCIPvarGetName(), SCIP_Col::vals, SCIP_Row::vals, and SCIP_Col::var.
SCIP_RETCODE SCIProwChgCoef | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_COL * | col, | ||
SCIP_Real | val ) |
changes or adds a coefficient to an LP row
row | LP row |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
col | LP column |
val | value of coefficient |
Definition at line 5474 of file lp.c.
References assert(), checkLinks, colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, NULL, rowAddCoef(), rowChgCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIP_Col::vals, and SCIP_Row::vals.
SCIP_RETCODE SCIProwIncCoef | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_COL * | col, | ||
SCIP_Real | incval ) |
increases value of an existing or nonexisting coefficient in an LP column
increases value of an existing or non-existing coefficient in an LP row
row | LP row |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
col | LP column |
incval | value to add to the coefficient |
Definition at line 5526 of file lp.c.
References assert(), checkLinks, colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, NULL, rowAddCoef(), rowChgCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsZero(), SCIP_Row::validactivitylp, SCIP_Col::vals, and SCIP_Row::vals.
Referenced by SCIPvarAddToRow().
SCIP_RETCODE SCIProwChgConstant | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_Real | constant ) |
changes constant value of a row
row | LP row |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
lp | current LP data |
constant | new constant value |
Definition at line 5583 of file lp.c.
References assert(), SCIP_Row::constant, SCIP_Lp::diving, SCIP_Stat::domchgcount, SCIP_Row::lhs, SCIP_Row::lppos, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, SCIP_Row::pseudoactivity, REALABS, SCIP_Row::rhs, rowEventConstantChanged(), rowSideChanged(), SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIP_Row::validactivitybdsdomchg, and SCIP_Row::validpsactivitydomchg.
Referenced by rowScale(), and SCIProwAddConstant().
SCIP_RETCODE SCIProwAddConstant | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_Real | addval ) |
add constant value to a row
row | LP row |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
lp | current LP data |
addval | constant value to add to the row |
Definition at line 5638 of file lp.c.
References assert(), SCIP_Row::constant, SCIP_Lp::diving, SCIP_Row::lhs, SCIP_Row::lppos, NULL, REALABS, SCIP_Row::rhs, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIProwChgConstant(), SCIPsetIsInfinity(), and SCIPsetIsZero().
Referenced by SCIPvarAddToRow().
SCIP_RETCODE SCIProwChgLhs | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_Real | lhs ) |
changes left hand side of LP row
row | LP row |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
lhs | new left hand side |
Definition at line 5664 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Row::lhs, NULL, rowEventSideChanged(), rowSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, and SCIPsetIsEQ().
Referenced by rowScale(), SCIPchgRowLhs(), SCIPchgRowLhsDive(), and SCIPlpEndDive().
SCIP_RETCODE SCIProwChgRhs | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_Real | rhs ) |
changes right hand side of LP row
row | LP row |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
rhs | new right hand side |
Definition at line 5696 of file lp.c.
References assert(), SCIP_Lp::diving, NULL, SCIP_Row::rhs, rowEventSideChanged(), rowSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_RIGHT, and SCIPsetIsEQ().
Referenced by rowScale(), SCIPchgRowRhs(), SCIPchgRowRhsDive(), and SCIPlpEndDive().
SCIP_RETCODE SCIProwChgLocal | ( | SCIP_ROW * | row, |
SCIP_Bool | local ) |
changes the local flag of LP row
row | LP row |
local | new value for local flag |
Definition at line 5728 of file lp.c.
References assert(), SCIP_Row::local, NULL, SCIP_Bool, and SCIP_OKAY.
Referenced by SCIPsepastoreAddCut().
SCIP_RETCODE SCIProwCalcIntegralScalar | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_Real | mindelta, | ||
SCIP_Real | maxdelta, | ||
SCIP_Longint | maxdnom, | ||
SCIP_Real | maxscale, | ||
SCIP_Bool | usecontvars, | ||
SCIP_Real * | intscalar, | ||
SCIP_Bool * | success ) |
tries to find a value, such that all row coefficients, if scaled with this value become integral
row | LP row |
set | global SCIP settings |
mindelta | minimal relative allowed difference of scaled coefficient s*c and integral i |
maxdelta | maximal relative allowed difference of scaled coefficient s*c and integral i |
maxdnom | maximal denominator allowed in rational numbers |
maxscale | maximal allowed scalar |
usecontvars | should the coefficients of the continuous variables also be made integral? |
intscalar | pointer to store scalar that would make the coefficients integral, or NULL |
success | stores whether returned value is valid |
Definition at line 5745 of file lp.c.
References ABS, assert(), c, SCIP_Row::cols, SCIP_Row::cols_index, FALSE, isIntegralScalar(), SCIP_Row::len, MIN, nscalars, NULL, REALABS, scalars, SCIP_Bool, SCIP_INVALID, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_VARSTATUS_COLUMN, SCIPcalcGreComDiv(), SCIPcolIsIntegral(), SCIPdebug, SCIPrealToRational(), SCIProwGetName(), SCIPsetDebugMsg, SCIPsetIsInfinity(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetStatus(), TRUE, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPcalcRowIntegralScalar(), and SCIProwMakeIntegral().
SCIP_RETCODE SCIProwMakeIntegral | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp, | ||
SCIP_Real | mindelta, | ||
SCIP_Real | maxdelta, | ||
SCIP_Longint | maxdnom, | ||
SCIP_Real | maxscale, | ||
SCIP_Bool | usecontvars, | ||
SCIP_Bool * | success ) |
tries to scale row, s.t. all coefficients become integral
row | LP row |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
stat | problem statistics |
lp | current LP data |
mindelta | minimal relative allowed difference of scaled coefficient s*c and integral i |
maxdelta | maximal relative allowed difference of scaled coefficient s*c and integral i |
maxdnom | maximal denominator allowed in rational numbers |
maxscale | maximal value to scale row with |
usecontvars | should the coefficients of the continuous variables also be made integral? |
success | stores whether row could be made rational |
Definition at line 5979 of file lp.c.
References assert(), NULL, rowScale(), SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, and SCIProwCalcIntegralScalar().
Referenced by SCIPmakeRowIntegral().
recalculates the current activity of a row
row | LP row |
stat | problem statistics |
Definition at line 6170 of file lp.c.
References SCIP_Row::activity, assert(), c, SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::linkpos, SCIP_Stat::lpcount, SCIP_Col::lppos, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Col::primsol, SCIP_INVALID, SCIP_Row::validactivitylp, and SCIP_Row::vals.
Referenced by SCIPlpGetSol(), SCIPrecalcRowActivity(), SCIPrecalcRowLPActivity(), and SCIProwGetLPActivity().
returns the activity of a row in the current LP solution
row | LP row |
set | global SCIP settings |
stat | problem statistics |
lp | current LP data |
Definition at line 6222 of file lp.c.
References SCIP_Row::activity, assert(), SCIP_Stat::lpcount, MAX, MIN, NULL, SCIP_INVALID, SCIP_Real, SCIProwRecalcLPActivity(), SCIPsetInfinity(), SCIP_Row::validactivitylp, and SCIP_Lp::validsollp.
Referenced by SCIPgetRowActivity(), SCIPgetRowLPActivity(), SCIPgetRowSolActivity(), SCIPlpGetDualDegeneracy(), and SCIProwGetLPFeasibility().
SCIP_Real SCIProwGetLPFeasibility | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp ) |
returns the feasibility of a row in the current LP solution: negative value means infeasibility
row | LP row |
set | global SCIP settings |
stat | problem statistics |
lp | current LP data |
Definition at line 6252 of file lp.c.
References assert(), SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetLPActivity().
Referenced by SCIPcutpoolSeparate(), SCIPgetRowFeasibility(), SCIPgetRowLPFeasibility(), SCIPgetRowSolFeasibility(), SCIProwGetLPEfficacy(), and SCIProwGetLPSolCutoffDistance().
returns the feasibility of a row in the current relaxed solution: negative value means infeasibility
returns the feasibility of a row in the relaxed solution solution: negative value means infeasibility
row | LP row |
set | global SCIP settings |
stat | problem statistics |
Definition at line 6272 of file lp.c.
References assert(), c, SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Row::rhs, SCIP_Real, SCIPsetInfinity(), SCIPvarGetRelaxSol(), SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIProwGetRelaxEfficacy().
returns the feasibility of a row in the current NLP solution: negative value means infeasibility
returns the feasibility of a row in the current NLP solution: negative value means infeasibility
row | LP row |
set | global SCIP settings |
stat | problem statistics |
Definition at line 6334 of file lp.c.
References assert(), c, SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Row::rhs, SCIP_Real, SCIPsetInfinity(), SCIPvarGetNLPSol(), SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIProwGetNLPEfficacy().
calculates the current pseudo activity of a row
row | row data |
stat | problem statistics |
Definition at line 6393 of file lp.c.
References assert(), SCIP_Row::cols, SCIP_Row::constant, SCIP_Stat::domchgcount, EPSISINT, i, SCIP_Row::integral, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Col::lppos, NULL, SCIP_Row::pseudoactivity, SCIP_DEFAULT_SUMEPSILON, SCIP_VARSTATUS_COLUMN, SCIPcolGetBestBound(), SCIPvarGetStatus(), SCIP_Row::validpsactivitydomchg, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPrecalcRowActivity(), SCIPrecalcRowPseudoActivity(), and SCIProwGetPseudoActivity().
returns the pseudo activity of a row in the current pseudo solution
row | LP row |
set | global SCIP settings |
stat | problem statistics |
Definition at line 6420 of file lp.c.
References assert(), SCIP_Stat::domchgcount, MAX, MIN, NULL, SCIP_Row::pseudoactivity, SCIP_INVALID, SCIP_Real, SCIProwRecalcPseudoActivity(), SCIPsetInfinity(), and SCIP_Row::validpsactivitydomchg.
Referenced by SCIPgetRowActivity(), SCIPgetRowPseudoActivity(), SCIPgetRowSolActivity(), and SCIProwGetPseudoFeasibility().
returns the pseudo feasibility of a row in the current pseudo solution: negative value means infeasibility
row | LP row |
set | global SCIP settings |
stat | problem statistics |
Definition at line 6448 of file lp.c.
References assert(), SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetPseudoActivity().
Referenced by SCIPgetRowFeasibility(), SCIPgetRowPseudoFeasibility(), and SCIPgetRowSolFeasibility().
SCIP_Real SCIProwGetSolActivity | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SOL * | sol ) |
returns the activity of a row for a given solution
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
sol | primal CIP solution |
Definition at line 6464 of file lp.c.
References assert(), SCIP_Row::cols, SCIP_Row::constant, i, SCIP_Col::lb, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, NULL, SCIP_Row::rhs, SCIP_Real, SCIP_UNKNOWN, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsolGetVal(), sol, SCIP_Col::ub, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPgetRowSolActivity(), SCIProwGetSolFeasibility(), and SCIPsolAdjustImplicitSolVals().
SCIP_Real SCIProwGetSolFeasibility | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SOL * | sol ) |
returns the feasibility of a row for the given solution
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
sol | primal CIP solution |
Definition at line 6506 of file lp.c.
References assert(), SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, SCIProwGetSolActivity(), and sol.
Referenced by SCIPcutpoolSeparate(), SCIPgetRowSolFeasibility(), and SCIProwGetSolEfficacy().
returns the minimal activity of a row w.r.t. the columns' bounds
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
Definition at line 6596 of file lp.c.
References assert(), SCIP_Stat::domchgcount, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, rowCalcActivityBounds(), SCIP_INVALID, SCIP_Real, and SCIP_Row::validactivitybdsdomchg.
Referenced by SCIPaddRow(), SCIPgetRowMinActivity(), SCIPlpGetDualDegeneracy(), SCIPlpRemoveRedundantRows(), SCIProwIsRedundant(), sepastoreIsCutRedundant(), and sepastoreIsCutRedundantOrInfeasible().
returns the maximal activity of a row w.r.t. the columns' bounds
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
Definition at line 6617 of file lp.c.
References assert(), SCIP_Stat::domchgcount, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, rowCalcActivityBounds(), SCIP_INVALID, SCIP_Real, and SCIP_Row::validactivitybdsdomchg.
Referenced by SCIPaddRow(), SCIPgetRowMaxActivity(), SCIPlpGetDualDegeneracy(), SCIPlpRemoveRedundantRows(), SCIProwIsRedundant(), sepastoreIsCutRedundant(), and sepastoreIsCutRedundantOrInfeasible().
returns whether the row is unmodifiable and redundant w.r.t. the columns' bounds
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
Definition at line 6638 of file lp.c.
References assert(), FALSE, SCIP_Row::lhs, SCIP_Row::modifiable, NULL, SCIP_Row::rhs, SCIP_Bool, SCIP_Real, SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsInfinity(), and TRUE.
Referenced by SCIPlpRemoveRedundantRows().
gets maximal absolute value of row vector coefficients
row | LP row |
set | global SCIP settings |
Definition at line 6669 of file lp.c.
References assert(), SCIP_Row::len, SCIP_Row::maxval, NULL, SCIP_Row::nummaxval, rowCalcIdxsAndVals(), and SCIP_Real.
Referenced by SCIP_DECL_HASHKEYEQ(), SCIP_DECL_HASHKEYVAL(), SCIPcutpoolAddRow(), SCIPcutpoolIsCutNew(), SCIPgetRowMaxCoef(), SCIProwGetLPEfficacy(), SCIProwGetNLPEfficacy(), SCIProwGetRelaxEfficacy(), and SCIProwGetSolEfficacy().
gets minimal absolute value of row vector's non-zero coefficients
row | LP row |
set | global SCIP settings |
Definition at line 6685 of file lp.c.
References assert(), SCIP_Row::len, SCIP_Row::minval, NULL, SCIP_Row::numminval, rowCalcIdxsAndVals(), and SCIP_Real.
Referenced by SCIP_DECL_HASHKEYEQ(), and SCIPgetRowMinCoef().
gets maximal column index of row entries
row | LP row |
set | global SCIP settings |
Definition at line 6701 of file lp.c.
References assert(), SCIP_Row::len, SCIP_Row::maxidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx.
Referenced by SCIPcutpoolAddNewRow(), and SCIPcutpoolAddRow().
gets minimal column index of row entries
row | LP row |
set | global SCIP settings |
Definition at line 6717 of file lp.c.
References assert(), SCIP_Row::len, SCIP_Row::minidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx.
gets number of integral columns in row
row | LP row |
set | global SCIP settings |
Definition at line 6733 of file lp.c.
References assert(), SCIP_Row::len, NULL, SCIP_Row::numintcols, and rowCalcIdxsAndVals().
Referenced by SCIPgetRowNumIntCols().
SCIP_Real SCIProwGetLPSolCutoffDistance | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SOL * | sol, | ||
SCIP_LP * | lp ) |
returns row's cutoff distance in the direction of the given primal solution
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
sol | solution to compute direction for cutoff distance; must not be NULL |
lp | current LP data |
Definition at line 6749 of file lp.c.
References ABS, assert(), SCIP_Lp::cols, SCIP_Row::cols, ensureSoldirectionSize(), SCIP_Stat::lpcount, SCIP_Col::lppos, SCIP_Lp::ncols, SCIP_Row::nlpcols, NULL, SCIP_Col::primsol, SCIP_CALL_ABORT, SCIP_Real, SCIProwGetLPFeasibility(), SCIPsetIsSumZero(), SCIPsolGetVal(), sol, SCIP_Lp::soldirection, SQR, SCIP_Lp::validsoldirlp, SCIP_Lp::validsoldirsol, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPgetCutLPSolCutoffDistance().
returns row's efficacy with respect to the current LP solution: e = -feasibility/norm
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
lp | current LP data |
Definition at line 6806 of file lp.c.
References assert(), eps, SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetLPFeasibility(), SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().
Referenced by SCIPcutpoolAddNewRow(), SCIPcutpoolSeparate(), SCIPgetCutEfficacy(), SCIProwIsLPEfficacious(), SCIPsepastoreApplyCuts(), and SCIPsepastoreRemoveInefficaciousCuts().
SCIP_Bool SCIProwIsLPEfficacious | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp, | ||
SCIP_Bool | root ) |
returns whether the row's efficacy with respect to the current LP solution is greater than the minimal cut efficacy
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
lp | current LP data |
root | should the root's minimal cut efficacy be used? |
Definition at line 6847 of file lp.c.
References SCIP_Bool, SCIP_Real, SCIProwGetLPEfficacy(), and SCIPsetIsEfficacious().
Referenced by SCIPisCutEfficacious().
SCIP_Real SCIProwGetSolEfficacy | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SOL * | sol ) |
returns row's efficacy with respect to the given primal solution: e = -feasibility/norm
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
sol | primal CIP solution |
Definition at line 6863 of file lp.c.
References assert(), eps, SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetSolFeasibility(), SCIProwGetSumNorm(), SCIPsetSumepsilon(), and sol.
Referenced by SCIPcutpoolSeparate(), SCIPgetCutEfficacy(), and SCIProwIsSolEfficacious().
SCIP_Bool SCIProwIsSolEfficacious | ( | SCIP_ROW * | row, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SOL * | sol, | ||
SCIP_Bool | root ) |
returns whether the row's efficacy with respect to the given primal solution is greater than the minimal cut efficacy
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
sol | primal CIP solution |
root | should the root's minimal cut efficacy be used? |
Definition at line 6906 of file lp.c.
References SCIP_Bool, SCIP_Real, SCIProwGetSolEfficacy(), SCIPsetIsEfficacious(), and sol.
Referenced by SCIPisCutEfficacious().
returns row's efficacy with respect to the relaxed solution: e = -feasibility/norm
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
Definition at line 6922 of file lp.c.
References assert(), eps, SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetRelaxFeasibility(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().
Referenced by SCIPsepastoreRemoveInefficaciousCuts().
returns row's efficacy with respect to the NLP solution: e = -feasibility/norm
row | LP row |
set | global SCIP settings |
stat | problem statistics data |
Definition at line 6962 of file lp.c.
References assert(), eps, SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNLPFeasibility(), SCIProwGetNorm(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().
Referenced by SCIPsepastoreRemoveInefficaciousCuts().
gets parallelism of row with objective function: if the returned value is 1, the row is parallel to the objective function, if the value is 0, it is orthogonal to the objective function
row | LP row |
set | global SCIP settings |
lp | current LP data |
Definition at line 7798 of file lp.c.
References assert(), checkRowObjprod, checkRowSqrnorm, MAX, MIN, NULL, SCIP_Row::objprod, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, REALABS, SCIP_Real, SCIPlpRecalculateObjSqrNorm(), SCIPsetIsPositive(), SCIPsetIsSumGE(), SCIPsetIsSumLE(), and SCIP_Row::sqrnorm.
Referenced by SCIPgetRowObjParallelism().
SCIP_RETCODE SCIProwCatchEvent | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTTYPE | eventtype, | ||
SCIP_EVENTHDLR * | eventhdlr, | ||
SCIP_EVENTDATA * | eventdata, | ||
int * | filterpos ) |
includes event handler with given data in row's event filter
row | row |
blkmem | block memory |
set | global SCIP settings |
eventtype | event type to catch |
eventhdlr | event handler to call for the event processing |
eventdata | event data to pass to the event handler for the event processing |
filterpos | pointer to store position of event filter entry, or NULL |
Definition at line 7831 of file lp.c.
References assert(), SCIP_Row::eventfilter, SCIP_Row::name, NULL, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_ROWCHANGED, SCIP_OKAY, SCIPeventfilterAdd(), and SCIPsetDebugMsg.
Referenced by SCIPcatchRowEvent().
SCIP_RETCODE SCIProwDropEvent | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTTYPE | eventtype, | ||
SCIP_EVENTHDLR * | eventhdlr, | ||
SCIP_EVENTDATA * | eventdata, | ||
int | filterpos ) |
deletes event handler with given data from row's event filter
row | row |
blkmem | block memory |
set | global SCIP settings |
eventtype | event type mask of dropped event |
eventhdlr | event handler to call for the event processing |
eventdata | event data to pass to the event handler for the event processing |
filterpos | position of event filter entry returned by SCIPvarCatchEvent(), or -1 |
Definition at line 7855 of file lp.c.
References assert(), SCIP_Row::eventfilter, SCIP_Row::name, NULL, SCIP_CALL, SCIP_OKAY, SCIPeventfilterDel(), and SCIPsetDebugMsg.
Referenced by SCIPdropRowEvent().
marks a row to be not removable from the LP in the current node
marks a row to be not removable from the LP in the current node because it became obsolete
row | LP row |
stat | problem statistics |
Definition at line 7876 of file lp.c.
References assert(), SCIP_Stat::nnodes, NULL, and SCIP_Row::obsoletenode.
Referenced by SCIPmarkRowNotRemovableLocal().
SCIP_RETCODE SCIPlpCreate | ( | SCIP_LP ** | lp, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
SCIP_STAT * | stat, | ||
const char * | name ) |
creates empty LP data object
lp | pointer to LP data object |
set | global SCIP settings |
messagehdlr | message handler |
stat | problem statistics |
name | problem name |
Definition at line 9077 of file lp.c.
References allocDiveChgSideArrays(), assert(), BMSallocMemory, DIVESTACKINITSIZE, FALSE, SCIP_Stat::lpcount, lpSetBoolpar(), lpSetIntpar(), lpSetRealpar(), NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPPAR_BARRIERCONVTOL, SCIP_LPPAR_CONDITIONLIMIT, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FASTMIP, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_LPINFO, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_MARKOWITZ, SCIP_LPPAR_OBJLIM, SCIP_LPPAR_POLISHING, SCIP_LPPAR_PRESOLVING, SCIP_LPPAR_PRICING, SCIP_LPPAR_RANDOMSEED, SCIP_LPPAR_REFACTOR, SCIP_LPPAR_ROWREPSWITCH, SCIP_LPPAR_SCALING, SCIP_LPPAR_THREADS, SCIP_LPPAR_TIMING, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OBJSEN_MINIMIZE, SCIP_OKAY, SCIP_PARAMETERWRONGVAL, SCIP_PRICING_AUTO, SCIP_VERBLEVEL_FULL, SCIPerrorMessage, SCIPlpiCreate(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPlpResetFeastol(), SCIPmessagePrintVerbInfo(), SCIPsetBarrierconvtol(), SCIPsetDualfeastol(), SCIPsetInfinity(), and TRUE.
Referenced by SCIPtransformProb().
SCIP_RETCODE SCIPlpFree | ( | SCIP_LP ** | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter ) |
frees LP data object
lp | pointer to LP data object |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
eventfilter | global event filter |
Definition at line 9369 of file lp.c.
References assert(), BMSfreeMemory, BMSfreeMemoryArrayNull, BMSfreeMemoryNull, freeDiveChgSideArrays(), i, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpClear(), SCIPlpiFree(), and SCIProwRelease().
Referenced by freeTransform(), and freeTransforming().
SCIP_RETCODE SCIPlpReset | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter ) |
resets the LP to the empty LP by removing all columns and rows from LP, releasing all rows, and flushing the changes to the LP solver
lp | LP data |
blkmem | block memory |
set | global SCIP settings |
prob | problem data |
stat | problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
Definition at line 9414 of file lp.c.
References assert(), SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpClear(), SCIPlpFlush(), SCIP_Lp::solisbasic, SCIP_Lp::solved, TRUE, SCIP_Lp::validdegeneracylp, SCIP_Lp::validfarkaslp, SCIP_Lp::validsoldirlp, SCIP_Lp::validsoldirsol, and SCIP_Lp::validsollp.
Referenced by freeReoptSolve(), freeSolve(), and initSolve().
SCIP_RETCODE SCIPlpAddCol | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_COL * | col, | ||
int | depth ) |
adds a column to the LP and captures the variable
adds a column to the LP
lp | LP data |
set | global SCIP settings |
col | LP column |
depth | depth in the tree where the column addition is performed |
Definition at line 9449 of file lp.c.
References SCIP_Col::age, assert(), checkLinks, SCIP_Lp::cols, colUpdateAddLP(), depth, SCIP_Lp::diving, ensureColsSize(), ensureLazycolsSize(), FALSE, SCIP_Lp::flushed, i, SCIP_Col::integral, SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Col::lb, SCIP_Col::len, SCIP_Col::lpdepth, SCIP_Col::lppos, lpUpdateObjNorms(), SCIP_Row::name, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Lp::nremovablecols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Col::removable, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPsetDebugMsgPrint, SCIPsetIsInfinity(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Col::ub, SCIP_Col::unchangedobj, SCIP_Col::vals, and SCIP_Col::var.
Referenced by forkAddLP(), pseudoforkAddLP(), SCIPpricestoreApplyVars(), and subrootConstructLP().
SCIP_RETCODE SCIPlpAddRow | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
SCIP_ROW * | row, | ||
int | depth ) |
adds a row to the LP and captures it
lp | LP data |
blkmem | block memory buffers |
set | global SCIP settings |
eventqueue | event queue |
eventfilter | global event filter |
row | LP row |
depth | depth in the tree where the row addition is performed |
Definition at line 9508 of file lp.c.
References SCIP_Row::age, assert(), checkLinks, SCIP_Row::cols, SCIP_Row::constant, depth, ensureRowsSize(), SCIP_EventFilter::eventmask, FALSE, SCIP_Lp::flushed, i, SCIP_EventFilter::len, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::lpdepth, SCIP_Row::lppos, SCIP_Row::name, SCIP_Lp::ncols, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, SCIP_Row::removable, SCIP_Row::rhs, rowCalcNorms(), SCIP_Lp::rows, rowUpdateAddLP(), SCIP_CALL, SCIP_EVENTTYPE_ROWADDEDLP, SCIP_OKAY, SCIPeventCreateRowAddedLP(), SCIPeventqueueAdd(), SCIProwCapture(), SCIProwLock(), SCIPsetDebugMsg, SCIPsetDebugMsgPrint, SCIPsetIsZero(), SCIPvarGetName(), SCIP_Row::vals, and SCIP_Col::var.
Referenced by forkAddLP(), pseudoforkAddLP(), SCIPaddRowDive(), SCIPaddRowProbing(), sepastoreApplyCut(), and subrootConstructLP().
SCIP_RETCODE SCIPlpShrinkCols | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
int | newncols ) |
removes all columns after the given number of columns from the LP
removes all columns after the given number of cols from the LP
lp | LP data |
set | global SCIP settings |
newncols | new number of columns in the LP |
Definition at line 9632 of file lp.c.
References assert(), c, checkLazyColArray(), checkLinks, SCIP_Lp::cols, colUpdateDelLP(), SCIP_Lp::diving, FALSE, SCIP_Lp::flushed, SCIP_Lp::lazycols, SCIP_Col::len, SCIP_Col::lpdepth, SCIP_Lp::lpifirstchgcol, SCIP_Col::lppos, lpUpdateObjNorms(), MIN, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Lp::nremovablecols, NULL, SCIP_Col::removable, SCIP_Col::rows, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::unchangedobj, and SCIP_Col::var.
Referenced by focusnodeCleanupVars(), focusnodeToFork(), SCIPlpClear(), SCIPtreeLoadLP(), and treeBacktrackProbing().
SCIP_RETCODE SCIPlpShrinkRows | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
int | newnrows ) |
removes and releases all rows after the given number of rows from the LP
lp | LP data |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
eventfilter | global event filter |
newnrows | new number of rows in the LP |
Definition at line 9704 of file lp.c.
References assert(), checkLinks, SCIP_Row::cols, SCIP_EventFilter::eventmask, FALSE, SCIP_Lp::flushed, SCIP_EventFilter::len, SCIP_Row::len, SCIP_Row::lpdepth, SCIP_Lp::lpifirstchgrow, SCIP_Row::lppos, MIN, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, r, SCIP_Row::removable, SCIP_Lp::rows, rowUpdateDelLP(), SCIP_CALL, SCIP_EVENTTYPE_ROWDELETEDLP, SCIP_OKAY, SCIPeventCreateRowDeletedLP(), SCIPeventqueueAdd(), SCIProwRelease(), SCIProwUnlock(), and SCIPsetDebugMsg.
Referenced by focusnodeToFork(), SCIPlpClear(), SCIPlpEndDive(), SCIPtreeLoadLP(), and treeBacktrackProbing().
SCIP_RETCODE SCIPlpClear | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter ) |
removes all columns and rows from LP, releases all rows
lp | LP data |
blkmem | block memory |
set | global SCIP settings |
eventqueue | event queue |
eventfilter | global event filter |
Definition at line 9770 of file lp.c.
References assert(), SCIP_Lp::diving, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpShrinkCols(), SCIPlpShrinkRows(), and SCIPsetDebugMsg.
Referenced by SCIPlpFree(), SCIPlpReset(), and SCIPtreeLoadLP().
void SCIPlpMarkSize | ( | SCIP_LP * | lp | ) |
remembers number of columns and rows to track the newly added ones
lp | current LP data |
Definition at line 9789 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, SCIP_Lp::ncols, SCIP_Lp::nrows, and NULL.
Referenced by SCIPnodeFocus(), SCIPtreeLoadLP(), and treeCreateProbingNode().
void SCIPlpSetSizeMark | ( | SCIP_LP * | lp, |
int | nrows, | ||
int | ncols ) |
sets the remembered number of columns and rows to the given values
lp | current LP data |
nrows | number of rows to set the size marker to |
ncols | number of columns to set the size marker to |
Definition at line 9801 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, and NULL.
Referenced by treeBacktrackProbing().
SCIP_RETCODE SCIPlpGetBasisInd | ( | SCIP_LP * | lp, |
int * | basisind ) |
gets all indices of basic columns and rows: index i >= 0 corresponds to column i, index i < 0 to row -i-1
lp | LP data |
basisind | pointer to store basis indices ready to keep number of rows entries |
Definition at line 9815 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBasisInd(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBasisInd().
SCIP_RETCODE SCIPlpGetBase | ( | SCIP_LP * | lp, |
int * | cstat, | ||
int * | rstat ) |
gets current basis status for columns and rows; arrays must be large enough to store the basis status
lp | LP data |
cstat | array to store column basis status, or NULL |
rstat | array to store row basis status, or NULL |
Definition at line 9832 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBase(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
SCIP_RETCODE SCIPlpGetBInvRow | ( | SCIP_LP * | lp, |
int | r, | ||
SCIP_Real * | coef, | ||
int * | inds, | ||
int * | ninds ) |
gets a row from the inverse basis matrix B^-1
lp | LP data |
r | row number |
coef | pointer to store the coefficients of the row |
inds | array to store the non-zero indices, or NULL |
ninds | pointer to store the number of non-zero indices, or NULL (-1: if we do not store sparsity informations) |
Definition at line 9849 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, r, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPlpiGetBInvRow(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBInvRow().
SCIP_RETCODE SCIPlpGetBInvCol | ( | SCIP_LP * | lp, |
int | c, | ||
SCIP_Real * | coef, | ||
int * | inds, | ||
int * | ninds ) |
gets a column from the inverse basis matrix B^-1
lp | LP data |
c | column number of B^-1; this is NOT the number of the column in the LP returned by SCIPcolGetLPPos(); you have to call SCIPgetBasisInd() to get the array which links the B^-1 column numbers to the row and column numbers of the LP! c must be between 0 and nrows-1, since the basis has the size nrows * nrows |
coef | pointer to store the coefficients of the column |
inds | array to store the non-zero indices, or NULL |
ninds | pointer to store the number of non-zero indices, or NULL (-1: if we do not store sparsity informations) |
Definition at line 9871 of file lp.c.
References assert(), c, SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPlpiGetBInvCol(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBInvCol().
SCIP_RETCODE SCIPlpGetBInvARow | ( | SCIP_LP * | lp, |
int | r, | ||
SCIP_Real * | binvrow, | ||
SCIP_Real * | coef, | ||
int * | inds, | ||
int * | ninds ) |
gets a row from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A)
lp | LP data |
r | row number |
binvrow | row in B^-1 from prior call to SCIPlpGetBInvRow(), or NULL |
coef | pointer to store the coefficients of the row |
inds | array to store the non-zero indices, or NULL |
ninds | pointer to store the number of non-zero indices, or NULL (-1: if we do not store sparsity informations) |
Definition at line 9897 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, r, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPlpiGetBInvARow(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBInvARow().
SCIP_RETCODE SCIPlpGetBInvACol | ( | SCIP_LP * | lp, |
int | c, | ||
SCIP_Real * | coef, | ||
int * | inds, | ||
int * | ninds ) |
gets a column from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A), i.e., it computes B^-1 * A_c with A_c being the c'th column of A
lp | LP data |
c | column number which can be accessed by SCIPcolGetLPPos() |
coef | pointer to store the coefficients of the column |
inds | array to store the non-zero indices, or NULL |
ninds | pointer to store the number of non-zero indices, or NULL (-1: if we do not store sparsity informations) |
Definition at line 9922 of file lp.c.
References assert(), c, SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPlpiGetBInvACol(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBInvACol().
SCIP_RETCODE SCIPlpSumRows | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_Real * | weights, | ||
SCIP_REALARRAY * | sumcoef, | ||
SCIP_Real * | sumlhs, | ||
SCIP_Real * | sumrhs ) |
calculates a weighted sum of all LP rows; for negative weights, the left and right hand side of the corresponding LP row are swapped in the summation
lp | LP data |
set | global SCIP settings |
prob | problem data |
weights | row weights in row summation |
sumcoef | array to store sum coefficients indexed by variables' probindex |
sumlhs | pointer to store the left hand side of the row summation |
sumrhs | pointer to store the right hand side of the row summation |
Definition at line 9946 of file lp.c.
References assert(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::constant, FALSE, i, SCIP_Row::len, SCIP_Row::lhs, SCIP_Lp::nrows, NULL, nvars, SCIP_Prob::nvars, r, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPrealarrayClear(), SCIPrealarrayExtend(), SCIPrealarrayIncVal(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIP_Row::vals, SCIP_Col::var, and SCIP_Col::var_probindex.
Referenced by SCIPsumLPRows().
SCIP_RETCODE SCIPlpGetState | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPISTATE ** | lpistate ) |
stores LP state (like basis information) into LP state object
lp | LP data |
blkmem | block memory |
lpistate | pointer to LP state information (like basis information) |
Definition at line 10032 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetState(), and SCIP_Lp::solved.
Referenced by forkCreate(), probingnodeUpdate(), and SCIPtreeStartProbing().
SCIP_RETCODE SCIPlpSetState | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LPISTATE * | lpistate, | ||
SCIP_Bool | wasprimfeas, | ||
SCIP_Bool | wasprimchecked, | ||
SCIP_Bool | wasdualfeas, | ||
SCIP_Bool | wasdualchecked ) |
loads LP state (like basis information) into solver
lp | LP data |
blkmem | block memory |
set | global SCIP settings |
prob | problem data |
eventqueue | event queue |
lpistate | LP state information (like basis information) |
wasprimfeas | primal feasibility when LP state information was stored |
wasprimchecked | true if the LP solution has passed the primal feasibility check |
wasdualfeas | dual feasibility when LP state information was stored |
wasdualchecked | true if the LP solution has passed the dual feasibility check |
Definition at line 10056 of file lp.c.
References assert(), SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPlpFlush(), SCIPlpiHasStateBasis(), SCIPlpiSetState(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPlpEndDive(), SCIPtreeEndProbing(), SCIPtreeLoadLPState(), and SCIPtreeLoadProbingLPState().
SCIP_RETCODE SCIPlpFreeState | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPISTATE ** | lpistate ) |
frees LP state information
lp | LP data |
blkmem | block memory |
lpistate | pointer to LP state information (like basis information) |
Definition at line 10099 of file lp.c.
References assert(), SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiFreeState().
Referenced by forkReleaseLPIState(), probingnodeFree(), probingnodeUpdate(), SCIPlpEndDive(), SCIPtreeEndProbing(), SCIPtreeSetProbingLPState(), and subrootReleaseLPIState().
SCIP_RETCODE SCIPlpInterrupt | ( | SCIP_LP * | lp, |
SCIP_Bool | interrupt ) |
interrupts the currently ongoing lp solve or disables the interrupt
interrupts the currently ongoing lp solve, or disables the interrupt
lp | LP data |
interrupt | TRUE if interrupt should be set, FALSE if it should be disabled |
Definition at line 10116 of file lp.c.
References assert(), SCIP_Lp::lpi, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, and SCIPlpiInterrupt().
Referenced by SCIPinterruptLP().
SCIP_RETCODE SCIPlpGetNorms | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPINORMS ** | lpinorms ) |
stores pricing norms into LP norms object
lp | LP data |
blkmem | block memory |
lpinorms | pointer to LP pricing norms information |
Definition at line 10132 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetNorms(), and SCIP_Lp::solved.
Referenced by probingnodeUpdate(), and SCIPtreeStartProbing().
SCIP_RETCODE SCIPlpSetNorms | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPINORMS * | lpinorms ) |
loads pricing norms from LP norms object into solver
lp | LP data |
blkmem | block memory |
lpinorms | LP pricing norms information |
Definition at line 10156 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiSetNorms().
Referenced by SCIPtreeEndProbing(), and SCIPtreeLoadProbingLPState().
SCIP_RETCODE SCIPlpFreeNorms | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPINORMS ** | lpinorms ) |
frees pricing norms information
lp | LP data |
blkmem | block memory |
lpinorms | pointer to LP pricing norms information |
Definition at line 10176 of file lp.c.
References assert(), SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiFreeNorms().
Referenced by probingnodeFree(), probingnodeUpdate(), SCIPtreeEndProbing(), and SCIPtreeSetProbingLPState().
return the current cutoff bound of the lp
lp | current LP data |
Definition at line 10190 of file lp.c.
References assert(), SCIP_Lp::cutoffbound, NULL, and SCIP_Real.
Referenced by SCIPreoptCheckCutoff().
SCIP_RETCODE SCIPlpSetCutoffbound | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_Real | cutoffbound ) |
sets the upper objective limit of the LP solver
lp | current LP data |
set | global SCIP settings |
prob | problem data |
cutoffbound | new upper objective limit |
Definition at line 10200 of file lp.c.
References assert(), SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, lpCutoffDisabled, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, NULL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIPlpDivingObjChanged(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPsetDebugMsg, SCIPsetIsInfinity(), and SCIP_Lp::solved.
Referenced by primalSetCutoffbound(), SCIPchgCutoffboundDive(), SCIPchgVarObjDive(), SCIPchgVarObjProbing(), SCIPendDive(), and treeBacktrackProbing().
gets current primal feasibility tolerance of LP solver
lp | current LP data |
Definition at line 10245 of file lp.c.
References assert(), SCIP_Lp::feastol, NULL, and SCIP_Real.
Referenced by SCIPgetLPFeastol().
sets primal feasibility tolerance of LP solver
lp | current LP data |
set | global SCIP settings |
newfeastol | new primal feasibility tolerance for LP |
Definition at line 10255 of file lp.c.
References assert(), FALSE, SCIP_Lp::feastol, SCIP_Lp::lpsolstat, NULL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_Real, SCIPsetDebugMsg, and SCIP_Lp::solved.
Referenced by SCIPlpResetFeastol(), and SCIPsetLPFeastol().
resets primal feasibility tolerance of LP solver
Sets primal feasibility tolerance to min of numerics/lpfeastolfactor * numerics/feastol and relaxfeastol.
lp | current LP data |
set | global SCIP settings |
Definition at line 10280 of file lp.c.
References assert(), MIN, NULL, SCIP_INVALID, SCIPlpSetFeastol(), SCIPsetDebugMsg, SCIPsetFeastol(), SCIPsetLPFeastolFactor(), and SCIPsetRelaxfeastol().
Referenced by SCIPlpCreate(), SCIPresetLPFeastol(), and solveNode().
SCIP_RETCODE SCIPlpFlush | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_EVENTQUEUE * | eventqueue ) |
applies all cached changes to the LP solver
lp | current LP data |
blkmem | block memory |
set | global SCIP settings |
prob | problem data |
eventqueue | event queue |
Definition at line 8669 of file lp.c.
References assert(), checkLinks, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushaddedcols, SCIP_Lp::flushaddedrows, SCIP_Lp::flushdeletedcols, SCIP_Lp::flushdeletedrows, SCIP_Lp::flushed, lpCutoffDisabled, lpFlushAddCols(), lpFlushAddRows(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpFlushDelRows(), SCIP_Lp::lpi, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Lp::lpiobjlim, SCIP_Lp::lpsolstat, SCIP_Lp::nchgcols, SCIP_Lp::nchgrows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiGetNCols(), SCIPlpiGetNRows(), SCIPsetDebugMsg, SCIP_Lp::solved, and TRUE.
Referenced by focusnodeCleanupVars(), lpFlushAndSolve(), priceAndCutLoop(), SCIPflushLP(), SCIPlpEndDive(), SCIPlpReset(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPtreeEndProbing(), SCIPwriteLP(), and SCIPwriteMIP().
SCIP_RETCODE SCIPlpMarkFlushed | ( | SCIP_LP * | lp, |
SCIP_SET * | set ) |
marks the LP to be flushed, even if the LP thinks it is not flushed
lp | current LP data |
set | global SCIP settings |
Definition at line 8733 of file lp.c.
References assert(), checkLinks, SCIP_Lp::chgcols, SCIP_Lp::chgrows, SCIP_Col::coefchanged, SCIP_Row::coefchanged, SCIP_Lp::cols, SCIP_Row::constant, FALSE, SCIP_Lp::flushed, SCIP_Col::flushedlb, SCIP_Row::flushedlhs, SCIP_Col::flushedobj, SCIP_Row::flushedrhs, SCIP_Col::flushedub, i, SCIP_Col::lb, SCIP_Col::lbchanged, SCIP_Row::lhs, SCIP_Row::lhschanged, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::nchgcols, SCIP_Lp::nchgrows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_Row::rhs, SCIP_Row::rhschanged, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPlpiGetBounds(), SCIPlpiGetObj(), SCIPlpiGetSides(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPsetIsInfinity(), SCIPsetIsSumEQ(), SCIPvarGetCol(), SCIPvarGetStatus(), TRUE, SCIP_Col::ub, SCIP_Col::ubchanged, and SCIP_Col::var.
SCIP_RETCODE SCIPlpSolveAndEval | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
SCIP_PROB * | prob, | ||
SCIP_Longint | itlim, | ||
SCIP_Bool | limitresolveiters, | ||
SCIP_Bool | aging, | ||
SCIP_Bool | keepsol, | ||
SCIP_Bool | forcedlpsolve, | ||
SCIP_Bool * | lperror ) |
solves the LP with simplex algorithm, and copy the solution into the column's data
lp | LP data |
set | global SCIP settings |
messagehdlr | message handler |
blkmem | block memory buffers |
stat | problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
prob | problem data |
itlim | maximal number of LP iterations to perform, or -1 for no limit |
limitresolveiters | should LP iterations for resolving calls be limited? (limit is computed within the method w.r.t. the average LP iterations) |
aging | should aging and removal of obsolete cols/rows be applied? |
keepsol | should the old LP solution be kept if no iterations were performed? |
forcedlpsolve | would SCIP abort if the LP is not solved? |
lperror | pointer to store whether an unresolved LP error occurred |
Definition at line 12413 of file lp.c.
References assert(), checkLazyBounds(), SCIP_Lp::cutoffbound, SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushaddedcols, SCIP_Lp::flushdeletedcols, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::lastlpalgo, lpCutoffDisabled, lperror, lpFlushAndSolve(), lpGetResolveItlim(), SCIP_Lp::lpi, SCIP_Lp::lpifromscratch, SCIP_Lp::lpihasfastmip, SCIP_Lp::lpiobjlim, lpNumericalTroubleMessage(), SCIP_Lp::lpobjval, lpSetFromscratch(), SCIP_Lp::lpsolstat, lpSolve(), MIN, SCIP_Stat::nclockskipsleft, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, objval, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_Lp::probing, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPERROR, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_STATUS_TIMELIMIT, SCIP_UNUSED, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPerrorMessage, SCIPlpFlush(), SCIPlpGetDualfarkas(), SCIPlpGetLPI(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpiGetObjval(), SCIPlpiHasDualRay(), SCIPlpiInfinity(), SCIPlpiIsObjlimExc(), SCIPlpRemoveNewObsoletes(), SCIPlpUpdateAges(), SCIPmessagePrintVerbInfo(), SCIPmessagePrintWarning(), SCIPprobAllColsInLP(), SCIPsetDebugMsg, SCIPsetGetCharParam(), SCIPsetInfinity(), SCIPsetIsFeasNegative(), SCIPsetIsGE(), SCIPsetIsLT(), SCIPsetSetCharParam(), SCIPsolveIsStopped(), SCIP_Lp::solved, SCIP_Stat::status, TRUE, updateLazyBounds(), and SCIP_Stat::userinterrupt.
Referenced by focusnodeToFork(), priceAndCutLoop(), SCIPlpEndDive(), SCIPpriceLoop(), SCIPsolveDiveLP(), SCIPtreeEndProbing(), separationRoundResolveLP(), solveNodeInitialLP(), solveNodeLP(), and solveProbingLP().
SCIP_LPSOLSTAT SCIPlpGetSolstat | ( | SCIP_LP * | lp | ) |
gets solution status of current LP
lp | current LP data |
Definition at line 13105 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpsolstat, NULL, SCIP_LPSOLSTAT_NOTSOLVED, and SCIP_Lp::solved.
Referenced by branchcandCalcLPCands(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), enforceConstraints(), focusnodeToFork(), forkCreate(), priceAndCutLoop(), propAndSolve(), SCIPconflictAnalyzeLP(), SCIPcutpoolAddNewRow(), SCIPgetLPBranchCands(), SCIPgetLPSolstat(), SCIPgetNLPBranchCands(), SCIPgetNPrioLPBranchCands(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpEndDive(), SCIPlpGetDualDegeneracy(), SCIPlpGetSol(), SCIPlpRemoveAllObsoletes(), SCIPlpRemoveNewObsoletes(), SCIPlpSetCutoffbound(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodepqBound(), SCIPpriceLoop(), SCIPpricerExec(), SCIPpricestoreAddProbVars(), SCIPprobUpdateBestRootSol(), SCIPreoptCheckCutoff(), SCIPsolveCIP(), SCIPsolveDiveLP(), SCIPtreeEndProbing(), SCIPtreeStartProbing(), separationRoundLP(), solveNode(), solveNodeInitialLP(), solveNodeLP(), solveProbingLP(), updateEstimate(), updatePrimalRay(), and updatePseudocost().
sets whether the root LP is a relaxation of the problem and its optimal objective value is a global lower bound
sets whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
lp | LP data |
isrelax | is the root lp a relaxation of the problem? |
Definition at line 17747 of file lp.c.
References assert(), NULL, SCIP_Lp::rootlpisrelax, and SCIP_Bool.
Referenced by SCIPprobStoreRootSol().
returns whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
lp | LP data |
Definition at line 17758 of file lp.c.
References assert(), NULL, SCIP_Lp::rootlpisrelax, and SCIP_Bool.
Referenced by SCIPisRootLPRelax().
gets objective value of current LP
lp | current LP data |
set | global SCIP settings |
prob | problem data |
Definition at line 13121 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, SCIP_Lp::looseobjvalinf, SCIP_Lp::lpobjval, SCIP_Lp::nloosevars, NULL, recomputeLooseObjectiveValue(), SCIP_INVALID, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), and SCIP_Lp::solved.
Referenced by addCurrentSolution(), analyzeStrongbranch(), enforceConstraints(), forkCreate(), priceAndCutLoop(), propAndSolve(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPgetLPObjval(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPlpSetCutoffbound(), SCIPnodeUpdateLowerboundLP(), SCIPprobUpdateBestRootSol(), SCIPsolLinkLPSol(), SCIPsolveCIP(), solveNode(), solveNodeInitialLP(), solveNodeLP(), and updatePseudocost().
gets part of objective value of current LP that results from COLUMN variables only
lp | current LP data |
Definition at line 13149 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpobjval, NULL, SCIP_INVALID, SCIP_Real, and SCIP_Lp::solved.
Referenced by SCIPgetLPColumnObjval(), SCIPlpStoreRootObjval(), and SCIPprobStoreRootSol().
gets part of objective value of current LP that results from LOOSE variables only
lp | current LP data |
set | global SCIP settings |
prob | problem data |
Definition at line 13160 of file lp.c.
References assert(), SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, SCIP_INVALID, SCIP_Real, SCIPsetInfinity(), and SCIP_Lp::solved.
Referenced by performStrongbranchWithPropagation(), SCIPgetLPLooseObjval(), SCIPlpStoreRootObjval(), and SCIPsolLinkLPSol().
remembers the current LP objective value as root solution value
lp | current LP data |
set | global SCIP settings |
prob | problem data |
Definition at line 13180 of file lp.c.
References assert(), NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, SCIPlpGetColumnObjval(), and SCIPlpGetLooseObjval().
Referenced by SCIPprobStoreRootSol().
void SCIPlpInvalidateRootObjval | ( | SCIP_LP * | lp | ) |
invalidates the root LP solution value
lp | current LP data |
Definition at line 13193 of file lp.c.
References assert(), NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, and SCIP_INVALID.
Referenced by freeReoptSolve(), and freeSolve().
gets the global pseudo objective value; that is all variables set to their best (w.r.t. the objective function) global bound
lp | current LP data |
set | global SCIP settings |
prob | problem data |
Definition at line 13272 of file lp.c.
References assert(), SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, NULL, recomputeGlbPseudoObjectiveValue(), SCIP_Real, SCIPsetInfinity(), and SCIPsetIsInfinity().
Referenced by SCIPgetGlobalPseudoObjval(), and solveNode().
recomputes local and global pseudo objective values
lp | current LP data |
set | global SCIP settings |
prob | problem data |
Definition at line 13204 of file lp.c.
References assert(), SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, NULL, nvars, SCIP_Prob::nvars, obj, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, SCIP_Lp::relglbpseudoobjval, SCIP_Lp::relpseudoobjval, SCIP_Real, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), TRUE, SCIP_Prob::vars, and vars.
Referenced by prepareReoptimization(), and treeBacktrackProbing().
gets the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the objective function) local bound
lp | current LP data |
set | global SCIP settings |
prob | problem data |
Definition at line 13304 of file lp.c.
References assert(), NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, recomputePseudoObjectiveValue(), SCIP_Real, SCIPsetInfinity(), and SCIPsetIsInfinity().
Referenced by applyBounding(), enforceConstraints(), SCIPconflictAnalyzePseudo(), SCIPgetPseudoObjval(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPprimalHeuristics(), SCIPsolLinkPseudoSol(), and solveNode().
SCIP_Real SCIPlpGetModifiedPseudoObjval | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldbound, | ||
SCIP_Real | newbound, | ||
SCIP_BOUNDTYPE | boundtype ) |
gets pseudo objective value, if a bound of the given variable would be modified in the given way
lp | current LP data |
set | global SCIP settings |
prob | problem data |
var | problem variable |
oldbound | old value for bound |
newbound | new value for bound |
boundtype | type of bound: lower or upper bound |
Definition at line 13334 of file lp.c.
References assert(), getFinitePseudoObjval(), obj, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), SCIPvarGetObj(), and var.
Referenced by SCIPgetVarStrongbranchFrac(), SCIPgetVarStrongbranchInt(), SCIPgetVarStrongbranchWithPropagation(), and SCIPnodeAddBoundinfer().
SCIP_Real SCIPlpGetModifiedProvedPseudoObjval | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldbound, | ||
SCIP_Real | newbound, | ||
SCIP_BOUNDTYPE | boundtype ) |
gets pseudo objective value, if a bound of the given variable would be modified in the given way; perform calculations with interval arithmetic to get an exact lower bound
lp | current LP data |
set | global SCIP settings |
var | problem variable |
oldbound | old value for bound |
newbound | new value for bound |
boundtype | type of bound: lower or upper bound |
Definition at line 13374 of file lp.c.
References assert(), obj, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSub(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), SCIPvarGetObj(), and var.
Referenced by SCIPgetVarStrongbranchFrac(), SCIPgetVarStrongbranchInt(), SCIPgetVarStrongbranchWithPropagation(), and SCIPnodeAddBoundinfer().
SCIP_RETCODE SCIPlpUpdateVarObj | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldobj, | ||
SCIP_Real | newobj ) |
updates current pseudo and loose objective value for a change in a variable's objective coefficient
lp | current LP data |
set | global SCIP settings |
var | problem variable that changed |
oldobj | old objective coefficient of variable |
newobj | new objective coefficient of variable |
Definition at line 13840 of file lp.c.
References assert(), FALSE, getObjvalDeltaObj(), lpUpdateObjval(), lpUpdateVarProved(), newobj, NULL, oldobj, SCIP_Lp::probing, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), TRUE, and var.
Referenced by SCIPeventProcess(), SCIPlpUpdateAddVar(), and SCIPlpUpdateDelVar().
SCIP_RETCODE SCIPlpUpdateVarLbGlobal | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldlb, | ||
SCIP_Real | newlb ) |
updates current root pseudo objective value for a global change in a variable's lower bound
lp | current LP data |
set | global SCIP settings |
var | problem variable that changed |
oldlb | old lower bound of variable |
newlb | new lower bound of variable |
Definition at line 13894 of file lp.c.
References assert(), FALSE, getObjvalDeltaLb(), lpUpdateObjval(), NULL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), TRUE, and var.
Referenced by SCIPeventProcess().
SCIP_RETCODE SCIPlpUpdateVarLb | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldlb, | ||
SCIP_Real | newlb ) |
updates current pseudo and loose objective value for a change in a variable's lower bound
lp | current LP data |
set | global SCIP settings |
var | problem variable that changed |
oldlb | old lower bound of variable |
newlb | new lower bound of variable |
Definition at line 13921 of file lp.c.
References assert(), FALSE, getObjvalDeltaLb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), TRUE, and var.
Referenced by SCIPeventProcess().
SCIP_RETCODE SCIPlpUpdateVarUbGlobal | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldub, | ||
SCIP_Real | newub ) |
updates current root pseudo objective value for a global change in a variable's upper bound
lp | current LP data |
set | global SCIP settings |
var | problem variable that changed |
oldub | old upper bound of variable |
newub | new upper bound of variable |
Definition at line 13962 of file lp.c.
References assert(), FALSE, getObjvalDeltaUb(), lpUpdateObjval(), NULL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetObj(), TRUE, and var.
Referenced by SCIPeventProcess().
SCIP_RETCODE SCIPlpUpdateVarUb | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldub, | ||
SCIP_Real | newub ) |
updates current pseudo objective value for a change in a variable's upper bound
lp | current LP data |
set | global SCIP settings |
var | problem variable that changed |
oldub | old upper bound of variable |
newub | new upper bound of variable |
Definition at line 13989 of file lp.c.
References assert(), FALSE, getObjvalDeltaUb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), TRUE, and var.
Referenced by SCIPeventProcess().
SCIP_RETCODE SCIPlpUpdateAddVar | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var ) |
informs LP, that given variable was added to the problem
lp | current LP data |
set | global SCIP settings |
var | variable that is now a LOOSE problem variable |
Definition at line 14030 of file lp.c.
References assert(), SCIP_Lp::nloosevars, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpUpdateVarObj(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and var.
Referenced by SCIPprobAddVar().
SCIP_RETCODE SCIPlpUpdateDelVar | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var ) |
informs LP, that given variable is to be deleted from the problem
lp | current LP data |
set | global SCIP settings |
var | variable that will be deleted from the problem |
Definition at line 14051 of file lp.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpDecNLoosevars(), SCIPlpUpdateVarObj(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and var.
Referenced by SCIPprobPerformVarDeletions().
SCIP_RETCODE SCIPlpUpdateVarColumn | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var ) |
informs LP, that given formerly loose problem variable is now a column variable
lp | current LP data |
set | global SCIP settings |
var | problem variable that changed from LOOSE to COLUMN |
Definition at line 14187 of file lp.c.
References assert(), lpUpdateVarColumn(), lpUpdateVarColumnProved(), NULL, SCIP_CALL, SCIP_OKAY, and var.
Referenced by SCIPvarColumn().
SCIP_RETCODE SCIPlpUpdateVarLoose | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var ) |
informs LP, that given formerly column problem variable is now again a loose variable
lp | current LP data |
set | global SCIP settings |
var | problem variable that changed from COLUMN to LOOSE |
Definition at line 14311 of file lp.c.
References assert(), lpUpdateVarLoose(), lpUpdateVarLooseProved(), NULL, SCIP_CALL, SCIP_OKAY, and var.
Referenced by SCIPvarLoose().
void SCIPlpDecNLoosevars | ( | SCIP_LP * | lp | ) |
decrease the number of loose variables by one
lp | current LP data |
Definition at line 14332 of file lp.c.
References assert(), SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, and NULL.
Referenced by lpUpdateVarColumn(), SCIPlpUpdateDelVar(), SCIPvarFix(), and SCIPvarMultiaggregate().
SCIP_RETCODE SCIPlpGetSol | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_Bool * | primalfeasible, | ||
SCIP_Bool * | dualfeasible ) |
stores the LP solution in the columns and rows
lp | current LP data |
set | global SCIP settings |
stat | problem statistics |
primalfeasible | pointer to store whether the solution is primal feasible, or NULL |
dualfeasible | pointer to store whether the solution is dual feasible, or NULL |
Definition at line 14350 of file lp.c.
References SCIP_Row::activity, assert(), SCIP_Col::basisstatus, SCIP_Row::basisstatus, BMSclearMemoryArray, c, SCIP_Row::constant, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Lp::lastlpalgo, SCIP_Col::lb, SCIP_Row::lhs, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, MAX, SCIP_Col::maxprimsol, MIN, SCIP_Col::minprimsol, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Col::obj, primsol, SCIP_Col::primsol, r, SCIP_Col::redcost, SCIP_Row::rhs, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPALGO_BARRIER, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIPisFinite, SCIPlpGetSolstat(), SCIPlpiGetBase(), SCIPlpiGetSol(), SCIPlpIsFeasGE(), SCIPlpIsFeasGT(), SCIPlpIsFeasLE(), SCIPlpIsFeasLT(), SCIProwRecalcLPActivity(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasNegative(), SCIPsetIsDualfeasPositive(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPvarGetName(), SCIP_Lp::solisbasic, SCIP_Lp::solved, TRUE, SCIP_Col::ub, SCIP_Row::validactivitylp, SCIP_Col::validredcostlp, SCIP_Lp::validsollp, and var.
Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
SCIP_RETCODE SCIPlpGetUnboundedSol | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_Bool * | primalfeasible, | ||
SCIP_Bool * | rayfeasible ) |
stores LP solution with infinite objective value in the columns and rows
lp | current LP data |
set | global SCIP settings |
stat | problem statistics |
primalfeasible | pointer to store whether the solution is primal feasible, or NULL |
rayfeasible | pointer to store whether the primal ray is a feasible unboundedness proof, or NULL |
Definition at line 14667 of file lp.c.
References SCIP_Row::activity, assert(), c, SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Col::lppos, SCIP_Lp::lpsolstat, MAX, MIN, SCIP_Row::nlpcols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Row::nunlinked, SCIP_Col::obj, primsol, SCIP_Col::primsol, r, REALABS, SCIP_Col::redcost, SCIP_Row::rhs, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPlpiGetPrimalRay(), SCIPlpiGetSol(), SCIPlpiHasPrimalRay(), SCIPlpIsFeasGE(), SCIPlpIsFeasGT(), SCIPlpIsFeasLE(), SCIPlpIsFeasLT(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIP_Lp::solved, TRUE, SCIP_Col::ub, SCIP_Row::validactivitylp, SCIP_Col::validredcostlp, SCIP_Lp::validsollp, SCIP_Row::vals, SCIP_Col::var, and var.
Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
SCIP_RETCODE SCIPlpGetPrimalRay | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_Real * | ray ) |
returns primal ray proving the unboundedness of the current LP
lp | current LP data |
set | global SCIP settings |
ray | array for storing primal ray values, they are stored w.r.t. the problem index of the variables, so the size of this array should be at least number of active variables (all entries have to be initialized to 0 before) |
Definition at line 14993 of file lp.c.
References assert(), c, SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, NULL, SCIP_CALL, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPlpiGetPrimalRay(), SCIPlpiHasPrimalRay(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPvarGetProbindex(), SCIP_Lp::solved, SCIP_Col::var, and var.
Referenced by updatePrimalRay().
SCIP_RETCODE SCIPlpGetDualfarkas | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_Bool | forcedlpsolve, | ||
SCIP_Bool * | valid ) |
stores the dual Farkas multipliers for infeasibility proof in rows. besides, the proof is checked for validity if lp/checkfarkas = TRUE.
valid
is NULL. lp | current LP data |
set | global SCIP settings |
stat | problem statistics |
forcedlpsolve | would SCIP abort if the LP is not solved? |
valid | pointer to store whether the Farkas proof is valid or NULL |
Definition at line 15054 of file lp.c.
References SCIP_Row::activity, assert(), SCIP_Row::basisstatus, BMSclearMemoryArray, c, SCIP_Row::constant, SCIP_Row::dualfarkas, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Row::len, SCIP_Row::lhs, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Col::primsol, r, SCIP_Col::redcost, SCIP_Row::rhs, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPcolGetLPPos(), SCIPcolGetVar(), SCIPlpiGetDualfarkas(), SCIPmessagePrintWarning(), SCIProwGetName(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasGT(), SCIPsetIsDualfeasLT(), SCIPsetIsDualfeasZero(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsRelGE(), SCIPvarGetName(), SCIP_Lp::solved, TRUE, SCIP_Col::ub, valid, SCIP_Row::validactivitylp, SCIP_Col::validfarkaslp, SCIP_Lp::validfarkaslp, SCIP_Col::validredcostlp, and SCIP_Row::vals.
Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
SCIP_RETCODE SCIPlpGetIterations | ( | SCIP_LP * | lp, |
int * | iterations ) |
get number of iterations used in last LP solve
lp | current LP data |
iterations | pointer to store the iteration count |
Definition at line 15255 of file lp.c.
References assert(), SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiGetIterations().
Referenced by lpBarrier(), lpDualSimplex(), lpLexDualSimplex(), and lpPrimalSimplex().
SCIP_RETCODE SCIPlpUpdateAges | ( | SCIP_LP * | lp, |
SCIP_STAT * | stat ) |
increases age of columns with solution value 0.0 and rows with activity not at its bounds, resets age of non-zero columns and sharp rows
increases age of columns with solution value 0.0 and basic rows with activity not at its bounds, resets age of non-zero columns and sharp rows
lp | current LP data |
stat | problem statistics |
Definition at line 15270 of file lp.c.
References SCIP_Row::activeinlpcounter, SCIP_Col::age, SCIP_Row::age, assert(), c, SCIP_Lp::cols, SCIP_Lp::flushed, SCIP_Stat::lpcount, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Row::nlpsaftercreation, SCIP_Lp::nrows, NULL, primsol, r, SCIP_Lp::rows, SCIP_OKAY, SCIPdebugMessage, SCIP_Lp::solved, and SCIP_Lp::validsollp.
Referenced by SCIPlpSolveAndEval().
SCIP_RETCODE SCIPlpRemoveNewObsoletes | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter ) |
removes all non-basic columns and basic rows in the part of the LP created at the current node, that are too old
lp | current LP data |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
Definition at line 15679 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetSolstat(), SCIPsetDebugMsg, and SCIP_Lp::solved.
Referenced by SCIPlpSolveAndEval().
SCIP_RETCODE SCIPlpRemoveAllObsoletes | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter ) |
removes all non-basic columns and basic rows in whole LP, that are too old
lp | current LP data |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
Definition at line 15710 of file lp.c.
References assert(), SCIP_Lp::diving, lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetSolstat(), SCIPsetDebugMsg, and SCIP_Lp::solved.
SCIP_RETCODE SCIPlpCleanupNew | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
SCIP_Bool | root ) |
removes all non-basic columns at 0.0 and basic rows in the part of the LP created at the current node
lp | current LP data |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
root | are we at the root node? |
Definition at line 15879 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, SCIP_Lp::lastlpalgo, lpCleanupCols(), lpCleanupRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetSolstat(), SCIPsetDebugMsg, SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by focusnodeToFork().
SCIP_RETCODE SCIPlpCleanupAll | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
SCIP_Bool | root ) |
removes all non-basic columns at 0.0 and basic rows in the whole LP
lp | current LP data |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
root | are we at the root node? |
Definition at line 15918 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Lp::lastlpalgo, lpCleanupCols(), lpCleanupRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetSolstat(), SCIPsetDebugMsg, SCIP_Lp::solisbasic, and SCIP_Lp::solved.
SCIP_RETCODE SCIPlpRemoveRedundantRows | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter ) |
removes all redundant rows that were added at the current node
lp | current LP data |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
Definition at line 15957 of file lp.c.
References assert(), SCIP_Row::basisstatus, BMSclearMemoryArray, SCIP_Lp::diving, SCIP_Lp::firstnewrow, SCIP_Lp::flushed, SCIP_Stat::lpcount, lpDelRowset(), SCIP_Lp::lpirows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, r, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIProwGetLhs(), SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIProwGetName(), SCIProwGetRhs(), SCIProwIsRedundant(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIP_Lp::solisbasic, and SCIP_Lp::validsollp.
Referenced by priceAndCutLoop().
SCIP_RETCODE SCIPlpStartDive | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat ) |
initiates LP diving
lp | current LP data |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
Definition at line 16031 of file lp.c.
References assert(), c, SCIP_Lp::cols, colStoreSolVals(), SCIP_Lp::divelpistate, SCIP_Lp::divelpwasdualchecked, SCIP_Lp::divelpwasdualfeas, SCIP_Lp::divelpwasprimchecked, SCIP_Lp::divelpwasprimfeas, SCIP_Lp::divenolddomchgs, SCIP_Lp::diving, SCIP_Lp::divinglpiitlim, SCIP_Stat::domchgcount, SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpsolstat, SCIP_LpSolVals::lpsolstat, lpStoreSolVals(), SCIP_Lp::ncols, SCIP_Lp::ndivechgsides, SCIP_Lp::ndivingrows, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_Lp::probing, r, SCIP_Lp::rows, rowStoreSolVals(), SCIP_Bool, SCIP_CALL, SCIP_LPPAR_LPITLIM, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPlpGetDualfarkas(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpiGetIntpar(), SCIPlpiGetState(), SCIPsetDebugMsg, SCIPsetIsFeasEQ(), SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIP_Lp::solved, SCIP_Lp::storedsolvals, TRUE, SCIP_Col::ub, SCIP_Lp::validsollp, and SCIP_Col::var.
Referenced by SCIPstartDive().
SCIP_RETCODE SCIPlpEndDive | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
SCIP_PROB * | prob, | ||
SCIP_VAR ** | vars, | ||
int | nvars ) |
quits LP diving and resets bounds and objective values of columns to the current node's values
lp | current LP data |
blkmem | block memory |
set | global SCIP settings |
messagehdlr | message handler |
stat | problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
prob | problem data |
vars | array with all active variables |
nvars | number of active variables |
Definition at line 16137 of file lp.c.
References assert(), c, colRestoreSolVals(), SCIP_Lp::cols, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidetypes, SCIP_Lp::divelpistate, SCIP_Lp::divelpwasdualchecked, SCIP_Lp::divelpwasdualfeas, SCIP_Lp::divelpwasprimchecked, SCIP_Lp::divelpwasprimfeas, SCIP_Lp::divenolddomchgs, SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Lp::divinglpiitlim, SCIP_Lp::divingobjchg, SCIP_Stat::domchgcount, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Stat::lpcount, lperror, SCIP_LpSolVals::lpissolved, lpNumericalTroubleMessage(), lpRestoreSolVals(), lpSetIterationLimit(), SCIP_LpSolVals::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::ndivechgsides, SCIP_Lp::ndivingrows, SCIP_Lp::nlazycols, SCIP_Lp::nrows, NULL, nvars, SCIP_Col::obj, r, SCIP_Lp::resolvelperror, rowRestoreSolVals(), SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_VARSTATUS_COLUMN, SCIP_VERBLEVEL_FULL, SCIPcolChgLb(), SCIPcolChgObj(), SCIPcolChgUb(), SCIPlpFlush(), SCIPlpFreeState(), SCIPlpGetSolstat(), SCIPlpSetState(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIProwChgLhs(), SCIProwChgRhs(), SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPstatIncrement, SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIP_Lp::storedsolvals, TRUE, SCIP_Col::ub, updateLazyBounds(), SCIP_Col::var, var, and vars.
Referenced by SCIPendDive().
SCIP_RETCODE SCIPlpRecordOldRowSideDive | ( | SCIP_LP * | lp, |
SCIP_ROW * | row, | ||
SCIP_SIDETYPE | sidetype ) |
records a current row side such that any change will be undone after diving
lp | LP data object |
row | row affected by the change |
sidetype | side type |
Definition at line 16319 of file lp.c.
References assert(), SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, DIVESTACKGROWFACT, SCIP_Row::lhs, SCIP_Lp::ndivechgsides, NULL, reallocDiveChgSideArrays(), SCIP_Row::rhs, SCIP_CALL, SCIP_OKAY, and SCIP_SIDETYPE_LEFT.
Referenced by SCIPchgRowLhsDive(), and SCIPchgRowRhsDive().
SCIP_RETCODE SCIPlpStartProbing | ( | SCIP_LP * | lp | ) |
informs the LP that probing mode was initiated
lp | current LP data |
Definition at line 16343 of file lp.c.
References assert(), NULL, SCIP_Lp::probing, SCIP_OKAY, SCIP_Lp::strongbranching, SCIP_Lp::strongbranchprobing, and TRUE.
Referenced by SCIPtreeStartProbing().
SCIP_RETCODE SCIPlpEndProbing | ( | SCIP_LP * | lp | ) |
informs the LP that probing mode was finished
lp | current LP data |
Definition at line 16358 of file lp.c.
References assert(), FALSE, NULL, SCIP_Lp::probing, SCIP_OKAY, SCIP_Lp::strongbranching, and SCIP_Lp::strongbranchprobing.
Referenced by SCIPtreeEndProbing().
void SCIPlpStartStrongbranchProbing | ( | SCIP_LP * | lp | ) |
informs the LP that the probing mode is now used for strongbranching
lp | current LP data |
Definition at line 16373 of file lp.c.
References assert(), NULL, SCIP_Lp::probing, SCIP_Lp::strongbranching, SCIP_Lp::strongbranchprobing, and TRUE.
Referenced by SCIPstartStrongbranch().
void SCIPlpEndStrongbranchProbing | ( | SCIP_LP * | lp | ) |
informs the LP that the probing mode is not used for strongbranching anymore
lp | current LP data |
Definition at line 16386 of file lp.c.
References assert(), FALSE, NULL, SCIP_Lp::probing, SCIP_Lp::strongbranching, and SCIP_Lp::strongbranchprobing.
Referenced by SCIPendStrongbranch().
SCIP_RETCODE SCIPlpGetProvedLowerbound | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_Real * | bound ) |
gets proven lower (dual) bound of last LP solution
lp | current LP data |
set | global SCIP settings |
bound | pointer to store proven dual bound |
Definition at line 16519 of file lp.c.
References bound, FALSE, provedBound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, and SCIPsetDebugMsg.
Referenced by SCIPnodeUpdateLowerboundLP(), and solveNodeInitialLP().
SCIP_RETCODE SCIPlpIsInfeasibilityProved | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_Bool * | proved ) |
gets proven dual bound of last LP solution
lp | current LP data |
set | global SCIP settings |
proved | pointer to store whether infeasibility is proven |
Definition at line 16533 of file lp.c.
References assert(), bound, NULL, provedBound(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetDebugMsg, and TRUE.
SCIP_RETCODE SCIPlpWrite | ( | SCIP_LP * | lp, |
const char * | fname ) |
writes LP to a file
lp | current LP data |
fname | file name |
Definition at line 16555 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiWriteLP().
Referenced by lpBarrier(), lpDualSimplex(), lpPrimalSimplex(), and SCIPwriteLP().
SCIP_RETCODE SCIPlpWriteMip | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
const char * | fname, | ||
SCIP_Bool | genericnames, | ||
SCIP_Bool | origobj, | ||
SCIP_OBJSENSE | objsense, | ||
SCIP_Real | objscale, | ||
SCIP_Real | objoffset, | ||
SCIP_Bool | lazyconss ) |
writes MIP to a file
writes MIP relaxation of the current B&B node to a file
lp | current LP data |
set | global SCIP settings |
messagehdlr | message handler |
fname | file name |
genericnames | should generic names like x_i and row_j be used in order to avoid troubles with reserved symbols? |
origobj | should the original objective function be used? |
objsense | objective sense |
objscale | objective scaling factor |
objoffset | objective offset, e.g., caused by variable fixings in presolving |
lazyconss | output removable rows as lazy constraints? |
Definition at line 16570 of file lp.c.
References assert(), SCIP_Lp::cols, SCIP_Row::cols, SCIP_Row::constant, SCIP_Lp::flushed, i, SCIP_Col::lb, SCIP_Row::lhs, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Row::name, SCIP_Var::name, SCIP_Lp::ncols, SCIP_Row::nlpcols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, objscale, REALABS, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Bool, SCIP_ERROR, SCIP_FILECREATEERROR, SCIP_MAXSTRLEN, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPmessageFPrintInfo(), SCIPmessagePrintWarning(), SCIPprintSysError(), SCIProwIsRemovable(), SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsnprintf(), SCIPvarIsIntegral(), SCIP_Col::ub, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPwriteMIP().
recalculates Euclidean norm of objective function vector of column variables if it have gotten unreliable during calculation
set | global SCIP settings |
lp | LP data |
Definition at line 17704 of file lp.c.
References assert(), c, SCIP_Lp::cols, FALSE, MAX, SCIP_Lp::ncols, NULL, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, SCIPsetIsGE(), and SQR.
Referenced by SCIPgetObjNorm(), and SCIProwGetObjParallelism().
SCIP_RETCODE SCIPlpComputeRelIntPoint | ( | SCIP_SET * | set, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
SCIP_LP * | lp, | ||
SCIP_PROB * | prob, | ||
SCIP_Bool | relaxrows, | ||
SCIP_Bool | inclobjcutoff, | ||
SCIP_Real | timelimit, | ||
int | iterlimit, | ||
SCIP_Real * | point, | ||
SCIP_Bool * | success ) |
compute relative interior point
compute relative interior point
We use the approach of
to compute a relative interior point for the current LP.
Assume the original LP looks as follows:
\[ \begin{array}{rrl} \min & c^T x &\\ & A x & \geq a\\ & B x & \leq b\\ & D x & = d. \end{array} \]
Note that bounds should be included in the system.
To find an interior point the following LP does the job:
\[ \begin{array}{rrl} \max & 1^T y &\\ & A x - y - \alpha a & \geq 0\\ & B x + y - \alpha b & \leq 0\\ & D x - \alpha d & = 0\\ & 0 \leq y & \leq 1\\ & \alpha & \geq 1. \end{array} \]
If the original LP is feasible, this LP is feasible as well. Any optimal solution yields the relative interior point \(x^*_j/\alpha^*\). Note that this will just produce some relative interior point. It does not produce a particular relative interior point, e.g., one that maximizes the distance to the boundary in some norm.
set | global SCIP settings |
messagehdlr | message handler |
lp | LP data |
prob | problem data |
relaxrows | should the rows be relaxed |
inclobjcutoff | should a row for the objective cutoff be included |
timelimit | time limit for LP solver |
iterlimit | iteration limit for LP solver |
point | array to store relative interior point on exit |
success | buffer to indicate whether interior point was successfully computed |
Definition at line 18631 of file lp.c.
References assert(), BMSclearMemoryArray, computeRelIntPoint(), SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPERROR, SCIP_OBJSEN_MAXIMIZE, SCIP_OKAY, SCIP_Real, SCIPlpiCreate(), SCIPlpiFree(), SCIPsetDebugMsg, SCIPsetIsInfinity(), and TRUE.
Referenced by SCIPcomputeLPRelIntPoint().
SCIP_RETCODE SCIPlpGetDualDegeneracy | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_Real * | degeneracy, | ||
SCIP_Real * | varconsratio ) |
computes two measures for dual degeneracy (dual degeneracy rate and variable-constraint ratio) based on the changes applied when reducing the problem to the optimal face
returns the dual degeneracy rate, i.e., the share of nonbasic variables with reduced cost 0 and the variable-constraint ratio, i.e., the number of unfixed variables in relation to the basis size
lp | LP data |
set | global SCIP settings |
stat | problem statistics |
degeneracy | pointer to store the dual degeneracy rate |
varconsratio | pointer to store the variable-constraint ratio |
Definition at line 18703 of file lp.c.
References assert(), c, SCIP_Lp::cols, SCIP_Lp::degeneracy, SCIP_Lp::flushed, SCIP_Lp::ncols, SCIP_Stat::nlps, SCIP_Lp::nrows, NULL, r, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIPcolGetBasisStatus(), SCIPcolGetLb(), SCIPcolGetRedcost(), SCIPcolGetUb(), SCIPcolIsInLP(), SCIPlpGetSolstat(), SCIPlpIsDualReliable(), SCIProwGetBasisStatus(), SCIProwGetDualsol(), SCIProwGetLhs(), SCIProwGetLPActivity(), SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIProwGetRhs(), SCIProwIsInLP(), SCIPsetIsDualfeasNegative(), SCIPsetIsDualfeasPositive(), SCIPsetIsEQ(), SCIPsetIsGE(), SCIPsetIsLE(), SCIPsetIsZero(), SCIP_Lp::solved, SCIP_Lp::validdegeneracylp, and SCIP_Lp::varconsratio.
Referenced by SCIPgetLPDualDegeneracy().
gets array with columns of the LP
lp | current LP data |
Definition at line 17593 of file lp.c.
References assert(), SCIP_Lp::cols, and NULL.
Referenced by branchcandCalcLPCands(), SCIPcomputeLPRelIntPoint(), SCIPgetLPCols(), SCIPgetLPColsData(), and SCIPsolLinkLPSol().
int SCIPlpGetNCols | ( | SCIP_LP * | lp | ) |
gets current number of columns in LP
lp | current LP data |
Definition at line 17603 of file lp.c.
References assert(), SCIP_Lp::ncols, and NULL.
Referenced by branchcandCalcLPCands(), focusnodeCleanupVars(), focusnodeToFork(), initLP(), probingnodeCreate(), probingnodeUpdate(), SCIPcomputeLPRelIntPoint(), SCIPgetDualProof(), SCIPgetLPColsData(), SCIPgetNLPCols(), SCIPnodeFocus(), SCIPpricestoreAddProbVars(), SCIPpricestoreApplyVars(), SCIPprobAllColsInLP(), SCIPrunBoundHeuristic(), SCIPsolLinkLPSol(), SCIPtreeLoadLP(), treeBacktrackProbing(), and treeCreateProbingNode().
gets current number of unfixed columns in LP
lp | current LP data |
eps | numerical tolerance |
Definition at line 17613 of file lp.c.
References assert(), c, SCIP_Lp::cols, eps, SCIP_Lp::ncols, NULL, and SCIP_Real.
Referenced by SCIPgetNUnfixedLPCols().
gets array with rows of the LP
lp | current LP data |
Definition at line 17640 of file lp.c.
References assert(), NULL, and SCIP_Lp::rows.
Referenced by SCIPgetDualProof(), SCIPgetFarkasProof(), SCIPgetLPRows(), SCIPgetLPRowsData(), SCIPrunBoundHeuristic(), and storeCuts().
int SCIPlpGetNRows | ( | SCIP_LP * | lp | ) |
gets current number of rows in LP
lp | current LP data |
Definition at line 17650 of file lp.c.
References assert(), SCIP_Lp::nrows, and NULL.
Referenced by focusnodeToFork(), initLP(), probingnodeCreate(), probingnodeUpdate(), SCIPgetDualProof(), SCIPgetFarkasProof(), SCIPgetLPRowsData(), SCIPgetNLPRows(), SCIPnodeFocus(), SCIPrunBoundHeuristic(), SCIPtreeLoadLP(), storeCuts(), treeBacktrackProbing(), and treeCreateProbingNode().
gets array with newly added columns after the last mark
lp | current LP data |
Definition at line 17660 of file lp.c.
References assert(), SCIP_Lp::cols, SCIP_Lp::firstnewcol, SCIP_Lp::ncols, and NULL.
Referenced by forkCreate(), and pseudoforkCreate().
int SCIPlpGetNNewcols | ( | SCIP_LP * | lp | ) |
gets number of newly added columns after the last mark
lp | current LP data |
Definition at line 17671 of file lp.c.
References assert(), SCIP_Lp::firstnewcol, SCIP_Lp::ncols, and NULL.
Referenced by focusnodeCleanupVars(), focusnodeToFork(), focusnodeToJunction(), forkCreate(), pseudoforkCreate(), and SCIPnodeFocus().
gets array with newly added rows after the last mark
lp | current LP data |
Definition at line 17682 of file lp.c.
References assert(), SCIP_Lp::firstnewrow, SCIP_Lp::nrows, NULL, and SCIP_Lp::rows.
Referenced by forkCreate(), and pseudoforkCreate().
int SCIPlpGetNNewrows | ( | SCIP_LP * | lp | ) |
gets number of newly added rows after the last mark
lp | current LP data |
Definition at line 17693 of file lp.c.
References assert(), SCIP_Lp::firstnewrow, SCIP_Lp::nrows, and NULL.
Referenced by focusnodeToFork(), forkCreate(), pseudoforkCreate(), and SCIPnodeFocus().
gets Euclidean norm of objective function vector of column variables, only use this method if lp->objsqrnormunreliable == FALSE, so probably you have to call SCIPlpRecalculateObjSqrNorm before
lp | LP data |
Definition at line 17735 of file lp.c.
References assert(), NULL, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, and SCIP_Real.
Referenced by SCIPgetObjNorm().
gets the objective value of the root node LP; returns SCIP_INVALID if the root node LP was not (yet) solved
lp | LP data |
Definition at line 17768 of file lp.c.
References assert(), MIN, NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, SCIP_INVALID, and SCIP_Real.
Referenced by SCIPgetLPRootObjval().
gets part of the objective value of the root node LP that results from COLUMN variables only; returns SCIP_INVALID if the root node LP was not (yet) solved
lp | LP data |
Definition at line 17780 of file lp.c.
References assert(), NULL, SCIP_Lp::rootlpobjval, and SCIP_Real.
Referenced by SCIPgetLPRootColumnObjval().
gets part of the objective value of the root node LP that results from LOOSE variables only; returns SCIP_INVALID if the root node LP was not (yet) solved
lp | LP data |
Definition at line 17792 of file lp.c.
References assert(), NULL, SCIP_Lp::rootlooseobjval, and SCIP_Real.
Referenced by SCIPgetLPRootLooseObjval().
gets the LP solver interface
lp | current LP data |
Definition at line 17802 of file lp.c.
References assert(), SCIP_Lp::lpi, and NULL.
Referenced by conflictAnalyzeLP(), SCIPconflictAnalyzeLP(), SCIPgetLPI(), SCIPlpSolveAndEval(), SCIPprintLPSolutionQuality(), solveNodeLP(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().
sets whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound
sets whether the current LP is a relaxation of the current problem and its optimal objective value is a local lower bound
lp | LP data |
relax | is the current lp a relaxation? |
Definition at line 17812 of file lp.c.
References assert(), SCIP_Lp::isrelax, NULL, and SCIP_Bool.
Referenced by SCIPpriceLoop(), SCIPtreeEndProbing(), and solveProbingLP().
returns whether the current LP is a relaxation of the problem for which it has been solved and its solution value a valid local lower bound?
lp | LP data |
Definition at line 17825 of file lp.c.
References assert(), SCIP_Lp::isrelax, NULL, and SCIP_Bool.
Referenced by priceAndCutLoop(), propAndSolve(), SCIPendDive(), SCIPisLPRelax(), SCIPprobStoreRootSol(), SCIPtreeEndProbing(), solveNodeInitialLP(), and updateEstimate().
returns whether the current LP is flushed and solved
lp | current LP data |
Definition at line 17835 of file lp.c.
References assert(), SCIP_Lp::flushed, NULL, SCIP_Bool, and SCIP_Lp::solved.
Referenced by priceAndCutLoop(), SCIPendDive(), SCIPlinkLPSol(), SCIPsolCreateLPSol(), and SCIPsolLinkCurrentSol().
return whether the current LP solution passed the primal feasibility check
lp | current LP data |
Definition at line 17845 of file lp.c.
References assert(), NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, and SCIP_Bool.
Referenced by SCIPisLPPrimalReliable().
return whether the current LP solution passed the dual feasibility check
lp | current LP data |
Definition at line 17855 of file lp.c.
References assert(), SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, NULL, and SCIP_Bool.
Referenced by analyzeStrongbranch(), SCIPisLPDualReliable(), SCIPlpGetDualDegeneracy(), and SCIPprobUpdateBestRootSol().
returns whether the current LP solution is a basic solution
lp | current LP data |
Definition at line 17865 of file lp.c.
References assert(), NULL, SCIP_Bool, and SCIP_Lp::solisbasic.
Referenced by getImplVarRedcost(), SCIPgetLPBasisInd(), SCIPgetLPBInvACol(), SCIPgetLPBInvARow(), SCIPgetLPBInvCol(), SCIPgetLPBInvRow(), SCIPisLPSolBasic(), SCIPprobUpdateBestRootSol(), and SCIPvarGetImplRedcost().
returns whether the LP is in diving mode
lp | current LP data |
Definition at line 17875 of file lp.c.
References assert(), SCIP_Lp::diving, NULL, and SCIP_Bool.
Referenced by computeLPBounds(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), SCIPaddRowDive(), SCIPchgCutoffboundDive(), SCIPchgRowLhs(), SCIPchgRowLhsDive(), SCIPchgRowRhs(), SCIPchgRowRhsDive(), SCIPchgVarLbDive(), SCIPchgVarObjDive(), SCIPchgVarUbDive(), SCIPendDive(), SCIPgetVarLbDive(), SCIPgetVarObjDive(), SCIPgetVarUbDive(), SCIPinDive(), SCIPprimalHeuristics(), SCIPsolLinkLPSol(), SCIPsolveDiveLP(), SCIPstartDive(), SCIPstartProbing(), SCIPstartStrongbranch(), SCIPtreeCutoff(), SCIPvarChgLbDive(), and SCIPvarChgUbDive().
returns whether the LP is in diving mode and the objective value of at least one column was changed
lp | current LP data |
Definition at line 17885 of file lp.c.
References assert(), SCIP_Lp::divingobjchg, NULL, and SCIP_Bool.
Referenced by conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), SCIPchgVarObjProbing(), SCIPgetFarkasProof(), SCIPlpSetCutoffbound(), SCIPrunBoundHeuristic(), SCIPsolLinkLPSol(), SCIPsolveDiveLP(), and SCIPtreeEndProbing().
void SCIPlpMarkDivingObjChanged | ( | SCIP_LP * | lp | ) |
marks the diving LP to have a changed objective function
lp | current LP data |
Definition at line 17895 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Lp::divingobjchg, NULL, SCIP_Lp::probing, and TRUE.
Referenced by SCIPchgVarObjDive(), SCIPchgVarObjProbing(), and SCIPpropagateProbing().
void SCIPlpUnmarkDivingObjChanged | ( | SCIP_LP * | lp | ) |
marks the diving LP to not have a changed objective function anymore
lp | current LP data |
Definition at line 17906 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Lp::divingobjchg, FALSE, NULL, and SCIP_Lp::probing.
Referenced by SCIPpropagateProbing(), and treeBacktrackProbing().
lp | current LP data |
Definition at line 17917 of file lp.c.
References assert(), SCIP_Lp::diving, SCIP_Lp::ndivechgsides, NULL, and SCIP_Bool.
Referenced by SCIPsolveDiveLP().
checks, if absolute difference of values is in range of LP primal feastol
set | global SCIP settings |
lp | current LP data |
val1 | first value to be compared |
val2 | second value to be compared |
Definition at line 18832 of file lp.c.
References assert(), EPSEQ, SCIP_Lp::feastol, NULL, SCIP_Bool, SCIP_Real, and SCIPsetIsInfinity().
checks, if absolute difference of val1 and val2 is lower than LP primal feastol
set | global SCIP settings |
lp | current LP data |
val1 | first value to be compared |
val2 | second value to be compared |
Definition at line 18852 of file lp.c.
References assert(), EPSLT, SCIP_Lp::feastol, NULL, SCIP_Bool, SCIP_Real, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().
checks, if absolute difference of val1 and val2 is not greater than LP primal feastol
set | global SCIP settings |
lp | current LP data |
val1 | first value to be compared |
val2 | second value to be compared |
Definition at line 18872 of file lp.c.
References assert(), EPSLE, SCIP_Lp::feastol, NULL, SCIP_Bool, SCIP_Real, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().
checks, if absolute difference of val1 and val2 is greater than LP primal feastol
set | global SCIP settings |
lp | current LP data |
val1 | first value to be compared |
val2 | second value to be compared |
Definition at line 18892 of file lp.c.
References assert(), EPSGT, SCIP_Lp::feastol, NULL, SCIP_Bool, SCIP_Real, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().
checks, if absolute difference of val1 and val2 is not lower than -LP primal feastol
set | global SCIP settings |
lp | current LP data |
val1 | first value to be compared |
val2 | second value to be compared |
Definition at line 18912 of file lp.c.
References assert(), EPSGE, SCIP_Lp::feastol, NULL, SCIP_Bool, SCIP_Real, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().