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 2352 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 2395 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 2433 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 2475 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 3279 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 3377 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 3407 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 3447 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 3468 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 3513 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 3564 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 3698 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 3757 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 3802 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 3847 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 3952 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 3976 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 4030 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 4135 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 4161 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 4180 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 4195 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 4210 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 4264 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 4299 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 4484 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 4707 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 4739 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 4751 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 5110 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 5259 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 5299 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 629 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 5339 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 5352 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 6148 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 6159 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 5409 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 5430 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 5476 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 5528 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 5585 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 5640 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 5666 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 5698 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 5730 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 5747 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 5981 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 6172 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 6224 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 6254 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 6274 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 6336 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 6395 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 6422 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 6450 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 6466 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 6508 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 6598 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 6619 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 6640 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 6671 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 6687 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 6703 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 6719 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 6735 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 6751 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 6808 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 6849 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 6865 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 6908 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 6924 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 6964 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 7800 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 7833 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 7857 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 7878 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 9078 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 9370 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 9415 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 9450 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 9509 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 9633 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 9705 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 9771 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 9790 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 9802 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 9816 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 9833 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 9850 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 9872 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 9898 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 9923 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 9947 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 10033 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 10057 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 10100 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 10117 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 10133 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 10157 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 10177 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 10191 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 10201 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 10246 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 10256 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 10281 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 8671 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 8734 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 * | 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? |
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 13103 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 17719 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 17730 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 13119 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 13147 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 13158 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 13178 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 13191 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 13270 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 13202 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 13302 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 13332 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 13372 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 13838 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 13892 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 13919 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 13960 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 13987 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 14028 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 14049 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 14185 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 14309 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 14330 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 14348 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 14665 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 14991 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 * | 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 |
valid | pointer to store whether the Farkas proof is valid or NULL |
Definition at line 15052 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_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, REALABS, SCIP_Col::redcost, SCIP_Row::rhs, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPcolGetLb(), SCIPcolGetLPPos(), SCIPcolGetUb(), SCIPlpiGetDualfarkas(), SCIProwGetName(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasGT(), SCIPsetIsDualfeasLT(), SCIPsetIsFeasZero(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIP_Lp::solved, TRUE, 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 15227 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 15242 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 15651 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 15682 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 15851 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 15890 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 15929 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 16003 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 16109 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 16291 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 16315 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 16330 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 16345 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 16358 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 16491 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 16505 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 16527 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 16542 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 17676 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 18603 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 18675 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 17565 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 17575 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 17585 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 17612 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 17622 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 17632 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 17643 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 17654 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 17665 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 17707 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 17740 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 17752 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 17764 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 17774 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 17784 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 17797 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 17807 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 17817 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 17827 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 17837 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 17847 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 17857 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 17867 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 17878 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 17889 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 18804 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 18824 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 18844 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 18864 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 18884 of file lp.c.
References assert(), EPSGE, SCIP_Lp::feastol, NULL, SCIP_Bool, SCIP_Real, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().