Detailed Description
methods and datastructures for propagators
Definition in file prop.c.
#include <assert.h>
#include <string.h>
#include "scip/def.h"
#include "scip/set.h"
#include "scip/stat.h"
#include "scip/clock.h"
#include "scip/paramset.h"
#include "scip/var.h"
#include "scip/scip.h"
#include "scip/prop.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/struct_prop.h"
Go to the source code of this file.
Function Documentation
◆ SCIP_DECL_PARAMCHGD() [1/2]
|
static |
method to call, when the priority of a propagator was changed
Definition at line 71 of file prop.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPparamGetData(), SCIPparamGetInt(), and SCIPsetPropPriority().
◆ SCIP_DECL_PARAMCHGD() [2/2]
|
static |
method to call, when the presolving priority of a propagator was changed
Definition at line 86 of file prop.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPparamGetData(), SCIPparamGetInt(), and SCIPsetPropPresolPriority().
◆ SCIPpropCopyInclude()
SCIP_RETCODE SCIPpropCopyInclude | ( | SCIP_PROP * | prop, |
SCIP_SET * | set | ||
) |
copies the given propagator to a new scip
- Parameters
-
prop propagator set SCIP_SET of SCIP to copy to
Definition at line 100 of file prop.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPpropGetName(), and SCIPsetDebugMsg.
Referenced by SCIPsetCopyPlugins().
◆ doPropCreate()
|
static |
internal method for creating a propagator
- Parameters
-
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 119 of file prop.c.
References BMSallocMemory, BMSclearMemory, BMSduplicateMemoryArray, FALSE, NULL, paramname, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_MAXSTRLEN, SCIP_MAXTREEDEPTH, SCIP_OKAY, SCIP_PARAMETERWRONGVAL, SCIP_PRESOLTIMING_EXHAUSTIVE, SCIP_PRESOLTIMING_FAST, SCIP_PRESOLTIMING_FINAL, SCIP_PRESOLTIMING_MAX, SCIP_PRESOLTIMING_MEDIUM, SCIP_PRESOLTIMING_NONE, SCIP_PROPTIMING_AFTERLPLOOP, SCIP_PROPTIMING_ALWAYS, SCIP_PROPTIMING_BEFORELP, SCIP_PROPTIMING_DURINGLPLOOP, SCIPclockCreate(), SCIPmessagePrintError(), SCIPsetAddBoolParam(), SCIPsetAddIntParam(), SCIPsnprintf(), and TRUE.
Referenced by SCIPpropCreate().
◆ SCIPpropCreate()
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
- Parameters
-
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 doPropCreate(), NULL, SCIP_CALL_FINALLY, SCIP_OKAY, and SCIPpropFree().
Referenced by SCIPincludeProp(), and SCIPincludePropBasic().
◆ SCIPpropFree()
SCIP_RETCODE SCIPpropFree | ( | SCIP_PROP ** | prop, |
SCIP_SET * | set | ||
) |
calls destructor and frees memory of propagator
- Parameters
-
prop pointer to propagator data structure set global SCIP settings
Definition at line 284 of file prop.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
Referenced by SCIPpropCreate().
◆ SCIPpropInit()
SCIP_RETCODE SCIPpropInit | ( | SCIP_PROP * | prop, |
SCIP_SET * | set | ||
) |
initializes propagator
- Parameters
-
prop propagator set global SCIP settings
Definition at line 314 of file prop.c.
References 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.
Referenced by SCIPsetIncludeExternalCode().
◆ SCIPpropExit()
SCIP_RETCODE SCIPpropExit | ( | SCIP_PROP * | prop, |
SCIP_SET * | set | ||
) |
calls exit method of propagator
- Parameters
-
prop propagator set global SCIP settings
Definition at line 380 of file prop.c.
References FALSE, SCIP_Prop::initialized, SCIP_Prop::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Prop::setuptime.
Referenced by SCIPsetInitPlugins().
◆ SCIPpropInitpre()
SCIP_RETCODE SCIPpropInitpre | ( | SCIP_PROP * | prop, |
SCIP_SET * | set | ||
) |
informs propagator that the presolving process is being started
- Parameters
-
prop propagator set global SCIP settings
Definition at line 410 of file prop.c.
References 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.
Referenced by SCIPsetExitPlugins().
◆ SCIPpropExitpre()
SCIP_RETCODE SCIPpropExitpre | ( | SCIP_PROP * | prop, |
SCIP_SET * | set | ||
) |
informs propagator that the presolving process is finished
- Parameters
-
prop propagator set global SCIP settings
Definition at line 446 of file prop.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Prop::setuptime.
Referenced by SCIPsetExitPlugins().
◆ SCIPpropInitsol()
SCIP_RETCODE SCIPpropInitsol | ( | SCIP_PROP * | prop, |
SCIP_SET * | set | ||
) |
informs propagator that the prop and bound process is being started
- Parameters
-
prop propagator set global SCIP settings
Definition at line 470 of file prop.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Prop::setuptime.
Referenced by SCIPsetExitprePlugins().
◆ SCIPpropExitsol()
SCIP_RETCODE SCIPpropExitsol | ( | SCIP_PROP * | prop, |
SCIP_SET * | set, | ||
SCIP_Bool | restart | ||
) |
informs propagator that the prop and bound process data is being freed
- Parameters
-
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 NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Prop::setuptime.
Referenced by SCIPsetInitsolPlugins().
◆ SCIPpropPresol()
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
- Parameters
-
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 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, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_SUCCESS, SCIP_UNBOUNDED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIPsetDebugMsg.
Referenced by presolveRound().
◆ SCIPpropExec()
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
- Parameters
-
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 SCIP_Prop::delay, 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, SCIP_Prop::sbproptime, 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().
◆ SCIPpropResolvePropagation()
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();
- Note
- it is sufficient to explain the relaxed bound change
- Parameters
-
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 SCIP_Prop::name, SCIP_Prop::nrespropcalls, NULL, SCIP_Prop::resproptime, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_SUCCESS, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPgetVarLbAtIndex(), SCIPgetVarUbAtIndex(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by conflictResolveBound().
◆ SCIPpropSetCopy()
void SCIPpropSetCopy | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPCOPY((*propcopy)) | |||
) |
sets copy method of propagator
- Parameters
-
prop propagator
Definition at line 810 of file prop.c.
References NULL.
Referenced by SCIPsetPropCopy().
◆ SCIPpropSetFree()
void SCIPpropSetFree | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPFREE((*propfree)) | |||
) |
sets destructor method of propagator
- Parameters
-
prop propagator
Definition at line 821 of file prop.c.
References NULL.
Referenced by SCIPsetPropFree().
◆ SCIPpropSetInit()
void SCIPpropSetInit | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPINIT((*propinit)) | |||
) |
sets initialization method of propagator
- Parameters
-
prop propagator
Definition at line 832 of file prop.c.
References NULL.
Referenced by SCIPsetPropInit().
◆ SCIPpropSetExit()
void SCIPpropSetExit | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPEXIT((*propexit)) | |||
) |
sets deinitialization method of propagator
- Parameters
-
prop propagator
Definition at line 843 of file prop.c.
References NULL.
Referenced by SCIPsetPropExit().
◆ SCIPpropSetInitsol()
void SCIPpropSetInitsol | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPINITSOL((*propinitsol)) | |||
) |
sets solving process initialization method of propagator
- Parameters
-
prop propagator
Definition at line 854 of file prop.c.
References NULL.
Referenced by SCIPsetPropInitsol().
◆ SCIPpropSetExitsol()
void SCIPpropSetExitsol | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPEXITSOL((*propexitsol)) | |||
) |
sets solving process deinitialization method of propagator
- Parameters
-
prop propagator
Definition at line 865 of file prop.c.
References NULL.
Referenced by SCIPsetPropExitsol().
◆ SCIPpropSetInitpre()
void SCIPpropSetInitpre | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPINITPRE((*propinitpre)) | |||
) |
sets preprocessing initialization method of propagator
- Parameters
-
prop propagator
Definition at line 876 of file prop.c.
References NULL.
Referenced by SCIPsetPropInitpre().
◆ SCIPpropSetExitpre()
void SCIPpropSetExitpre | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPEXITPRE((*propexitpre)) | |||
) |
sets preprocessing deinitialization method of propagator
- Parameters
-
prop propagator
Definition at line 889 of file prop.c.
References NULL.
Referenced by SCIPsetPropExitpre().
◆ SCIPpropSetPresol()
SCIP_RETCODE SCIPpropSetPresol | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPPRESOL((*proppresol)) | , | ||
int | presolpriority, | ||
int | presolmaxrounds, | ||
SCIP_PRESOLTIMING | presoltiming | ||
) |
sets presolving method of propagator
- Parameters
-
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 SCIP_Prop::maxprerounds, SCIP_Prop::name, NULL, SCIP_Prop::presolpriority, SCIP_Prop::presoltiming, SCIP_OKAY, SCIP_PARAMETERWRONGVAL, SCIP_PRESOLTIMING_MAX, and SCIPmessagePrintError().
Referenced by SCIPsetPropPresol().
◆ SCIPpropSetResprop()
void SCIPpropSetResprop | ( | SCIP_PROP * | prop, |
SCIP_DECL_PROPRESPROP((*propresprop)) | |||
) |
sets propagation conflict resolving callback of propagator
- Parameters
-
prop propagator
Definition at line 930 of file prop.c.
References NULL.
Referenced by SCIPsetPropResprop().
◆ SCIPpropSetPriority()
sets priority of propagator
- Parameters
-
prop propagator set global SCIP settings priority new priority of the propagator
Definition at line 981 of file prop.c.
References FALSE, NULL, and SCIP_Prop::priority.
Referenced by SCIPsetPropPriority().
◆ SCIPpropSetPresolPriority()
sets presolving priority of propagator
- Parameters
-
prop propagator set global SCIP settings presolpriority new priority of the propagator
Definition at line 995 of file prop.c.
References FALSE, NULL, and SCIP_Prop::presolpriority.
Referenced by SCIPsetPropPresolPriority().
◆ SCIPpropEnableOrDisableClocks()
enables or disables all clocks of prop
, depending on the value of the flag
- Parameters
-
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 NULL, SCIP_Prop::presoltime, SCIP_Prop::proptime, SCIP_Prop::resproptime, SCIP_Prop::sbproptime, SCIPclockEnableOrDisable(), and SCIP_Prop::setuptime.