methods for storing priced variables
Definition in file pricestore.c.
#include <assert.h>
#include "scip/def.h"
#include "scip/set.h"
#include "scip/clock.h"
#include "scip/lp.h"
#include "scip/var.h"
#include "scip/prob.h"
#include "scip/tree.h"
#include "scip/pricestore.h"
#include "scip/pub_message.h"
#include "scip/struct_pricestore.h"
Go to the source code of this file.
|
static |
resizes vars and score arrays to be able to store at least num entries
pricestore | pricing storage |
set | global SCIP settings |
num | minimal number of slots in array |
Definition at line 45 of file pricestore.c.
References BMSreallocMemoryArray, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Pricestore::scores, SCIP_Pricestore::vars, and SCIP_Pricestore::varssize.
Referenced by SCIPpricestoreAddVar().
|
static |
resizes bdviolvars arrays to be able to store at least num entries
pricestore | pricing storage |
set | global SCIP settings |
num | minimal number of slots in array |
Definition at line 70 of file pricestore.c.
References SCIP_Pricestore::bdviolvars, SCIP_Pricestore::bdviolvarslb, SCIP_Pricestore::bdviolvarssize, SCIP_Pricestore::bdviolvarsub, BMSreallocMemoryArray, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by SCIPpricestoreAddBdviolvar().
SCIP_RETCODE SCIPpricestoreCreate | ( | SCIP_PRICESTORE ** | pricestore | ) |
creates pricing storage
pricestore | pointer to store pricing storage |
Definition at line 96 of file pricestore.c.
References BMSallocMemory, FALSE, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, and SCIPclockCreate().
Referenced by initSolve().
SCIP_RETCODE SCIPpricestoreFree | ( | SCIP_PRICESTORE ** | pricestore | ) |
frees pricing storage
pricestore | pointer to store pricing storage |
Definition at line 125 of file pricestore.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, SCIP_OKAY, and SCIPclockFree().
Referenced by freeReoptSolve(), and freeSolve().
void SCIPpricestoreStartInitialLP | ( | SCIP_PRICESTORE * | pricestore | ) |
informs pricing storage, that the setup of the initial LP starts now
pricestore | pricing storage |
Definition at line 146 of file pricestore.c.
References SCIP_Pricestore::initiallp, SCIP_Pricestore::nvars, and TRUE.
Referenced by initLP().
void SCIPpricestoreEndInitialLP | ( | SCIP_PRICESTORE * | pricestore | ) |
informs pricing storage, that the setup of the initial LP is now finished
pricestore | pricing storage |
Definition at line 158 of file pricestore.c.
References FALSE, SCIP_Pricestore::initiallp, and SCIP_Pricestore::nvars.
Referenced by initLP().
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
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 170 of file pricestore.c.
References SCIP_Pricestore::initiallp, 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().
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
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 243 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, SCIP_Pricestore::nvarsfound, pricestoreEnsureBdviolvarsMem(), SCIP_CALL, SCIP_OKAY, SCIPsetDebugMsg, SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarCapture(), SCIPvarChgLbLocal(), SCIPvarChgUbLocal(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetUbLocal().
Referenced by addBoundViolated().
|
static |
adds given problem variable to pricing storage, if zero is not best bound w.r.t. objective function
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 298 of file pricestore.c.
References FALSE, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPpricestoreAddBdviolvar(), SCIPpricestoreAddVar(), SCIPsetDebugMsg, SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPtreeGetCurrentDepth(), SCIPvarGetBestBoundLocal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetUbLocal(), and TRUE.
Referenced by 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
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 343 of file pricestore.c.
References addBoundViolated(), SCIP_Col::len, SCIP_Col::lpipos, SCIP_Col::lppos, SCIP_Prob::ncolvars, SCIP_Pricestore::nprobpricings, SCIP_Pricestore::nprobvarsfound, 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().
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
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 472 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, 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().
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
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 561 of file pricestore.c.
References SCIP_Pricestore::bdviolvars, SCIP_Pricestore::bdviolvarslb, SCIP_Pricestore::bdviolvarsub, SCIP_Pricestore::naddedbdviolvars, SCIP_Var::name, SCIP_Pricestore::nbdviolvars, SCIP_Pricestore::nvars, SCIP_CALL, SCIP_OKAY, SCIPsetDebugMsg, SCIPvarChgLbLocal(), SCIPvarChgUbLocal(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and SCIPvarRelease().
Referenced by SCIPpriceLoop().
int SCIPpricestoreGetNVars | ( | SCIP_PRICESTORE * | pricestore | ) |
gets number of variables in pricing storage
pricestore | pricing storage |
Definition at line 601 of file pricestore.c.
References SCIP_Pricestore::naddedbdviolvars, SCIP_Pricestore::nbdviolvars, and SCIP_Pricestore::nvars.
Referenced by SCIPgetNPricevars(), SCIPpriceLoop(), SCIPpricerExec(), and SCIPpricestoreApplyVars().
int SCIPpricestoreGetNBoundResets | ( | SCIP_PRICESTORE * | pricestore | ) |
gets number of variables in pricing storage whose bounds must be reset
pricestore | pricing storage |
Definition at line 612 of file pricestore.c.
References SCIP_Pricestore::naddedbdviolvars, and SCIP_Pricestore::nbdviolvars.
Referenced by SCIPpriceLoop().
SCIP_Real SCIPpricestoreGetProbPricingTime | ( | SCIP_PRICESTORE * | pricestore | ) |
gets time needed to price existing problem variables
pricestore | pricing storage |
Definition at line 623 of file pricestore.c.
References SCIP_Pricestore::probpricingtime, and SCIPclockGetTime().
Referenced by SCIPprintPricerStatistics().
int SCIPpricestoreGetNProbPricings | ( | SCIP_PRICESTORE * | pricestore | ) |
gets total number of calls to problem variable pricing
pricestore | pricing storage |
Definition at line 633 of file pricestore.c.
References SCIP_Pricestore::nprobpricings.
Referenced by SCIPprintPricerStatistics().
int SCIPpricestoreGetNProbvarsFound | ( | SCIP_PRICESTORE * | pricestore | ) |
gets total number of times, a problem variable was priced in
pricestore | pricing storage |
Definition at line 643 of file pricestore.c.
References SCIP_Pricestore::nprobvarsfound.
Referenced by SCIPprintPricerStatistics().
int SCIPpricestoreGetNVarsFound | ( | SCIP_PRICESTORE * | pricestore | ) |
get total number of variables found so far in pricing
pricestore | pricing storage |
Definition at line 653 of file pricestore.c.
References SCIP_Pricestore::nvarsfound.
Referenced by SCIPgetNPricevarsFound().
int SCIPpricestoreGetNVarsApplied | ( | SCIP_PRICESTORE * | pricestore | ) |
get total number of variables priced into the LP so far
pricestore | pricing storage |
Definition at line 663 of file pricestore.c.
References SCIP_Pricestore::nvarsapplied.
Referenced by SCIPgetNPricevarsApplied().