Scippy

SCIP

Solving Constraint Integer Programs

pricestore.h File Reference

Detailed Description

internal methods for storing priced variables

Author
Tobias Achterberg

Definition in file pricestore.h.

#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_event.h"
#include "scip/type_lp.h"
#include "scip/type_var.h"
#include "scip/type_prob.h"
#include "scip/type_tree.h"
#include "scip/type_pricestore.h"
#include "scip/type_branch.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPpricestoreCreate (SCIP_PRICESTORE **pricestore)
 
SCIP_RETCODE SCIPpricestoreFree (SCIP_PRICESTORE **pricestore)
 
void SCIPpricestoreStartInitialLP (SCIP_PRICESTORE *pricestore)
 
void SCIPpricestoreEndInitialLP (SCIP_PRICESTORE *pricestore)
 
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)
 
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)
 
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)
 
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)
 
SCIP_RETCODE SCIPpricestoreResetBounds (SCIP_PRICESTORE *pricestore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue)
 
int SCIPpricestoreGetNVars (SCIP_PRICESTORE *pricestore)
 
int SCIPpricestoreGetNBoundResets (SCIP_PRICESTORE *pricestore)
 
SCIP_Real SCIPpricestoreGetProbPricingTime (SCIP_PRICESTORE *pricestore)
 
int SCIPpricestoreGetNProbPricings (SCIP_PRICESTORE *pricestore)
 
int SCIPpricestoreGetNProbvarsFound (SCIP_PRICESTORE *pricestore)
 
int SCIPpricestoreGetNVarsFound (SCIP_PRICESTORE *pricestore)
 
int SCIPpricestoreGetNVarsApplied (SCIP_PRICESTORE *pricestore)
 

Function Documentation

◆ SCIPpricestoreCreate()

SCIP_RETCODE SCIPpricestoreCreate ( SCIP_PRICESTORE **  pricestore)

creates pricing storage

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

◆ SCIPpricestoreFree()

SCIP_RETCODE SCIPpricestoreFree ( SCIP_PRICESTORE **  pricestore)

frees pricing storage

Parameters
pricestorepointer to store pricing storage

Definition at line 125 of file pricestore.c.

References BMSfreeMemory, BMSfreeMemoryArrayNull, 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
pricestorepricing storage

Definition at line 146 of file pricestore.c.

References SCIP_Pricestore::initiallp, 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
pricestorepricing storage

Definition at line 158 of file pricestore.c.

References FALSE, SCIP_Pricestore::initiallp, 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
pricestorepricing storage
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpLP data
varpriced variable
scorepricing score of variable (the larger, the better the variable)
rootare 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().

◆ 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
pricestorepricing storage
blkmemblock memory
setglobal SCIP settings
statproblem statistics
lpLP data
branchcandbranching candidate storage
eventqueueevent queue
varvariable, 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().

◆ 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 
)

◆ 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 
)

◆ 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
pricestorepricing storage
blkmemblock memory
setglobal SCIP settings
statproblem statistics
lpLP data
branchcandbranching candidate storage
eventqueueevent 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().

◆ SCIPpricestoreGetNVars()

int SCIPpricestoreGetNVars ( SCIP_PRICESTORE pricestore)

gets number of variables in pricing storage

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

◆ SCIPpricestoreGetNBoundResets()

int SCIPpricestoreGetNBoundResets ( SCIP_PRICESTORE pricestore)

gets number of variables in pricing storage whose bounds must be reset

Parameters
pricestorepricing storage

Definition at line 612 of file pricestore.c.

References SCIP_Pricestore::naddedbdviolvars, and SCIP_Pricestore::nbdviolvars.

Referenced by SCIPpriceLoop().

◆ SCIPpricestoreGetProbPricingTime()

SCIP_Real SCIPpricestoreGetProbPricingTime ( SCIP_PRICESTORE pricestore)

gets time needed to price existing problem variables

Parameters
pricestorepricing storage

Definition at line 623 of file pricestore.c.

References SCIP_Pricestore::probpricingtime, and SCIPclockGetTime().

Referenced by SCIPprintPricerStatistics().

◆ SCIPpricestoreGetNProbPricings()

int SCIPpricestoreGetNProbPricings ( SCIP_PRICESTORE pricestore)

gets total number of calls to problem variable pricing

Parameters
pricestorepricing storage

Definition at line 633 of file pricestore.c.

References SCIP_Pricestore::nprobpricings.

Referenced by SCIPprintPricerStatistics().

◆ SCIPpricestoreGetNProbvarsFound()

int SCIPpricestoreGetNProbvarsFound ( SCIP_PRICESTORE pricestore)

gets total number of times, a problem variable was priced in

Parameters
pricestorepricing storage

Definition at line 643 of file pricestore.c.

References SCIP_Pricestore::nprobvarsfound.

Referenced by SCIPprintPricerStatistics().

◆ SCIPpricestoreGetNVarsFound()

int SCIPpricestoreGetNVarsFound ( SCIP_PRICESTORE pricestore)

get total number of variables found so far in pricing

Parameters
pricestorepricing storage

Definition at line 653 of file pricestore.c.

References SCIP_Pricestore::nvarsfound.

Referenced by SCIPgetNPricevarsFound().

◆ SCIPpricestoreGetNVarsApplied()

int SCIPpricestoreGetNVarsApplied ( SCIP_PRICESTORE pricestore)

get total number of variables priced into the LP so far

Parameters
pricestorepricing storage

Definition at line 663 of file pricestore.c.

References SCIP_Pricestore::nvarsapplied.

Referenced by SCIPgetNPricevarsApplied().