Detailed Description
methods for storing priced variables
Definition in file pricestore.c.
#include "scip/clock.h"
#include "scip/lp.h"
#include "scip/pricestore.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_var.h"
#include "scip/set.h"
#include "scip/struct_lp.h"
#include "scip/struct_pricestore.h"
#include "scip/struct_prob.h"
#include "scip/struct_set.h"
#include "scip/struct_var.h"
#include "scip/tree.h"
#include "scip/var.h"
Go to the source code of this file.
Function Documentation
◆ pricestoreEnsureVarsMem()
|
static |
resizes vars and score arrays to be able to store at least num entries
- Parameters
-
pricestore pricing storage set global SCIP settings num minimal number of slots in array
Definition at line 56 of file pricestore.c.
References BMSreallocMemoryArray, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Pricestore::scores, SCIP_Pricestore::vars, and SCIP_Pricestore::varssize.
Referenced by SCIPpricestoreAddVar().
◆ pricestoreEnsureBdviolvarsMem()
|
static |
resizes bdviolvars arrays to be able to store at least num entries
- Parameters
-
pricestore pricing storage set global SCIP settings num minimal number of slots in array
Definition at line 81 of file pricestore.c.
References SCIP_Pricestore::bdviolvars, SCIP_Pricestore::bdviolvarslb, SCIP_Pricestore::bdviolvarssize, SCIP_Pricestore::bdviolvarsub, BMSreallocMemoryArray, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by SCIPpricestoreAddBdviolvar().
◆ SCIPpricestoreCreate()
SCIP_RETCODE SCIPpricestoreCreate | ( | SCIP_PRICESTORE ** | pricestore | ) |
creates pricing storage
- Parameters
-
pricestore pointer to store pricing storage
Definition at line 107 of file pricestore.c.
References BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, and SCIPclockCreate().
Referenced by initSolve().
◆ SCIPpricestoreFree()
SCIP_RETCODE SCIPpricestoreFree | ( | SCIP_PRICESTORE ** | pricestore | ) |
frees pricing storage
- Parameters
-
pricestore pointer to store pricing storage
Definition at line 136 of file pricestore.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_OKAY, and SCIPclockFree().
Referenced by freeReoptSolve(), and freeSolve().
◆ SCIPpricestoreStartInitialLP()
void SCIPpricestoreStartInitialLP | ( | SCIP_PRICESTORE * | pricestore | ) |
informs pricing storage, that the setup of the initial LP starts now
- Parameters
-
pricestore pricing storage
Definition at line 157 of file pricestore.c.
References SCIP_Pricestore::initiallp, NULL, SCIP_Pricestore::nvars, and TRUE.
Referenced by initLP().
◆ SCIPpricestoreEndInitialLP()
void SCIPpricestoreEndInitialLP | ( | SCIP_PRICESTORE * | pricestore | ) |
informs pricing storage, that the setup of the initial LP is now finished
- Parameters
-
pricestore pricing storage
Definition at line 169 of file pricestore.c.
References FALSE, SCIP_Pricestore::initiallp, NULL, and SCIP_Pricestore::nvars.
Referenced by initLP().
◆ SCIPpricestoreAddVar()
SCIP_RETCODE SCIPpricestoreAddVar | ( | SCIP_PRICESTORE * | pricestore, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_VAR * | var, | ||
SCIP_Real | score, | ||
SCIP_Bool | root | ||
) |
adds variable to pricing storage and capture it
- Parameters
-
pricestore pricing storage blkmem block memory set global SCIP settings eventqueue event queue lp LP data var priced variable score pricing score of variable (the larger, the better the variable) root are we at the root node?
Definition at line 181 of file pricestore.c.
References SCIP_Pricestore::initiallp, NULL, SCIP_Pricestore::nvars, SCIP_Pricestore::nvarsfound, pricestoreEnsureVarsMem(), SCIP_Var::scip, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetDebugMsg, SCIPsetGetPriceMaxvars(), SCIPvarCapture(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIPvarRelease(), SCIP_Pricestore::scores, SCIP_Pricestore::vars, and SCIP_Pricestore::varssize.
Referenced by addBoundViolated(), initLP(), SCIPaddPricedVar(), and SCIPpricestoreAddProbVars().
◆ SCIPpricestoreAddBdviolvar()
SCIP_RETCODE SCIPpricestoreAddBdviolvar | ( | SCIP_PRICESTORE * | pricestore, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_VAR * | var | ||
) |
adds variable where zero violates the bounds to pricing storage, capture it
- Parameters
-
pricestore pricing storage blkmem block memory set global SCIP settings stat problem statistics lp LP data branchcand branching candidate storage eventqueue event queue var variable, where zero violates the bounds
Definition at line 254 of file pricestore.c.
References SCIP_Pricestore::bdviolvars, SCIP_Pricestore::bdviolvarslb, SCIP_Pricestore::bdviolvarssize, SCIP_Pricestore::bdviolvarsub, SCIP_Pricestore::initiallp, SCIP_Pricestore::naddedbdviolvars, SCIP_Pricestore::nbdviolvars, NULL, SCIP_Pricestore::nvarsfound, pricestoreEnsureBdviolvarsMem(), SCIP_CALL, SCIP_OKAY, SCIPsetDebugMsg, SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarCapture(), SCIPvarChgLbLocal(), SCIPvarChgUbLocal(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetUbLocal().
Referenced by addBoundViolated().
◆ addBoundViolated()
|
static |
adds given problem variable to pricing storage, if zero is not best bound w.r.t. objective function
- Parameters
-
pricestore pricing storage blkmem block memory buffers set global SCIP settings stat dynamic problem statistics tree branch and bound tree lp LP data branchcand branching candidate storage eventqueue event queue var problem variable added pointer to store whether variable was added to pricing storage
Definition at line 309 of file pricestore.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPpricestoreAddBdviolvar(), SCIPpricestoreAddVar(), SCIPsetDebugMsg, SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPtreeGetCurrentDepth(), SCIPvarGetBestBoundLocal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetUbLocal(), and TRUE.
Referenced by SCIPpricestoreAddProbVars().
◆ SCIPpricestoreAddProbVars()
SCIP_RETCODE SCIPpricestoreAddProbVars | ( | SCIP_PRICESTORE * | pricestore, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | prob, | ||
SCIP_TREE * | tree, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue | ||
) |
adds problem variables with negative reduced costs to pricing storage
- Parameters
-
pricestore pricing storage blkmem block memory buffers set global SCIP settings stat dynamic problem statistics prob transformed problem after presolve tree branch and bound tree lp LP data branchcand branching candidate storage eventqueue event queue
Definition at line 354 of file pricestore.c.
References addBoundViolated(), SCIP_Col::len, SCIP_Col::lpipos, SCIP_Col::lppos, SCIP_Prob::ncolvars, SCIP_Pricestore::nprobpricings, SCIP_Pricestore::nprobvarsfound, NULL, SCIP_Prob::nvars, SCIP_Pricestore::probpricingtime, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPclockStart(), SCIPclockStop(), SCIPcolGetFarkasValue(), SCIPcolGetFeasibility(), SCIPcolGetNNonz(), SCIPcolIsInLP(), SCIPlpGetNCols(), SCIPlpGetSolstat(), SCIPpricestoreAddVar(), SCIPsetDebugMsg, SCIPsetGetPriceMaxvars(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPtreeGetCurrentDepth(), SCIPtreeHasCurrentNodeLP(), SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIP_Lp::solved, SCIP_Col::var, and SCIP_Prob::vars.
Referenced by SCIPpriceLoop().
◆ SCIPpricestoreApplyVars()
SCIP_RETCODE SCIPpricestoreApplyVars | ( | SCIP_PRICESTORE * | pricestore, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_PROB * | prob, | ||
SCIP_TREE * | tree, | ||
SCIP_LP * | lp | ||
) |
adds priced variables to the LP
- Parameters
-
pricestore pricing storage blkmem block memory buffers set global SCIP settings stat dynamic problem statistics eventqueue event queue prob transformed problem after presolve tree branch and bound tree lp LP data
Definition at line 480 of file pricestore.c.
References SCIP_Pricestore::bdviolvars, SCIP_Pricestore::bdviolvarslb, SCIP_Pricestore::bdviolvarsub, SCIP_Pricestore::initiallp, SCIP_Col::lppos, SCIP_Pricestore::naddedbdviolvars, SCIP_Pricestore::nbdviolvars, NULL, SCIP_Var::nuses, SCIP_Pricestore::nvars, SCIP_Pricestore::nvarsapplied, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpAddCol(), SCIPlpGetNCols(), SCIPpricestoreGetNVars(), SCIPsetDebugMsg, SCIPtreeGetCurrentDepth(), SCIPtreeIsFocusNodeLPConstructed(), SCIPvarColumn(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarRelease(), SCIP_Pricestore::scores, and SCIP_Pricestore::vars.
Referenced by initLP(), and SCIPpriceLoop().
◆ SCIPpricestoreResetBounds()
SCIP_RETCODE SCIPpricestoreResetBounds | ( | SCIP_PRICESTORE * | pricestore, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue | ||
) |
reset variables' bounds violated by zero to its original value
- Parameters
-
pricestore pricing storage blkmem block memory set global SCIP settings stat problem statistics lp LP data branchcand branching candidate storage eventqueue event queue
Definition at line 569 of file pricestore.c.
References SCIP_Pricestore::bdviolvars, SCIP_Pricestore::bdviolvarslb, SCIP_Pricestore::bdviolvarsub, SCIP_Pricestore::naddedbdviolvars, SCIP_Var::name, SCIP_Pricestore::nbdviolvars, NULL, SCIP_Pricestore::nvars, SCIP_CALL, SCIP_OKAY, SCIPsetDebugMsg, SCIPvarChgLbLocal(), SCIPvarChgUbLocal(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and SCIPvarRelease().
Referenced by SCIPpriceLoop().
◆ SCIPpricestoreGetNVars()
int SCIPpricestoreGetNVars | ( | SCIP_PRICESTORE * | pricestore | ) |
gets number of variables in pricing storage
- Parameters
-
pricestore pricing storage
Definition at line 609 of file pricestore.c.
References SCIP_Pricestore::naddedbdviolvars, SCIP_Pricestore::nbdviolvars, NULL, and SCIP_Pricestore::nvars.
Referenced by SCIPgetNPricevars(), SCIPpriceLoop(), SCIPpricerExec(), and SCIPpricestoreApplyVars().
◆ SCIPpricestoreGetNBoundResets()
int SCIPpricestoreGetNBoundResets | ( | SCIP_PRICESTORE * | pricestore | ) |
gets number of variables in pricing storage whose bounds must be reset
- Parameters
-
pricestore pricing storage
Definition at line 620 of file pricestore.c.
References SCIP_Pricestore::naddedbdviolvars, SCIP_Pricestore::nbdviolvars, and NULL.
Referenced by SCIPpriceLoop().
◆ SCIPpricestoreGetProbPricingTime()
SCIP_Real SCIPpricestoreGetProbPricingTime | ( | SCIP_PRICESTORE * | pricestore | ) |
gets time needed to price existing problem variables
- Parameters
-
pricestore pricing storage
Definition at line 631 of file pricestore.c.
References NULL, SCIP_Pricestore::probpricingtime, and SCIPclockGetTime().
Referenced by SCIPprintPricerStatistics().
◆ SCIPpricestoreGetNProbPricings()
int SCIPpricestoreGetNProbPricings | ( | SCIP_PRICESTORE * | pricestore | ) |
gets total number of calls to problem variable pricing
- Parameters
-
pricestore pricing storage
Definition at line 641 of file pricestore.c.
References SCIP_Pricestore::nprobpricings, and NULL.
Referenced by SCIPprintPricerStatistics().
◆ SCIPpricestoreGetNProbvarsFound()
int SCIPpricestoreGetNProbvarsFound | ( | SCIP_PRICESTORE * | pricestore | ) |
gets total number of times, a problem variable was priced in
- Parameters
-
pricestore pricing storage
Definition at line 651 of file pricestore.c.
References SCIP_Pricestore::nprobvarsfound, and NULL.
Referenced by SCIPprintPricerStatistics().
◆ SCIPpricestoreGetNVarsFound()
int SCIPpricestoreGetNVarsFound | ( | SCIP_PRICESTORE * | pricestore | ) |
get total number of variables found so far in pricing
- Parameters
-
pricestore pricing storage
Definition at line 661 of file pricestore.c.
References NULL, and SCIP_Pricestore::nvarsfound.
Referenced by SCIPgetNPricevarsFound().
◆ SCIPpricestoreGetNVarsApplied()
int SCIPpricestoreGetNVarsApplied | ( | SCIP_PRICESTORE * | pricestore | ) |
get total number of variables priced into the LP so far
- Parameters
-
pricestore pricing storage
Definition at line 671 of file pricestore.c.
References NULL, and SCIP_Pricestore::nvarsapplied.
Referenced by SCIPgetNPricevarsApplied().