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, prob) (set->lp_disablecutoff == 1 || ((set->nactivepricers > 0 || !SCIPprobAllColsInLP(prob, set, lp)) && 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 126 of file lp.c.
Referenced by lpFlushAddRows(), and rowScale().
◆ debugColPrint
Definition at line 159 of file lp.c.
Referenced by lpFlushAddCols().
◆ checkRow
#define checkRow | ( | row | ) |
Definition at line 695 of file lp.c.
Referenced by rowSortNonLP(), and SCIProwEnsureSize().
◆ checkRowSqrnorm
#define checkRowSqrnorm | ( | row | ) |
Definition at line 768 of file lp.c.
Referenced by SCIProwGetNorm(), and SCIProwGetObjParallelism().
◆ checkRowSumnorm
#define checkRowSumnorm | ( | row | ) |
Definition at line 769 of file lp.c.
Referenced by SCIProwGetSumNorm().
◆ checkRowObjprod
#define checkRowObjprod | ( | row | ) |
Definition at line 770 of file lp.c.
Referenced by SCIProwGetObjParallelism().
◆ checkLinks
#define checkLinks | ( | lp | ) |
Definition at line 1624 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, | |
prob | |||
) | (set->lp_disablecutoff == 1 || ((set->nactivepricers > 0 || !SCIPprobAllColsInLP(prob, set, lp)) && set->lp_disablecutoff == 2)) |
should the objective limit of the LP solver be disabled
Definition at line 2650 of file lp.c.
Referenced by lpSetObjlim(), lpSolve(), SCIPlpFlush(), SCIPlpSetCutoffbound(), and SCIPlpSolveAndEval().
◆ DIVESTACKINITSIZE
#define DIVESTACKINITSIZE 100 |
Definition at line 9079 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 11492 of file lp.c.
Referenced by lpNumericalTroubleMessage().
◆ FEASTOLTIGHTFAC
#define FEASTOLTIGHTFAC 0.001 |
Definition at line 11580 of file lp.c.
Referenced by lpSolveStable().
◆ DIVESTACKGROWFACT
#define DIVESTACKGROWFACT 1.5 |
Definition at line 16291 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 168 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 191 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 214 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 237 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 260 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 283 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 303 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 326 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 349 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 376 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 410 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::validdegeneracylp, 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 470 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 497 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 544 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 581 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 629 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 779 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 821 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 863 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 905 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 927 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 969 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 1002 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 1033 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 1066 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 1101 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 1137 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 1176 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 1215 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 1268 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 1304 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 1364 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 1401 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 1466 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 1496 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 1524 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 1633 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 2043 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 1698 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 1819 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 1864 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 1908 of file lp.c.
References 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(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsetIsZero(), 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 1985 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(), 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 2184 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 2244 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 2300 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 2353 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 2397 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 2436 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 2479 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 2518 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 2545 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 2557 of file lp.c.
References FALSE, SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIPlpiSetRealpar(), and TRUE.
Referenced by lpAlgorithm(), lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFeastol(), lpSetMarkowitz(), 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 2585 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 2610 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 2621 of file lp.c.
References SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_Real, and SCIPlpiGetRealpar().
Referenced by lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFeastol(), lpSetMarkowitz(), 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 prob problem data objlim new objective limit success pointer to store whether the parameter was actually changed
Definition at line 2657 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_CALL, SCIP_INVALID, SCIP_LPPAR_OBJLIM, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIPlpiGetRealpar(), 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 actually changed
Definition at line 2709 of file lp.c.
References FALSE, lpCheckRealpar(), SCIP_Lp::lpi, 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, SCIP_Real, SCIPlpiGetRealpar(), 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 actually changed
Definition at line 2752 of file lp.c.
References SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, lpCheckRealpar(), SCIP_Lp::lpi, 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, SCIP_Real, SCIPlpiGetRealpar(), 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 actually changed
Definition at line 2795 of file lp.c.
References SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::lastlpalgo, lpCheckRealpar(), SCIP_Lp::lpi, 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, SCIP_Real, SCIPlpiGetRealpar(), 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 2839 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 2864 of file lp.c.
References FALSE, lpCheckIntpar(), SCIP_Lp::lpifastmip, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_FASTMIP, SCIP_OKAY, and SCIP_Lp::solved.
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 2895 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 2920 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 2945 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 2970 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 2995 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 3031 of file lp.c.
References lpCheckIntpar(), SCIP_Lp::lpipricing, lpSetIntpar(), NULL, 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 3054 of file lp.c.
References lpSetPricing(), 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 3096 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 3119 of file lp.c.
References FALSE, lpCheckRealpar(), SCIP_Lp::lpiconditionlimit, lpSetRealpar(), NULL, SCIP_CALL, SCIP_LPPAR_CONDITIONLIMIT, and SCIP_OKAY.
Referenced by lpSolveStable().
◆ lpSetMarkowitz()
|
static |
sets the MARKOWITZ setting of the LP solver
- Parameters
-
lp current LP data threshhold new MARKOWITZ value success pointer to store whether the parameter was successfully changed
Definition at line 3144 of file lp.c.
References FALSE, lpCheckRealpar(), SCIP_Lp::lpimarkowitz, lpSetRealpar(), NULL, SCIP_CALL, SCIP_LPPAR_MARKOWITZ, 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 3169 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 3203 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 3233 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 3256 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 3283 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 3381 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 3411 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 3451 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 3472 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 3517 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 3568 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 3623 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 3648 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 3666 of file lp.c.
References isNewValueUnreliable(), MAX, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, SCIP_Lp::objsumnorm, REALABS, SCIP_Real, SCIPsetIsGE(), SCIPsetIsLT(), 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 3702 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 3761 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 3806 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 3851 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 3903 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 3956 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(), SCIPlpGetDualDegeneracy(), 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 3980 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 4034 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 4086 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 4139 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 4165 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 4184 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 4199 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 4214 of file lp.c.
References SCIP_Lp::cols, SCIP_Lp::cutoffbound, SCIP_Col::lpipos, SCIP_Col::lppos, 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 4268 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_Bool | updatecol, | ||
SCIP_Bool | updatestat, | ||
SCIP_Real * | down, | ||
SCIP_Real * | up, | ||
SCIP_Bool * | downvalid, | ||
SCIP_Bool * | upvalid, | ||
SCIP_Bool * | lperror | ||
) |
gets strong branching information on a column variable
- 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 updatecol should col be updated, or should it stay in its current state ? updatestat should stat be updated, or should it stay in its current state ? down stores dual bound after branching column down up stores dual bound after branching column up downvalid stores whether the returned down value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value upvalid stores whether the returned up value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value lperror pointer to store whether an unresolved LP error occurred
Definition at line 4303 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, SCIP_Lp::ncols, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Col::nsbcalls, NULL, SCIP_Col::primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_Longint, SCIP_LPERROR, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPclockStart(), SCIPclockStop(), SCIPcolIsIntegral(), SCIPlpGetObjval(), SCIPlpiStrongbranchFrac(), SCIPlpiStrongbranchInt(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsFeasIntegral(), SCIPsetIsIntegral(), SCIPstatAdd, SCIPstatIncrement, SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::solved, SCIP_Lp::strongbranching, SCIP_Stat::strongbranchtime, TRUE, SCIP_Col::validsblp, SCIP_Lp::validsollp, and SCIP_Col::var.
Referenced by SCIPgetVarStrongbranchFrac(), and SCIPgetVarStrongbranchInt().
◆ 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 4488 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, 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 4711 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 4743 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 4755 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 4775 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 4834 of file lp.c.
References SCIP_Row::cols, SCIP_Col::index, SCIP_Row::len, MAX, SCIP_Row::maxidx, SCIP_Row::maxval, 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 4904 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 4944 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, | ||
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 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 5114 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, SCIP_ROWORIGINTYPE_CONS, SCIPconsCapture(), SCIPeventfilterCreate(), SCIProwCapture(), SCIPsetInfinity(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPstatIncrement, SCIPvarIsIntegral(), TRUE, and SCIP_Col::var.
Referenced by SCIPcreateEmptyRowCons(), SCIPcreateEmptyRowConshdlr(), SCIPcreateEmptyRowSepa(), SCIPcreateEmptyRowUnspec(), SCIPcreateRowCons(), SCIPcreateRowConshdlr(), 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 5263 of file lp.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, NULL, rowUnlink(), SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_CONS, SCIPconsRelease(), 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 5303 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 5343 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 5356 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 5413 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 5434 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 5480 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 5532 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 5589 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 5644 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 5670 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 5702 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 5734 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 5751 of file lp.c.
References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, isIntegralScalar(), SCIP_Row::len, nscalars, NULL, REALABS, SCIP_Bool, SCIP_INVALID, SCIP_Longint, 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 5985 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 6053 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 6152 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 6163 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 6176 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 SCIPlpGetSol(), 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 6228 of file lp.c.
References SCIP_Row::activity, SCIP_Interval::inf, SCIP_Stat::lpcount, MAX, NULL, SCIP_INVALID, SCIP_Real, SCIProwRecalcLPActivity(), SCIPsetInfinity(), SCIP_Row::validactivitylp, and SCIP_Lp::validsollp.
Referenced by SCIPgetRowActivity(), SCIPgetRowLPActivity(), SCIPgetRowSolActivity(), SCIPlpGetDualDegeneracy(), 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 6258 of file lp.c.
References SCIP_Row::lhs, 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 6278 of file lp.c.
References SCIP_Row::cols, SCIP_Row::constant, SCIP_Interval::inf, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, 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 6340 of file lp.c.
References SCIP_Row::cols, SCIP_Row::constant, SCIP_Interval::inf, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, 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 6399 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 6426 of file lp.c.
References SCIP_Stat::domchgcount, SCIP_Interval::inf, MAX, 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 6454 of file lp.c.
References SCIP_Row::lhs, 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 6470 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, 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 6512 of file lp.c.
References SCIP_Row::lhs, 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 6530 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 6602 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(), SCIPlpGetDualDegeneracy(), 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 6623 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(), SCIPlpGetDualDegeneracy(), 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 6644 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 6675 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 6691 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 6707 of file lp.c.
References SCIP_Row::len, SCIP_Row::maxidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx.
Referenced by SCIPcutpoolAddNewRow(), and SCIPcutpoolAddRow().
◆ SCIProwGetMinidx()
gets minimal column index of row entries
- Parameters
-
row LP row set global SCIP settings
Definition at line 6723 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 6739 of file lp.c.
References SCIP_Row::len, NULL, SCIP_Row::numintcols, and rowCalcIdxsAndVals().
Referenced by SCIPgetRowNumIntCols().
◆ 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 6755 of file lp.c.
References SCIP_Row::cols, SCIP_Lp::cols, ensureSoldirectionSize(), SCIP_Stat::lpcount, SCIP_Col::lppos, SCIP_Lp::ncols, SCIP_Row::nlpcols, NULL, SCIP_Col::primsol, SCIP_CALL_ABORT, SCIP_Real, SCIProwGetLPFeasibility(), SCIPsetIsSumZero(), SCIPsolGetVal(), SCIP_Lp::soldirection, SCIP_Lp::validsoldirlp, SCIP_Lp::validsoldirsol, SCIP_Row::vals, and SCIP_Col::var.
Referenced by SCIPgetCutLPSolCutoffDistance().
◆ 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 6812 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(), 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 6853 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 6869 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 6912 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 6928 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 6968 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 7369 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 7804 of file lp.c.
References checkRowObjprod, checkRowSqrnorm, MAX, NULL, SCIP_Row::objprod, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, REALABS, SCIP_Real, SCIPlpRecalculateObjSqrNorm(), SCIPsetIsPositive(), SCIPsetIsSumGE(), SCIPsetIsSumLE(), and SCIP_Row::sqrnorm.
Referenced by SCIPgetRowObjParallelism().
◆ 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 7837 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 7861 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 7882 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 7901 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 7923 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 7974 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 8009 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 8167 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 8183 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 8232 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 8380 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 8528 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 8627 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_PROB * | prob, | ||
SCIP_EVENTQUEUE * | eventqueue | ||
) |
applies all cached changes to the LP solver
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings prob problem data eventqueue event queue
Definition at line 8675 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, lpCutoffDisabled, lpFlushAddCols(), lpFlushAddRows(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpFlushDelRows(), SCIP_Lp::lpi, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Lp::lpiobjlim, SCIP_Lp::lpsolstat, SCIP_Lp::nchgcols, SCIP_Lp::nchgrows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiGetNCols(), SCIPlpiGetNRows(), SCIPsetDebugMsg, SCIP_Lp::solved, and TRUE.
Referenced by focusnodeCleanupVars(), lpFlushAndSolve(), priceAndCutLoop(), SCIPflushLP(), SCIPlpEndDive(), SCIPlpReset(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPtreeEndProbing(), SCIPwriteLP(), and SCIPwriteMIP().
◆ 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 8738 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 8866 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 8906 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 8941 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 8980 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 9014 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 9036 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 9062 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 9082 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_MARKOWITZ, SCIP_LPPAR_OBJLIM, SCIP_LPPAR_POLISHING, SCIP_LPPAR_PRESOLVING, SCIP_LPPAR_PRICING, SCIP_LPPAR_RANDOMSEED, SCIP_LPPAR_REFACTOR, SCIP_LPPAR_ROWREPSWITCH, SCIP_LPPAR_SCALING, SCIP_LPPAR_THREADS, SCIP_LPPAR_TIMING, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OBJSEN_MINIMIZE, SCIP_OKAY, SCIP_PARAMETERWRONGVAL, SCIP_PRICING_AUTO, SCIP_VERBLEVEL_FULL, SCIPerrorMessage, SCIPlpiCreate(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPlpResetFeastol(), SCIPmessagePrintVerbInfo(), SCIPsetBarrierconvtol(), SCIPsetDualfeastol(), SCIPsetInfinity(), and TRUE.
Referenced by SCIPtransformProb().
◆ 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 9374 of file lp.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, BMSfreeMemoryNull, freeDiveChgSideArrays(), NULL, SCIP_CALL, SCIP_OKAY, SCIPlpClear(), SCIPlpiFree(), and SCIProwRelease().
Referenced by freeTransform(), and freeTransforming().
◆ SCIPlpReset()
SCIP_RETCODE SCIPlpReset | ( | SCIP_LP * | lp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_EVENTFILTER * | eventfilter | ||
) |
resets the LP to the empty LP by removing all columns and rows from LP, releasing all rows, and flushing the changes to the LP solver
- Parameters
-
lp LP data blkmem block memory set global SCIP settings prob problem data stat problem statistics eventqueue event queue eventfilter global event filter
Definition at line 9419 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::validdegeneracylp, 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 9454 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 9513 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 9584 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 9637 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(), 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 9709 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, 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 9775 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 9794 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 9806 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 9820 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 9837 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 9854 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 9876 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 9902 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 9927 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 9951 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 10037 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_PROB * | prob, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LPISTATE * | lpistate, | ||
SCIP_Bool | wasprimfeas, | ||
SCIP_Bool | wasprimchecked, | ||
SCIP_Bool | wasdualfeas, | ||
SCIP_Bool | wasdualchecked | ||
) |
loads LP state (like basis information) into solver
- Parameters
-
lp LP data blkmem block memory set global SCIP settings prob problem data eventqueue event queue lpistate LP state information (like basis information) wasprimfeas primal feasibility when LP state information was stored wasprimchecked true if the LP solution has passed the primal feasibility check wasdualfeas dual feasibility when LP state information was stored wasdualchecked true if the LP solution has passed the dual feasibility check
Definition at line 10061 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 10104 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().
◆ SCIPlpInterrupt()
SCIP_RETCODE SCIPlpInterrupt | ( | SCIP_LP * | lp, |
SCIP_Bool | interrupt | ||
) |
interrupts the currently ongoing lp solve, or disables the interrupt
- Parameters
-
lp LP data interrupt TRUE if interrupt should be set, FALSE if it should be disabled
Definition at line 10121 of file lp.c.
References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiInterrupt().
Referenced by SCIPinterruptLP().
◆ 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 10137 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 10161 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 10181 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 10195 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 10205 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().
◆ SCIPlpGetFeastol()
gets current primal feasibility tolerance of LP solver
- Parameters
-
lp current LP data
Definition at line 10250 of file lp.c.
References SCIP_Lp::feastol, and NULL.
Referenced by SCIPgetLPFeastol(), and SCIPsetExitsolPlugins().
◆ SCIPlpSetFeastol()
sets primal feasibility tolerance of LP solver
- Parameters
-
lp current LP data set global SCIP settings newfeastol new primal feasibility tolerance for LP
Definition at line 10260 of file lp.c.
References FALSE, SCIP_Lp::feastol, SCIP_Lp::lpsolstat, NULL, SCIP_LPSOLSTAT_NOTSOLVED, SCIPsetDebugMsg, and SCIP_Lp::solved.
Referenced by SCIPlpResetFeastol(), and SCIPsetLPFeastol().
◆ SCIPlpResetFeastol()
resets primal feasibility tolerance of LP solver
Sets primal feasibility tolerance to min of numerics/lpfeastolfactor * numerics/feastol and relaxfeastol.
- Parameters
-
lp current LP data set global SCIP settings
Definition at line 10285 of file lp.c.
References NULL, SCIP_INVALID, SCIPlpSetFeastol(), SCIPsetDebugMsg, SCIPsetFeastol(), SCIPsetLPFeastolFactor(), and SCIPsetRelaxfeastol().
Referenced by SCIPlpCreate(), SCIPresetLPFeastol(), SCIPsetExitsolPlugins(), and solveNode().
◆ lpalgoName()
|
static |
returns the name of the given LP algorithm
- Parameters
-
lpalgo LP algorithm
Definition at line 10302 of file lp.c.
References SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIPABORT, and SCIPerrorMessage.
Referenced by ignoreInstability(), 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 10325 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_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 10483 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_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 10674 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_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 11272 of file lp.c.
References SCIP_Stat::barrierlptime, SCIP_Lp::diving, SCIP_Stat::divinglptime, 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_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 11409 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 11501 of file lp.c.
References MAXNUMTROUBLELPMSGS, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Stat::nnumtroublelpmsgs, NULL, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIP_VERBLEVEL_NONE, SCIPmessagePrintInfo(), and SCIPmessageVFPrintInfo().
Referenced by ignoreInstability(), lpSolveStable(), SCIPlpEndDive(), and SCIPlpSolveAndEval().
◆ ignoreInstability()
|
static |
- Parameters
-
lp current LP data set global SCIP settings messagehdlr message handler stat problem statistics lpalgo LP algorithm that should be applied success was instability successfully ignored
Definition at line 11554 of file lp.c.
References SCIP_Lp::dualfeasible, lpalgoName(), SCIP_Lp::lpi, lpNumericalTroubleMessage(), NULL, SCIP_Lp::primalchecked, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPlpiIgnoreInstability(), and TRUE.
Referenced by lpSolveStable().
◆ 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? scaling LP scaling (0: none, 1: normal, 2: aggressive) 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 11583 of file lp.c.
References SCIP_Lp::cutoffbound, SCIP_Lp::diving, FALSE, SCIP_Lp::feastol, FEASTOLTIGHTFAC, SCIP_Lp::flushed, getFiniteLooseObjval(), ignoreInstability(), SCIP_Lp::looseobjvalinf, lpalgoName(), lpAlgorithm(), lpCopyIntegrality(), SCIP_Lp::lpi, SCIP_Lp::lpihaspolishing, lpNumericalTroubleMessage(), lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFastmip(), lpSetFeastol(), lpSetFromscratch(), lpSetIterationLimit(), lpSetLPInfo(), lpSetMarkowitz(), 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_UNUSED, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPerrorMessage, SCIPlpiIsIterlimExc(), SCIPlpiIsStable(), SCIPsetBarrierconvtol(), SCIPsetDualfeastol(), SCIPsetInitializeRandomSeed(), SCIPsetIsInfinity(), 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 11999 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? scaling LP scaling (0: none, 1: normal, 2: aggressive) 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 12030 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_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(), SCIPsetIsRelGE(), 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? scaling LP scaling (0: none, 1: normal, 2: aggressive) 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 12217 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 12307 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 12334 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 12396 of file lp.c.
References MAX, 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 12416 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(), 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_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPERROR, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_STATUS_TIMELIMIT, SCIP_UNUSED, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPerrorMessage, SCIPlpFlush(), SCIPlpGetDualfarkas(), SCIPlpGetLPI(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpiGetObjval(), SCIPlpiHasDualRay(), SCIPlpiInfinity(), SCIPlpiIsObjlimExc(), SCIPlpRemoveNewObsoletes(), SCIPlpUpdateAges(), SCIPmessagePrintVerbInfo(), SCIPmessagePrintWarning(), SCIPprobAllColsInLP(), SCIPsetDebugMsg, SCIPsetGetCharParam(), SCIPsetInfinity(), SCIPsetIsFeasNegative(), SCIPsetIsGE(), SCIPsetIsLT(), SCIPsetSetCharParam(), SCIPsolveIsStopped(), SCIP_Lp::solved, SCIP_Stat::status, TRUE, updateLazyBounds(), and SCIP_Stat::userinterrupt.
Referenced by focusnodeToFork(), priceAndCutLoop(), SCIPlpEndDive(), SCIPpriceLoop(), SCIPsolveDiveLP(), SCIPtreeEndProbing(), separationRoundResolveLP(), solveNodeInitialLP(), solveNodeLP(), and solveProbingLP().
◆ SCIPlpGetSolstat()
SCIP_LPSOLSTAT SCIPlpGetSolstat | ( | SCIP_LP * | lp | ) |
gets solution status of current LP
- Parameters
-
lp current LP data
Definition at line 13106 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(), SCIPlpGetDualDegeneracy(), 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 13122 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 13150 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 13161 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 13181 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 13194 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 13205 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 13273 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 13305 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 13335 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 13375 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 13433 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 13564 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 13605 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 13646 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 13728 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 coefficient
- Parameters
-
lp current LP data set global SCIP settings var problem variable that changed oldobj old objective coefficient of variable newobj new objective coefficient of variable
Definition at line 13841 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 13895 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 13922 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 13963 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 13990 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 14031 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 14052 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 14076 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 14123 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 14188 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 14210 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 14255 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 14312 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 14333 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 14351 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, SCIP_Lp::lpsolstat, MAX, SCIP_Col::maxprimsol, 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_LPALGO_BARRIER, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIPisFinite, SCIPlpGetSolstat(), SCIPlpiGetBase(), SCIPlpiGetSol(), SCIPlpIsFeasGE(), SCIPlpIsFeasGT(), SCIPlpIsFeasLE(), SCIPlpIsFeasLT(), SCIProwRecalcLPActivity(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsDualfeasNegative(), SCIPsetIsDualfeasPositive(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPvarGetName(), SCIP_Lp::solisbasic, SCIP_Lp::solved, TRUE, SCIP_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 14668 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, SCIP_Row::nlpcols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Row::nunlinked, SCIP_Col::obj, SCIP_Col::primsol, r, REALABS, SCIP_Col::redcost, SCIP_Row::rhs, SCIP_CALL, SCIP_INVALID, SCIP_Longint, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPlpiGetPrimalRay(), SCIPlpiGetSol(), SCIPlpiHasPrimalRay(), SCIPlpIsFeasGE(), SCIPlpIsFeasGT(), SCIPlpIsFeasLE(), SCIPlpIsFeasLT(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIP_Lp::solved, TRUE, SCIP_Col::ub, SCIP_Row::validactivitylp, SCIP_Col::validredcostlp, SCIP_Lp::validsollp, SCIP_Row::vals, 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 14994 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 15055 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 15230 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 15245 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 15305 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 15404 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 15502 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 15578 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 15654 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 15685 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 15716 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 15783 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 15854 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 15893 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 15932 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 16006 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 16112 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 16294 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 16318 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 16333 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 16348 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 16361 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 16384 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 16494 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 16508 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 16530 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 16545 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 17568 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 17578 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(), treeBacktrackProbing(), and treeCreateProbingNode().
◆ SCIPlpGetNUnfixedCols()
gets current number of unfixed columns in LP
- Parameters
-
lp current LP data eps numerical tolerance
Definition at line 17588 of file lp.c.
References SCIP_Lp::cols, SCIP_Lp::ncols, and NULL.
Referenced by SCIPgetNUnfixedLPCols().
◆ SCIPlpGetRows()
gets array with rows of the LP
- Parameters
-
lp current LP data
Definition at line 17615 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 17625 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(), treeBacktrackProbing(), and treeCreateProbingNode().
◆ SCIPlpGetNewcols()
gets array with newly added columns after the last mark
- Parameters
-
lp current LP data
Definition at line 17635 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 17646 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 17657 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 17668 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 17679 of file lp.c.
References SCIP_Lp::cols, FALSE, MAX, SCIP_Lp::ncols, NULL, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, and SCIPsetIsGE().
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 17710 of file lp.c.
References NULL, SCIP_Lp::objsqrnorm, and SCIP_Lp::objsqrnormunreliable.
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 17722 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 17733 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 17743 of file lp.c.
References 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 17755 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 17767 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 17777 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 17787 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 17800 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 17810 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 17820 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 17830 of file lp.c.
References SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, and NULL.
Referenced by analyzeStrongbranch(), SCIPisLPDualReliable(), SCIPlpGetDualDegeneracy(), and SCIPprobUpdateBestRootSol().
◆ SCIPlpIsSolBasic()
returns whether the current LP solution is a basic solution
- Parameters
-
lp current LP data
Definition at line 17840 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 17850 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 17860 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 17870 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 17881 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 17892 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 17904 of file lp.c.
References SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Lp::cutoffbound, SCIP_Lp::feastol, 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(), 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 18606 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().
◆ SCIPlpGetDualDegeneracy()
SCIP_RETCODE SCIPlpGetDualDegeneracy | ( | SCIP_LP * | lp, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_Real * | degeneracy, | ||
SCIP_Real * | varconsratio | ||
) |
computes two measures for dual degeneracy (dual degeneracy rate and variable-constraint ratio) based on the changes applied when reducing the problem to the optimal face
returns the dual degeneracy rate, i.e., the share of nonbasic variables with reduced cost 0 and the variable-constraint ratio, i.e., the number of unfixed variables in relation to the basis size
- Parameters
-
lp LP data set global SCIP settings stat problem statistics degeneracy pointer to store the dual degeneracy rate varconsratio pointer to store the variable-constraint ratio
Definition at line 18678 of file lp.c.
References SCIP_Lp::cols, SCIP_Lp::degeneracy, SCIP_Lp::flushed, SCIP_Lp::ncols, SCIP_Stat::nlps, SCIP_Lp::nrows, NULL, r, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIPcolGetBasisStatus(), SCIPcolGetLb(), SCIPcolGetRedcost(), SCIPcolGetUb(), SCIPcolIsInLP(), SCIPlpGetSolstat(), SCIPlpIsDualReliable(), SCIProwGetBasisStatus(), SCIProwGetDualsol(), SCIProwGetLhs(), SCIProwGetLPActivity(), SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIProwGetRhs(), SCIProwIsInLP(), SCIPsetIsDualfeasNegative(), SCIPsetIsDualfeasPositive(), SCIPsetIsEQ(), SCIPsetIsGE(), SCIPsetIsLE(), SCIPsetIsZero(), SCIP_Lp::solved, SCIP_Lp::validdegeneracylp, and SCIP_Lp::varconsratio.
Referenced by SCIPgetLPDualDegeneracy().
◆ SCIPlpIsFeasEQ()
checks, if absolute difference of values is in range of LP primal feastol
- Parameters
-
set global SCIP settings lp current LP data val1 first value to be compared val2 second value to be compared
Definition at line 18807 of file lp.c.
References EPSEQ, SCIP_Lp::feastol, NULL, and SCIPsetIsInfinity().
◆ SCIPlpIsFeasLT()
checks, if absolute difference of val1 and val2 is lower than LP primal feastol
- Parameters
-
set global SCIP settings lp current LP data val1 first value to be compared val2 second value to be compared
Definition at line 18827 of file lp.c.
References EPSLT, SCIP_Lp::feastol, NULL, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().
◆ SCIPlpIsFeasLE()
checks, if absolute difference of val1 and val2 is not greater than LP primal feastol
- Parameters
-
set global SCIP settings lp current LP data val1 first value to be compared val2 second value to be compared
Definition at line 18847 of file lp.c.
References EPSLE, SCIP_Lp::feastol, NULL, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().
◆ SCIPlpIsFeasGT()
checks, if absolute difference of val1 and val2 is greater than LP primal feastol
- Parameters
-
set global SCIP settings lp current LP data val1 first value to be compared val2 second value to be compared
Definition at line 18867 of file lp.c.
References EPSGT, SCIP_Lp::feastol, NULL, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().
◆ SCIPlpIsFeasGE()
checks, if absolute difference of val1 and val2 is not lower than -LP primal feastol
- Parameters
-
set global SCIP settings lp current LP data val1 first value to be compared val2 second value to be compared
Definition at line 18887 of file lp.c.
References EPSGE, SCIP_Lp::feastol, NULL, and SCIPsetIsInfinity().
Referenced by SCIPlpGetSol(), and SCIPlpGetUnboundedSol().
◆ SCIPlpIsFeasZero()
checks, if value is in range LP primal feasibility tolerance of 0.0
- Parameters
-
lp current LP data val value to process
Definition at line 18907 of file lp.c.
References EPSZ, SCIP_Lp::feastol, and NULL.
◆ SCIPlpIsFeasPositive()
checks, if value is greater than LP primal feasibility tolerance
- Parameters
-
lp current LP data val value to process
Definition at line 18918 of file lp.c.
References EPSP, SCIP_Lp::feastol, and NULL.
◆ SCIPlpIsFeasNegative()
checks, if value is lower than -LP primal feasibility tolerance
- Parameters
-
lp current LP data val value to process
Definition at line 18929 of file lp.c.
References EPSN, SCIP_Lp::feastol, and NULL.
Variable Documentation
◆ scalars
|
static |
additional scalars that are tried in integrality scaling
Definition at line 5747 of file lp.c.
Referenced by getActiveVariables(), multiAggregateBinvar(), presolveAddKKTAggregatedVars(), SCIPconflictAddBound(), SCIPsolGetRayVal(), SCIPsolGetVal(), SCIPvarMultiaggregate(), and writeExpandedSolutions().
◆ nscalars
|
static |
Definition at line 5748 of file lp.c.
Referenced by SCIProwCalcIntegralScalar().