internal methods for propagators
Definition in file prop.h.
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_result.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_lp.h"
#include "scip/type_message.h"
#include "scip/type_var.h"
#include "scip/type_prop.h"
#include "scip/pub_prop.h"
Go to the source code of this file.
SCIP_RETCODE SCIPpropCopyInclude | ( | SCIP_PROP * | prop, |
SCIP_SET * | set ) |
copies the given propagator to a new scip
Definition at line 100 of file prop.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPpropGetName(), and SCIPsetDebugMsg.
Referenced by SCIPsetCopyPlugins().
SCIP_RETCODE SCIPpropCreate | ( | SCIP_PROP ** | prop, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem, | ||
const char * | name, | ||
const char * | desc, | ||
int | priority, | ||
int | freq, | ||
SCIP_Bool | delay, | ||
SCIP_PROPTIMING | timingmask, | ||
int | presolpriority, | ||
int | presolmaxrounds, | ||
SCIP_PRESOLTIMING | presoltiming, | ||
SCIP_DECL_PROPCOPY((*propcopy)) | , | ||
SCIP_DECL_PROPFREE((*propfree)) | , | ||
SCIP_DECL_PROPINIT((*propinit)) | , | ||
SCIP_DECL_PROPEXIT((*propexit)) | , | ||
SCIP_DECL_PROPINITPRE((*propinitpre)) | , | ||
SCIP_DECL_PROPEXITPRE((*propexitpre)) | , | ||
SCIP_DECL_PROPINITSOL((*propinitsol)) | , | ||
SCIP_DECL_PROPEXITSOL((*propexitsol)) | , | ||
SCIP_DECL_PROPPRESOL((*proppresol)) | , | ||
SCIP_DECL_PROPEXEC((*propexec)) | , | ||
SCIP_DECL_PROPRESPROP((*propresprop)) | , | ||
SCIP_PROPDATA * | propdata ) |
creates a propagator
prop | pointer to propagator data structure |
set | global SCIP settings |
messagehdlr | message handler |
blkmem | block memory for parameter settings |
name | name of propagator |
desc | description of propagator |
priority | priority of the propagator (>= 0: before, < 0: after constraint handlers) |
freq | frequency for calling propagator |
delay | should propagator be delayed, if other propagators found reductions? |
timingmask | positions in the node solving loop where propagator should be executed |
presolpriority | priority of the propagator (>= 0: before, < 0: after constraint handlers) |
presolmaxrounds | maximal number of presolving rounds the propagator participates in (-1: no limit) |
presoltiming | timing mask of the propagator's presolving method |
propdata | propagator data |
Definition at line 242 of file prop.c.
References assert(), doPropCreate(), NULL, SCIP_Bool, SCIP_CALL_FINALLY, SCIP_DECL_PROPCOPY, SCIP_DECL_PROPEXEC, SCIP_DECL_PROPEXIT, SCIP_DECL_PROPEXITPRE, SCIP_DECL_PROPEXITSOL, SCIP_DECL_PROPFREE, SCIP_DECL_PROPINIT, SCIP_DECL_PROPINITPRE, SCIP_DECL_PROPINITSOL, SCIP_DECL_PROPPRESOL, SCIP_DECL_PROPRESPROP, SCIP_OKAY, and SCIPpropFree().
Referenced by SCIPincludeProp(), and SCIPincludePropBasic().
SCIP_RETCODE SCIPpropFree | ( | SCIP_PROP ** | prop, |
SCIP_SET * | set ) |
calls destructor and frees memory of propagator
prop | pointer to propagator data structure |
set | global SCIP settings |
Definition at line 284 of file prop.c.
References assert(), BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
Referenced by SCIPpropCreate().
SCIP_RETCODE SCIPpropInit | ( | SCIP_PROP * | prop, |
SCIP_SET * | set ) |
initializes propagator
prop | propagator |
set | global SCIP settings |
Definition at line 314 of file prop.c.
References assert(), FALSE, SCIP_Prop::initialized, SCIP_Prop::lastnaddconss, SCIP_Prop::lastnaddholes, SCIP_Prop::lastnaggrvars, SCIP_Prop::lastnchgbds, SCIP_Prop::lastnchgcoefs, SCIP_Prop::lastnchgsides, SCIP_Prop::lastnchgvartypes, SCIP_Prop::lastndelconss, SCIP_Prop::lastnfixedvars, SCIP_Prop::lastnupgdconss, SCIP_Prop::naddconss, SCIP_Prop::naddholes, SCIP_Prop::naggrvars, SCIP_Prop::name, SCIP_Prop::ncalls, SCIP_Prop::nchgbds, SCIP_Prop::nchgcoefs, SCIP_Prop::nchgsides, SCIP_Prop::nchgvartypes, SCIP_Prop::ncutoffs, SCIP_Prop::ndelconss, SCIP_Prop::ndomredsfound, SCIP_Prop::nfixedvars, SCIP_Prop::npresolcalls, SCIP_Prop::nrespropcalls, NULL, SCIP_Prop::nupgdconss, SCIP_Prop::presoltime, SCIP_Prop::proptime, SCIP_Prop::resproptime, SCIP_Prop::sbproptime, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Prop::setuptime, TRUE, and SCIP_Prop::wasdelayed.
SCIP_RETCODE SCIPpropExit | ( | SCIP_PROP * | prop, |
SCIP_SET * | set ) |
calls exit method of propagator
prop | propagator |
set | global SCIP settings |
Definition at line 380 of file prop.c.
References assert(), FALSE, SCIP_Prop::initialized, SCIP_Prop::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Prop::setuptime.
SCIP_RETCODE SCIPpropInitpre | ( | SCIP_PROP * | prop, |
SCIP_SET * | set ) |
informs propagator that the presolving process is being started
prop | propagator |
set | global SCIP settings |
Definition at line 410 of file prop.c.
References assert(), FALSE, SCIP_Prop::lastnaddconss, SCIP_Prop::lastnaddholes, SCIP_Prop::lastnaggrvars, SCIP_Prop::lastnchgbds, SCIP_Prop::lastnchgcoefs, SCIP_Prop::lastnchgsides, SCIP_Prop::lastnchgvartypes, SCIP_Prop::lastndelconss, SCIP_Prop::lastnfixedvars, SCIP_Prop::lastnupgdconss, NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIP_Prop::setuptime, and SCIP_Prop::wasdelayed.
SCIP_RETCODE SCIPpropExitpre | ( | SCIP_PROP * | prop, |
SCIP_SET * | set ) |
informs propagator that the presolving is finished
informs propagator that the presolving process is finished
prop | propagator |
set | global SCIP settings |
Definition at line 446 of file prop.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Prop::setuptime.
SCIP_RETCODE SCIPpropInitsol | ( | SCIP_PROP * | prop, |
SCIP_SET * | set ) |
informs propagator that the branch and bound process is being started
informs propagator that the prop and bound process is being started
prop | propagator |
set | global SCIP settings |
Definition at line 470 of file prop.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Prop::setuptime.
SCIP_RETCODE SCIPpropExitsol | ( | SCIP_PROP * | prop, |
SCIP_SET * | set, | ||
SCIP_Bool | restart ) |
informs propagator that the branch and bound process data is being freed
informs propagator that the prop and bound process data is being freed
prop | propagator |
set | global SCIP settings |
restart | was this exit solve call triggered by a restart? |
Definition at line 494 of file prop.c.
References assert(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Prop::setuptime.
SCIP_RETCODE SCIPpropPresol | ( | SCIP_PROP * | prop, |
SCIP_SET * | set, | ||
SCIP_PRESOLTIMING | timing, | ||
int | nrounds, | ||
int * | nfixedvars, | ||
int * | naggrvars, | ||
int * | nchgvartypes, | ||
int * | nchgbds, | ||
int * | naddholes, | ||
int * | ndelconss, | ||
int * | naddconss, | ||
int * | nupgdconss, | ||
int * | nchgcoefs, | ||
int * | nchgsides, | ||
SCIP_RESULT * | result ) |
executes presolving method of propagator
prop | propagator |
set | global SCIP settings |
timing | current presolving timing |
nrounds | number of presolving rounds already done |
nfixedvars | pointer to total number of variables fixed of all presolvers |
naggrvars | pointer to total number of variables aggregated of all presolvers |
nchgvartypes | pointer to total number of variable type changes of all presolvers |
nchgbds | pointer to total number of variable bounds tightened of all presolvers |
naddholes | pointer to total number of domain holes added of all presolvers |
ndelconss | pointer to total number of deleted constraints of all presolvers |
naddconss | pointer to total number of added constraints of all presolvers |
nupgdconss | pointer to total number of upgraded constraints of all presolvers |
nchgcoefs | pointer to total number of changed coefficients of all presolvers |
nchgsides | pointer to total number of changed left/right hand sides of all presolvers |
result | pointer to store the result of the callback method |
Definition at line 519 of file prop.c.
References assert(), SCIP_Prop::lastnaddconss, SCIP_Prop::lastnaddholes, SCIP_Prop::lastnaggrvars, SCIP_Prop::lastnchgbds, SCIP_Prop::lastnchgcoefs, SCIP_Prop::lastnchgsides, SCIP_Prop::lastnchgvartypes, SCIP_Prop::lastndelconss, SCIP_Prop::lastnfixedvars, SCIP_Prop::lastnupgdconss, SCIP_Prop::maxprerounds, SCIP_Prop::naddconss, SCIP_Prop::naddholes, SCIP_Prop::naggrvars, SCIP_Prop::name, SCIP_Prop::nchgbds, SCIP_Prop::nchgcoefs, SCIP_Prop::nchgsides, SCIP_Prop::nchgvartypes, SCIP_Prop::ndelconss, SCIP_Prop::nfixedvars, SCIP_Prop::npresolcalls, NULL, SCIP_Prop::nupgdconss, SCIP_Prop::presoltime, SCIP_Prop::presoltiming, result, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_SUCCESS, SCIP_UNBOUNDED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIPsetDebugMsg.
Referenced by presolveRound().
SCIP_RETCODE SCIPpropExec | ( | SCIP_PROP * | prop, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
int | depth, | ||
SCIP_Bool | execdelayed, | ||
SCIP_Bool | instrongbranching, | ||
SCIP_PROPTIMING | proptiming, | ||
SCIP_RESULT * | result ) |
calls execution method of propagator
prop | propagator |
set | global SCIP settings |
stat | dynamic problem statistics |
depth | depth of current node |
execdelayed | execute propagator even if it is marked to be delayed |
instrongbranching | are we currently doing strong branching? |
proptiming | current point in the node solving process |
result | pointer to store the result of the callback method |
Definition at line 645 of file prop.c.
References assert(), SCIP_Prop::delay, depth, SCIP_Prop::freq, SCIP_Prop::name, SCIP_Stat::nboundchgs, SCIP_Prop::ncalls, SCIP_Prop::ncutoffs, SCIP_Prop::ndomredsfound, SCIP_Stat::nholechgs, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, NULL, SCIP_Prop::proptime, result, SCIP_Prop::sbproptime, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DELAYED, SCIP_DELAYNODE, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPsetDebugMsg, and SCIP_Prop::wasdelayed.
Referenced by propagationRound().
SCIP_RETCODE SCIPpropResolvePropagation | ( | SCIP_PROP * | prop, |
SCIP_SET * | set, | ||
SCIP_VAR * | infervar, | ||
int | inferinfo, | ||
SCIP_BOUNDTYPE | inferboundtype, | ||
SCIP_BDCHGIDX * | bdchgidx, | ||
SCIP_Real | relaxedbd, | ||
SCIP_RESULT * | result ) |
resolves the given conflicting bound, that was deduced by the given propagator, by putting all "reason" bounds leading to the deduction into the conflict queue with calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar();
prop | propagator |
set | global SCIP settings |
infervar | variable whose bound was deduced by the constraint |
inferinfo | user inference information attached to the bound change |
inferboundtype | bound that was deduced (lower or upper bound) |
bdchgidx | bound change index, representing the point of time where change took place |
relaxedbd | the relaxed bound |
result | pointer to store the result of the callback method |
Definition at line 737 of file prop.c.
References assert(), SCIP_Prop::name, SCIP_Prop::nrespropcalls, NULL, SCIP_Prop::resproptime, result, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_SUCCESS, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPgetVarLbAtIndex(), SCIPgetVarUbAtIndex(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by conflictResolveBound().
sets priority of propagator
prop | propagator |
set | global SCIP settings |
priority | new priority of the propagator |
Definition at line 981 of file prop.c.
References assert(), FALSE, NULL, and SCIP_Prop::priority.
Referenced by SCIPsetPropPriority().
sets presolving priority of propagator
prop | propagator |
set | global SCIP settings |
presolpriority | new priority of the propagator |
Definition at line 995 of file prop.c.
References assert(), FALSE, NULL, and SCIP_Prop::presolpriority.
Referenced by SCIPsetPropPresolPriority().
void SCIPpropSetCopy | ( | SCIP_PROP * | prop | ) |
sets copy method of propagator
prop | propagator copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs |
Definition at line 810 of file prop.c.
References assert(), NULL, and SCIP_DECL_PROPCOPY.
Referenced by SCIPsetPropCopy().
void SCIPpropSetFree | ( | SCIP_PROP * | prop | ) |
sets destructor method of propagator
prop | propagator destructor of propagator |
Definition at line 821 of file prop.c.
References assert(), NULL, and SCIP_DECL_PROPFREE.
Referenced by SCIPsetPropFree().
void SCIPpropSetInit | ( | SCIP_PROP * | prop | ) |
sets initialization method of propagator
prop | propagator initialize propagator |
Definition at line 832 of file prop.c.
References assert(), NULL, and SCIP_DECL_PROPINIT.
Referenced by SCIPsetPropInit().
void SCIPpropSetExit | ( | SCIP_PROP * | prop | ) |
sets deinitialization method of propagator
prop | propagator deinitialize propagator |
Definition at line 843 of file prop.c.
References assert(), NULL, and SCIP_DECL_PROPEXIT.
Referenced by SCIPsetPropExit().
void SCIPpropSetInitsol | ( | SCIP_PROP * | prop | ) |
sets solving process initialization method of propagator
prop | propagator solving process initialization method of propagator |
Definition at line 854 of file prop.c.
References assert(), and NULL.
Referenced by SCIPsetPropInitsol().
void SCIPpropSetExitsol | ( | SCIP_PROP * | prop | ) |
sets solving process deinitialization method of propagator
prop | propagator solving process deinitialization method of propagator |
Definition at line 865 of file prop.c.
References assert(), NULL, and SCIP_DECL_PROPEXITSOL.
Referenced by SCIPsetPropExitsol().
void SCIPpropSetInitpre | ( | SCIP_PROP * | prop | ) |
sets preprocessing initialization method of propagator
prop | propagator preprocessing initialization method of propagator |
Definition at line 876 of file prop.c.
References assert(), and NULL.
Referenced by SCIPsetPropInitpre().
void SCIPpropSetExitpre | ( | SCIP_PROP * | prop | ) |
sets preprocessing deinitialization method of propagator
prop | propagator preprocessing deinitialization method of propagator |
Definition at line 889 of file prop.c.
References assert(), and NULL.
Referenced by SCIPsetPropExitpre().
SCIP_RETCODE SCIPpropSetPresol | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPPRESOL((*proppresol)) | , | ||
int | presolpriority, | ||
int | presolmaxrounds, | ||
SCIP_PRESOLTIMING | presoltiming ) |
sets presolving method of propagator
prop | propagator |
presolpriority | presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) |
presolmaxrounds | maximal number of presolving rounds the propagator participates in (-1: no limit) |
presoltiming | timing mask of the propagator's presolving method |
Definition at line 900 of file prop.c.
References assert(), SCIP_Prop::maxprerounds, SCIP_Prop::name, NULL, SCIP_Prop::presolpriority, SCIP_Prop::presoltiming, SCIP_DECL_PROPPRESOL, SCIP_OKAY, SCIP_PARAMETERWRONGVAL, SCIP_PRESOLTIMING_MAX, and SCIPmessagePrintError().
Referenced by SCIPsetPropPresol().
void SCIPpropSetResprop | ( | SCIP_PROP * | prop | ) |
sets propagation conflict resolving callback of propagator
prop | propagator propagation conflict resolving callback |
Definition at line 930 of file prop.c.
References assert(), NULL, and SCIP_DECL_PROPRESPROP.
Referenced by SCIPsetPropResprop().
enables or disables all clocks of prop
, depending on the value of the flag
prop | the propagator for which all clocks should be enabled or disabled |
enable | should the clocks of the propagator be enabled? |
Definition at line 1019 of file prop.c.
References assert(), NULL, SCIP_Prop::presoltime, SCIP_Prop::proptime, SCIP_Prop::resproptime, SCIP_Prop::sbproptime, SCIP_Bool, SCIPclockEnableOrDisable(), and SCIP_Prop::setuptime.