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().