Scippy

SCIP

Solving Constraint Integer Programs

stat.h File Reference

Detailed Description

internal methods for problem statistics

Author
Tobias Achterberg

Definition in file stat.h.

#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_prob.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_mem.h"
#include "scip/pub_message.h"
#include "scip/struct_stat.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPstatCreate (SCIP_STAT **stat, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
 
SCIP_RETCODE SCIPstatFree (SCIP_STAT **stat, BMS_BLKMEM *blkmem)
 
void SCIPstatDisableVarHistory (SCIP_STAT *stat)
 
void SCIPstatEnableVarHistory (SCIP_STAT *stat)
 
void SCIPstatMark (SCIP_STAT *stat)
 
void SCIPstatReset (SCIP_STAT *stat, SCIP_SET *set)
 
void SCIPstatResetImplications (SCIP_STAT *stat)
 
void SCIPstatResetPresolving (SCIP_STAT *stat)
 
void SCIPstatResetPrimalDualIntegral (SCIP_STAT *stat, SCIP_SET *set, SCIP_Bool partialreset)
 
void SCIPstatUpdatePrimalDualIntegral (SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real primalbound, SCIP_Real dualbound)
 
void SCIPstatResetCurrentRun (SCIP_STAT *stat, SCIP_Bool solved)
 
void SCIPstatResetDisplay (SCIP_STAT *stat)
 
void SCIPstatEnforceLPUpdates (SCIP_STAT *stat)
 
void SCIPstatUpdateMemsaveMode (SCIP_STAT *stat, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_MEM *mem)
 
void SCIPstatEnableOrDisableStatClocks (SCIP_STAT *stat, SCIP_Bool enable)
 

Function Documentation

SCIP_RETCODE SCIPstatCreate ( SCIP_STAT **  stat,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr 
)

creates problem statistics data

Parameters
statpointer to problem statistics data
blkmemblock memory
setglobal SCIP settings
messagehdlrmessage handler

Definition at line 43 of file stat.c.

References BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, SCIP_STATUS_UNKNOWN, SCIPclockCreate(), SCIPhistoryCreate(), SCIPstatEnableOrDisableStatClocks(), SCIPstatReset(), SCIPvisualCreate(), and TRUE.

Referenced by copyProb(), and SCIPcreateProb().

SCIP_RETCODE SCIPstatFree ( SCIP_STAT **  stat,
BMS_BLKMEM blkmem 
)

frees problem statistics data

Parameters
statpointer to problem statistics data
blkmemblock memory

Definition at line 100 of file stat.c.

References BMSfreeMemory, NULL, SCIP_OKAY, SCIPclockFree(), SCIPhistoryFree(), and SCIPvisualFree().

Referenced by SCIPfreeProb().

void SCIPstatDisableVarHistory ( SCIP_STAT stat)

diables the collection of any statistic for a variable

Parameters
statproblem statistics data

Definition at line 138 of file stat.c.

References SCIP_Stat::collectvarhistory, FALSE, and NULL.

Referenced by SCIPdisableVarHistory(), and SCIPstartProbing().

void SCIPstatEnableVarHistory ( SCIP_STAT stat)

enables the collection of statistics for a variable

Parameters
statproblem statistics data

Definition at line 148 of file stat.c.

References SCIP_Stat::collectvarhistory, NULL, and TRUE.

Referenced by SCIPenableVarHistory(), and SCIPendProbing().

void SCIPstatMark ( SCIP_STAT stat)

marks statistics to be able to reset them when solving process is freed

Parameters
statproblem statistics data

Definition at line 158 of file stat.c.

References SCIP_Stat::marked_ncolidx, SCIP_Stat::marked_nrowidx, SCIP_Stat::marked_nvaridx, SCIP_Stat::ncolidx, SCIP_Stat::nrowidx, NULL, and SCIP_Stat::nvaridx.

Referenced by SCIPtransformProb().

void SCIPstatReset ( SCIP_STAT stat,
SCIP_SET set 
)

reset statistics to the data before solving started

Parameters
statproblem statistics data
setglobal SCIP settings

Definition at line 170 of file stat.c.

References SCIP_Stat::barrierlptime, SCIP_Stat::barrierzeroittime, SCIP_Stat::conflictlptime, SCIP_Stat::copyclock, SCIP_Stat::divinglptime, SCIP_Stat::domchgcount, SCIP_Stat::duallptime, SCIP_Stat::dualzeroittime, FALSE, SCIP_Stat::firstlpdualbound, SCIP_Stat::firstlptime, SCIP_Stat::firstprimalbound, SCIP_Stat::firstprimalheur, SCIP_Stat::firstprimaltime, SCIP_Stat::firstsolgap, SCIP_Stat::glbhistory, SCIP_Stat::lastsolgap, SCIP_Stat::lexduallptime, SCIP_Stat::lpcount, SCIP_Stat::lpsoltime, SCIP_Stat::marked_ncolidx, SCIP_Stat::marked_nrowidx, SCIP_Stat::marked_nvaridx, SCIP_Stat::maxcopytime, SCIP_Stat::maxtotaldepth, SCIP_Stat::memsavemode, SCIP_Stat::mincopytime, SCIP_Stat::nactiveconss, SCIP_Stat::nbarrierlpiterations, SCIP_Stat::nbarrierlps, SCIP_Stat::nbarrierzeroitlps, SCIP_Stat::nboundchgs, SCIP_Stat::nclockskipsleft, SCIP_Stat::ncolidx, SCIP_Stat::nconflictlpiterations, SCIP_Stat::nconflictlps, SCIP_Stat::nconfrestarts, SCIP_Stat::ncopies, SCIP_Stat::ncreatednodes, SCIP_Stat::ndivesetcalls, SCIP_Stat::ndivesetlpiterations, SCIP_Stat::ndivesetlps, SCIP_Stat::ndivinglpiterations, SCIP_Stat::ndivinglps, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::ndualzeroitlps, SCIP_Stat::nenabledconss, SCIP_Stat::nexternalsolsfound, SCIP_Stat::nholechgs, SCIP_Stat::ninitconssadded, SCIP_Stat::ninitlpiterations, SCIP_Stat::ninitlps, SCIP_Stat::nisstoppedcalls, SCIP_Stat::nlexduallpiterations, SCIP_Stat::nlexduallps, SCIP_Stat::nlexdualresolvelpiterations, SCIP_Stat::nlexdualresolvelps, SCIP_Stat::nlpiterations, SCIP_Stat::nlps, SCIP_Stat::nlpsolsfound, SCIP_Stat::nlpsoltime, SCIP_Stat::nnlps, SCIP_Stat::nnodelpiterations, SCIP_Stat::nnodelps, SCIP_Stat::nnodesbeforefirst, SCIP_Stat::nodeactivationtime, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Stat::nprimalzeroitlps, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, SCIP_Stat::npssolsfound, SCIP_Stat::nrootboundchgs, SCIP_Stat::nrootfirstlpiterations, SCIP_Stat::nrootintfixings, SCIP_Stat::nrootlpiterations, SCIP_Stat::nrootlps, SCIP_Stat::nrootsblpiterations, SCIP_Stat::nrootstrongbranchs, SCIP_Stat::nrowidx, SCIP_Stat::nruns, SCIP_Stat::nrunsbeforefirst, SCIP_Stat::nsbdivinglpiterations, SCIP_Stat::nsbdivinglps, SCIP_Stat::nsbdowndomchgs, SCIP_Stat::nsblpiterations, SCIP_Stat::nsbsolsfound, SCIP_Stat::nsbupdomchgs, SCIP_Stat::nstrongbranchs, SCIP_Stat::ntotalinternalnodes, SCIP_Stat::ntotalnodes, NULL, SCIP_Stat::nvaridx, SCIP_Stat::presolvingtime, SCIP_Stat::prevrunnvars, SCIP_Stat::primallptime, SCIP_Stat::primalzeroittime, SCIP_Stat::pseudosoltime, SCIP_Stat::sbsoltime, SCIP_DEFAULT_INFINITY, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_UNKNOWN, SCIPclockReset(), SCIPhistoryReset(), SCIPstatResetImplications(), SCIPstatResetPresolving(), SCIPstatResetPrimalDualIntegral(), SCIP_Stat::solindex, SCIP_Stat::solvingtime, SCIP_Stat::strongbranchtime, SCIP_Stat::strongpropclock, SCIP_Stat::totaldivesetdepth, and SCIP_Stat::vsidsweight.

Referenced by freeTransform(), and SCIPstatCreate().

void SCIPstatResetImplications ( SCIP_STAT stat)

reset implication counter

Parameters
statproblem statistics data

Definition at line 298 of file stat.c.

References SCIP_Stat::nimplications, and NULL.

Referenced by SCIPstatReset().

void SCIPstatResetPrimalDualIntegral ( SCIP_STAT stat,
SCIP_SET set,
SCIP_Bool  partialreset 
)

reset primal-dual integral

Parameters
statproblem statistics data
setglobal SCIP settings
partialresetshould time and integral value be kept? (in combination with no statistical reset, integrals are added for each problem to be solved)

Definition at line 333 of file stat.c.

References SCIP_Stat::lastdualbound, SCIP_Stat::lastlowerbound, SCIP_Stat::lastprimalbound, SCIP_Stat::lastupperbound, NULL, SCIP_Stat::previntegralevaltime, SCIP_Stat::previousgap, SCIP_Stat::primaldualintegral, SCIP_UNKNOWN, and SCIPsetInfinity().

Referenced by freeTransform(), and SCIPstatReset().

void SCIPstatUpdatePrimalDualIntegral ( SCIP_STAT stat,
SCIP_SET set,
SCIP_PROB transprob,
SCIP_PROB origprob,
SCIP_Real  upperbound,
SCIP_Real  lowerbound 
)

update the primal-dual integral statistic. method accepts + and - SCIPsetInfinity() as values for upper and lower bound, respectively

Parameters
statproblem statistics data
setglobal SCIP settings
transprobtransformed problem
origproboriginal problem
upperboundcurrent upper bound in transformed problem, or infinity
lowerboundcurrent lower bound in transformed space, or -infinity

Definition at line 359 of file stat.c.

References SCIP_Stat::lastdualbound, SCIP_Stat::lastlowerbound, SCIP_Stat::lastprimalbound, SCIP_Stat::lastupperbound, MAX, NULL, SCIP_Stat::previntegralevaltime, SCIP_Stat::previousgap, SCIP_Stat::primaldualintegral, REALABS, SCIP_Real, SCIP_UNKNOWN, SCIPclockGetTime(), SCIPprobExternObjval(), SCIPsetIsEQ(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPsetIsZero(), and SCIP_Stat::solvingtime.

Referenced by exitPresolve(), SCIPnodeUpdateLowerbound(), SCIPsolveCIP(), and SCIPstoreSolutionGap().

void SCIPstatResetDisplay ( SCIP_STAT stat)

resets display statistics, such that a new header line is displayed before the next display line

Parameters
statproblem statistics data

Definition at line 490 of file stat.c.

References SCIP_Stat::lastdispnode, SCIP_Stat::ndisplines, and NULL.

Referenced by SCIPsolve(), and SCIPstatResetCurrentRun().

void SCIPstatEnforceLPUpdates ( SCIP_STAT stat)

increases LP count, such that all lazy updates depending on the LP are enforced again

Parameters
statproblem statistics data

Definition at line 501 of file stat.c.

References SCIP_Stat::lpcount, and NULL.

Referenced by initSolve().

void SCIPstatUpdateMemsaveMode ( SCIP_STAT stat,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
SCIP_MEM mem 
)

depending on the current memory usage, switches mode flag to standard or memory saving mode

Parameters
statproblem statistics data
setglobal SCIP settings
messagehdlrmessage handler
memblock memory pools

Definition at line 511 of file stat.c.

References FALSE, SCIP_Stat::memsavemode, SCIP_Stat::nnodes, NULL, SCIP_Longint, SCIP_Real, SCIP_VERBLEVEL_HIGH, SCIPmemGetUsed(), SCIPmessagePrintVerbInfo(), SCIPsetIsLT(), and TRUE.

Referenced by SCIPsolveCIP().

void SCIPstatEnableOrDisableStatClocks ( SCIP_STAT stat,
SCIP_Bool  enable 
)

enables or disables all statistic clocks of stat concerning LP execution time, strong branching time, etc.

Note
: The (pre-)solving time clocks which are relevant for the output during (pre-)solving are not affected by this method
See also
: For completely disabling all timing of SCIP, consider setting the parameter timing/enabled to FALSE
Parameters
statSCIP statistics
enableshould the LP clocks be enabled?

Definition at line 556 of file stat.c.

References SCIP_Stat::barrierlptime, SCIP_Stat::conflictlptime, SCIP_Stat::copyclock, SCIP_Stat::divinglptime, SCIP_Stat::duallptime, SCIP_Stat::lexduallptime, SCIP_Stat::lpsoltime, SCIP_Stat::nlpsoltime, SCIP_Stat::nodeactivationtime, NULL, SCIP_Stat::primallptime, SCIP_Stat::pseudosoltime, SCIP_Stat::sbsoltime, SCIPclockEnableOrDisable(), SCIP_Stat::strongbranchtime, and SCIP_Stat::strongpropclock.

Referenced by SCIPenableOrDisableStatisticTiming(), and SCIPstatCreate().