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 46 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 71 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 97 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 126 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 147 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 159 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 171 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 244 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 299 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 344 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 473 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 562 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 602 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 613 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 624 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 634 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 644 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 654 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 664 of file pricestore.c.
References NULL, and SCIP_Pricestore::nvarsapplied.
Referenced by SCIPgetNPricevarsApplied().