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 2488 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 2531 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 2569 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 2611 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 3473 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(), SCIPvarIsImpliedIntegral(), 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 3572 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 3602 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 3642 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 3663 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 3708 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 3759 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 3893 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 3952 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 3997 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 4042 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 4147 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 4171 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 4225 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 4330 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 4356 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 4375 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 4390 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 4405 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 4459 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 4494 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 4677 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 4900 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 4932 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 4944 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 5313 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 5464 of file lp.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, SCIP_RowExact::fprow, SCIP_Lp::lpexact, NULL, SCIP_Row::rowexact, rowUnlink(), SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_CONS, SCIPconsRelease(), SCIPeventfilterFree(), and SCIProwExactRelease().
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 5514 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 rowExactInSync(), SCIPaddVarsToRowExact(), and 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 636 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 5554 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(), SCIPcertificateNewAggrInfo(), 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 5567 of file lp.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPcertificateFreeRowInfo(), SCIProwFree(), and SCIPsetDebugMsg.
Referenced by cutFree(), forkFree(), lpDelRowset(), lpFlushDelRows(), pseudoforkFree(), SCIPcertificateFreeAggrInfo(), SCIPcertificateFreeMirInfo(), SCIPlpFree(), SCIPlpShrinkRows(), SCIPreleaseRow(), SCIPreoptApplyCuts(), SCIProwExactGenerateFpRows(), SCIPsepastoreAddCut(), SCIPsepastoreClearCuts(), sepastoreDelCut(), and subrootFree().
| void SCIProwDelaySort | ( | SCIP_ROW * | row | ) |
enables delaying of row sorting
| row | LP row |
Definition at line 6369 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 6380 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 5625 of file lp.c.
References assert(), checkLinks, SCIP_Lp::diving, SCIP_Row::lppos, NULL, rowAddCoef(), SCIP_CALL, SCIP_OKAY, and SCIP_Real.
Referenced by rowExactCreateFromRowLimitEncodingLength().
| 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 5646 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.
Referenced by rowExactCreateFromRowLimitEncodingLength().
| 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 5692 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 5744 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 5801 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(), SCIProwAddConstant(), and SCIProwExactGenerateFpRows().
| 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 5856 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 5882 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(), SCIPlpEndDive(), and SCIProwExactGenerateFpRows().
| 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 5914 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 rowExactCreateFromRowLimitEncodingLength(), rowScale(), SCIPchgRowRhs(), SCIPchgRowRhsDive(), SCIPlpEndDive(), and SCIProwExactGenerateFpRows().
| 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 5946 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 5963 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 6197 of file lp.c.
References assert(), NULL, rowScale(), SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, and SCIProwCalcIntegralScalar().
Referenced by SCIPmakeRowIntegral().
recalculates norms of a row
| row | LP row |
| set | global SCIP settings |
Definition at line 6393 of file lp.c.
References rowCalcNorms().
Referenced by SCIProwExactCreateFromRow().
recalculates the current activity of a row
| row | LP row |
| stat | problem statistics |
Definition at line 6402 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 6454 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 6484 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 6504 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 6566 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 6625 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 6652 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 6680 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 6696 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 6738 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 6828 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 6849 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 6870 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 6901 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 6917 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 6933 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 6949 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 6965 of file lp.c.
References assert(), SCIP_Row::len, NULL, SCIP_Row::numintcols, and rowCalcIdxsAndVals().
Referenced by SCIPgetRowNumIntCols().
gets number of implied integral columns in row
| row | LP row |
| set | global SCIP settings |
Definition at line 6981 of file lp.c.
References assert(), SCIP_Row::len, NULL, SCIP_Row::numimplintcols, and rowCalcIdxsAndVals().
Referenced by SCIPgetRowNumImpliedIntCols().
| 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 6997 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 7054 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 7095 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 7111 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 7154 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 7170 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 7210 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 8046 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 8079 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 8103 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 8124 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 9325 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 9619 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 9664 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 9699 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::impliedintegral, 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(), SCIPvarIsImpliedIntegral(), 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 9759 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 9883 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 9955 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 10021 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 10040 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 10052 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 10066 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 10083 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 10100 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 10122 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 10148 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 10173 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 10197 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 10283 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 10307 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 10350 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 10367 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 10383 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 10407 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 10427 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 10441 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 10451 of file lp.c.
References assert(), SCIP_Lp::cutoffbound, SCIP_Lp::diving, FALSE, SCIP_Lp::flushed, lpCutoffDisabled, SCIP_Lp::lpexact, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, NULL, SCIP_Lp::probing, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIPlpDivingObjChanged(), SCIPlpExactSetCutoffbound(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPsetDebugMsg, SCIPsetIsInfinity(), and SCIP_Lp::solved.
Referenced by primalSetCutoffbound(), primalSetCutoffboundExact(), SCIPchgCutoffboundDive(), SCIPchgVarObjDive(), SCIPchgVarObjProbing(), SCIPendDive(), SCIPendExactDive(), and treeBacktrackProbing().
gets current primal feasibility tolerance of LP solver
| lp | current LP data |
Definition at line 10499 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 10509 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 10534 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 8917 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(), and SCIPtreeEndProbing().
| 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 8981 of file lp.c.
References assert(), checkLinks, SCIP_Lp::chgcols, SCIP_Lp::chgrows, SCIP_Col::coefchanged, SCIP_Row::coefchanged, SCIP_Lp::cols, SCIP_Row::constant, FALSE, SCIP_Lp::flushed, SCIP_Col::flushedlb, SCIP_Row::flushedlhs, SCIP_Col::flushedobj, SCIP_Row::flushedrhs, SCIP_Col::flushedub, i, SCIP_Col::lb, SCIP_Col::lbchanged, SCIP_Row::lhs, SCIP_Row::lhschanged, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::nchgcols, SCIP_Lp::nchgrows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_Row::rhs, SCIP_Row::rhschanged, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPlpiGetBounds(), SCIPlpiGetObj(), SCIPlpiGetSides(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPsetIsInfinity(), SCIPsetIsSumEQ(), SCIPvarGetCol(), SCIPvarGetStatus(), TRUE, SCIP_Col::ub, SCIP_Col::ubchanged, and SCIP_Col::var.
| SCIP_RETCODE SCIPlpSolveAndEval | ( | SCIP_LP * | lp, |
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_PROB * | prob, | ||
| SCIP_Longint | itlim, | ||
| SCIP_Bool | limitresolveiters, | ||
| SCIP_Bool | aging, | ||
| SCIP_Bool | keepsol, | ||
| SCIP_Bool | forcedlpsolve, | ||
| SCIP_Bool * | lperror ) |
solves the LP with simplex algorithm, and copy the solution into the column's data
| lp | LP data |
| set | global SCIP settings |
| messagehdlr | message handler |
| blkmem | block memory buffers |
| stat | problem statistics |
| eventqueue | event queue |
| eventfilter | global event filter |
| prob | problem data |
| itlim | maximal number of LP iterations to perform, or -1 for no limit |
| limitresolveiters | should LP iterations for resolving calls be limited? (limit is computed within the method w.r.t. the average LP iterations) |
| aging | should aging and removal of obsolete cols/rows be applied? |
| keepsol | should the old LP solution be kept if no iterations were performed? |
| forcedlpsolve | would SCIP abort if the LP is not solved? |
| lperror | pointer to store whether an unresolved LP error occurred |
Definition at line 12680 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::hasprovedbound, SCIP_Lp::lastlpalgo, lpCutoffDisabled, lperror, SCIP_Lp::lpexact, lpFlushAndSolve(), lpGetResolveItlim(), SCIP_Lp::lpi, SCIP_LpExact::lpiexact, 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_LpExact::oldcutoffbound, 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, SCIPlpExactComputeSafeBound(), SCIPlpExactForceSafeBound(), SCIPlpFlush(), SCIPlpGetDualfarkas(), SCIPlpGetLPI(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpiExactHasDualRay(), 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(), SCIP_Stat::userinterrupt, and SCIP_LpExact::wasforcedsafebound.
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 13420 of file lp.c.
References assert(), SCIP_Lp::flushed, SCIP_Lp::lpsolstat, NULL, SCIP_LPSOLSTAT_NOTSOLVED, and SCIP_Lp::solved.
Referenced by branchcandCalcLPCands(), branchcandCalcLPCandsExact(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), enforceConstraints(), focusnodeToFork(), forkCreate(), priceAndCutLoop(), propAndSolve(), SCIPconflictAnalyzeLP(), SCIPcutpoolAddNewRow(), SCIPgetLPBranchCands(), SCIPgetLPSolstat(), SCIPgetNLPBranchCands(), SCIPgetNPrioLPBranchCands(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpEndDive(), SCIPlpExactComputeSafeBound(), 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 18123 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 18134 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 13436 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(), SCIPtreeStartProbing(), solveNode(), solveNodeLP(), and updatePseudocost().
gets part of objective value of current LP that results from COLUMN variables only
| lp | current LP data |
Definition at line 13464 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 13475 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 13495 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 13508 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 13587 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 13519 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 13619 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(), propAndSolve(), 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 13711 of file lp.c.
References assert(), getFinitePseudoObjval(), lpGetModifiedPseudoObjvalExact(), obj, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), SCIPvarGetObj(), and var.
Referenced by SCIPgetVarStrongbranchFrac(), SCIPgetVarStrongbranchInt(), SCIPgetVarStrongbranchWithPropagation(), SCIPnodeAddBoundinfer(), and SCIPnodeAddBoundinferExact().
| 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 14166 of file lp.c.
References assert(), FALSE, getObjvalDeltaObj(), SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalinf, lpUpdateObjval(), lpUpdateVarProved(), newobj, NULL, oldobj, SCIP_Lp::probing, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalinf, 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 14226 of file lp.c.
References assert(), FALSE, getObjvalDeltaLb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), 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 14264 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 14305 of file lp.c.
References assert(), FALSE, getObjvalDeltaUb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetLbGlobal(), 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 14343 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 14384 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 14405 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 14541 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 14665 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 14686 of file lp.c.
References assert(), SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, and NULL.
Referenced by lpUpdateVarColumn(), SCIPlpUpdateDelVar(), SCIPvarFix(), SCIPvarFixExact(), SCIPvarMultiaggregate(), and SCIPvarMultiaggregateExact().
| 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 14704 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, 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_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 15019 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 15345 of file lp.c.
References assert(), c, SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, NULL, SCIP_CALL, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPlpiGetPrimalRay(), SCIPlpiHasPrimalRay(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPvarGetProbindex(), SCIP_Lp::solved, SCIP_Col::var, and var.
Referenced by updatePrimalRay().
| SCIP_RETCODE SCIPlpGetDualfarkas | ( | SCIP_LP * | lp, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_Bool | forcedlpsolve, | ||
| SCIP_Bool * | valid ) |
stores the dual Farkas multipliers for infeasibility proof in rows. besides, the proof is checked for validity if lp/checkfarkas = TRUE.
valid is NULL. | lp | current LP data |
| set | global SCIP settings |
| stat | problem statistics |
| forcedlpsolve | would SCIP abort if the LP is not solved? |
| valid | pointer to store whether the Farkas proof is valid or NULL |
Definition at line 15406 of file lp.c.
References SCIP_Row::activity, assert(), SCIP_Row::basisstatus, BMSclearMemoryArray, c, SCIP_Row::constant, SCIP_Row::dualfarkas, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Row::len, SCIP_Row::lhs, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Col::primsol, r, SCIP_Col::redcost, SCIP_Row::rhs, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPcolGetLPPos(), SCIPcolGetVar(), SCIPlpiGetDualfarkas(), SCIPmessagePrintWarning(), SCIProwGetName(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasGT(), SCIPsetIsDualfeasLT(), SCIPsetIsDualfeasZero(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsRelGE(), SCIPvarGetName(), SCIP_Lp::solved, TRUE, SCIP_Col::ub, valid, SCIP_Row::validactivitylp, SCIP_Col::validfarkaslp, SCIP_Lp::validfarkaslp, SCIP_Col::validredcostlp, and SCIP_Row::vals.
Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
| SCIP_RETCODE SCIPlpGetIterations | ( | SCIP_LP * | lp, |
| int * | iterations ) |
get number of iterations used in last LP solve
| lp | current LP data |
| iterations | pointer to store the iteration count |
Definition at line 15607 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 15622 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 16031 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 16062 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 16231 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 16270 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 16309 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 16383 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 16489 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_Lp::lpexact, 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(), SCIPlpExactDiving(), 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 16675 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 16699 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 16714 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 16729 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 16742 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 16875 of file lp.c.
References bound, FALSE, provedBound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, and SCIPsetDebugMsg.
| 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 16889 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 16911 of file lp.c.
References assert(), 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 16925 of file lp.c.
References assert(), SCIP_Lp::cols, SCIP_Row::cols, SCIP_Row::constant, 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 18080 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 19007 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 19079 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 17969 of file lp.c.
References assert(), SCIP_Lp::cols, and NULL.
Referenced by branchcandCalcLPCands(), branchcandCalcLPCandsExact(), SCIPcomputeLPRelIntPoint(), SCIPgetLPCols(), SCIPgetLPColsData(), and SCIPsolLinkLPSol().
| int SCIPlpGetNCols | ( | SCIP_LP * | lp | ) |
gets current number of columns in LP
| lp | current LP data |
Definition at line 17979 of file lp.c.
References assert(), SCIP_Lp::ncols, and NULL.
Referenced by branchcandCalcLPCands(), branchcandCalcLPCandsExact(), 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 17989 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 18016 of file lp.c.
References assert(), NULL, and SCIP_Lp::rows.
Referenced by SCIPcertificatePrintMirCut(), 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 18026 of file lp.c.
References assert(), SCIP_Lp::nrows, and NULL.
Referenced by focusnodeToFork(), initLP(), probingnodeCreate(), probingnodeUpdate(), SCIPcertificatePrintMirCut(), SCIPgetDualProof(), SCIPgetFarkasProof(), SCIPgetLPRowsData(), SCIPgetNLPRows(), SCIPlpExactSyncLPs(), SCIPnodeFocus(), SCIPrunBoundHeuristic(), SCIPtreeLoadLP(), storeCuts(), treeBacktrackProbing(), and treeCreateProbingNode().
gets array with newly added columns after the last mark
| lp | current LP data |
Definition at line 18036 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 18047 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 18058 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 18069 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 18111 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 18144 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 18156 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 18168 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 18178 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 18188 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 18201 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 18211 of file lp.c.
References assert(), SCIP_Lp::flushed, NULL, SCIP_Bool, and SCIP_Lp::solved.
Referenced by priceAndCutLoop(), SCIPendDive(), SCIPisExactDivePossible(), SCIPlinkLPSol(), SCIPsolCreateLPSol(), and SCIPsolLinkCurrentSol().
return whether the current LP solution passed the primal feasibility check
| lp | current LP data |
Definition at line 18221 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 18231 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 18241 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 18251 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(), SCIPisExactDivePossible(), SCIPprimalHeuristics(), SCIPsolLinkLPSol(), SCIPsolveDiveLP(), SCIPstartDive(), SCIPstartExactDive(), 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 18261 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 18271 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 18282 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 18293 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 19208 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 19228 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 19248 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 19268 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 19288 of file lp.c.
References assert(), EPSGE, SCIP_Lp::feastol, NULL, SCIP_Bool, SCIP_Real, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().