Detailed Description
LP management methods and data structures.
In LP management, we have to differ between the current LP and the SCIP_LP stored in the LP solver. All LP methods affect the current LP only. Before solving the current LP with the LP solver or setting an LP state, the LP solvers data has to be updated to the current LP with a call to lpFlush().
Definition in file lp.c.
#include "lpi/lpi.h"
#include "scip/clock.h"
#include "scip/cons.h"
#include "scip/event.h"
#include "scip/intervalarith.h"
#include "scip/lp.h"
#include "scip/misc.h"
#include "scip/prob.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_var.h"
#include "scip/set.h"
#include "scip/sol.h"
#include "scip/solve.h"
#include "scip/stat.h"
#include "scip/struct_event.h"
#include "scip/struct_lp.h"
#include "scip/struct_prob.h"
#include "scip/struct_set.h"
#include "scip/struct_stat.h"
#include "scip/struct_var.h"
#include "scip/var.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | debugRowPrint(x, y) |
#define | debugColPrint(x, y) |
#define | checkRow(row) |
#define | checkRowSqrnorm(row) |
#define | checkRowSumnorm(row) |
#define | checkRowObjprod(row) |
#define | checkLinks(lp) |
#define | lpCutoffDisabled(set) (set->lp_disablecutoff == 1 || (set->nactivepricers > 0 && set->lp_disablecutoff == 2)) |
#define | DIVESTACKINITSIZE 100 |
#define | MAXNUMTROUBLELPMSGS 10 |
#define | FEASTOLTIGHTFAC 0.001 |
#define | DIVESTACKGROWFACT 1.5 |
Variables | |
static const SCIP_Real | scalars [] = {3.0, 5.0, 7.0, 9.0, 11.0, 13.0, 15.0, 17.0, 19.0} |
static const int | nscalars = 9 |
Macro Definition Documentation
◆ debugRowPrint
Definition at line 111 of file lp.c.
Referenced by lpFlushAddRows(), and rowScale().
◆ debugColPrint
Definition at line 144 of file lp.c.
Referenced by lpFlushAddCols().
◆ checkRow
#define checkRow | ( | row | ) |
Definition at line 678 of file lp.c.
Referenced by rowSortNonLP(), and SCIProwEnsureSize().
◆ checkRowSqrnorm
#define checkRowSqrnorm | ( | row | ) |
Definition at line 751 of file lp.c.
Referenced by SCIProwGetNorm(), and SCIProwGetObjParallelism().
◆ checkRowSumnorm
#define checkRowSumnorm | ( | row | ) |
Definition at line 752 of file lp.c.
Referenced by SCIProwGetSumNorm().
◆ checkRowObjprod
#define checkRowObjprod | ( | row | ) |
Definition at line 753 of file lp.c.
Referenced by SCIProwGetObjParallelism().
◆ checkLinks
#define checkLinks | ( | lp | ) |
Definition at line 1607 of file lp.c.
Referenced by colLink(), colUnlink(), lpDelColset(), lpDelRowset(), lpSolve(), rowEventSideChanged(), rowLink(), SCIPcolAddCoef(), SCIPcolChgCoef(), SCIPcolDelCoef(), SCIPcolIncCoef(), SCIPlpAddCol(), SCIPlpAddRow(), SCIPlpFlush(), SCIPlpMarkFlushed(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIProwAddCoef(), SCIProwChgCoef(), SCIProwDelCoef(), and SCIProwIncCoef().
◆ lpCutoffDisabled
#define lpCutoffDisabled | ( | set | ) | (set->lp_disablecutoff == 1 || (set->nactivepricers > 0 && set->lp_disablecutoff == 2)) |
should the objective limit of the LP solver be disabled
Definition at line 2641 of file lp.c.
Referenced by lpSetObjlim(), lpSolve(), SCIPlpSetCutoffbound(), and SCIPlpSolveAndEval().
◆ DIVESTACKINITSIZE
#define DIVESTACKINITSIZE 100 |
Definition at line 8980 of file lp.c.
Referenced by SCIPlpCreate().
◆ MAXNUMTROUBLELPMSGS
#define MAXNUMTROUBLELPMSGS 10 |
maximal number of verblevel-high messages about numerical trouble in LP that will be printed when this number is reached and display/verblevel is not full, then further messages are suppressed in this run
Definition at line 11312 of file lp.c.
Referenced by lpNumericalTroubleMessage().
◆ FEASTOLTIGHTFAC
#define FEASTOLTIGHTFAC 0.001 |
Definition at line 11373 of file lp.c.
Referenced by lpSolveStable().
◆ DIVESTACKGROWFACT
#define DIVESTACKGROWFACT 1.5 |
Definition at line 15988 of file lp.c.
Referenced by SCIPlpRecordOldRowSideDive().
Function Documentation
◆ ensureChgcolsSize()
|
static |
ensures, that chgcols array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 153 of file lp.c.
References BMSreallocMemoryArray, SCIP_Lp::chgcols, SCIP_Lp::chgcolssize, SCIP_Lp::nchgcols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by insertColChgcols().
◆ ensureChgrowsSize()
|
static |
ensures, that chgrows array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 176 of file lp.c.
References BMSreallocMemoryArray, SCIP_Lp::chgrows, SCIP_Lp::chgrowssize, SCIP_Lp::nchgrows, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by rowSideChanged().
◆ ensureLpicolsSize()
|
static |
ensures, that lpicols array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 199 of file lp.c.
References BMSreallocMemoryArray, SCIP_Lp::lpicols, SCIP_Lp::lpicolssize, SCIP_Lp::nlpicols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by lpFlushAddCols().
◆ ensureLpirowsSize()
|
static |
ensures, that lpirows array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 222 of file lp.c.
References BMSreallocMemoryArray, SCIP_Lp::lpirows, SCIP_Lp::lpirowssize, SCIP_Lp::nlpirows, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by lpFlushAddRows().
◆ ensureColsSize()
|
static |
ensures, that cols array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 245 of file lp.c.
References BMSreallocMemoryArray, SCIP_Lp::cols, SCIP_Lp::colssize, SCIP_Lp::ncols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by SCIPlpAddCol().
◆ ensureSoldirectionSize()
|
static |
ensures, that soldirection array can store at least num entries
- Parameters
-
lp current LP data num minimum number of entries to store
Definition at line 268 of file lp.c.
References BMSallocMemoryArray, BMSfreeMemoryArrayNull, SCIP_ALLOC, SCIP_OKAY, SCIP_Lp::soldirection, and SCIP_Lp::soldirectionsize.
Referenced by SCIProwGetLPSolCutoffDistance().
◆ ensureLazycolsSize()
|
static |
ensures, that lazy cols array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 288 of file lp.c.
References BMSreallocMemoryArray, SCIP_Lp::lazycols, SCIP_Lp::lazycolssize, SCIP_Lp::nlazycols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by SCIPlpAddCol().
◆ ensureRowsSize()
|
static |
ensures, that rows array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 311 of file lp.c.
References BMSreallocMemoryArray, SCIP_Lp::nrows, SCIP_Lp::rows, SCIP_Lp::rowssize, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by SCIPlpAddRow().
◆ colEnsureSize()
|
static |
ensures, that row array of column can store at least num entries
- Parameters
-
col LP column blkmem block memory set global SCIP settings num minimum number of entries to store
Definition at line 334 of file lp.c.
References BMSreallocBlockMemoryArray, SCIP_Col::len, SCIP_Col::linkpos, NULL, SCIP_Col::rows, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Col::size, and SCIP_Col::vals.
Referenced by colAddCoef().
◆ lpStoreSolVals()
|
static |
save current LP values dependent on the solution
- Parameters
-
lp LP data stat problem statistics blkmem block memory
Definition at line 361 of file lp.c.
References BMSallocMemory, SCIP_LpSolVals::dualchecked, SCIP_Lp::dualchecked, SCIP_LpSolVals::dualfeasible, SCIP_Lp::dualfeasible, SCIP_LpSolVals::lpissolved, SCIP_LpSolVals::lpobjval, SCIP_Lp::lpobjval, SCIP_LpSolVals::lpsolstat, SCIP_Lp::lpsolstat, NULL, SCIP_LpSolVals::primalchecked, SCIP_Lp::primalchecked, SCIP_LpSolVals::primalfeasible, SCIP_Lp::primalfeasible, SCIP_ALLOC, SCIP_OKAY, SCIP_LpSolVals::solisbasic, SCIP_Lp::solisbasic, SCIP_Lp::solved, and SCIP_Lp::storedsolvals.
Referenced by SCIPlpStartDive().
◆ lpRestoreSolVals()
|
static |
restore LP solution values in column
- Parameters
-
lp LP data blkmem block memory validlp number of lp for which restored values are valid
Definition at line 395 of file lp.c.
References SCIP_LpSolVals::dualchecked, SCIP_Lp::dualchecked, SCIP_LpSolVals::dualfeasible, SCIP_Lp::dualfeasible, FALSE, SCIP_LpSolVals::lpissolved, SCIP_LpSolVals::lpobjval, SCIP_Lp::lpobjval, SCIP_LpSolVals::lpsolstat, SCIP_Lp::lpsolstat, NULL, SCIP_LpSolVals::primalchecked, SCIP_Lp::primalchecked, SCIP_LpSolVals::primalfeasible, SCIP_Lp::primalfeasible, SCIP_INVALID, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_LpSolVals::solisbasic, SCIP_Lp::solisbasic, SCIP_Lp::solved, SCIP_Lp::storedsolvals, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp.
Referenced by SCIPlpEndDive().
◆ colStoreSolVals()
|
static |
save current LP solution values stored in each column
- Parameters
-
col LP column blkmem block memory
Definition at line 453 of file lp.c.
References SCIP_ColSolVals::basisstatus, SCIP_Col::basisstatus, BMSallocBlockMemory, NULL, SCIP_ColSolVals::primsol, SCIP_Col::primsol, SCIP_ColSolVals::redcost, SCIP_Col::redcost, SCIP_ALLOC, SCIP_OKAY, and SCIP_Col::storedsolvals.
Referenced by SCIPlpStartDive().
◆ colRestoreSolVals()
|
static |
restore LP solution values in column
- Parameters
-
col LP column blkmem block memory validlp number of lp for which restored values are valid freebuffer should buffer for LP solution values be freed?
Definition at line 480 of file lp.c.
References SCIP_ColSolVals::basisstatus, SCIP_Col::basisstatus, BMSfreeBlockMemoryNull, NULL, SCIP_ColSolVals::primsol, SCIP_Col::primsol, SCIP_ColSolVals::redcost, SCIP_Col::redcost, SCIP_BASESTAT_ZERO, SCIP_OKAY, SCIP_Col::storedsolvals, SCIP_Col::validfarkaslp, and SCIP_Col::validredcostlp.
Referenced by SCIPlpEndDive().
◆ rowStoreSolVals()
|
static |
save current LP solution values stored in each column
- Parameters
-
row LP row blkmem block memory infeasible is the solution infeasible?
Definition at line 527 of file lp.c.
References SCIP_RowSolVals::activity, SCIP_Row::activity, SCIP_RowSolVals::basisstatus, SCIP_Row::basisstatus, BMSallocBlockMemory, SCIP_Row::dualfarkas, SCIP_RowSolVals::dualsol, SCIP_Row::dualsol, NULL, SCIP_ALLOC, SCIP_BASESTAT_BASIC, SCIP_INVALID, SCIP_OKAY, and SCIP_Row::storedsolvals.
Referenced by SCIPlpStartDive().
◆ rowRestoreSolVals()
|
static |
restore LP solution values in row
- Parameters
-
row LP column blkmem block memory validlp number of lp for which restored values are valid freebuffer should buffer for LP solution values be freed? infeasible is the solution infeasible?
Definition at line 564 of file lp.c.
References SCIP_RowSolVals::activity, SCIP_Row::activity, SCIP_RowSolVals::basisstatus, SCIP_Row::basisstatus, BMSfreeBlockMemoryNull, SCIP_Row::dualfarkas, SCIP_RowSolVals::dualsol, SCIP_Row::dualsol, NULL, SCIP_BASESTAT_BASIC, SCIP_INVALID, SCIP_OKAY, SCIP_Row::storedsolvals, and SCIP_Row::validactivitylp.
Referenced by SCIPlpEndDive().
◆ SCIProwEnsureSize()
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
- Parameters
-
row LP row blkmem block memory set global SCIP settings num minimum number of entries to store
Definition at line 612 of file lp.c.
References BMSreallocBlockMemoryArray, checkRow, SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::index, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Row::size, TRUE, and SCIP_Row::vals.
Referenced by rowAddCoef(), SCIPaddVarsToRow(), and SCIPaddVarsToRowSameCoef().
◆ recomputeLooseObjectiveValue()
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 762 of file lp.c.
References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, NULL, SCIP_Prob::nvars, SCIP_Lp::rellooseobjval, SCIP_Real, SCIP_VARSTATUS_LOOSE, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), TRUE, and SCIP_Prob::vars.
Referenced by getFiniteLooseObjval(), and SCIPlpGetObjval().
◆ recomputePseudoObjectiveValue()
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 804 of file lp.c.
References NULL, SCIP_Prob::nvars, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::relpseudoobjval, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), TRUE, and SCIP_Prob::vars.
Referenced by getFinitePseudoObjval(), and SCIPlpGetPseudoObjval().
◆ recomputeGlbPseudoObjectiveValue()
|
static |
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 846 of file lp.c.
References SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, NULL, SCIP_Prob::nvars, SCIP_Lp::relglbpseudoobjval, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), TRUE, and SCIP_Prob::vars.
Referenced by SCIPlpGetGlobalPseudoObjval().
◆ getFiniteLooseObjval()
gets finite part of objective value of current LP that results from LOOSE variables only
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 888 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, and recomputeLooseObjectiveValue().
Referenced by computeRelIntPoint(), lpSolve(), lpSolveStable(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPlpGetLooseObjval(), and SCIPlpSolveAndEval().
◆ getFinitePseudoObjval()
gets finite part of pseudo objective value of current LP
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 910 of file lp.c.
References NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, and recomputePseudoObjectiveValue().
Referenced by SCIPlpGetModifiedPseudoObjval().
◆ colSortLP()
|
static |
sorts column entries of linked rows currently in the LP such that lower row indices precede higher ones
- Parameters
-
col column to be sorted
Definition at line 952 of file lp.c.
References SCIP_Row::cols, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Col::lprowssorted, SCIP_Col::nlprows, NULL, SCIP_Col::rows, SCIPsortPtrRealInt(), TRUE, and SCIP_Col::vals.
Referenced by colSearchCoef(), and SCIPcolSort().
◆ colSortNonLP()
|
static |
sorts column entries of unlinked rows or rows currently not in the LP such that lower row indices precede higher ones
- Parameters
-
col column to be sorted
Definition at line 985 of file lp.c.
References SCIP_Row::cols, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Col::nlprows, SCIP_Col::nonlprowssorted, NULL, SCIP_Col::rows, SCIPsortPtrRealInt(), TRUE, and SCIP_Col::vals.
Referenced by colSearchCoef(), and SCIPcolSort().
◆ rowSortLP()
|
static |
sorts row entries of linked columns currently in the LP such that lower column indices precede higher ones
- Parameters
-
row row to be sorted
Definition at line 1016 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Row::nlpcols, NULL, SCIP_Col::rows, SCIPsortIntPtrIntReal(), TRUE, and SCIP_Row::vals.
Referenced by computeRelIntPoint(), rowSearchCoef(), and SCIProwSort().
◆ rowSortNonLP()
|
static |
sorts row entries of unlinked columns or columns currently not in the LP such that lower column indices precede higher ones
- Parameters
-
row row to be sorted
Definition at line 1049 of file lp.c.
References checkRow, SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Col::rows, SCIPsortIntPtrIntReal(), TRUE, and SCIP_Row::vals.
Referenced by rowSearchCoef(), and SCIProwSort().
◆ colSearchCoefPart()
|
static |
searches coefficient in part of the column, returns position in col vector or -1 if not found
- Parameters
-
col column to be searched in row coefficient to be searched for minpos first position of search range maxpos last position of search range
Definition at line 1084 of file lp.c.
References SCIP_Row::index, SCIP_Col::linkpos, SCIP_Row::lppos, NULL, and SCIP_Col::rows.
Referenced by colSearchCoef().
◆ colSearchCoef()
searches coefficient in column, returns position in col vector or -1 if not found
- Parameters
-
col column to be searched in row coefficient to be searched for
Definition at line 1120 of file lp.c.
References colSearchCoefPart(), colSortLP(), colSortNonLP(), SCIP_Col::len, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Col::nlprows, SCIP_Col::nonlprowssorted, NULL, and SCIP_Col::nunlinked.
Referenced by SCIPcolChgCoef(), SCIPcolDelCoef(), and SCIPcolIncCoef().
◆ rowSearchCoefPart()
|
static |
searches coefficient in part of the row, returns position in col vector or -1 if not found
- Parameters
-
row row to be searched in col coefficient to be searched for minpos first position of search range maxpos last position of search range
Definition at line 1159 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Col::lppos, and NULL.
Referenced by rowSearchCoef().
◆ rowSearchCoef()
searches coefficient in row, returns position in row vector or -1 if not found; if the sorting of the row is delayed, returns -1
- Parameters
-
row row to be searched in col coefficient to be searched for
Definition at line 1198 of file lp.c.
References SCIP_Row::cols, SCIP_Row::delaysort, SCIP_Row::len, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nunlinked, rowSearchCoefPart(), rowSortLP(), and rowSortNonLP().
Referenced by SCIProwChgCoef(), SCIProwDelCoef(), and SCIProwIncCoef().
◆ colMoveCoef()
|
static |
moves a coefficient in a column to a different place, and updates all corresponding data structures
- Parameters
-
col LP column oldpos old position of coefficient newpos new position of coefficient
Definition at line 1251 of file lp.c.
References SCIP_Row::cols, FALSE, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Col::nonlprowssorted, NULL, SCIP_Col::rows, and SCIP_Col::vals.
Referenced by colAddCoef(), and colDelCoefPos().
◆ colSwapCoefs()
|
static |
swaps two coefficients in a column, and updates all corresponding data structures
- Parameters
-
col LP column pos1 position of first coefficient pos2 position of second coefficient
Definition at line 1287 of file lp.c.
References SCIP_Row::cols, FALSE, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Col::nonlprowssorted, NULL, SCIP_Col::rows, SCIP_Real, and SCIP_Col::vals.
Referenced by rowAddCoef(), rowUpdateAddLP(), and rowUpdateDelLP().
◆ rowMoveCoef()
|
static |
moves a coefficient in a row to a different place, and updates all corresponding data structures
- Parameters
-
row LP row oldpos old position of coefficient newpos new position of coefficient
Definition at line 1347 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::nonlpcolssorted, NULL, SCIP_Col::rows, and SCIP_Row::vals.
Referenced by rowAddCoef(), and rowDelCoefPos().
◆ rowSwapCoefs()
|
static |
swaps two coefficients in a row, and updates all corresponding data structures
- Parameters
-
row LP row pos1 position of first coefficient pos2 position of second coefficient
Definition at line 1384 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::index, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::nonlpcolssorted, NULL, SCIP_Col::rows, SCIP_Real, and SCIP_Row::vals.
Referenced by colAddCoef(), colUpdateAddLP(), and colUpdateDelLP().
◆ rowEventCoefChanged()
|
static |
issues a ROWCOEFCHANGED event on the given row
- Parameters
-
row row which coefficient has changed blkmem block memory set global SCIP settings eventqueue event queue col the column which coefficient has changed oldval old value of the coefficient newval new value of the coefficient
Definition at line 1449 of file lp.c.
References SCIP_Row::eventfilter, SCIP_EventFilter::eventmask, SCIP_EventFilter::len, NULL, SCIP_CALL, SCIP_EVENTTYPE_ROWCOEFCHANGED, SCIP_OKAY, SCIPeventCreateRowCoefChanged(), and SCIPeventqueueAdd().
Referenced by rowAddCoef(), rowChgCoefPos(), and rowDelCoefPos().
◆ rowEventConstantChanged()
|
static |
issues a ROWCONSTCHANGED event on the given row
- Parameters
-
row row which coefficient has changed blkmem block memory set global SCIP settings eventqueue event queue oldval old value of the constant newval new value of the constant
Definition at line 1479 of file lp.c.
References SCIP_Row::eventfilter, SCIP_EventFilter::eventmask, SCIP_EventFilter::len, NULL, SCIP_CALL, SCIP_EVENTTYPE_ROWCONSTCHANGED, SCIP_OKAY, SCIPeventCreateRowConstChanged(), and SCIPeventqueueAdd().
Referenced by SCIProwChgConstant().
◆ rowEventSideChanged()
|
static |
issues a ROWSIDECHANGED event on the given row
- Parameters
-
row row which coefficient has changed blkmem block memory set global SCIP settings eventqueue event queue side the side that has changed oldval old value of side newval new value of side
Definition at line 1507 of file lp.c.
References checkLinks, SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::dualfarkas, SCIP_Row::dualsol, EPSEQ, SCIP_Row::eventfilter, SCIP_EventFilter::eventmask, FALSE, SCIP_Col::farkascoef, SCIP_Lp::flushed, SCIP_Col::len, SCIP_EventFilter::len, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Lp::ncols, SCIP_Row::nlpcols, SCIP_Col::nlprows, SCIP_Lp::nrows, NULL, SCIP_Col::nunlinked, SCIP_Row::nunlinked, SCIP_Col::primsol, SCIP_Col::rows, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_ROWSIDECHANGED, SCIP_OKAY, SCIPeventCreateRowSideChanged(), SCIPeventqueueAdd(), TRUE, SCIP_Col::vals, and SCIP_Row::vals.
Referenced by SCIProwChgLhs(), and SCIProwChgRhs().
◆ coefChanged()
announces, that the given coefficient in the constraint matrix changed
- Parameters
-
row LP row col LP col lp current LP data
Definition at line 1616 of file lp.c.
References SCIP_Col::coefchanged, SCIP_Row::coefchanged, FALSE, SCIP_Lp::flushed, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Row::maxactivity, SCIP_Row::minactivity, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Row::pseudoactivity, rowAddCoef(), SCIP_INVALID, SCIP_Real, TRUE, SCIP_Row::validactivitybdsdomchg, and SCIP_Row::validpsactivitydomchg.
Referenced by colAddCoef(), colChgCoefPos(), colDelCoefPos(), rowAddCoef(), rowChgCoefPos(), and rowDelCoefPos().
◆ rowAddCoef()
|
static |
adds a previously non existing coefficient to an LP row
- Parameters
-
row LP row blkmem block memory set global SCIP settings eventqueue event queue lp current LP data col LP column val value of coefficient linkpos position of row in the column's row array, or -1
Definition at line 2026 of file lp.c.
References coefChanged(), colAddCoef(), SCIP_Row::cols, SCIP_Row::cols_index, colSwapCoefs(), FALSE, SCIP_Col::index, SCIP_Row::integral, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Row::name, SCIP_Row::nlocks, SCIP_Row::nlpcols, SCIP_Col::nlprows, SCIP_Row::nonlpcolssorted, NULL, SCIP_Col::nunlinked, SCIP_Row::nunlinked, rowAddNorms(), rowEventCoefChanged(), rowMoveCoef(), SCIP_Col::rows, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcolIsIntegral(), SCIPerrorMessage, SCIProwEnsureSize(), SCIPsetDebugMsg, SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPvarGetName(), SCIPvarGetProbindex(), TRUE, SCIP_Row::vals, SCIP_Col::var, and SCIP_Col::var_probindex.
Referenced by coefChanged(), colAddCoef(), colLink(), SCIProwAddCoef(), SCIProwChgCoef(), and SCIProwIncCoef().
◆ colAddCoef()
|
static |
adds a previously non existing coefficient to an LP column
- Parameters
-
col LP column blkmem block memory set global SCIP settings eventqueue event queue lp current LP data row LP row val value of coefficient linkpos position of column in the row's col array, or -1
Definition at line 1681 of file lp.c.
References coefChanged(), colEnsureSize(), colMoveCoef(), SCIP_Row::cols, FALSE, SCIP_Row::index, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Row::name, SCIP_Row::nlpcols, SCIP_Col::nlprows, SCIP_Col::nonlprowssorted, NULL, SCIP_Col::nunlinked, SCIP_Row::nunlinked, rowAddCoef(), SCIP_Col::rows, rowSwapCoefs(), SCIP_CALL, SCIP_OKAY, SCIPsetDebugMsg, SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPvarGetName(), SCIP_Col::vals, and SCIP_Col::var.
Referenced by rowAddCoef(), rowLink(), SCIPcolAddCoef(), SCIPcolChgCoef(), and SCIPcolIncCoef().
◆ colDelCoefPos()
|
static |
deletes coefficient at given position from column
- Parameters
-
col column to be changed set global SCIP settings lp current LP data pos position in column vector to delete
Definition at line 1802 of file lp.c.
References coefChanged(), colMoveCoef(), SCIP_Row::cols, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::rows, SCIP_OKAY, and SCIP_Col::var.
Referenced by colChgCoefPos(), rowUnlink(), SCIPcolDelCoef(), and SCIProwDelCoef().
◆ colChgCoefPos()
|
static |
changes a coefficient at given position of an LP column
- Parameters
-
col LP column set global SCIP settings lp current LP data pos position in column vector to change val value of coefficient
Definition at line 1847 of file lp.c.
References coefChanged(), colDelCoefPos(), SCIP_Row::cols, SCIP_Col::linkpos, NULL, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIP_Col::vals, and SCIP_Col::var.
Referenced by rowScale(), SCIPcolChgCoef(), SCIPcolIncCoef(), SCIProwChgCoef(), and SCIProwIncCoef().
◆ rowAddNorms()
|
static |
update row norms after addition of coefficient
- Parameters
-
row LP row set global SCIP settings col column of added coefficient val value of added coefficient updateidxvals update min/max idx and min/max val?
Definition at line 1891 of file lp.c.
References SCIP_Col::index, SCIP_Col::lppos, MAX, SCIP_Row::maxidx, SCIP_Row::maxval, MIN, SCIP_Row::minidx, SCIP_Row::minval, NULL, SCIP_Row::nummaxval, SCIP_Row::numminval, SCIP_Row::objprod, REALABS, SCIP_Real, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsetIsZero(), SQR, SCIP_Row::sqrnorm, SCIP_Row::sumnorm, and SCIP_Col::unchangedobj.
Referenced by colUpdateAddLP(), rowAddCoef(), rowCalcNorms(), and rowChgCoefPos().
◆ rowDelNorms()
|
static |
update row norms after deletion of coefficient
- Parameters
-
row LP row set global SCIP settings col column of deleted coefficient val value of deleted coefficient forcenormupdate should the norms be updated even if lppos of column is -1? updateindex should the minimal/maximal column index of row be updated? updateval should the minimal/maximal value of row be updated?
Definition at line 1968 of file lp.c.
References FALSE, SCIP_Col::index, SCIP_Col::lppos, MAX, SCIP_Row::maxidx, SCIP_Row::maxval, SCIP_Row::minidx, SCIP_Row::minval, NULL, SCIP_Row::nummaxval, SCIP_Row::numminval, SCIP_Row::objprod, REALABS, SCIP_Real, SCIPsetIsGE(), SCIPsetIsLE(), SCIPsetIsZero(), SQR, SCIP_Row::sqrnorm, SCIP_Row::sumnorm, SCIP_Col::unchangedobj, and SCIP_Row::validminmaxidx.
Referenced by colUpdateDelLP(), rowChgCoefPos(), and rowDelCoefPos().
◆ rowDelCoefPos()
|
static |
deletes coefficient at given position from row
- Parameters
-
row row to be changed blkmem block memory set global SCIP settings eventqueue event queue lp current LP data pos position in row vector to delete
Definition at line 2167 of file lp.c.
References coefChanged(), SCIP_Row::cols, FALSE, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::name, SCIP_Row::nlocks, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, rowDelNorms(), rowEventCoefChanged(), rowMoveCoef(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, TRUE, and SCIP_Row::vals.
Referenced by colUnlink(), rowChgCoefPos(), SCIPcolDelCoef(), and SCIProwDelCoef().
◆ rowChgCoefPos()
|
static |
changes a coefficient at given position of an LP row
- Parameters
-
row LP row blkmem block memory set global SCIP settings eventqueue event queue lp current LP data pos position in row vector to change val value of coefficient
Definition at line 2227 of file lp.c.
References coefChanged(), SCIP_Row::cols, FALSE, SCIP_Row::integral, SCIP_Row::name, SCIP_Row::nlocks, NULL, rowAddNorms(), rowDelCoefPos(), rowDelNorms(), rowEventCoefChanged(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPcolIsIntegral(), SCIPerrorMessage, SCIPsetIsEQ(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), TRUE, and SCIP_Row::vals.
Referenced by rowScale(), SCIPcolChgCoef(), SCIPcolIncCoef(), SCIProwChgCoef(), and SCIProwIncCoef().
◆ rowSideChanged()
|
static |
notifies LP row, that its sides were changed
- Parameters
-
row LP row set global SCIP settings lp current LP data sidetype type of side: left or right hand side
Definition at line 2283 of file lp.c.
References SCIP_Lp::chgrows, ensureChgrowsSize(), FALSE, SCIP_Lp::flushed, SCIP_Row::lhschanged, SCIP_Row::lpipos, SCIP_Lp::nchgrows, NULL, SCIP_Row::rhschanged, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPABORT, SCIPerrorMessage, and TRUE.
Referenced by SCIProwChgConstant(), SCIProwChgLhs(), and SCIProwChgRhs().
◆ colLink()
|
static |
insert column coefficients in corresponding rows
- Parameters
-
col column data blkmem block memory set global SCIP settings eventqueue event queue lp current LP data
Definition at line 2336 of file lp.c.
References checkLinks, SCIP_Row::cols, 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().
◆ colUnlink()
|
static |
removes column coefficients from corresponding rows
- Parameters
-
col column data blkmem block memory set global SCIP settings eventqueue event queue lp current LP data
Definition at line 2380 of file lp.c.
References checkLinks, SCIP_Row::cols, 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().
◆ rowLink()
|
static |
insert row coefficients in corresponding columns
- Parameters
-
row row data blkmem block memory set global SCIP settings eventqueue event queue lp current LP data
Definition at line 2419 of file lp.c.
References checkLinks, colAddCoef(), SCIP_Row::cols, 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().
◆ rowUnlink()
|
static |
removes row coefficients from corresponding columns
- Parameters
-
row row data set global SCIP settings lp current LP data
Definition at line 2462 of file lp.c.
References colDelCoefPos(), SCIP_Row::cols, 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().
◆ lpSetIntpar()
|
static |
sets parameter of type int in LP solver, ignoring unknown parameters
- Parameters
-
lp current LP data lpparam LP parameter value value to set parameter to success pointer to store whether the parameter was successfully changed
Definition at line 2501 of file lp.c.
References FALSE, SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIPlpiSetIntpar(), and TRUE.
Referenced by lpSetBoolpar(), lpSetFastmip(), lpSetIterationLimit(), lpSetPricing(), lpSetRandomseed(), lpSetRefactorInterval(), lpSetScaling(), lpSetSolutionPolishing(), lpSetThreads(), lpSetTiming(), and SCIPlpCreate().
◆ lpSetBoolpar()
|
static |
sets parameter of type SCIP_Bool in LP solver, ignoring unknown parameters
- Parameters
-
lp current LP data lpparam LP parameter value value to set parameter to success pointer to store whether the parameter was successfully changed
Definition at line 2528 of file lp.c.
References lpSetIntpar().
Referenced by lpSetFromscratch(), lpSetLPInfo(), lpSetPresolving(), and SCIPlpCreate().
◆ lpSetRealpar()
|
static |
sets parameter of type SCIP_Real in LP solver, ignoring unknown parameters
- Parameters
-
lp current LP data lpparam LP parameter value value to set parameter to success pointer to store whether the parameter was successfully changed
Definition at line 2540 of file lp.c.
References FALSE, SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIPlpiSetRealpar(), and TRUE.
Referenced by lpAlgorithm(), lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFeastol(), lpSetObjlim(), lpSetRowrepswitch(), and SCIPlpCreate().
◆ lpCheckIntpar()
|
static |
checks, that parameter of type int in LP solver has the given value, ignoring unknown parameters
- Parameters
-
lp current LP data lpparam LP parameter value value parameter should have
Definition at line 2568 of file lp.c.
References SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, and SCIPlpiGetIntpar().
Referenced by lpCheckBoolpar(), lpSetFastmip(), lpSetIterationLimit(), lpSetPricing(), lpSetScaling(), lpSetThreads(), and lpSetTiming().
◆ lpCheckBoolpar()
|
static |
checks, that parameter of type SCIP_Bool in LP solver has the given value, ignoring unknown parameters
- Parameters
-
lp current LP data lpparam LP parameter value value parameter should have
Definition at line 2593 of file lp.c.
References lpCheckIntpar().
Referenced by lpSetFromscratch(), lpSetLPInfo(), and lpSetPresolving().
◆ lpCheckRealpar()
|
static |
checks, that parameter of type SCIP_Real in LP solver has the given value, ignoring unknown parameters
- Parameters
-
lp current LP data lpparam LP parameter value value parameter should have
Definition at line 2604 of file lp.c.
References SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_Real, and SCIPlpiGetRealpar().
Referenced by lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFeastol(), lpSetObjlim(), and lpSetRowrepswitch().
◆ lpSetObjlim()
|
static |
sets the objective limit of the LP solver
Note that we are always minimizing.
- Parameters
-
lp current LP data set global SCIP settings objlim new objective limit
Definition at line 2648 of file lp.c.
References FALSE, lpCheckRealpar(), lpCutoffDisabled, SCIP_Lp::lpi, SCIP_Lp::lpiobjlim, SCIP_Lp::lpobjval, lpSetRealpar(), SCIP_Lp::lpsolstat, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_OBJLIM, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiInfinity(), SCIPsetIsInfinity(), and SCIP_Lp::solved.
Referenced by lpSolveStable().
◆ lpSetFeastol()
|
static |
sets the feasibility tolerance of the LP solver
- Parameters
-
lp current LP data feastol new feasibility tolerance success pointer to store whether the parameter was successfully changed
Definition at line 2690 of file lp.c.
References FALSE, lpCheckRealpar(), SCIP_Lp::lpifeastol, SCIP_Lp::lpobjval, lpSetRealpar(), SCIP_Lp::lpsolstat, SCIP_Lp::nrows, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_FEASTOL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, and SCIP_Lp::solved.
Referenced by lpSolveStable().
◆ lpSetDualfeastol()
|
static |
sets the reduced costs feasibility tolerance of the LP solver
- Parameters
-
lp current LP data dualfeastol new reduced costs feasibility tolerance success pointer to store whether the parameter was successfully changed
Definition at line 2727 of file lp.c.
References SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, lpCheckRealpar(), SCIP_Lp::lpidualfeastol, SCIP_Lp::lpobjval, lpSetRealpar(), SCIP_Lp::lpsolstat, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_DUALFEASTOL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, and SCIP_Lp::solved.
Referenced by lpSolveStable().
◆ lpSetBarrierconvtol()
|
static |
sets the convergence tolerance used in barrier algorithm of the LP solver
- Parameters
-
lp current LP data barrierconvtol new convergence tolerance used in barrier algorithm success pointer to store whether the parameter was successfully changed
Definition at line 2764 of file lp.c.
References SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::lastlpalgo, lpCheckRealpar(), SCIP_Lp::lpibarrierconvtol, SCIP_Lp::lpobjval, lpSetRealpar(), SCIP_Lp::lpsolstat, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_INVALID, SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPPAR_BARRIERCONVTOL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, and SCIP_Lp::solved.
Referenced by lpSolveStable().
◆ lpSetFromscratch()
|
static |
sets the FROMSCRATCH setting of the LP solver
- Parameters
-
lp current LP data fromscratch new FROMSCRATCH setting success pointer to store whether the parameter was successfully changed
Definition at line 2802 of file lp.c.
References FALSE, lpCheckBoolpar(), SCIP_Lp::lpifromscratch, lpSetBoolpar(), NULL, SCIP_CALL, SCIP_LPPAR_FROMSCRATCH, and SCIP_OKAY.
Referenced by lpSolveStable(), and SCIPlpSolveAndEval().
◆ lpSetFastmip()
|
static |
sets the FASTMIP setting of the LP solver
- Parameters
-
lp current LP data fastmip new FASTMIP setting success pointer to store whether the parameter was successfully changed
Definition at line 2827 of file lp.c.
References FALSE, lpCheckIntpar(), SCIP_Lp::lpifastmip, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_FASTMIP, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetScaling()
|
static |
sets the SCALING setting of the LP solver
- Parameters
-
lp current LP data scaling new SCALING setting success pointer to store whether the parameter was successfully changed
Definition at line 2853 of file lp.c.
References FALSE, lpCheckIntpar(), SCIP_Lp::lpiscaling, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_SCALING, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetThreads()
|
static |
sets the number of THREADS of the LP solver
- Parameters
-
lp current LP data threads new number of threads used to solve the LP success pointer to store whether the parameter was successfully changed
Definition at line 2878 of file lp.c.
References FALSE, lpCheckIntpar(), SCIP_Lp::lpithreads, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_THREADS, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetPresolving()
|
static |
sets the PRESOLVING setting of the LP solver
- Parameters
-
lp current LP data presolving new PRESOLVING setting success pointer to store whether the parameter was successfully changed
Definition at line 2903 of file lp.c.
References FALSE, lpCheckBoolpar(), SCIP_Lp::lpipresolving, lpSetBoolpar(), NULL, SCIP_CALL, SCIP_LPPAR_PRESOLVING, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetRowrepswitch()
|
static |
sets the ROWREPSWITCH setting of the LP solver
- Parameters
-
lp current LP data rowrepswitch new ROWREPSWITCH value success pointer to store whether the parameter was successfully changed
Definition at line 2928 of file lp.c.
References FALSE, lpCheckRealpar(), SCIP_Lp::lpirowrepswitch, lpSetRealpar(), NULL, SCIP_CALL, SCIP_LPPAR_ROWREPSWITCH, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetIterationLimit()
|
static |
sets the iteration limit of the LP solver
- Parameters
-
lp current LP data itlim maximal number of LP iterations to perform, or -1 for no limit
Definition at line 2953 of file lp.c.
References FALSE, lpCheckIntpar(), SCIP_Lp::lpiitlim, SCIP_Lp::lpobjval, lpSetIntpar(), SCIP_Lp::lpsolstat, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_LPITLIM, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, and SCIP_Lp::solved.
Referenced by lpSolveStable(), and SCIPlpEndDive().
◆ lpSetPricing()
|
static |
sets the pricing strategy of the LP solver
- Parameters
-
lp current LP data pricing pricing strategy
Definition at line 2989 of file lp.c.
References lpCheckIntpar(), SCIP_Lp::lpipricing, lpSetIntpar(), NULL, pricing(), SCIP_Bool, SCIP_CALL, SCIP_LPPAR_PRICING, and SCIP_OKAY.
Referenced by lpSetPricingChar().
◆ lpSetPricingChar()
|
static |
sets the pricing strategy of the LP solver (given the character representation of the strategy)
- Parameters
-
lp current LP data pricingchar character representing the pricing strategy
Definition at line 3012 of file lp.c.
References lpSetPricing(), pricing(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_PRICING_AUTO, SCIP_PRICING_DEVEX, SCIP_PRICING_FULL, SCIP_PRICING_LPIDEFAULT, SCIP_PRICING_PARTIAL, SCIP_PRICING_STEEP, SCIP_PRICING_STEEPQSTART, and SCIPerrorMessage.
Referenced by lpSolveStable().
◆ lpSetLPInfo()
|
static |
sets the verbosity of the LP solver
- Parameters
-
lp current LP data lpinfo should the LP solver display status messages?
Definition at line 3054 of file lp.c.
References lpCheckBoolpar(), SCIP_Lp::lpilpinfo, lpSetBoolpar(), NULL, SCIP_Bool, SCIP_CALL, SCIP_LPPAR_LPINFO, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetConditionLimit()
|
static |
sets the CONDITIONLIMIT setting of the LP solver
- Parameters
-
lp current LP data condlimit new CONDITIONLIMIT value success pointer to store whether the parameter was successfully changed
Definition at line 3077 of file lp.c.
References FALSE, lpCheckRealpar(), SCIP_Lp::lpiconditionlimit, lpSetRealpar(), NULL, SCIP_CALL, SCIP_LPPAR_CONDITIONLIMIT, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetTiming()
|
static |
sets the type of timer of the LP solver
- Parameters
-
lp current LP data timing new timing value enabled is timing enabled? success pointer to store whether the parameter was successfully changed
Definition at line 3102 of file lp.c.
References FALSE, lpCheckIntpar(), SCIP_Lp::lpitiming, lpSetIntpar(), NULL, SCIP_CALL, SCIP_CLOCKTYPE_CPU, SCIP_CLOCKTYPE_WALL, SCIP_LPPAR_TIMING, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetRandomseed()
|
static |
sets the initial random seed of the LP solver
- Parameters
-
lp current LP data randomseed new initial random seed success pointer to store whether the parameter was successfully changed
Definition at line 3136 of file lp.c.
References FALSE, SCIP_Lp::lpirandomseed, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_RANDOMSEED, SCIP_OKAY, and TRUE.
Referenced by lpSolveStable().
◆ lpSetSolutionPolishing()
|
static |
sets the LP solution polishing method
- Parameters
-
lp current LP data polishing LP solution polishing activated (0: disabled, 1: enabled) success pointer to store whether the parameter was successfully changed
Definition at line 3166 of file lp.c.
References FALSE, SCIP_Lp::lpisolutionpolishing, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_POLISHING, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetRefactorInterval()
|
static |
sets the LP refactorization interval
- Parameters
-
lp current LP data refactor LP refactorization interval (0: automatic) success pointer to store whether the parameter was successfully changed
Definition at line 3189 of file lp.c.
References FALSE, SCIP_Lp::lpirefactorinterval, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_REFACTOR, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ SCIPcolCreate()
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
- Parameters
-
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 3216 of file lp.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, SCIP_Stat::ncolidx, NULL, SCIP_Var::obj, SCIP_ALLOC, SCIP_BASESTAT_ZERO, SCIP_INVALID, SCIP_OKAY, SCIPsetIsZero(), SCIPstatIncrement, SCIPvarGetLbLazy(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetUbLazy(), SCIPvarGetUbLocal(), SCIPvarGetUnchangedObj(), SCIPvarIsIntegral(), and TRUE.
Referenced by SCIPvarColumn().
◆ SCIPcolFree()
SCIP_RETCODE SCIPcolFree | ( | SCIP_COL ** | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp | ||
) |
frees an LP column
- Parameters
-
col pointer to LP column blkmem block memory set global SCIP settings eventqueue event queue lp current LP data
Definition at line 3314 of file lp.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, colUnlink(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, and SCIPvarGetStatus().
Referenced by SCIPvarLoose(), and varFree().
◆ SCIPcolPrint()
void SCIPcolPrint | ( | SCIP_COL * | col, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
FILE * | file | ||
) |
output column to file stream
- Parameters
-
col LP column messagehdlr message handler file output file (or NULL for standard output)
Definition at line 3344 of file lp.c.
References 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.
◆ SCIPcolAddCoef()
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
- Parameters
-
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 3384 of file lp.c.
References checkLinks, colAddCoef(), SCIP_Lp::diving, NULL, SCIP_CALL, and SCIP_OKAY.
◆ SCIPcolDelCoef()
SCIP_RETCODE SCIPcolDelCoef | ( | SCIP_COL * | col, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_ROW * | row | ||
) |
deletes existing coefficient from column
- Parameters
-
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 3405 of file lp.c.
References 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.
◆ SCIPcolChgCoef()
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
- Parameters
-
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 3450 of file lp.c.
References 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, SCIPsetIsEQ(), SCIP_Col::vals, and SCIP_Row::vals.
◆ SCIPcolIncCoef()
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 non-existing coefficient in an LP column
- Parameters
-
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 3501 of file lp.c.
References 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, SCIPsetIsEQ(), SCIPsetIsZero(), SCIP_Col::vals, and SCIP_Row::vals.
◆ insertColChgcols()
|
static |
insert column in the chgcols list (if not already there)
- Parameters
-
col LP column to change set global SCIP settings lp current LP data
Definition at line 3556 of file lp.c.
References SCIP_Lp::chgcols, ensureChgcolsSize(), FALSE, SCIP_Lp::flushed, SCIP_Col::lbchanged, SCIP_Lp::nchgcols, SCIP_Col::objchanged, SCIP_CALL, SCIP_OKAY, and SCIP_Col::ubchanged.
Referenced by SCIPcolChgLb(), SCIPcolChgObj(), SCIPcolChgUb(), and updateLazyBounds().
◆ isNewValueUnreliable()
|
static |
Is the new value reliable or may we have cancellation?
- Note
- : Here we only consider cancellations which can occur during decreasing the oldvalue to newvalue; not the cancellations which can occur during increasing the oldvalue to the newvalue
- Parameters
-
set global SCIP settings newvalue new value oldvalue old reliable value
Definition at line 3581 of file lp.c.
References NULL, REALABS, SCIP_INVALID, SCIP_Real, and SCIPsetIsZero().
Referenced by lpUpdateObjNorms().
◆ lpUpdateObjNorms()
|
static |
update norms of objective function vector
- Parameters
-
lp current LP data set global SCIP settings oldobj old objective value of variable newobj new objective value of variable
Definition at line 3599 of file lp.c.
References isNewValueUnreliable(), MAX, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, SCIP_Lp::objsumnorm, REALABS, SCIP_Real, SCIPsetIsGE(), SCIPsetIsLT(), SQR, and TRUE.
Referenced by lpDelColset(), SCIPcolChgObj(), SCIPlpAddCol(), and SCIPlpShrinkCols().
◆ SCIPcolChgObj()
SCIP_RETCODE SCIPcolChgObj | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_LP * | lp, | ||
SCIP_Real | newobj | ||
) |
changes objective value of column
- Parameters
-
col LP column to change set global SCIP settings lp current LP data newobj new objective value
Definition at line 3635 of file lp.c.
References SCIP_Lp::divingobjchg, FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lb, SCIP_Col::lpipos, lpUpdateObjNorms(), SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_Col::objchanged, 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().
◆ SCIPcolChgLb()
SCIP_RETCODE SCIPcolChgLb | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_LP * | lp, | ||
SCIP_Real | newlb | ||
) |
changes lower bound of column
- Parameters
-
col LP column to change set global SCIP settings lp current LP data newlb new lower bound value
Definition at line 3694 of file lp.c.
References 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_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), TRUE, and SCIP_Col::var.
Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgLbDive().
◆ SCIPcolChgUb()
SCIP_RETCODE SCIPcolChgUb | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_LP * | lp, | ||
SCIP_Real | newub | ||
) |
changes upper bound of column
- Parameters
-
col LP column to change set global SCIP settings lp current LP data newub new upper bound value
Definition at line 3739 of file lp.c.
References FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lpipos, SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_CALL, SCIP_OKAY, 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().
◆ SCIPcolCalcRedcost()
calculates the reduced costs of a column using the given dual solution vector
- Parameters
-
col LP column dualsol dual solution vector for current LP rows
Definition at line 3784 of file lp.c.
References 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.
◆ colCalcInternalRedcost()
calculates the reduced costs of a column using the dual solution stored in the rows
- Parameters
-
col LP column
Definition at line 3836 of file lp.c.
References SCIP_Row::dualsol, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::obj, SCIP_Col::rows, SCIP_INVALID, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var.
Referenced by SCIPcolGetRedcost().
◆ SCIPcolGetRedcost()
gets the reduced costs of a column in last LP or after recalculation
- Parameters
-
col LP column stat problem statistics lp current LP data
Definition at line 3889 of file lp.c.
References colCalcInternalRedcost(), SCIP_Stat::lpcount, NULL, SCIP_Col::redcost, SCIP_INVALID, SCIP_Col::validredcostlp, and SCIP_Lp::validsollp.
Referenced by getImplVarRedcost(), SCIPcolGetFeasibility(), SCIPgetColRedcost(), SCIPprobUpdateBestRootSol(), and SCIPvarGetImplRedcost().
◆ SCIPcolGetFeasibility()
gets the feasibility of (the dual row of) a column in last LP or after recalculation
- Parameters
-
col LP column set global SCIP settings stat problem statistics lp current LP data
Definition at line 3913 of file lp.c.
References 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().
◆ SCIPcolCalcFarkasCoef()
calculates the Farkas coefficient y^T A_i of a column i using the given dual Farkas vector y
- Parameters
-
col LP column dualfarkas dense dual Farkas vector for current LP rows
Definition at line 3967 of file lp.c.
References 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.
◆ colCalcInternalFarkasCoef()
gets the Farkas coefficient y^T A_i of a column i in last LP (which must be infeasible)
- Parameters
-
col LP column
Definition at line 4019 of file lp.c.
References SCIP_Row::dualfarkas, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::rows, SCIP_INVALID, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var.
Referenced by SCIPcolGetFarkasCoef().
◆ SCIPcolGetFarkasCoef()
gets the Farkas coefficient of a column in last LP (which must be infeasible)
- Parameters
-
col LP column stat problem statistics lp current LP data
Definition at line 4072 of file lp.c.
References colCalcInternalFarkasCoef(), SCIP_Col::farkascoef, SCIP_Stat::lpcount, NULL, SCIP_INVALID, SCIP_Col::validfarkaslp, and SCIP_Lp::validfarkaslp.
Referenced by SCIPcolGetFarkasValue(), and SCIPgetColFarkasCoef().
◆ SCIPcolGetFarkasValue()
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}
- Parameters
-
col LP column stat problem statistics lp current LP data
Definition at line 4098 of file lp.c.
References SCIP_Col::lb, NULL, SCIP_Real, SCIPcolGetFarkasCoef(), and SCIP_Col::ub.
Referenced by SCIPpricestoreAddProbVars().
◆ SCIPlpStartStrongbranch()
SCIP_RETCODE SCIPlpStartStrongbranch | ( | SCIP_LP * | lp | ) |
start strong branching - call before any strong branching
- Parameters
-
lp LP data
Definition at line 4117 of file lp.c.
References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiStartStrongbranch(), SCIP_Lp::strongbranching, and TRUE.
Referenced by SCIPstartStrongbranch().
◆ SCIPlpEndStrongbranch()
SCIP_RETCODE SCIPlpEndStrongbranch | ( | SCIP_LP * | lp | ) |
end strong branching - call after any strong branching
- Parameters
-
lp LP data
Definition at line 4132 of file lp.c.
References FALSE, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiEndStrongbranch(), and SCIP_Lp::strongbranching.
Referenced by SCIPendStrongbranch().
◆ SCIPcolSetStrongbranchData()
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
- Parameters
-
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 4147 of file lp.c.
References 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, 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_VARSTATUS_COLUMN, SCIPcolIsIntegral(), SCIPstatAdd, SCIPstatIncrement, SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::strongbranchprobing, SCIP_Col::validsblp, and SCIP_Col::var.
Referenced by SCIPgetVarStrongbranchWithPropagation(), and SCIPsetVarStrongbranchData().
◆ SCIPcolInvalidateStrongbranchData()
void SCIPcolInvalidateStrongbranchData | ( | SCIP_COL * | col, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp | ||
) |
invalidates strong branching information for a column variable
- Parameters
-
col LP column set global SCIP settings stat dynamic problem statistics lp LP data
Definition at line 4201 of file lp.c.
References 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().
◆ SCIPcolGetStrongbranch()
SCIP_RETCODE SCIPcolGetStrongbranch | ( | SCIP_COL * | col, |
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 a column variable
- Parameters
-
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 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 4236 of file lp.c.
References SCIP_Lp::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, SCIP_Stat::lpcount, 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_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().
◆ SCIPcolGetStrongbranches()
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
- Parameters
-
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 4394 of file lp.c.
References SCIP_Lp::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, SCIP_Stat::lpcount, 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().
◆ SCIPcolGetStrongbranchLast()
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
- Parameters
-
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 4630 of file lp.c.
References NULL, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sblpobjval, SCIP_Col::sbsolval, SCIP_Col::sbup, and SCIP_Col::sbupvalid.
Referenced by SCIPgetVarStrongbranchLast().
◆ SCIPcolGetStrongbranchLPAge()
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
- Parameters
-
col LP column stat dynamic problem statistics
Definition at line 4662 of file lp.c.
References SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_Col::sbnode, SCIP_LONGINT_MAX, and SCIP_Col::validsblp.
Referenced by SCIPgetVarStrongbranchLPAge().
◆ SCIPcolMarkNotRemovableLocal()
marks a column to be not removable from the LP in the current node because it became obsolete
- Parameters
-
col LP column stat problem statistics
Definition at line 4674 of file lp.c.
References SCIP_Stat::nnodes, NULL, and SCIP_Col::obsoletenode.
Referenced by SCIPmarkColNotRemovableLocal().
◆ rowCalcNorms()
calculates row norms and min/maxidx from scratch, and checks for sorting
- Parameters
-
row LP row set global SCIP settings
Definition at line 4694 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::maxidx, SCIP_Row::maxval, SCIP_Row::minidx, SCIP_Row::minval, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nummaxval, SCIP_Row::numminval, SCIP_Row::objprod, rowAddNorms(), SCIPsetInfinity(), SCIPsetIsZero(), SCIP_Row::sqrnorm, SCIP_Row::sumnorm, TRUE, SCIP_Row::validminmaxidx, and SCIP_Row::vals.
Referenced by rowMerge(), SCIPlpAddRow(), and SCIProwCreate().
◆ rowCalcIdxsAndVals()
calculates min/maxval and min/maxidx from scratch
- Parameters
-
row LP row set global SCIP settings
Definition at line 4753 of file lp.c.
References SCIP_Row::cols, SCIP_Col::index, SCIP_Row::len, MAX, SCIP_Row::maxidx, SCIP_Row::maxval, MIN, SCIP_Row::minidx, SCIP_Row::minval, NULL, SCIP_Row::numintcols, SCIP_Row::nummaxval, SCIP_Row::numminval, REALABS, SCIP_Real, SCIPcolIsIntegral(), SCIPsetInfinity(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsetIsZero(), TRUE, SCIP_Row::validminmaxidx, and SCIP_Row::vals.
Referenced by SCIProwGetMaxidx(), SCIProwGetMaxval(), SCIProwGetMinidx(), SCIProwGetMinval(), and SCIProwGetNumIntCols().
◆ isIntegralScalar()
|
static |
checks, whether the given scalar scales the given value to an integral number with error in the given bounds
- Parameters
-
val value that should be scaled to an integral value scalar scalar that should be tried 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 intval pointer to store the scaled integral value, or NULL
Definition at line 4823 of file lp.c.
References FALSE, NULL, SCIP_Real, SCIPrelDiff(), and TRUE.
Referenced by buildFlowCover(), rowScale(), and SCIProwCalcIntegralScalar().
◆ rowScale()
|
static |
scales row with given factor, and rounds coefficients to integers if close enough; the constant is automatically moved to the sides; if the row's activity is proven to be integral, the sides are automatically rounded to the next integer
- Parameters
-
row LP row blkmem block memory set global SCIP settings eventqueue event queue stat problem statistics lp current LP data scaleval value to scale row with integralcontvars should the coefficients of the continuous variables also be made integral, if they are close to integral values? minrounddelta minimal relative difference of scaled coefficient s*c and integral i, upto which the integral is used instead of the scaled real coefficient maxrounddelta maximal relative difference of scaled coefficient s*c and integral i upto which the integral is used instead of the scaled real coefficient
Definition at line 4863 of file lp.c.
References colChgCoefPos(), SCIP_Row::cols, SCIP_Row::constant, debugRowPrint, FALSE, SCIP_Row::integral, isIntegralScalar(), SCIP_Col::lb, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Row::local, SCIP_Row::modifiable, SCIP_Row::name, NULL, SCIP_Row::rhs, rowChgCoefPos(), SCIP_Col::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcolIsIntegral(), SCIProwChgConstant(), SCIProwChgLhs(), SCIProwChgRhs(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsetIsIntegral(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPsetSumCeil(), SCIPsetSumFloor(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), TRUE, SCIP_Col::ub, SCIP_Row::validactivitylp, SCIP_Col::vals, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIProwMakeIntegral().
◆ SCIProwCreate()
SCIP_RETCODE SCIProwCreate | ( | SCIP_ROW ** | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp, | ||
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
- Parameters
-
row pointer to LP row data blkmem block memory set global SCIP settings stat problem statistics lp current LP data 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 5033 of file lp.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, SCIP_Col::index, SCIP_Stat::nrowidx, NULL, rowCalcNorms(), SCIP_ALLOC, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPeventfilterCreate(), SCIProwCapture(), SCIPsetInfinity(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPstatIncrement, SCIPvarIsIntegral(), TRUE, and SCIP_Col::var.
Referenced by SCIPcreateEmptyRowCons(), SCIPcreateEmptyRowSepa(), SCIPcreateEmptyRowUnspec(), SCIPcreateRowCons(), SCIPcreateRowSepa(), SCIPcreateRowUnspec(), and SCIPreoptApplyCuts().
◆ SCIProwFree()
SCIP_RETCODE SCIProwFree | ( | SCIP_ROW ** | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_LP * | lp | ||
) |
frees an LP row
- Parameters
-
row pointer to LP row blkmem block memory set global SCIP settings lp current LP data
Definition at line 5174 of file lp.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, NULL, rowUnlink(), SCIP_CALL, SCIP_OKAY, and SCIPeventfilterFree().
Referenced by SCIProwRelease().
◆ SCIProwPrint()
void SCIProwPrint | ( | SCIP_ROW * | row, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
FILE * | file | ||
) |
output row to file stream
- Parameters
-
row LP row messagehdlr message handler file output file (or NULL for standard output)
Definition at line 5206 of file lp.c.
References SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::name, NULL, REALABS, SCIP_Row::rhs, SCIP_DEFAULT_EPSILON, SCIP_VARSTATUS_COLUMN, SCIPmessageFPrintInfo(), SCIPvarGetName(), SCIPvarGetStatus(), SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPprintRow().
◆ SCIProwCapture()
void SCIProwCapture | ( | SCIP_ROW * | row | ) |
increases usage counter of LP row
- Parameters
-
row LP row
Definition at line 5246 of file lp.c.
References SCIP_Row::name, SCIP_Row::nlocks, NULL, SCIP_Row::nuses, and SCIPdebugMessage.
Referenced by cutCreate(), forkCreate(), forkFree(), lpFlushAddRows(), pseudoforkCreate(), SCIPcaptureRow(), SCIPlpAddRow(), SCIProwCreate(), and SCIPsepastoreAddCut().
◆ SCIProwRelease()
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
- Parameters
-
row pointer to LP row blkmem block memory set global SCIP settings lp current LP data
Definition at line 5259 of file lp.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIProwFree(), and SCIPsetDebugMsg.
Referenced by cutFree(), forkFree(), lpDelRowset(), lpFlushDelRows(), pseudoforkFree(), SCIPlpFree(), SCIPlpShrinkRows(), SCIPreleaseRow(), SCIPreoptApplyCuts(), SCIPsepastoreAddCut(), SCIPsepastoreClearCuts(), sepastoreDelCut(), and subrootFree().
◆ SCIProwAddCoef()
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
- Parameters
-
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 5316 of file lp.c.
References checkLinks, SCIP_Lp::diving, SCIP_Row::lppos, NULL, rowAddCoef(), SCIP_CALL, and SCIP_OKAY.
◆ SCIProwDelCoef()
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
- Parameters
-
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 5337 of file lp.c.
References 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.
◆ SCIProwChgCoef()
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
- Parameters
-
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 5383 of file lp.c.
References 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, SCIPsetIsEQ(), SCIP_Col::vals, and SCIP_Row::vals.
◆ SCIProwIncCoef()
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 non-existing coefficient in an LP row
- Parameters
-
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 5435 of file lp.c.
References 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, SCIPsetIsEQ(), SCIPsetIsZero(), SCIP_Row::validactivitylp, SCIP_Col::vals, and SCIP_Row::vals.
Referenced by SCIPvarAddToRow().
◆ SCIProwChgConstant()
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
- Parameters
-
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 5492 of file lp.c.
References SCIP_Row::constant, SCIP_Lp::diving, SCIP_Stat::domchgcount, SCIP_Row::lhs, SCIP_Row::lppos, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, SCIP_Row::pseudoactivity, REALABS, SCIP_Row::rhs, rowEventConstantChanged(), rowSideChanged(), SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIP_Row::validactivitybdsdomchg, and SCIP_Row::validpsactivitydomchg.
Referenced by rowScale(), and SCIProwAddConstant().
◆ SCIProwAddConstant()
SCIP_RETCODE SCIProwAddConstant | ( | SCIP_ROW * | row, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_Real | addval | ||
) |
add constant value to a row
- Parameters
-
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 5547 of file lp.c.
References SCIP_Row::constant, SCIP_Lp::diving, SCIP_Row::lhs, SCIP_Row::lppos, NULL, REALABS, SCIP_Row::rhs, SCIP_CALL, SCIP_OKAY, SCIProwChgConstant(), SCIPsetIsInfinity(), and SCIPsetIsZero().
Referenced by SCIPvarAddToRow().
◆ SCIProwChgLhs()
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
- Parameters
-
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 5573 of file lp.c.
References SCIP_Lp::diving, SCIP_Row::lhs, NULL, rowEventSideChanged(), rowSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, and SCIPsetIsEQ().
Referenced by rowScale(), SCIPchgRowLhs(), SCIPchgRowLhsDive(), and SCIPlpEndDive().
◆ SCIProwChgRhs()
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
- Parameters
-
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 5605 of file lp.c.
References SCIP_Lp::diving, NULL, SCIP_Row::rhs, rowEventSideChanged(), rowSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_RIGHT, and SCIPsetIsEQ().
Referenced by rowScale(), SCIPchgRowRhs(), SCIPchgRowRhsDive(), and SCIPlpEndDive().
◆ SCIProwChgLocal()
SCIP_RETCODE SCIProwChgLocal | ( | SCIP_ROW * | row, |
SCIP_Bool | local | ||
) |
changes the local flag of LP row
- Parameters
-
row LP row local new value for local flag
Definition at line 5637 of file lp.c.
References SCIP_Row::local, NULL, and SCIP_OKAY.
Referenced by SCIPsepastoreAddCut().
◆ SCIProwCalcIntegralScalar()
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
- Parameters
-
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 5654 of file lp.c.
References ABS, SCIP_Row::cols, SCIP_Row::cols_index, FALSE, isIntegralScalar(), SCIP_Row::len, MIN, nscalars, NULL, REALABS, 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().
◆ 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
- Parameters
-
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 5888 of file lp.c.
References NULL, rowScale(), SCIP_CALL, SCIP_OKAY, SCIP_Real, and SCIProwCalcIntegralScalar().
Referenced by SCIPmakeRowIntegral().
◆ rowMerge()
sorts row, and merges equal column entries (resulting from lazy sorting and adding) into a single entry; removes zero entries from row the row must not be linked to the columns; otherwise, we would need to update the columns as well, which is too expensive
- Parameters
-
row row to be sorted set global SCIP settings
Definition at line 5956 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Col::index, SCIP_Row::integral, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Row::name, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nunlinked, rowCalcNorms(), SCIP_Real, SCIPcolIsIntegral(), SCIProwSort(), SCIPsetDebugMsg, SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), TRUE, and SCIP_Row::vals.
Referenced by SCIProwForceSort().
◆ SCIProwDelaySort()
void SCIProwDelaySort | ( | SCIP_ROW * | row | ) |
enables delaying of row sorting
- Parameters
-
row LP row
Definition at line 6055 of file lp.c.
References SCIP_Row::delaysort, NULL, and TRUE.
Referenced by SCIPaddVarsToRow(), SCIPaddVarsToRowSameCoef(), and SCIPcacheRowExtensions().
◆ SCIProwForceSort()
disables delaying of row sorting, sorts row and merges coefficients with equal columns
- Parameters
-
row LP row set global SCIP settings
Definition at line 6066 of file lp.c.
References SCIP_Row::delaysort, FALSE, NULL, and rowMerge().
Referenced by SCIPaddVarsToRow(), SCIPaddVarsToRowSameCoef(), and SCIPflushRowExtensions().
◆ SCIProwRecalcLPActivity()
recalculates the current activity of a row
- Parameters
-
row LP row stat problem statistics
Definition at line 6079 of file lp.c.
References SCIP_Row::activity, 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 SCIPrecalcRowActivity(), SCIPrecalcRowLPActivity(), and SCIProwGetLPActivity().
◆ SCIProwGetLPActivity()
returns the activity of a row in the current LP solution
- Parameters
-
row LP row set global SCIP settings stat problem statistics lp current LP data
Definition at line 6131 of file lp.c.
References SCIP_Row::activity, SCIP_Interval::inf, SCIP_Stat::lpcount, MAX, MIN, NULL, SCIP_INVALID, SCIP_Real, SCIProwRecalcLPActivity(), SCIPsetInfinity(), SCIP_Row::validactivitylp, and SCIP_Lp::validsollp.
Referenced by SCIPgetRowActivity(), SCIPgetRowLPActivity(), SCIPgetRowSolActivity(), and SCIProwGetLPFeasibility().
◆ 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
- Parameters
-
row LP row set global SCIP settings stat problem statistics lp current LP data
Definition at line 6161 of file lp.c.
References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetLPActivity().
Referenced by SCIPcutpoolSeparate(), SCIPgetRowFeasibility(), SCIPgetRowLPFeasibility(), SCIPgetRowSolFeasibility(), SCIProwGetLPEfficacy(), and SCIProwGetLPSolCutoffDistance().
◆ SCIProwGetRelaxFeasibility()
returns the feasibility of a row in the relaxed solution solution: negative value means infeasibility
- Parameters
-
row LP row set global SCIP settings stat problem statistics
Definition at line 6181 of file lp.c.
References SCIP_Row::cols, SCIP_Row::constant, SCIP_Interval::inf, 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().
◆ SCIProwGetNLPFeasibility()
returns the feasibility of a row in the current NLP solution: negative value means infeasibility
- Parameters
-
row LP row set global SCIP settings stat problem statistics
Definition at line 6243 of file lp.c.
References SCIP_Row::cols, SCIP_Row::constant, SCIP_Interval::inf, 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().
◆ SCIProwRecalcPseudoActivity()
calculates the current pseudo activity of a row
- Parameters
-
row row data stat problem statistics
Definition at line 6302 of file lp.c.
References SCIP_Row::cols, SCIP_Row::constant, SCIP_Stat::domchgcount, EPSISINT, 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().
◆ SCIProwGetPseudoActivity()
returns the pseudo activity of a row in the current pseudo solution
- Parameters
-
row LP row set global SCIP settings stat problem statistics
Definition at line 6329 of file lp.c.
References SCIP_Stat::domchgcount, SCIP_Interval::inf, MAX, MIN, NULL, SCIP_Row::pseudoactivity, SCIP_INVALID, SCIP_Real, SCIProwRecalcPseudoActivity(), SCIPsetInfinity(), and SCIP_Row::validpsactivitydomchg.
Referenced by SCIPgetRowActivity(), SCIPgetRowPseudoActivity(), SCIPgetRowSolActivity(), and SCIProwGetPseudoFeasibility().
◆ SCIProwGetPseudoFeasibility()
returns the pseudo feasibility of a row in the current pseudo solution: negative value means infeasibility
- Parameters
-
row LP row set global SCIP settings stat problem statistics
Definition at line 6357 of file lp.c.
References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetPseudoActivity().
Referenced by SCIPgetRowFeasibility(), SCIPgetRowPseudoFeasibility(), and SCIPgetRowSolFeasibility().
◆ SCIProwGetSolActivity()
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
- Parameters
-
row LP row set global SCIP settings stat problem statistics data sol primal CIP solution
Definition at line 6373 of file lp.c.
References SCIP_Row::cols, SCIP_Row::constant, SCIP_Interval::inf, 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(), SCIP_Col::ub, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPgetRowSolActivity(), SCIProwGetSolFeasibility(), and SCIPsolAdjustImplicitSolVals().
◆ SCIProwGetSolFeasibility()
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
- Parameters
-
row LP row set global SCIP settings stat problem statistics data sol primal CIP solution
Definition at line 6415 of file lp.c.
References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetSolActivity().
Referenced by SCIPcutpoolSeparate(), SCIPgetRowSolFeasibility(), and SCIProwGetSolEfficacy().
◆ rowCalcActivityBounds()
calculates minimal and maximal activity of row w.r.t. the column's bounds
- Parameters
-
row row data set global SCIP settings stat problem statistics data
Definition at line 6433 of file lp.c.
References SCIP_Row::cols, SCIP_Row::constant, SCIP_Stat::domchgcount, EPSISINT, FALSE, SCIP_Row::integral, SCIP_Col::lb, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Col::lppos, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, REALABS, SCIP_Bool, SCIP_Real, SCIPsetFeastol(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetSumepsilon(), SCIP_Col::ub, SCIP_Row::validactivitybdsdomchg, and SCIP_Row::vals.
Referenced by SCIProwGetMaxActivity(), and SCIProwGetMinActivity().
◆ SCIProwGetMinActivity()
returns the minimal activity of a row w.r.t. the columns' bounds
- Parameters
-
row LP row set global SCIP settings stat problem statistics data
Definition at line 6505 of file lp.c.
References SCIP_Stat::domchgcount, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, rowCalcActivityBounds(), SCIP_INVALID, and SCIP_Row::validactivitybdsdomchg.
Referenced by SCIPaddRow(), SCIPgetRowMinActivity(), SCIPlpRemoveRedundantRows(), SCIProwIsRedundant(), sepastoreIsCutRedundant(), and sepastoreIsCutRedundantOrInfeasible().
◆ SCIProwGetMaxActivity()
returns the maximal activity of a row w.r.t. the columns' bounds
- Parameters
-
row LP row set global SCIP settings stat problem statistics data
Definition at line 6526 of file lp.c.
References SCIP_Stat::domchgcount, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, rowCalcActivityBounds(), SCIP_INVALID, and SCIP_Row::validactivitybdsdomchg.
Referenced by SCIPaddRow(), SCIPgetRowMaxActivity(), SCIPlpRemoveRedundantRows(), SCIProwIsRedundant(), sepastoreIsCutRedundant(), and sepastoreIsCutRedundantOrInfeasible().
◆ SCIProwIsRedundant()
returns whether the row is unmodifiable and redundant w.r.t. the columns' bounds
- Parameters
-
row LP row set global SCIP settings stat problem statistics data
Definition at line 6547 of file lp.c.
References FALSE, SCIP_Row::lhs, SCIP_Row::modifiable, NULL, SCIP_Row::rhs, SCIP_Real, SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsInfinity(), and TRUE.
Referenced by SCIPlpRemoveRedundantRows().
◆ SCIProwGetMaxval()
gets maximal absolute value of row vector coefficients
- Parameters
-
row LP row set global SCIP settings
Definition at line 6578 of file lp.c.
References SCIP_Row::len, SCIP_Row::maxval, NULL, SCIP_Row::nummaxval, and rowCalcIdxsAndVals().
Referenced by SCIP_DECL_HASHKEYEQ(), SCIP_DECL_HASHKEYVAL(), SCIPcutpoolAddRow(), SCIPcutpoolIsCutNew(), SCIPgetRowMaxCoef(), SCIProwGetLPEfficacy(), SCIProwGetNLPEfficacy(), SCIProwGetRelaxEfficacy(), and SCIProwGetSolEfficacy().
◆ SCIProwGetMinval()
gets minimal absolute value of row vector's non-zero coefficients
- Parameters
-
row LP row set global SCIP settings
Definition at line 6594 of file lp.c.
References SCIP_Row::len, SCIP_Row::minval, NULL, SCIP_Row::numminval, and rowCalcIdxsAndVals().
Referenced by SCIP_DECL_HASHKEYEQ(), and SCIPgetRowMinCoef().
◆ SCIProwGetMaxidx()
gets maximal column index of row entries
- Parameters
-
row LP row set global SCIP settings
Definition at line 6610 of file lp.c.
References SCIP_Row::len, SCIP_Row::maxidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx.
Referenced by SCIPcutpoolAddNewRow().
◆ SCIProwGetMinidx()
gets minimal column index of row entries
- Parameters
-
row LP row set global SCIP settings
Definition at line 6626 of file lp.c.
References SCIP_Row::len, SCIP_Row::minidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx.
◆ SCIProwGetNumIntCols()
gets number of integral columns in row
- Parameters
-
row LP row set global SCIP settings
Definition at line 6642 of file lp.c.
References SCIP_Row::len, NULL, SCIP_Row::numintcols, and rowCalcIdxsAndVals().
Referenced by SCIPgetRowNumIntCols(), and SCIPselectCuts().
◆ SCIProwGetLPSolCutoffDistance()
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
- Parameters
-
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 6658 of file lp.c.
References SCIP_Row::cols, SCIP_Lp::cols, COPYSIGN, 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(), SCIP_Lp::soldirection, SQR, SQRT, SCIP_Lp::validsoldirlp, SCIP_Lp::validsoldirsol, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPselectCuts().
◆ SCIProwGetLPEfficacy()
returns row's efficacy with respect to the current LP solution: e = -feasibility/norm
- Parameters
-
row LP row set global SCIP settings stat problem statistics data lp current LP data
Definition at line 6715 of file lp.c.
References eps, SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetLPFeasibility(), SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().
Referenced by SCIPcutpoolAddNewRow(), SCIPcutpoolSeparate(), SCIPgetCutEfficacy(), SCIProwIsLPEfficacious(), SCIPselectCuts(), SCIPsepastoreApplyCuts(), and SCIPsepastoreRemoveInefficaciousCuts().
◆ SCIProwIsLPEfficacious()
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
- Parameters
-
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 6756 of file lp.c.
References SCIP_Real, SCIProwGetLPEfficacy(), and SCIPsetIsEfficacious().
Referenced by SCIPisCutEfficacious().
◆ SCIProwGetSolEfficacy()
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
- Parameters
-
row LP row set global SCIP settings stat problem statistics data sol primal CIP solution
Definition at line 6772 of file lp.c.
References eps, SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetSolFeasibility(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().
Referenced by SCIPcutpoolSeparate(), SCIPgetCutEfficacy(), and SCIProwIsSolEfficacious().
◆ 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
- Parameters
-
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 6815 of file lp.c.
References SCIP_Real, SCIProwGetSolEfficacy(), and SCIPsetIsEfficacious().
Referenced by SCIPisCutEfficacious().
◆ SCIProwGetRelaxEfficacy()
returns row's efficacy with respect to the relaxed solution: e = -feasibility/norm
- Parameters
-
row LP row set global SCIP settings stat problem statistics data
Definition at line 6831 of file lp.c.
References eps, SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetRelaxFeasibility(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().
Referenced by SCIPsepastoreRemoveInefficaciousCuts().
◆ SCIProwGetNLPEfficacy()
returns row's efficacy with respect to the NLP solution: e = -feasibility/norm
- Parameters
-
row LP row set global SCIP settings stat problem statistics data
Definition at line 6871 of file lp.c.
References eps, SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNLPFeasibility(), SCIProwGetNorm(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().
Referenced by SCIPsepastoreRemoveInefficaciousCuts().
◆ SCIProwGetDiscreteScalarProduct()
returns the discrete scalar product of the coefficient vectors of the two given rows
- Parameters
-
row1 first LP row row2 second LP row
Definition at line 7272 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::index, SCIP_Row::len, SCIP_Row::lpcolssorted, SCIP_Col::lppos, MAX, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nunlinked, SCIP_Bool, SCIProwSort(), SCIPswapPointers(), and TRUE.
Referenced by SCIProwGetParallelism().
◆ SCIProwGetObjParallelism()
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
- Parameters
-
row LP row set global SCIP settings lp current LP data
Definition at line 7707 of file lp.c.
References checkRowObjprod, checkRowSqrnorm, MAX, MIN, NULL, SCIP_Row::objprod, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, REALABS, SCIP_Real, SCIPlpRecalculateObjSqrNorm(), SCIPsetIsPositive(), SCIPsetIsSumGE(), SCIPsetIsSumLE(), SCIP_Row::sqrnorm, and SQRT.
Referenced by SCIPselectCuts().
◆ SCIProwCatchEvent()
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
- Parameters
-
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 7740 of file lp.c.
References SCIP_Row::eventfilter, SCIP_Row::name, NULL, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_ROWCHANGED, SCIP_OKAY, SCIPeventfilterAdd(), and SCIPsetDebugMsg.
Referenced by SCIPcatchRowEvent().
◆ SCIProwDropEvent()
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
- Parameters
-
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 7764 of file lp.c.
References SCIP_Row::eventfilter, SCIP_Row::name, NULL, SCIP_CALL, SCIP_OKAY, SCIPeventfilterDel(), and SCIPsetDebugMsg.
Referenced by SCIPdropRowEvent().
◆ SCIProwMarkNotRemovableLocal()
marks a row to be not removable from the LP in the current node because it became obsolete
- Parameters
-
row LP row stat problem statistics
Definition at line 7785 of file lp.c.
References SCIP_Stat::nnodes, NULL, and SCIP_Row::obsoletenode.
Referenced by SCIPmarkRowNotRemovableLocal().
◆ markColDeleted()
|
static |
resets column data to represent a column not in the LP solver
- Parameters
-
col column to be marked deleted
Definition at line 7804 of file lp.c.
References SCIP_Col::basisstatus, FALSE, SCIP_Col::farkascoef, SCIP_Col::lpipos, NULL, SCIP_Col::primsol, SCIP_Col::redcost, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_BASESTAT_ZERO, SCIP_INVALID, SCIP_Col::validfarkaslp, and SCIP_Col::validredcostlp.
Referenced by lpDelColset(), and lpFlushDelCols().
◆ lpFlushDelCols()
|
static |
applies all cached column removals to the LP solver
- Parameters
-
lp current LP data
Definition at line 7826 of file lp.c.
References SCIP_Col::coefchanged, SCIP_Lp::cols, SCIP_Lp::diving, FALSE, SCIP_Lp::flushdeletedcols, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, markColDeleted(), SCIP_Lp::ncols, SCIP_Lp::nlpicols, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPdebugMessage, SCIPlpiDelCols(), SCIP_Lp::solved, TRUE, and SCIP_Lp::updateintegrality.
Referenced by SCIPlpFlush().
◆ computeLPBounds()
|
static |
computes for the given column the lower and upper bound that should be flushed into the LP depending on lazy bounds and diving mode; in diving mode, lazy bounds are ignored, i.e., the bounds are explicitly added to the LP in any case
- Parameters
-
lp current LP data set global SCIP settings col column to compute bounds for lpiinf infinity value if the LP solver lb pointer to store the new lower bound ub pointer to store the new upper bound
Definition at line 7877 of file lp.c.
References SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Col::lb, NULL, SCIPlpDiving(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLE(), and SCIP_Col::ub.
Referenced by lpFlushAddCols(), and lpFlushChgCols().
◆ lpFlushAddCols()
|
static |
applies all cached column additions to the LP solver
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings eventqueue event queue
Definition at line 7912 of file lp.c.
References SCIP_Col::coefchanged, colLink(), SCIP_Lp::cols, computeLPBounds(), debugColPrint, SCIP_Lp::diving, SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, ensureLpicolsSize(), FALSE, SCIP_Col::farkascoef, SCIP_Lp::flushaddedcols, SCIP_Col::flushedlb, SCIP_Col::flushedobj, SCIP_Col::flushedub, SCIP_Col::lbchanged, SCIP_Col::len, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Lp::lpobjval, SCIP_Col::lppos, SCIP_Lp::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Col::nlprows, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_Col::primsol, SCIP_Col::redcost, SCIP_Col::rows, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPlpiAddCols(), SCIPlpiInfinity(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIP_Lp::solved, TRUE, SCIP_Col::ubchanged, SCIP_Lp::updateintegrality, SCIP_Col::validfarkaslp, SCIP_Col::validredcostlp, SCIP_Col::vals, and SCIP_Col::var.
Referenced by SCIPlpFlush().
◆ markRowDeleted()
|
static |
resets row data to represent a row not in the LP solver
- Parameters
-
row row to be marked deleted
Definition at line 8070 of file lp.c.
References SCIP_Row::activity, SCIP_Row::basisstatus, SCIP_Row::dualfarkas, SCIP_Row::dualsol, SCIP_Row::lpipos, NULL, SCIP_BASESTAT_BASIC, SCIP_INVALID, and SCIP_Row::validactivitylp.
Referenced by lpDelRowset(), and lpFlushDelRows().
◆ lpFlushDelRows()
|
static |
applies all cached row removals to the LP solver
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings
Definition at line 8086 of file lp.c.
References SCIP_Row::coefchanged, SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushdeletedrows, SCIP_Lp::lpi, SCIP_Lp::lpifirstchgrow, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, markRowDeleted(), SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Lp::rows, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiDelRows(), SCIProwRelease(), SCIPsetDebugMsg, SCIP_Lp::solved, and TRUE.
Referenced by SCIPlpFlush().
◆ lpFlushAddRows()
|
static |
applies all cached row additions and removals to the LP solver
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings eventqueue event queue
Definition at line 8135 of file lp.c.
References SCIP_Row::activity, SCIP_Row::coefchanged, SCIP_Row::cols, SCIP_Row::constant, debugRowPrint, SCIP_Row::dualfarkas, SCIP_Row::dualsol, ensureLpirowsSize(), FALSE, SCIP_Lp::flushaddedrows, SCIP_Row::flushedlhs, SCIP_Row::flushedrhs, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::lhschanged, SCIP_Lp::lpi, SCIP_Lp::lpifirstchgrow, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Row::lppos, SCIP_Lp::lpsolstat, SCIP_Row::name, SCIP_Row::nlpcols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, r, SCIP_Row::rhs, SCIP_Row::rhschanged, rowLink(), SCIP_Lp::rows, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIPlpiAddRows(), SCIPlpiInfinity(), SCIProwCapture(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetDebugMsgPrint, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPvarGetName(), SCIP_Lp::solved, TRUE, SCIP_Row::validactivitylp, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPlpFlush().
◆ lpFlushChgCols()
|
static |
applies all cached column bound and objective changes to the LP
- Parameters
-
lp current LP data set global SCIP settings
Definition at line 8283 of file lp.c.
References SCIP_Lp::chgcols, computeLPBounds(), SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Col::flushedlb, SCIP_Col::flushedobj, SCIP_Col::flushedub, SCIP_Col::lbchanged, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_Lp::nchgcols, SCIP_Lp::ncols, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPlpiChgBounds(), SCIPlpiChgObj(), SCIPlpiGetBounds(), SCIPlpiGetObj(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPsetIsInfinity(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Lp::solved, SCIP_Col::ubchanged, and SCIP_Col::var.
Referenced by SCIPlpFlush().
◆ lpFlushChgRows()
|
static |
applies all cached row side changes to the LP
- Parameters
-
lp current LP data set global SCIP settings
Definition at line 8431 of file lp.c.
References SCIP_Lp::chgrows, SCIP_Row::constant, FALSE, SCIP_Row::flushedlhs, SCIP_Row::flushedrhs, SCIP_Row::lhs, SCIP_Row::lhschanged, SCIP_Lp::lpi, SCIP_Row::lpipos, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_Lp::nchgrows, SCIP_Lp::nrows, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_Row::rhs, SCIP_Row::rhschanged, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIPlpiChgSides(), SCIPlpiGetSides(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPsetIsSumEQ(), and SCIP_Lp::solved.
Referenced by SCIPlpFlush().
◆ lpCopyIntegrality()
|
static |
copy integrality information to the LP
- Parameters
-
lp current LP data set global SCIP settings
Definition at line 8530 of file lp.c.
References SCIP_Lp::cols, FALSE, SCIP_Lp::lpi, SCIP_Lp::ncols, NULL, SCIP_CALL, SCIP_OKAY, SCIPcolGetVar(), SCIPlpiSetIntegralityInformation(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPvarIsBinary(), SCIPvarIsIntegral(), and SCIP_Lp::updateintegrality.
Referenced by lpSolveStable().
◆ SCIPlpFlush()
SCIP_RETCODE SCIPlpFlush | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue | ||
) |
applies all cached changes to the LP solver
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings eventqueue event queue
Definition at line 8578 of file lp.c.
References checkLinks, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushaddedcols, SCIP_Lp::flushaddedrows, SCIP_Lp::flushdeletedcols, SCIP_Lp::flushdeletedrows, SCIP_Lp::flushed, lpFlushAddCols(), lpFlushAddRows(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpFlushDelRows(), SCIP_Lp::lpi, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Lp::lpiobjlim, SCIP_Lp::lpsolstat, SCIP_Lp::nchgcols, SCIP_Lp::nchgrows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiGetNCols(), SCIPlpiGetNRows(), SCIPsetDebugMsg, SCIP_Lp::solved, and TRUE.
Referenced by focusnodeCleanupVars(), lpFlushAndSolve(), priceAndCutLoop(), SCIPflushLP(), SCIPlpEndDive(), SCIPlpReset(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPtreeEndProbing(), SCIPwriteLP(), and SCIPwriteMIP().
◆ SCIPlpMarkFlushed()
SCIP_RETCODE SCIPlpMarkFlushed | ( | SCIP_LP * | lp, |
SCIP_SET * | set | ||
) |
marks the LP to be flushed, even if the LP thinks it is not flushed
- Parameters
-
lp current LP data set global SCIP settings
Definition at line 8639 of file lp.c.
References 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, 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.
◆ colUpdateAddLP()
updates link data after addition of column
- Parameters
-
col LP column set global SCIP settings
Definition at line 8767 of file lp.c.
References SCIP_Row::cols, FALSE, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::nlpcols, NULL, rowAddNorms(), SCIP_Col::rows, rowSwapCoefs(), and SCIP_Row::vals.
Referenced by SCIPlpAddCol().
◆ rowUpdateAddLP()
|
static |
updates link data after addition of row
- Parameters
-
row LP row
Definition at line 8807 of file lp.c.
References SCIP_Row::cols, colSwapCoefs(), FALSE, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Col::nlprows, NULL, and SCIP_Col::rows.
Referenced by SCIPlpAddRow().
◆ colUpdateDelLP()
updates link data after removal of column
- Parameters
-
col LP column set global SCIP settings
Definition at line 8842 of file lp.c.
References SCIP_Row::cols, FALSE, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Col::lppos, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, rowDelNorms(), SCIP_Col::rows, rowSwapCoefs(), TRUE, and SCIP_Row::vals.
Referenced by lpDelColset(), and SCIPlpShrinkCols().
◆ rowUpdateDelLP()
|
static |
updates link data after removal of row
- Parameters
-
row LP row
Definition at line 8881 of file lp.c.
References SCIP_Row::cols, colSwapCoefs(), FALSE, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, SCIP_Col::nonlprowssorted, NULL, and SCIP_Col::rows.
Referenced by lpDelRowset(), and SCIPlpShrinkRows().
◆ allocDiveChgSideArrays()
|
static |
- Parameters
-
lp LP data object initsize initial size of the arrays
Definition at line 8915 of file lp.c.
References BMSallocMemoryArray, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, SCIP_Lp::ndivechgsides, NULL, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPlpCreate().
◆ reallocDiveChgSideArrays()
|
static |
- Parameters
-
lp LP data object minsize minimal number of elements growfact growing factor
Definition at line 8937 of file lp.c.
References BMSreallocMemoryArray, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, MAX, SCIP_Lp::ndivechgsides, NULL, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPlpRecordOldRowSideDive().
◆ freeDiveChgSideArrays()
|
static |
- Parameters
-
lp LP data object
Definition at line 8963 of file lp.c.
References BMSfreeMemoryArrayNull, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, SCIP_Lp::ndivechgsides, and NULL.
Referenced by SCIPlpFree().
◆ SCIPlpCreate()
SCIP_RETCODE SCIPlpCreate | ( | SCIP_LP ** | lp, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
SCIP_STAT * | stat, | ||
const char * | name | ||
) |
creates empty LP data object
- Parameters
-
lp pointer to LP data object set global SCIP settings messagehdlr message handler stat problem statistics name problem name
Definition at line 8983 of file lp.c.
References allocDiveChgSideArrays(), 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_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(), SCIPmessagePrintVerbInfo(), SCIPsetBarrierconvtol(), SCIPsetDualfeastol(), SCIPsetInfinity(), SCIPsetLpfeastol(), and TRUE.
Referenced by SCIPtransformProb().
◆ SCIPlpFree()
SCIP_RETCODE SCIPlpFree | ( | SCIP_LP ** | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter | ||
) |
frees LP data object
- Parameters
-
lp pointer to LP data object blkmem block memory set global SCIP settings eventqueue event queue eventfilter global event filter
Definition at line 9264 of file lp.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, BMSfreeMemoryNull, freeDiveChgSideArrays(), NULL, SCIP_CALL, SCIP_OKAY, SCIPlpClear(), SCIPlpiFree(), and SCIProwRelease().
Referenced by freeTransform().
◆ SCIPlpReset()
SCIP_RETCODE SCIPlpReset | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
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
- Parameters
-
lp LP data blkmem block memory set global SCIP settings stat problem statistics eventqueue event queue eventfilter global event filter
Definition at line 9309 of file lp.c.
References 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::validfarkaslp, SCIP_Lp::validsoldirlp, SCIP_Lp::validsoldirsol, and SCIP_Lp::validsollp.
Referenced by freeReoptSolve(), freeSolve(), and initSolve().
◆ SCIPlpAddCol()
SCIP_RETCODE SCIPlpAddCol | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_COL * | col, | ||
int | depth | ||
) |
adds a column to the LP
- Parameters
-
lp LP data set global SCIP settings col LP column depth depth in the tree where the column addition is performed
Definition at line 9342 of file lp.c.
References SCIP_Col::age, checkLinks, SCIP_Lp::cols, colUpdateAddLP(), SCIP_Lp::diving, ensureColsSize(), ensureLazycolsSize(), FALSE, SCIP_Lp::flushed, SCIP_Col::integral, SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Col::lb, SCIP_Col::len, SCIP_Col::lpdepth, SCIP_Col::lppos, lpUpdateObjNorms(), SCIP_Row::name, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Lp::nremovablecols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Col::removable, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPsetDebugMsgPrint, SCIPsetIsInfinity(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Col::ub, SCIP_Col::unchangedobj, SCIP_Col::vals, and SCIP_Col::var.
Referenced by forkAddLP(), pseudoforkAddLP(), SCIPpricestoreApplyVars(), and subrootConstructLP().
◆ SCIPlpAddRow()
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
- Parameters
-
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 9401 of file lp.c.
References SCIP_Row::age, checkLinks, SCIP_Row::cols, SCIP_Row::constant, ensureRowsSize(), SCIP_EventFilter::eventmask, FALSE, SCIP_Lp::flushed, 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().
◆ checkLazyColArray()
method checks if all columns in the lazycols array have at least one lazy bound and also have a counter part in the cols array; furthermore, it is checked if columns in the cols array which have a lazy bound have a counter part in the lazycols array
- Parameters
-
lp LP data set global SCIP settings
Definition at line 9472 of file lp.c.
References SCIP_Lp::cols, FALSE, SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Lp::ncols, SCIP_Lp::nlazycols, NULL, SCIP_Bool, SCIPsetIsInfinity(), and TRUE.
Referenced by lpDelColset(), and SCIPlpShrinkCols().
◆ SCIPlpShrinkCols()
SCIP_RETCODE SCIPlpShrinkCols | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
int | newncols | ||
) |
removes all columns after the given number of cols from the LP
- Parameters
-
lp LP data set global SCIP settings newncols new number of columns in the LP
Definition at line 9525 of file lp.c.
References 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().
◆ SCIPlpShrinkRows()
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
- Parameters
-
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 9597 of file lp.c.
References 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().
◆ SCIPlpClear()
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
- Parameters
-
lp LP data blkmem block memory set global SCIP settings eventqueue event queue eventfilter global event filter
Definition at line 9663 of file lp.c.
References SCIP_Lp::diving, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpShrinkCols(), SCIPlpShrinkRows(), and SCIPsetDebugMsg.
Referenced by SCIPlpFree(), SCIPlpReset(), and SCIPtreeLoadLP().
◆ SCIPlpMarkSize()
void SCIPlpMarkSize | ( | SCIP_LP * | lp | ) |
remembers number of columns and rows to track the newly added ones
- Parameters
-
lp current LP data
Definition at line 9682 of file lp.c.
References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, SCIP_Lp::ncols, SCIP_Lp::nrows, and NULL.
Referenced by SCIPnodeFocus(), SCIPtreeLoadLP(), and treeCreateProbingNode().
◆ SCIPlpSetSizeMark()
void SCIPlpSetSizeMark | ( | SCIP_LP * | lp, |
int | nrows, | ||
int | ncols | ||
) |
sets the remembered number of columns and rows to the given values
- Parameters
-
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 9694 of file lp.c.
References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, and NULL.
Referenced by treeBacktrackProbing().
◆ SCIPlpGetBasisInd()
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
- Parameters
-
lp LP data basisind pointer to store basis indices ready to keep number of rows entries
Definition at line 9708 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBasisInd(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBasisInd().
◆ SCIPlpGetBase()
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
- Parameters
-
lp LP data cstat array to store column basis status, or NULL rstat array to store row basis status, or NULL
Definition at line 9725 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBase(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
◆ SCIPlpGetBInvRow()
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
- Parameters
-
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 9742 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvRow(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBInvRow().
◆ SCIPlpGetBInvCol()
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
- Parameters
-
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 9764 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvCol(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBInvCol().
◆ SCIPlpGetBInvARow()
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)
- Parameters
-
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 9790 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvARow(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBInvARow().
◆ SCIPlpGetBInvACol()
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
- Parameters
-
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 9815 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvACol(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPgetLPBInvACol().
◆ SCIPlpSumRows()
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
- Parameters
-
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 9839 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::constant, FALSE, SCIP_Row::len, SCIP_Row::lhs, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, r, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, 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().
◆ SCIPlpGetState()
SCIP_RETCODE SCIPlpGetState | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPISTATE ** | lpistate | ||
) |
stores LP state (like basis information) into LP state object
- Parameters
-
lp LP data blkmem block memory lpistate pointer to LP state information (like basis information)
Definition at line 9925 of file lp.c.
References 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(), forkFree(), probingnodeUpdate(), and SCIPtreeStartProbing().
◆ SCIPlpSetState()
SCIP_RETCODE SCIPlpSetState | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
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
- Parameters
-
lp LP data blkmem block memory set global SCIP settings 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 9949 of file lp.c.
References SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_OKAY, SCIPlpFlush(), SCIPlpiHasStateBasis(), SCIPlpiSetState(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPlpEndDive(), SCIPtreeEndProbing(), SCIPtreeLoadLPState(), and SCIPtreeLoadProbingLPState().
◆ SCIPlpFreeState()
SCIP_RETCODE SCIPlpFreeState | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPISTATE ** | lpistate | ||
) |
frees LP state information
- Parameters
-
lp LP data blkmem block memory lpistate pointer to LP state information (like basis information)
Definition at line 9991 of file lp.c.
References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiFreeState().
Referenced by forkReleaseLPIState(), probingnodeFree(), probingnodeUpdate(), SCIPlpEndDive(), SCIPtreeEndProbing(), SCIPtreeSetProbingLPState(), and subrootReleaseLPIState().
◆ SCIPlpGetNorms()
SCIP_RETCODE SCIPlpGetNorms | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPINORMS ** | lpinorms | ||
) |
stores pricing norms into LP norms object
- Parameters
-
lp LP data blkmem block memory lpinorms pointer to LP pricing norms information
Definition at line 10008 of file lp.c.
References 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().
◆ SCIPlpSetNorms()
SCIP_RETCODE SCIPlpSetNorms | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPINORMS * | lpinorms | ||
) |
loads pricing norms from LP norms object into solver
- Parameters
-
lp LP data blkmem block memory lpinorms LP pricing norms information
Definition at line 10032 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiSetNorms().
Referenced by SCIPtreeEndProbing(), and SCIPtreeLoadProbingLPState().
◆ SCIPlpFreeNorms()
SCIP_RETCODE SCIPlpFreeNorms | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_LPINORMS ** | lpinorms | ||
) |
frees pricing norms information
- Parameters
-
lp LP data blkmem block memory lpinorms pointer to LP pricing norms information
Definition at line 10052 of file lp.c.
References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiFreeNorms().
Referenced by probingnodeFree(), probingnodeUpdate(), SCIPtreeEndProbing(), and SCIPtreeSetProbingLPState().
◆ SCIPlpGetCutoffbound()
return the current cutoff bound of the lp
- Parameters
-
lp current LP data
Definition at line 10066 of file lp.c.
References SCIP_Lp::cutoffbound, and NULL.
Referenced by SCIPreoptCheckCutoff().
◆ SCIPlpSetCutoffbound()
SCIP_RETCODE SCIPlpSetCutoffbound | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_Real | cutoffbound | ||
) |
sets the upper objective limit of the LP solver
- Parameters
-
lp current LP data set global SCIP settings prob problem data cutoffbound new upper objective limit
Definition at line 10076 of file lp.c.
References SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, lpCutoffDisabled, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, NULL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpDivingObjChanged(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPsetDebugMsg, SCIPsetIsInfinity(), and SCIP_Lp::solved.
Referenced by primalSetCutoffbound(), SCIPchgCutoffboundDive(), SCIPchgVarObjDive(), SCIPchgVarObjProbing(), SCIPendDive(), and treeBacktrackProbing().
◆ lpalgoName()
|
static |
returns the name of the given LP algorithm
- Parameters
-
lpalgo LP algorithm
Definition at line 10122 of file lp.c.
References SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIPABORT, and SCIPerrorMessage.
Referenced by lpAlgorithm(), lpSolve(), and lpSolveStable().
◆ lpPrimalSimplex()
|
static |
calls LPI to perform primal simplex, measures time and counts iterations, gets basis feasibility status
- Parameters
-
lp current LP data set global SCIP settings stat problem statistics resolve is this a resolving call (starting with feasible basis)? keepsol should the old LP solution be kept if no iterations were performed? instable is this a resolving call to avoid instable LPs? lperror pointer to store whether an unresolved LP error occurred
Definition at line 10145 of file lp.c.
References SCIP_Lp::diving, SCIP_Stat::divinglptime, FALSE, SCIP_Lp::flushed, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpidualfeastol, SCIP_Lp::lpifastmip, SCIP_Lp::lpifeastol, SCIP_Lp::lpifromscratch, SCIP_Lp::lpiobjlim, SCIP_Lp::lpipresolving, SCIP_Lp::lpiscaling, SCIP_Lp::ncols, SCIP_Stat::ndivinglps, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Stat::nprimallps, SCIP_Lp::nrows, NULL, SCIP_Stat::primallptime, SCIP_Lp::probing, SCIP_Stat::resolveinstablelptime, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPlpGetIterations(), SCIPlpiSolvePrimal(), SCIPlpWrite(), SCIPsetDebugMsg, SCIPsnprintf(), SCIPstatAdd, SCIPstatIncrement, SCIPstatUpdate, SCIP_Lp::solisbasic, SCIP_Lp::strongbranchprobing, SCIP_Stat::strongbranchtime, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp.
Referenced by lpAlgorithm().
◆ lpDualSimplex()
|
static |
calls LPI to perform dual simplex, measures time and counts iterations
- Parameters
-
lp current LP data set global SCIP settings stat problem statistics resolve is this a resolving call (starting with feasible basis)? keepsol should the old LP solution be kept if no iterations were performed? instable is this a resolving call to avoid instable LPs? lperror pointer to store whether an unresolved LP error occurred
Definition at line 10303 of file lp.c.
References SCIP_Lp::diving, SCIP_Stat::divinglptime, SCIP_Stat::duallptime, FALSE, SCIP_Lp::flushed, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpidualfeastol, SCIP_Lp::lpifastmip, SCIP_Lp::lpifeastol, SCIP_Lp::lpifromscratch, SCIP_Lp::lpiobjlim, SCIP_Lp::lpipresolving, SCIP_Lp::lpiscaling, SCIP_Lp::ncols, SCIP_Stat::ndivinglps, SCIP_Stat::nduallps, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Lp::probing, SCIP_Stat::resolveinstablelptime, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPlpGetIterations(), SCIPlpiSolveDual(), SCIPlpWrite(), SCIPsetDebugMsg, SCIPsnprintf(), SCIPstatAdd, SCIPstatIncrement, SCIPstatUpdate, SCIP_Lp::solisbasic, SCIP_Lp::strongbranchprobing, SCIP_Stat::strongbranchtime, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp.
Referenced by lpAlgorithm().
◆ lpLexDualSimplex()
|
static |
calls LPI to perform lexicographic dual simplex to find a lexicographically minimal optimal solution, measures time and counts iterations
We follow the approach of the following paper to find a lexicographically minimal optimal solution:
Zanette, Fischetti, Balas
Can pure cutting plane algorithms work?
IPCO 2008, Bertinoro, Italy.
We do, however, not aim for the exact lexicographically minimal optimal solutions, but perform a heuristic, i.e., we limit the number of components which are minimized.
More precisely, we first solve the problem with the dual simplex algorithm. Then we fix those nonbasic variables to their current value (i.e., one of the bounds except maybe for free variables) that have nonzero reduced cost. This fixes the objective function value, because only pivots that will not change the objective are allowed afterwards.
Then the not yet fixed variables are considered in turn. If they are at their lower bounds and nonbasic, they are fixed to this bound, since their value cannot be decreased further. Once a candidate is found, we set the objective to minimize this variable. We run the primal simplex algorithm (since the objective is changed the solution is not dual feasible anymore; if variables out of the basis have been fixed to their lower bound, the basis is also not primal feasible anymore). After the optimization, we again fix nonbasic variables that have nonzero reduced cost. We then choose the next variable and iterate.
We stop the process once we do not find candidates or have performed a maximum number of iterations.
- Parameters
-
lp current LP data set global SCIP settings stat problem statistics resolve is this a resolving call (starting with feasible basis)? keepsol should the old LP solution be kept if no iterations were performed? lperror pointer to store whether an unresolved LP error occurred
Definition at line 10494 of file lp.c.
References SCIP_Lp::diving, SCIP_Stat::divinglptime, SCIP_Stat::duallptime, FALSE, SCIP_Lp::flushed, SCIP_Lp::lastlpalgo, SCIP_Stat::lexduallptime, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpifromscratch, SCIP_Lp::ncols, SCIP_Stat::ndivinglps, SCIP_Stat::nduallps, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Lp::probing, r, SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_Bool, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPlpGetIterations(), SCIPlpiChgBounds(), SCIPlpiChgObj(), SCIPlpiChgSides(), SCIPlpiGetBase(), SCIPlpiGetBounds(), SCIPlpiGetObj(), SCIPlpiGetSides(), SCIPlpiGetSol(), SCIPlpiIsOptimal(), SCIPlpiSolveDual(), SCIPlpiSolvePrimal(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasZero(), SCIPsetIsFeasEQ(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPsetIsInfinity(), SCIPsetIsIntegral(), SCIPstatAdd, SCIPstatIncrement, SCIPstatUpdate, SCIP_Lp::solisbasic, SCIP_Lp::strongbranchprobing, SCIP_Stat::strongbranchtime, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp.
Referenced by lpAlgorithm().
◆ lpBarrier()
|
static |
calls LPI to perform barrier, measures time and counts iterations, gets basis feasibility status
- Parameters
-
lp current LP data set global SCIP settings stat problem statistics crossover should crossover be performed? keepsol should the old LP solution be kept if no iterations were performed? lperror pointer to store whether an unresolved LP error occurred
Definition at line 11092 of file lp.c.
References SCIP_Stat::barrierlptime, SCIP_Lp::diving, SCIP_Stat::divinglptime, SCIP_Stat::duallptime, FALSE, SCIP_Lp::flushed, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpibarrierconvtol, SCIP_Lp::lpidualfeastol, SCIP_Lp::lpifastmip, SCIP_Lp::lpifeastol, SCIP_Lp::lpifromscratch, SCIP_Lp::lpiobjlim, SCIP_Lp::lpipresolving, SCIP_Lp::lpiscaling, SCIP_Stat::nbarrierlps, SCIP_Lp::ncols, SCIP_Stat::ndivinglps, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Lp::probing, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPlpGetIterations(), SCIPlpiSolveBarrier(), SCIPlpWrite(), SCIPsetDebugMsg, SCIPsnprintf(), SCIPstatAdd, SCIPstatIncrement, SCIPstatUpdate, SCIP_Lp::solisbasic, SCIP_Lp::strongbranchprobing, SCIP_Stat::strongbranchtime, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp.
Referenced by lpAlgorithm().
◆ lpAlgorithm()
|
static |
solves the LP with the given algorithm
- Parameters
-
lp current LP data set global SCIP settings stat problem statistics lpalgo LP algorithm that should be applied resolve is this a resolving call (starting with feasible basis)? keepsol should the old LP solution be kept if no iterations were performed? instable is this a resolving call to avoid instable LPs? timelimit pointer to store whether the time limit was hit lperror pointer to store whether an unresolved LP error occurred
Definition at line 11229 of file lp.c.
References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Lp::installing, lpalgoName(), lpBarrier(), lpDualSimplex(), SCIP_Lp::lpi, lpLexDualSimplex(), lpPrimalSimplex(), lpSetRealpar(), SCIP_Stat::maxdepth, NULL, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPPAR_LPTILIM, SCIP_OKAY, SCIP_Real, SCIPclockGetTime(), SCIPerrorMessage, SCIPlpiGetSolFeasibility(), SCIPlpiInfinity(), SCIPsetDebugMsg, SCIP_Stat::solvingtime, and TRUE.
Referenced by lpSolveStable().
◆ lpNumericalTroubleMessage()
|
static |
prints message about numerical trouble
If message has verblevel at most high and display/verblevel is not full, then the message is not printed if already MAXNUMTROUBLELPMSGS messages were printed before in the current run.
- Parameters
-
messagehdlr message handler set global SCIP settings stat problem statistics verblevel verbosity level of message formatstr message format string
Definition at line 11321 of file lp.c.
References MAXNUMTROUBLELPMSGS, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Stat::nnumtroublelpmsgs, NULL, SCIP_LONGINT_FORMAT, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIP_VERBLEVEL_NONE, SCIPmessagePrintInfo(), and SCIPmessageVFPrintInfo().
Referenced by lpSolveStable(), SCIPlpEndDive(), and SCIPlpSolveAndEval().
◆ lpSolveStable()
|
static |
solves the LP with the given LP algorithm, and tries to resolve numerical problems
- Parameters
-
lp current LP data set global SCIP settings messagehdlr message handler stat problem statistics prob problem data lpalgo LP algorithm that should be applied itlim maximal number of LP iterations to perform in first LP calls (before solving from scratch), or -1 for no limit harditlim maximal number of LP iterations to perform (hard limit for all LP calls), or -1 for no limit resolve is this a resolving call (starting with feasible basis)? fastmip which FASTMIP setting of LP solver should be used? tightprimfeastol should a tighter primal feasibility tolerance be used? tightdualfeastol should a tighter dual feasibility tolerance be used? fromscratch should the LP be solved from scratch without using current basis? keepsol should the old LP solution be kept if no iterations were performed? timelimit pointer to store whether the time limit was hit lperror pointer to store whether an unresolved LP error occurred
Definition at line 11376 of file lp.c.
References SCIP_Lp::cutoffbound, SCIP_Lp::diving, FALSE, FEASTOLTIGHTFAC, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, lpalgoName(), lpAlgorithm(), lpCopyIntegrality(), SCIP_Lp::lpi, SCIP_Lp::lpihaspolishing, lpNumericalTroubleMessage(), lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFastmip(), lpSetFeastol(), lpSetFromscratch(), lpSetIterationLimit(), lpSetLPInfo(), lpSetObjlim(), lpSetPresolving(), lpSetPricingChar(), lpSetRandomseed(), lpSetRefactorInterval(), lpSetRowrepswitch(), lpSetScaling(), lpSetSolutionPolishing(), lpSetThreads(), lpSetTiming(), SCIP_Stat::nnodes, NULL, SCIP_Lp::probing, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPerrorMessage, SCIPlpiIgnoreInstability(), SCIPlpiIsIterlimExc(), SCIPlpiIsStable(), SCIPsetBarrierconvtol(), SCIPsetDualfeastol(), SCIPsetInitializeRandomSeed(), SCIPsetIsInfinity(), SCIPsetLpfeastol(), SCIP_Lp::strongbranchprobing, TRUE, and SCIP_Lp::updateintegrality.
Referenced by lpSolve().
◆ adjustLPobjval()
|
static |
adjust the LP objective value if it is greater/less than +/- SCIPsetInfinity()
- Parameters
-
lp current LP data set global SCIP settings messagehdlr message handler
Definition at line 11807 of file lp.c.
References SCIP_Lp::adjustlpval, SCIP_Lp::lpobjval, NULL, SCIPmessagePrintWarning(), SCIPsetInfinity(), SCIPsetIsInfinity(), and TRUE.
Referenced by lpSolve().
◆ lpSolve()
|
static |
solves the LP with the given algorithm and evaluates return status
- Parameters
-
lp current LP data set global SCIP settings messagehdlr message handler stat problem statistics prob problem data lpalgo LP algorithm that should be applied resolveitlim maximal number of LP iterations to perform in resolving calls, or -1 for no limit harditlim maximal number of LP iterations to perform (hard limit for all LP calls), or -1 for no limit needprimalray if the LP is unbounded, do we need a primal ray? needdualray if the LP is infeasible, do we need a dual ray? resolve is this a resolving call (starting with feasible basis)? fastmip which FASTMIP setting of LP solver should be used? tightprimfeastol should a tighter primal feasibility tolerance be used? tightdualfeastol should a tighter dual feasibility tolerance be used? fromscratch should the LP be solved from scratch without using current basis? keepsol should the old LP solution be kept if no iterations were performed? lperror pointer to store whether an unresolved LP error occurred
Definition at line 11838 of file lp.c.
References adjustLPobjval(), checkLinks, SCIP_Lp::cutoffbound, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::lastlpalgo, lpalgoName(), lpCutoffDisabled, SCIP_Lp::lpi, SCIP_Lp::lpiobjlim, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, lpSolveStable(), SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_Lp::primalfeasible, REALABS, SCIP_Bool, SCIP_CALL, 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_VERBLEVEL_FULL, SCIPerrorMessage, SCIPlpiExistsPrimalRay(), SCIPlpiGetInternalStatus(), SCIPlpiGetObjval(), SCIPlpiHasDualRay(), SCIPlpiInfinity(), SCIPlpiIsDualFeasible(), SCIPlpiIsIterlimExc(), SCIPlpiIsObjlimExc(), SCIPlpiIsOptimal(), SCIPlpiIsPrimalFeasible(), SCIPlpiIsPrimalInfeasible(), SCIPlpiIsPrimalUnbounded(), SCIPlpiIsTimelimExc(), SCIPmessagePrintVerbInfo(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIP_Lp::solved, and TRUE.
Referenced by lpFlushAndSolve(), and SCIPlpSolveAndEval().
◆ lpFlushAndSolve()
|
static |
flushes the LP and solves it with the primal or dual simplex algorithm, depending on the current basis feasibility
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings messagehdlr message handler stat problem statistics prob problem data eventqueue event queue resolveitlim maximal number of LP iterations to perform in resolving calls, or -1 for no limit harditlim maximal number of LP iterations to perform (hard limit for all LP calls), or -1 for no limit needprimalray if the LP is unbounded, do we need a primal ray? needdualray if the LP is infeasible, do we need a dual ray? fastmip which FASTMIP setting of LP solver should be used? tightprimfeastol should a tighter primal feasibility tolerance be used? tightdualfeastol should a tighter dual feasibility tolerance be used? fromscratch should the LP be solved from scratch without using current basis? keepsol should the old LP solution be kept if no iterations were performed? lperror pointer to store whether an unresolved LP error occurred
Definition at line 12017 of file lp.c.
References SCIP_Lp::dualfeasible, SCIP_Lp::flushaddedcols, SCIP_Lp::flushdeletedcols, lpSolve(), NULL, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_OKAY, SCIP_PARAMETERWRONGVAL, SCIPerrorMessage, SCIPlpFlush(), SCIPsetDebugMsg, SCIP_Lp::solisbasic, and SCIP_Lp::solved.
Referenced by SCIPlpSolveAndEval().
◆ checkLazyBounds()
checks if the lazy bounds are valid
- Parameters
-
lp LP data set global SCIP settings
Definition at line 12106 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Lp::nlazycols, SCIP_Col::primsol, SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), and SCIPsetIsInfinity().
Referenced by SCIPlpSolveAndEval().
◆ updateLazyBounds()
|
static |
marks all lazy columns to be changed; this is needed for reloading/removing bounds of these columns before and after diving
- Parameters
-
lp LP data set global SCIP settings
Definition at line 12133 of file lp.c.
References SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Col::flushedlb, SCIP_Col::flushedub, insertColChgcols(), SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Col::lb, SCIP_Col::lbchanged, SCIP_Lp::lpi, SCIP_Lp::nlazycols, SCIP_CALL, SCIP_OKAY, SCIPlpiInfinity(), SCIPsetDebugMsg, SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), TRUE, SCIP_Col::ub, and SCIP_Col::ubchanged.
Referenced by SCIPlpEndDive(), and SCIPlpSolveAndEval().
◆ lpGetResolveItlim()
returns the iteration limit for an LP resolving call
- Parameters
-
set global SCIP settings stat dynamic problem statistics itlim hard iteration limit
Definition at line 12195 of file lp.c.
References MAX, MIN, SCIP_Stat::nlpiterations, SCIP_Stat::nlps, SCIP_Stat::nrootlpiterations, SCIP_Stat::nrootlps, and SCIP_Real.
Referenced by SCIPlpSolveAndEval().
◆ SCIPlpSolveAndEval()
SCIP_RETCODE SCIPlpSolveAndEval | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
SCIP_PROB * | prob, | ||
SCIP_Longint | itlim, | ||
SCIP_Bool | limitresolveiters, | ||
SCIP_Bool | aging, | ||
SCIP_Bool | keepsol, | ||
SCIP_Bool * | lperror | ||
) |
solves the LP with simplex algorithm, and copy the solution into the column's data
- Parameters
-
lp LP data set global SCIP settings messagehdlr message handler blkmem block memory buffers stat problem statistics eventqueue event queue eventfilter global event filter prob problem data itlim maximal number of LP iterations to perform, or -1 for no limit limitresolveiters should LP iterations for resolving calls be limited? (limit is computed within the method w.r.t. the average LP iterations) aging should aging and removal of obsolete cols/rows be applied? keepsol should the old LP solution be kept if no iterations were performed? lperror pointer to store whether an unresolved LP error occurred
Definition at line 12215 of file lp.c.
References checkLazyBounds(), SCIP_Lp::cutoffbound, SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushaddedcols, SCIP_Lp::flushdeletedcols, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::lastlpalgo, lpCutoffDisabled, lpFlushAndSolve(), lpGetResolveItlim(), SCIP_Lp::lpi, SCIP_Lp::lpifromscratch, SCIP_Lp::lpihasfastmip, SCIP_Lp::lpiobjlim, lpNumericalTroubleMessage(), SCIP_Lp::lpobjval, lpSetFromscratch(), SCIP_Lp::lpsolstat, lpSolve(), MIN, SCIP_Stat::nclockskipsleft, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, 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_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPerrorMessage, SCIPlpFlush(), SCIPlpGetDualfarkas(), SCIPlpGetLPI(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpiGetObjval(), SCIPlpiHasDualRay(), SCIPlpiInfinity(), SCIPlpiIsObjlimExc(), SCIPlpRemoveNewObsoletes(), SCIPlpUpdateAges(), SCIPmessagePrintVerbInfo(), SCIPmessagePrintWarning(), SCIPprobAllColsInLP(), SCIPsetDebugMsg, SCIPsetGetCharParam(), SCIPsetInfinity(), SCIPsetIsFeasNegative(), SCIPsetIsGE(), SCIPsetIsLT(), SCIPsetSetCharParam(), SCIPsolveIsStopped(), SCIP_Lp::solved, SCIP_Stat::status, TRUE, and updateLazyBounds().
Referenced by focusnodeToFork(), priceAndCutLoop(), SCIPlpEndDive(), SCIPpriceLoop(), SCIPsolveDiveLP(), SCIPtreeEndProbing(), separationRoundResolveLP(), solveNodeInitialLP(), solveNodeLP(), and solveProbingLP().
◆ SCIPlpGetSolstat()
SCIP_LPSOLSTAT SCIPlpGetSolstat | ( | SCIP_LP * | lp | ) |
gets solution status of current LP
- Parameters
-
lp current LP data
Definition at line 12895 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpsolstat, NULL, SCIP_LPSOLSTAT_NOTSOLVED, and SCIP_Lp::solved.
Referenced by branchcandCalcLPCands(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), enforceConstraints(), focusnodeToFork(), forkCreate(), forkFree(), nodeToLeaf(), priceAndCutLoop(), propAndSolve(), SCIPconflictAnalyzeLP(), SCIPcutpoolAddNewRow(), SCIPgetLPBranchCands(), SCIPgetLPSolstat(), SCIPgetNLPBranchCands(), SCIPgetNPrioLPBranchCands(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpEndDive(), SCIPlpGetSol(), SCIPlpRemoveAllObsoletes(), SCIPlpRemoveNewObsoletes(), SCIPlpSetCutoffbound(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodepqBound(), SCIPpriceLoop(), SCIPpricerExec(), SCIPpricestoreAddProbVars(), SCIPprobUpdateBestRootSol(), SCIPreoptCheckCutoff(), SCIPsolveCIP(), SCIPsolveDiveLP(), SCIPtreeCutoff(), SCIPtreeEndProbing(), SCIPtreeStartProbing(), separationRoundLP(), solveNode(), solveNodeInitialLP(), solveNodeLP(), solveProbingLP(), updateEstimate(), updatePrimalRay(), and updatePseudocost().
◆ SCIPlpGetObjval()
gets objective value of current LP
- Note
- This method returns the objective value of the current LP solution, which might be primal or dual infeasible if a limit was hit during solving. It must not be used as a dual bound if the LP solution status is SCIP_LPSOLSTAT_ITERLIMIT or SCIP_LPSOLSTAT_TIMELIMIT.
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 12911 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, SCIP_Lp::looseobjvalinf, SCIP_Lp::lpobjval, SCIP_Lp::nloosevars, NULL, recomputeLooseObjectiveValue(), SCIP_INVALID, SCIPsetInfinity(), SCIPsetIsInfinity(), and SCIP_Lp::solved.
Referenced by addCurrentSolution(), analyzeStrongbranch(), enforceConstraints(), forkCreate(), forkFree(), priceAndCutLoop(), propAndSolve(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPgetLPObjval(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPlpSetCutoffbound(), SCIPnodeUpdateLowerboundLP(), SCIPprobUpdateBestRootSol(), SCIPsolLinkLPSol(), SCIPsolveCIP(), solveNode(), solveNodeInitialLP(), solveNodeLP(), and updatePseudocost().
◆ SCIPlpGetColumnObjval()
gets part of objective value of current LP that results from COLUMN variables only
- Parameters
-
lp current LP data
Definition at line 12939 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpobjval, NULL, SCIP_INVALID, and SCIP_Lp::solved.
Referenced by SCIPgetLPColumnObjval(), SCIPlpStoreRootObjval(), and SCIPprobStoreRootSol().
◆ SCIPlpGetLooseObjval()
gets part of objective value of current LP that results from LOOSE variables only
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 12950 of file lp.c.
References SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, SCIP_INVALID, SCIPsetInfinity(), and SCIP_Lp::solved.
Referenced by performStrongbranchWithPropagation(), SCIPgetLPLooseObjval(), SCIPlpStoreRootObjval(), and SCIPsolLinkLPSol().
◆ SCIPlpStoreRootObjval()
remembers the current LP objective value as root solution value
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 12970 of file lp.c.
References NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, SCIPlpGetColumnObjval(), and SCIPlpGetLooseObjval().
Referenced by SCIPprobStoreRootSol().
◆ SCIPlpInvalidateRootObjval()
void SCIPlpInvalidateRootObjval | ( | SCIP_LP * | lp | ) |
invalidates the root LP solution value
- Parameters
-
lp current LP data
Definition at line 12983 of file lp.c.
References NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, and SCIP_INVALID.
Referenced by freeReoptSolve(), and freeSolve().
◆ SCIPlpRecomputeLocalAndGlobalPseudoObjval()
recomputes local and global pseudo objective values
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 12994 of file lp.c.
References SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, NULL, SCIP_Prob::nvars, 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, and SCIP_Prob::vars.
Referenced by prepareReoptimization(), and treeBacktrackProbing().
◆ SCIPlpGetGlobalPseudoObjval()
gets the global pseudo objective value; that is all variables set to their best (w.r.t. the objective function) global bound
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 13062 of file lp.c.
References SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, NULL, recomputeGlbPseudoObjectiveValue(), SCIPsetInfinity(), and SCIPsetIsInfinity().
Referenced by SCIPgetGlobalPseudoObjval(), and solveNode().
◆ SCIPlpGetPseudoObjval()
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
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 13094 of file lp.c.
References NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, recomputePseudoObjectiveValue(), SCIPsetInfinity(), and SCIPsetIsInfinity().
Referenced by applyBounding(), enforceConstraints(), SCIPconflictAnalyzePseudo(), SCIPgetPseudoObjval(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPprimalHeuristics(), SCIPsolLinkPseudoSol(), and solveNode().
◆ SCIPlpGetModifiedPseudoObjval()
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
- Parameters
-
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 13124 of file lp.c.
References getFinitePseudoObjval(), SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), and SCIPvarGetObj().
Referenced by SCIPnodeAddBoundinfer().
◆ SCIPlpGetModifiedProvedPseudoObjval()
SCIP_Real SCIPlpGetModifiedProvedPseudoObjval | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldbound, | ||
SCIP_Real | newbound, | ||
SCIP_BOUNDTYPE | boundtype | ||
) |
gets pseudo objective value, if a bound of the given variable would be modified in the given way; perform calculations with interval arithmetic to get an exact lower bound
- Parameters
-
lp current LP data set global SCIP settings var problem variable oldbound old value for bound newbound new value for bound boundtype type of bound: lower or upper bound
Definition at line 13164 of file lp.c.
References SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSub(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), and SCIPvarGetObj().
Referenced by SCIPnodeAddBoundinfer().
◆ getObjvalDeltaObj()
|
static |
compute the objective delta due the new objective coefficient
- Parameters
-
set global SCIP settings oldobj old objective value of variable newobj new objective value of variable lb lower bound of variable ub upper bound of variable deltaval pointer to store the delta value deltainf pointer to store the number of variables with infinite best bound
Definition at line 13222 of file lp.c.
References REALABS, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsetIsNegative(), and SCIPsetIsPositive().
Referenced by SCIPlpUpdateVarObj().
◆ getObjvalDeltaLb()
|
static |
compute the objective delta due the new lower bound
- Parameters
-
set global SCIP settings obj objective value of variable oldlb old lower bound of variable newlb new lower bound of variable deltaval pointer to store the delta value deltainf pointer to store the number of variables with infinite best bound
Definition at line 13353 of file lp.c.
References REALABS, SCIPsetIsInfinity(), and SCIPsetIsPositive().
Referenced by SCIPlpUpdateVarLb(), and SCIPlpUpdateVarLbGlobal().
◆ getObjvalDeltaUb()
|
static |
compute the objective delta due the new upper bound
- Parameters
-
set global SCIP settings obj objective value of variable oldub old upper bound of variable newub new upper bound of variable deltaval pointer to store the delta value deltainf pointer to store the number of variables with infinite best bound
Definition at line 13394 of file lp.c.
References REALABS, SCIPsetIsInfinity(), and SCIPsetIsNegative().
Referenced by SCIPlpUpdateVarUb(), and SCIPlpUpdateVarUbGlobal().
◆ lpUpdateObjval()
|
static |
updates current pseudo and loose objective values for a change in a variable's objective value or bounds
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed deltaval delta value in the objective function deltainf delta value for the number of variables with infinite best bound local should the local pseudo objective value be updated? loose should the loose objective value be updated? global should the global pseudo objective value be updated?
Definition at line 13435 of file lp.c.
References FALSE, SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, SCIP_Lp::looseobjvalinf, NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Lp::relglbpseudoobjval, SCIP_Lp::rellooseobjval, SCIP_Lp::relpseudoobjval, SCIP_VARSTATUS_LOOSE, SCIPsetIsUpdateUnreliable(), SCIPvarGetStatus(), and TRUE.
Referenced by lpUpdateVarColumn(), lpUpdateVarLoose(), SCIPlpUpdateVarLb(), SCIPlpUpdateVarLbGlobal(), SCIPlpUpdateVarObj(), SCIPlpUpdateVarUb(), and SCIPlpUpdateVarUbGlobal().
◆ lpUpdateVarProved()
|
static |
updates current pseudo and loose objective values for a change in a variable's objective value or bounds; pseudo objective value is calculated with interval arithmetics to get a proved lower bound
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed oldobj old objective value of variable oldlb old objective value of variable oldub old objective value of variable newobj new objective value of variable newlb new objective value of variable newub new objective value of variable
Definition at line 13517 of file lp.c.
References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPerrorMessage, SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSub(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPvarGetProbindex(), and SCIPvarGetStatus().
Referenced by SCIPlpUpdateVarLb(), SCIPlpUpdateVarObj(), and SCIPlpUpdateVarUb().
◆ SCIPlpUpdateVarObj()
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 value
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed oldobj old objective value of variable newobj new objective value of variable
Definition at line 13630 of file lp.c.
References FALSE, getObjvalDeltaObj(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_Lp::probing, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE.
Referenced by SCIPeventProcess(), SCIPlpUpdateAddVar(), and SCIPlpUpdateDelVar().
◆ SCIPlpUpdateVarLbGlobal()
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
- Parameters
-
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 13684 of file lp.c.
References FALSE, getObjvalDeltaLb(), lpUpdateObjval(), NULL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), and TRUE.
Referenced by SCIPeventProcess().
◆ SCIPlpUpdateVarLb()
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
- Parameters
-
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 13711 of file lp.c.
References FALSE, getObjvalDeltaLb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE.
Referenced by SCIPeventProcess().
◆ SCIPlpUpdateVarUbGlobal()
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
- Parameters
-
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 13752 of file lp.c.
References FALSE, getObjvalDeltaUb(), lpUpdateObjval(), NULL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetObj(), and TRUE.
Referenced by SCIPeventProcess().
◆ SCIPlpUpdateVarUb()
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
- Parameters
-
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 13779 of file lp.c.
References FALSE, getObjvalDeltaUb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and TRUE.
Referenced by SCIPeventProcess().
◆ SCIPlpUpdateAddVar()
SCIP_RETCODE SCIPlpUpdateAddVar | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var | ||
) |
informs LP, that given variable was added to the problem
- Parameters
-
lp current LP data set global SCIP settings var variable that is now a LOOSE problem variable
Definition at line 13820 of file lp.c.
References SCIP_Lp::nloosevars, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpUpdateVarObj(), SCIPvarGetObj(), SCIPvarGetProbindex(), and SCIPvarGetStatus().
Referenced by SCIPprobAddVar().
◆ SCIPlpUpdateDelVar()
SCIP_RETCODE SCIPlpUpdateDelVar | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_VAR * | var | ||
) |
informs LP, that given variable is to be deleted from the problem
- Parameters
-
lp current LP data set global SCIP settings var variable that will be deleted from the problem
Definition at line 13841 of file lp.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpDecNLoosevars(), SCIPlpUpdateVarObj(), SCIPvarGetObj(), SCIPvarGetProbindex(), and SCIPvarGetStatus().
Referenced by SCIPprobPerformVarDeletions().
◆ lpUpdateVarColumn()
|
static |
informs LP, that given formerly loose problem variable is now a column variable
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed from LOOSE to COLUMN
Definition at line 13865 of file lp.c.
References FALSE, SCIP_Lp::looseobjvalinf, lpUpdateObjval(), SCIP_Lp::nloosevars, NULL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPlpDecNLoosevars(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE.
Referenced by SCIPlpUpdateVarColumn().
◆ lpUpdateVarColumnProved()
|
static |
informs LP, that given formerly loose problem variable is now a column variable pseudo objective value is calculated with interval arithmetics to get a proved lower bound
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed from LOOSE to COLUMN
Definition at line 13912 of file lp.c.
References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSub(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and SCIPvarGetUbLocal().
Referenced by SCIPlpUpdateVarColumn().
◆ SCIPlpUpdateVarColumn()
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
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed from LOOSE to COLUMN
Definition at line 13977 of file lp.c.
References lpUpdateVarColumn(), lpUpdateVarColumnProved(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPvarColumn().
◆ lpUpdateVarLoose()
|
static |
informs LP, that given formerly column problem variable is now again a loose variable
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed from COLUMN to LOOSE
Definition at line 13999 of file lp.c.
References FALSE, SCIP_Lp::looseobjvalinf, lpUpdateObjval(), SCIP_Lp::nloosevars, NULL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_LOOSE, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE.
Referenced by SCIPlpUpdateVarLoose().
◆ lpUpdateVarLooseProved()
|
static |
informs LP, that given formerly column problem variable is now again a loose variable pseudo objective value is calculated with interval arithmetics to get a proved lower bound
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed from COLUMN to LOOSE
Definition at line 14044 of file lp.c.
References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_LOOSE, SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and SCIPvarGetUbLocal().
Referenced by SCIPlpUpdateVarLoose().
◆ SCIPlpUpdateVarLoose()
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
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed from COLUMN to LOOSE
Definition at line 14101 of file lp.c.
References lpUpdateVarLoose(), lpUpdateVarLooseProved(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPvarLoose().
◆ SCIPlpDecNLoosevars()
void SCIPlpDecNLoosevars | ( | SCIP_LP * | lp | ) |
decrease the number of loose variables by one
- Parameters
-
lp current LP data
Definition at line 14122 of file lp.c.
References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, and NULL.
Referenced by lpUpdateVarColumn(), SCIPlpUpdateDelVar(), SCIPvarFix(), and SCIPvarMultiaggregate().
◆ SCIPlpGetSol()
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
- Parameters
-
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 14140 of file lp.c.
References SCIP_Row::activity, SCIP_Col::basisstatus, SCIP_Row::basisstatus, BMSclearMemoryArray, 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, SCIP_Col::primsol, r, SCIP_Col::redcost, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPALGO_BARRIER, SCIP_OKAY, SCIP_Real, SCIPlpGetSolstat(), SCIPlpiGetBase(), SCIPlpiGetSol(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasNegative(), SCIPsetIsDualfeasPositive(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIPsetIsInfinity(), SCIPvarGetName(), SCIP_Lp::solisbasic, SCIP_Lp::solved, TRUE, SCIP_Row::validactivitylp, SCIP_Col::validredcostlp, and SCIP_Lp::validsollp.
Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
◆ SCIPlpGetUnboundedSol()
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
- Parameters
-
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 14434 of file lp.c.
References SCIP_Row::activity, 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, SCIP_Col::primsol, r, SCIP_Col::redcost, SCIP_Row::rhs, SCIP_CALL, SCIP_INVALID, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPlpiGetPrimalRay(), SCIPlpiGetSol(), SCIPlpiHasPrimalRay(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPsetIsFeasNegative(), 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, and SCIP_Col::var.
Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
◆ SCIPlpGetPrimalRay()
SCIP_RETCODE SCIPlpGetPrimalRay | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_Real * | ray | ||
) |
returns primal ray proving the unboundedness of the current LP
- Parameters
-
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 14693 of file lp.c.
References 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, and SCIP_Col::var.
Referenced by updatePrimalRay().
◆ SCIPlpGetDualfarkas()
SCIP_RETCODE SCIPlpGetDualfarkas | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_Bool * | valid | ||
) |
stores the dual Farkas multipliers for infeasibility proof in rows. besides, the proof is checked for validity if lp/checkfarkas = TRUE.
- Note
- the check will not be performed if
valid
is NULL.
- Parameters
-
lp current LP data set global SCIP settings stat problem statistics valid pointer to store whether the Farkas proof is valid or NULL
Definition at line 14754 of file lp.c.
References SCIP_Row::activity, SCIP_Row::basisstatus, BMSclearMemoryArray, SCIP_Row::constant, SCIP_Row::dualfarkas, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Row::len, SCIP_Row::lhs, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Col::primsol, r, REALABS, SCIP_Col::redcost, SCIP_Row::rhs, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPcolGetLb(), SCIPcolGetLPPos(), SCIPcolGetUb(), SCIPlpiGetDualfarkas(), SCIProwGetName(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasGT(), SCIPsetIsDualfeasLT(), SCIPsetIsFeasZero(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIP_Lp::solved, TRUE, SCIP_Row::validactivitylp, SCIP_Col::validfarkaslp, SCIP_Lp::validfarkaslp, SCIP_Col::validredcostlp, and SCIP_Row::vals.
Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
◆ SCIPlpGetIterations()
SCIP_RETCODE SCIPlpGetIterations | ( | SCIP_LP * | lp, |
int * | iterations | ||
) |
get number of iterations used in last LP solve
- Parameters
-
lp current LP data iterations pointer to store the iteration count
Definition at line 14927 of file lp.c.
References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiGetIterations().
Referenced by lpBarrier(), lpDualSimplex(), lpLexDualSimplex(), and lpPrimalSimplex().
◆ SCIPlpUpdateAges()
SCIP_RETCODE SCIPlpUpdateAges | ( | SCIP_LP * | lp, |
SCIP_STAT * | stat | ||
) |
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
- Parameters
-
lp current LP data stat problem statistics
Definition at line 14942 of file lp.c.
References SCIP_Row::activeinlpcounter, SCIP_Col::age, SCIP_Row::age, 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, r, SCIP_Lp::rows, SCIP_OKAY, SCIPdebugMessage, SCIP_Lp::solved, and SCIP_Lp::validsollp.
Referenced by SCIPlpSolveAndEval().
◆ lpDelColset()
|
static |
- Parameters
-
lp current LP data set global SCIP settings coldstat deletion status of columns: 1 if column should be deleted, 0 if not
Definition at line 15002 of file lp.c.
References checkLazyColArray(), checkLinks, SCIP_Lp::cols, colUpdateDelLP(), SCIP_Lp::diving, FALSE, SCIP_Lp::flushed, SCIP_Lp::lazycols, SCIP_Col::lpdepth, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Col::lppos, SCIP_Lp::lpsolstat, lpUpdateObjNorms(), markColDeleted(), SCIP_Lp::nchgcols, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Lp::nlpicols, SCIP_Lp::nremovablecols, NULL, SCIP_Lp::primalchecked, SCIP_Lp::primalfeasible, SCIP_Col::removable, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiDelColset(), SCIP_Lp::solved, and SCIP_Col::unchangedobj.
Referenced by lpCleanupCols(), and lpRemoveObsoleteCols().
◆ lpDelRowset()
|
static |
- Parameters
-
lp current LP data blkmem block memory buffers set global SCIP settings eventqueue event queue eventfilter global event filter rowdstat deletion status of rows: 1 if row should be deleted, 0 if not
Definition at line 15101 of file lp.c.
References checkLinks, SCIP_Lp::diving, SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, SCIP_EventFilter::eventmask, FALSE, SCIP_Lp::flushed, SCIP_EventFilter::len, SCIP_Row::lpdepth, SCIP_Lp::lpi, SCIP_Lp::lpifirstchgrow, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Row::lppos, SCIP_Lp::lpsolstat, markRowDeleted(), SCIP_Lp::nchgrows, SCIP_Lp::nlpirows, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, r, SCIP_Row::removable, SCIP_Lp::rows, rowUpdateDelLP(), SCIP_CALL, SCIP_EVENTTYPE_ROWDELETEDLP, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPeventCreateRowDeletedLP(), SCIPeventqueueAdd(), SCIPlpiDelRowset(), SCIProwRelease(), SCIProwUnlock(), and SCIP_Lp::solved.
Referenced by lpCleanupRows(), lpRemoveObsoleteRows(), and SCIPlpRemoveRedundantRows().
◆ lpRemoveObsoleteCols()
|
static |
removes all non-basic columns, that are too old, beginning with the given firstcol
- Parameters
-
lp current LP data set global SCIP settings stat problem statistics firstcol first column to check for clean up
Definition at line 15199 of file lp.c.
References SCIP_Col::age, SCIP_Col::basisstatus, BMSclearMemoryArray, SCIP_Lp::cols, SCIP_Lp::diving, SCIP_Lp::flushed, lpDelColset(), SCIP_Lp::lpicols, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Stat::nnodes, SCIP_Lp::nremovablecols, NULL, SCIP_Col::obsoletenode, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPcolGetBestBound(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPvarGetName(), and SCIP_Lp::solisbasic.
Referenced by SCIPlpRemoveAllObsoletes(), and SCIPlpRemoveNewObsoletes().
◆ lpRemoveObsoleteRows()
|
static |
removes all basic rows, that are too old, beginning with the given firstrow
- Parameters
-
lp current LP data blkmem block memory buffers set global SCIP settings stat problem statistics eventqueue event queue eventfilter global event filter firstrow first row to check for clean up
Definition at line 15275 of file lp.c.
References SCIP_Row::age, SCIP_Row::basisstatus, BMSclearMemoryArray, SCIP_Lp::diving, SCIP_Lp::flushed, lpDelRowset(), SCIP_Lp::lpirows, SCIP_Lp::nlpirows, SCIP_Stat::nnodes, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, SCIP_Row::obsoletenode, r, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, and SCIP_Lp::solisbasic.
Referenced by SCIPlpRemoveAllObsoletes(), and SCIPlpRemoveNewObsoletes().
◆ SCIPlpRemoveNewObsoletes()
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
- Parameters
-
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 15351 of file lp.c.
References 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().
◆ SCIPlpRemoveAllObsoletes()
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
- Parameters
-
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 15382 of file lp.c.
References 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.
Referenced by focusnodeToFork().
◆ lpCleanupCols()
|
static |
removes all non-basic columns at 0.0 beginning with the given firstcol
- Parameters
-
lp current LP data set global SCIP settings stat problem statistics firstcol first column to check for clean up
Definition at line 15413 of file lp.c.
References BMSclearMemoryArray, SCIP_Lp::cols, SCIP_Lp::diving, SCIP_Lp::flushed, SCIP_Stat::lpcount, lpDelColset(), SCIP_Lp::lpicols, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nremovablecols, NULL, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPcolGetBestBound(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIP_Lp::solisbasic, and SCIP_Lp::validsollp.
Referenced by SCIPlpCleanupAll(), and SCIPlpCleanupNew().
◆ lpCleanupRows()
|
static |
removes all basic rows beginning with the given firstrow
- Parameters
-
lp current LP data blkmem block memory buffers set global SCIP settings stat problem statistics eventqueue event queue eventfilter global event filter firstrow first row to check for clean up
Definition at line 15480 of file lp.c.
References BMSclearMemoryArray, SCIP_Lp::diving, SCIP_Lp::flushed, SCIP_Stat::lpcount, lpDelRowset(), SCIP_Lp::lpirows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, r, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIP_Lp::solisbasic, and SCIP_Lp::validsollp.
Referenced by SCIPlpCleanupAll(), and SCIPlpCleanupNew().
◆ SCIPlpCleanupNew()
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
- Parameters
-
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 15551 of file lp.c.
References 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().
◆ SCIPlpCleanupAll()
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
- Parameters
-
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 15590 of file lp.c.
References 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.
Referenced by focusnodeToFork().
◆ SCIPlpRemoveRedundantRows()
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
- Parameters
-
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 15629 of file lp.c.
References 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().
◆ SCIPlpStartDive()
SCIP_RETCODE SCIPlpStartDive | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat | ||
) |
initiates LP diving
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings stat problem statistics
Definition at line 15703 of file lp.c.
References 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_LpSolVals::lpsolstat, SCIP_Lp::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().
◆ SCIPlpEndDive()
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
- Parameters
-
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 15809 of file lp.c.
References 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, 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, SCIP_Col::obj, r, SCIP_Lp::resolvelperror, rowRestoreSolVals(), SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_VARSTATUS_COLUMN, SCIP_VERBLEVEL_FULL, SCIPcolChgLb(), SCIPcolChgObj(), SCIPcolChgUb(), SCIPlpFlush(), SCIPlpFreeState(), SCIPlpGetSolstat(), SCIPlpSetState(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIProwChgLhs(), SCIProwChgRhs(), SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPstatIncrement, SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIP_Lp::storedsolvals, TRUE, SCIP_Col::ub, updateLazyBounds(), and SCIP_Col::var.
Referenced by SCIPendDive().
◆ SCIPlpRecordOldRowSideDive()
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
- Parameters
-
lp LP data object row row affected by the change sidetype side type
Definition at line 15991 of file lp.c.
References 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().
◆ SCIPlpStartProbing()
SCIP_RETCODE SCIPlpStartProbing | ( | SCIP_LP * | lp | ) |
informs the LP that probing mode was initiated
- Parameters
-
lp current LP data
Definition at line 16015 of file lp.c.
References NULL, SCIP_Lp::probing, SCIP_OKAY, SCIP_Lp::strongbranching, SCIP_Lp::strongbranchprobing, and TRUE.
Referenced by SCIPtreeStartProbing().
◆ SCIPlpEndProbing()
SCIP_RETCODE SCIPlpEndProbing | ( | SCIP_LP * | lp | ) |
informs the LP that probing mode was finished
- Parameters
-
lp current LP data
Definition at line 16030 of file lp.c.
References FALSE, NULL, SCIP_Lp::probing, SCIP_OKAY, SCIP_Lp::strongbranching, and SCIP_Lp::strongbranchprobing.
Referenced by SCIPtreeEndProbing().
◆ SCIPlpStartStrongbranchProbing()
void SCIPlpStartStrongbranchProbing | ( | SCIP_LP * | lp | ) |
informs the LP that the probing mode is now used for strongbranching
- Parameters
-
lp current LP data
Definition at line 16045 of file lp.c.
References NULL, SCIP_Lp::probing, SCIP_Lp::strongbranching, SCIP_Lp::strongbranchprobing, and TRUE.
Referenced by SCIPstartStrongbranch().
◆ SCIPlpEndStrongbranchProbing()
void SCIPlpEndStrongbranchProbing | ( | SCIP_LP * | lp | ) |
informs the LP that the probing mode is not used for strongbranching anymore
- Parameters
-
lp current LP data
Definition at line 16058 of file lp.c.
References FALSE, NULL, SCIP_Lp::probing, SCIP_Lp::strongbranching, and SCIP_Lp::strongbranchprobing.
Referenced by SCIPendStrongbranch().
◆ provedBound()
|
static |
calculates y*b + min{(c - y*A)*x | lb <= x <= ub} for given vectors y and c; the vector b is defined with b[i] = lhs[i] if y[i] >= 0, b[i] = rhs[i] if y[i] < 0 Calculating this value in interval arithmetics gives a proved lower LP bound for the following reason (assuming, we have only left hand sides): min{cx | b <= Ax, lb <= x <= ub} >= min{cx | yb <= yAx, lb <= x <= ub} (restriction in minimum is relaxed) == yb + min{cx - yb | yb <= yAx, lb <= x <= ub} (added yb - yb == 0) >= yb + min{cx - yAx | yb <= yAx, lb <= x <= ub} (because yAx >= yb inside minimum) >= yb + min{cx - yAx | lb <= x <= ub} (restriction in minimum is relaxed)
- Parameters
-
lp current LP data set global SCIP settings usefarkas use y = dual Farkas and c = 0 instead of y = dual solution and c = obj? bound result of interval arithmetic minimization
Definition at line 16081 of file lp.c.
References a, b, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Row::dualfarkas, SCIP_Row::dualsol, SCIP_Col::lb, SCIP_Row::lhs, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Lp::ncols, SCIP_Col::nlprows, SCIP_Lp::nrows, NULL, SCIP_Col::nunlinked, SCIP_Col::obj, SCIP_Row::rhs, SCIP_Col::rows, SCIP_Lp::rows, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcolGetLb(), SCIPcolGetUb(), SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPintervalSub(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIP_Lp::solved, SCIP_Col::ub, SCIP_Col::vals, x, and y.
Referenced by SCIPlpGetProvedLowerbound(), and SCIPlpIsInfeasibilityProved().
◆ SCIPlpGetProvedLowerbound()
SCIP_RETCODE SCIPlpGetProvedLowerbound | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_Real * | bound | ||
) |
gets proven lower (dual) bound of last LP solution
- Parameters
-
lp current LP data set global SCIP settings bound pointer to store proven dual bound
Definition at line 16191 of file lp.c.
References FALSE, provedBound(), SCIP_CALL, SCIP_OKAY, and SCIPsetDebugMsg.
Referenced by SCIPnodeUpdateLowerboundLP(), and solveNodeInitialLP().
◆ SCIPlpIsInfeasibilityProved()
SCIP_RETCODE SCIPlpIsInfeasibilityProved | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_Bool * | proved | ||
) |
gets proven dual bound of last LP solution
- Parameters
-
lp current LP data set global SCIP settings proved pointer to store whether infeasibility is proven
Definition at line 16205 of file lp.c.
References bound, NULL, provedBound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetDebugMsg, and TRUE.
◆ SCIPlpWrite()
SCIP_RETCODE SCIPlpWrite | ( | SCIP_LP * | lp, |
const char * | fname | ||
) |
writes LP to a file
- Parameters
-
lp current LP data fname file name
Definition at line 16227 of file lp.c.
References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiWriteLP().
Referenced by lpBarrier(), lpDualSimplex(), lpPrimalSimplex(), and SCIPwriteLP().
◆ SCIPlpWriteMip()
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 relaxation of the current B&B node to a file
- Note
- the transformed problem in SCIP is always a minimization problem
- Parameters
-
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 16242 of file lp.c.
References SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Lp::flushed, 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, REALABS, SCIP_Row::rhs, SCIP_Lp::rows, 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().
◆ SCIPlpGetCols()
gets array with columns of the LP
- Parameters
-
lp current LP data
Definition at line 17212 of file lp.c.
References SCIP_Lp::cols, and NULL.
Referenced by branchcandCalcLPCands(), forkFree(), SCIPcomputeLPRelIntPoint(), SCIPgetLPCols(), SCIPgetLPColsData(), and SCIPsolLinkLPSol().
◆ SCIPlpGetNCols()
int SCIPlpGetNCols | ( | SCIP_LP * | lp | ) |
gets current number of columns in LP
- Parameters
-
lp current LP data
Definition at line 17222 of file lp.c.
References SCIP_Lp::ncols, and NULL.
Referenced by branchcandCalcLPCands(), focusnodeCleanupVars(), focusnodeToFork(), forkFree(), getDualProof(), initLP(), probingnodeCreate(), probingnodeUpdate(), runBoundHeuristic(), SCIPcomputeLPRelIntPoint(), SCIPgetLPColsData(), SCIPgetNLPCols(), SCIPnodeFocus(), SCIPpricestoreAddProbVars(), SCIPpricestoreApplyVars(), SCIPprobAllColsInLP(), SCIPsolLinkLPSol(), SCIPtreeLoadLP(), and treeBacktrackProbing().
◆ SCIPlpGetRows()
gets array with rows of the LP
- Parameters
-
lp current LP data
Definition at line 17232 of file lp.c.
References NULL, and SCIP_Lp::rows.
Referenced by forkFree(), getDualProof(), getFarkasProof(), runBoundHeuristic(), SCIPgetLPRows(), SCIPgetLPRowsData(), and storeCuts().
◆ SCIPlpGetNRows()
int SCIPlpGetNRows | ( | SCIP_LP * | lp | ) |
gets current number of rows in LP
- Parameters
-
lp current LP data
Definition at line 17242 of file lp.c.
References SCIP_Lp::nrows, and NULL.
Referenced by focusnodeToFork(), forkFree(), getDualProof(), getFarkasProof(), initLP(), probingnodeCreate(), probingnodeUpdate(), runBoundHeuristic(), SCIPgetLPRowsData(), SCIPgetNLPRows(), SCIPnodeFocus(), SCIPtreeLoadLP(), storeCuts(), and treeBacktrackProbing().
◆ SCIPlpGetNewcols()
gets array with newly added columns after the last mark
- Parameters
-
lp current LP data
Definition at line 17252 of file lp.c.
References SCIP_Lp::cols, SCIP_Lp::firstnewcol, SCIP_Lp::ncols, and NULL.
Referenced by forkCreate(), and pseudoforkCreate().
◆ SCIPlpGetNNewcols()
int SCIPlpGetNNewcols | ( | SCIP_LP * | lp | ) |
gets number of newly added columns after the last mark
- Parameters
-
lp current LP data
Definition at line 17263 of file lp.c.
References SCIP_Lp::firstnewcol, SCIP_Lp::ncols, and NULL.
Referenced by focusnodeCleanupVars(), focusnodeToFork(), focusnodeToJunction(), forkCreate(), pseudoforkCreate(), and SCIPnodeFocus().
◆ SCIPlpGetNewrows()
gets array with newly added rows after the last mark
- Parameters
-
lp current LP data
Definition at line 17274 of file lp.c.
References SCIP_Lp::firstnewrow, SCIP_Lp::nrows, NULL, and SCIP_Lp::rows.
Referenced by forkCreate(), and pseudoforkCreate().
◆ SCIPlpGetNNewrows()
int SCIPlpGetNNewrows | ( | SCIP_LP * | lp | ) |
gets number of newly added rows after the last mark
- Parameters
-
lp current LP data
Definition at line 17285 of file lp.c.
References SCIP_Lp::firstnewrow, SCIP_Lp::nrows, and NULL.
Referenced by focusnodeToFork(), forkCreate(), pseudoforkCreate(), and SCIPnodeFocus().
◆ SCIPlpRecalculateObjSqrNorm()
recalculates Euclidean norm of objective function vector of column variables if it have gotten unreliable during calculation
- Parameters
-
set global SCIP settings lp LP data
Definition at line 17296 of file lp.c.
References SCIP_Lp::cols, FALSE, MAX, SCIP_Lp::ncols, NULL, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, SCIPsetIsGE(), and SQR.
Referenced by SCIPgetObjNorm(), and SCIProwGetObjParallelism().
◆ SCIPlpGetObjNorm()
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
- Parameters
-
lp LP data
Definition at line 17327 of file lp.c.
References NULL, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, and SQRT.
Referenced by SCIPgetObjNorm().
◆ SCIPlpSetRootLPIsRelax()
sets whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
- Parameters
-
lp LP data isrelax is the root lp a relaxation of the problem?
Definition at line 17339 of file lp.c.
References NULL, and SCIP_Lp::rootlpisrelax.
Referenced by SCIPprobStoreRootSol().
◆ SCIPlpIsRootLPRelax()
returns whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
- Parameters
-
lp LP data
Definition at line 17350 of file lp.c.
References NULL, and SCIP_Lp::rootlpisrelax.
Referenced by SCIPisRootLPRelax().
◆ SCIPlpGetRootObjval()
gets the objective value of the root node LP; returns SCIP_INVALID if the root node LP was not (yet) solved
- Parameters
-
lp LP data
Definition at line 17360 of file lp.c.
References MIN, NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, and SCIP_INVALID.
Referenced by SCIPgetLPRootObjval().
◆ SCIPlpGetRootColumnObjval()
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
- Parameters
-
lp LP data
Definition at line 17372 of file lp.c.
References NULL, and SCIP_Lp::rootlpobjval.
Referenced by SCIPgetLPRootColumnObjval().
◆ SCIPlpGetRootLooseObjval()
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
- Parameters
-
lp LP data
Definition at line 17384 of file lp.c.
References NULL, and SCIP_Lp::rootlooseobjval.
Referenced by SCIPgetLPRootLooseObjval().
◆ SCIPlpGetLPI()
gets the LP solver interface
- Parameters
-
lp current LP data
Definition at line 17394 of file lp.c.
References SCIP_Lp::lpi, and NULL.
Referenced by conflictAnalyzeLP(), SCIPconflictAnalyzeLP(), SCIPgetLPI(), SCIPlpSolveAndEval(), SCIPprintLPSolutionQuality(), solveNodeLP(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().
◆ SCIPlpSetIsRelax()
sets whether the current LP is a relaxation of the current problem and its optimal objective value is a local lower bound
- Parameters
-
lp LP data relax is the current lp a relaxation?
Definition at line 17404 of file lp.c.
References SCIP_Lp::isrelax, and NULL.
Referenced by SCIPpriceLoop(), SCIPtreeEndProbing(), and solveProbingLP().
◆ SCIPlpIsRelax()
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?
- Parameters
-
lp LP data
Definition at line 17417 of file lp.c.
References SCIP_Lp::isrelax, and NULL.
Referenced by priceAndCutLoop(), propAndSolve(), SCIPendDive(), SCIPisLPRelax(), SCIPprobStoreRootSol(), SCIPtreeEndProbing(), solveNodeInitialLP(), and updateEstimate().
◆ SCIPlpIsSolved()
returns whether the current LP is flushed and solved
- Parameters
-
lp current LP data
Definition at line 17427 of file lp.c.
References SCIP_Lp::flushed, NULL, and SCIP_Lp::solved.
Referenced by priceAndCutLoop(), SCIPendDive(), SCIPlinkLPSol(), SCIPsolCreateLPSol(), and SCIPsolLinkCurrentSol().
◆ SCIPlpIsPrimalReliable()
return whether the current LP solution passed the primal feasibility check
- Parameters
-
lp current LP data
Definition at line 17437 of file lp.c.
References NULL, SCIP_Lp::primalchecked, and SCIP_Lp::primalfeasible.
Referenced by SCIPisLPPrimalReliable().
◆ SCIPlpIsDualReliable()
return whether the current LP solution passed the dual feasibility check
- Parameters
-
lp current LP data
Definition at line 17447 of file lp.c.
References SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, and NULL.
Referenced by analyzeStrongbranch(), SCIPisLPDualReliable(), and SCIPprobUpdateBestRootSol().
◆ SCIPlpIsSolBasic()
returns whether the current LP solution is a basic solution
- Parameters
-
lp current LP data
Definition at line 17457 of file lp.c.
References NULL, and SCIP_Lp::solisbasic.
Referenced by getImplVarRedcost(), SCIPgetLPBasisInd(), SCIPgetLPBInvACol(), SCIPgetLPBInvARow(), SCIPgetLPBInvCol(), SCIPgetLPBInvRow(), SCIPisLPSolBasic(), SCIPprobUpdateBestRootSol(), and SCIPvarGetImplRedcost().
◆ SCIPlpDiving()
returns whether the LP is in diving mode
- Parameters
-
lp current LP data
Definition at line 17467 of file lp.c.
References SCIP_Lp::diving, and NULL.
Referenced by computeLPBounds(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), SCIPaddRowDive(), SCIPchgCutoffboundDive(), SCIPchgRowLhs(), SCIPchgRowLhsDive(), SCIPchgRowRhs(), SCIPchgRowRhsDive(), SCIPchgVarLbDive(), SCIPchgVarObjDive(), SCIPchgVarUbDive(), SCIPendDive(), SCIPgetVarLbDive(), SCIPgetVarObjDive(), SCIPgetVarUbDive(), SCIPinDive(), SCIPprimalHeuristics(), SCIPsolLinkLPSol(), SCIPsolveDiveLP(), SCIPstartDive(), SCIPstartProbing(), SCIPstartStrongbranch(), SCIPtreeCutoff(), SCIPvarChgLbDive(), and SCIPvarChgUbDive().
◆ SCIPlpDivingObjChanged()
returns whether the LP is in diving mode and the objective value of at least one column was changed
- Parameters
-
lp current LP data
Definition at line 17477 of file lp.c.
References SCIP_Lp::divingobjchg, and NULL.
Referenced by conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), getFarkasProof(), runBoundHeuristic(), SCIPchgVarObjProbing(), SCIPlpSetCutoffbound(), SCIPsolLinkLPSol(), SCIPsolveDiveLP(), and SCIPtreeEndProbing().
◆ SCIPlpMarkDivingObjChanged()
void SCIPlpMarkDivingObjChanged | ( | SCIP_LP * | lp | ) |
marks the diving LP to have a changed objective function
- Parameters
-
lp current LP data
Definition at line 17487 of file lp.c.
References SCIP_Lp::diving, SCIP_Lp::divingobjchg, NULL, SCIP_Lp::probing, and TRUE.
Referenced by SCIPchgVarObjDive(), SCIPchgVarObjProbing(), and SCIPpropagateProbing().
◆ SCIPlpUnmarkDivingObjChanged()
void SCIPlpUnmarkDivingObjChanged | ( | SCIP_LP * | lp | ) |
marks the diving LP to not have a changed objective function anymore
- Parameters
-
lp current LP data
Definition at line 17498 of file lp.c.
References SCIP_Lp::diving, SCIP_Lp::divingobjchg, FALSE, NULL, and SCIP_Lp::probing.
Referenced by SCIPpropagateProbing(), and treeBacktrackProbing().
◆ SCIPlpDivingRowsChanged()
- Parameters
-
lp current LP data
Definition at line 17509 of file lp.c.
References SCIP_Lp::diving, SCIP_Lp::ndivechgsides, and NULL.
Referenced by SCIPsolveDiveLP().
◆ computeRelIntPoint()
|
static |
compute relative interior point with auxiliary lpi, see SCIPlpComputeRelIntPoint()
- Parameters
-
lpi auxiliary LP interface 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 17521 of file lp.c.
References SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Lp::cutoffbound, getFiniteLooseObjval(), SCIP_Col::lb, SCIP_Row::lhs, SCIP_Lp::looseobjvalinf, SCIP_Row::lpcolssorted, SCIP_Col::lppos, MAX, SCIP_Lp::ncols, SCIP_Row::nlpcols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, REALABS, SCIP_Row::rhs, SCIP_Lp::rows, rowSortLP(), SCIP_CALL, SCIP_LPERROR, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_LPTILIM, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_Real, SCIPlpiAddCols(), SCIPlpiAddRows(), SCIPlpiGetNCols(), SCIPlpiGetSol(), SCIPlpiInfinity(), SCIPlpiIsIterlimExc(), SCIPlpiIsOptimal(), SCIPlpiIsTimelimExc(), SCIPlpiSetIntpar(), SCIPlpiSetRealpar(), SCIPlpiSolveDual(), SCIPlpiWriteLP(), SCIPmessagePrintWarning(), SCIProwIsModifiable(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetDualfeastol(), SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsFeasZero(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPsetLpfeastol(), TRUE, SCIP_Col::ub, and SCIP_Row::vals.
Referenced by SCIPlpComputeRelIntPoint().
◆ SCIPlpComputeRelIntPoint()
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
We use the approach of
- R. Freund, R. Roundy, M. J. Todd
- "Identifying the Set of Always-Active Constraints in a System of Linear Inequalities by a Single Linear Program"
- Tech. Rep, No. 1674-85, Sloan School, M.I.T., 1985
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.
- Parameters
-
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 18223 of file lp.c.
References BMSclearMemoryArray, computeRelIntPoint(), SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_INVALID, SCIP_LPERROR, SCIP_OBJSEN_MAXIMIZE, SCIP_OKAY, SCIPlpiCreate(), SCIPlpiFree(), SCIPsetDebugMsg, SCIPsetIsInfinity(), and TRUE.
Referenced by SCIPcomputeLPRelIntPoint().
Variable Documentation
◆ scalars
|
static |
additional scalars that are tried in integrality scaling
Definition at line 5650 of file lp.c.
Referenced by disaggregate(), multiAggregateBinvar(), presolveAddKKTAggregatedVars(), SCIPconflictAddBound(), SCIPsolGetRayVal(), SCIPsolGetVal(), SCIPvarMultiaggregate(), and writeExpandedSolutions().
◆ nscalars
|
static |
Definition at line 5651 of file lp.c.
Referenced by SCIProwCalcIntegralScalar().