Detailed Description
Constraint handler for variable bound constraints \(lhs \le x + c y \le rhs\).
This constraint handler handles a special type of linear constraints, namely variable bound constraints. A variable bound constraint has the form
\[ lhs \leq x + c y \leq rhs \]
with coefficient \(c \in Q\), \(lhs\in Q \cup \{-\infty\}\), \(rhs\in Q \cup \{\infty\}\), and decision variables \(x\) (non-binary) and \(y\) (binary or integer).
- Note
- Although x must be non-binary when the constraint is created, it can happen that x is upgraded to a binary variable, e.g. due to aggregations or bound changes in presolving.
Definition in file cons_varbound.c.
#include "blockmemshell/memory.h"
#include "scip/cons_linear.h"
#include "scip/cons_setppc.h"
#include "scip/cons_varbound.h"
#include "scip/pub_cons.h"
#include "scip/pub_event.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_var.h"
#include "scip/scip_conflict.h"
#include "scip/scip_cons.h"
#include "scip/scip_cut.h"
#include "scip/scip_event.h"
#include "scip/scip_general.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_prob.h"
#include "scip/scip_probing.h"
#include "scip/scip_sol.h"
#include "scip/scip_tree.h"
#include "scip/scip_var.h"
#include <ctype.h>
#include <string.h>
Go to the source code of this file.
Macros | |
Constraint handler properties | |
#define | CONSHDLR_NAME "varbound" |
#define | CONSHDLR_DESC "variable bounds lhs <= x + c*y <= rhs, x non-binary, y non-continuous" |
#define | CONSHDLR_SEPAPRIORITY +900000 |
#define | CONSHDLR_ENFOPRIORITY -500000 |
#define | CONSHDLR_CHECKPRIORITY -500000 |
#define | CONSHDLR_SEPAFREQ 0 |
#define | CONSHDLR_PROPFREQ 1 |
#define | CONSHDLR_EAGERFREQ 100 |
#define | CONSHDLR_MAXPREROUNDS -1 |
#define | CONSHDLR_DELAYSEPA FALSE |
#define | CONSHDLR_DELAYPROP FALSE |
#define | CONSHDLR_NEEDSCONS TRUE |
#define | CONSHDLR_PRESOLTIMING (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_MEDIUM) |
#define | CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
#define | EVENTHDLR_NAME "varbound" |
#define | EVENTHDLR_DESC "bound change event handler for variable bound constraints" |
#define | LINCONSUPGD_PRIORITY +50000 |
Default parameter values | |
#define | DEFAULT_PRESOLPAIRWISE TRUE |
#define | DEFAULT_MAXLPCOEF 1e+09 |
#define | DEFAULT_USEBDWIDENING TRUE |
#define | MAXSCALEDCOEF 1000LL |
Typedefs | |
typedef enum Proprule | PROPRULE |
Enumerations | |
enum | Proprule { PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, PROPRULE_INVALID, PROPRULE_INVALID = 0, PROPRULE_1 = 1, PROPRULE_2 = 2, PROPRULE_3 = 3, PROPRULE_4 = 4, PROPRULE_1_CORETIMES = 1, PROPRULE_2_EDGEFINDING = 2, PROPRULE_3_TTEF = 3, PROPRULE_1_RHS = 1, PROPRULE_1_LHS = 2, PROPRULE_1_RANGEDROW = 3, PROPRULE_INVALID = 0, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, PROPRULE_INVALID, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, PROPRULE_0, PROPRULE_1, PROPRULE_INTLB, PROPRULE_INTUB, PROPRULE_INVALID } |
Functions | |
Local methods | |
static | SCIP_DECL_SORTPTRCOMP (consVarboundComp) |
static SCIP_RETCODE | conshdlrdataCreate (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata, SCIP_EVENTHDLR *eventhdlr) |
static void | conshdlrdataFree (SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata) |
static SCIP_RETCODE | catchEvents (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr) |
static SCIP_RETCODE | dropEvents (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr) |
static SCIP_RETCODE | consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, SCIP_VAR *var, SCIP_VAR *vbdvar, SCIP_Real vbdcoef, SCIP_Real lhs, SCIP_Real rhs) |
static SCIP_RETCODE | consdataFree (SCIP *scip, SCIP_CONSDATA **consdata) |
static SCIP_RETCODE | createRelaxation (SCIP *scip, SCIP_CONS *cons) |
static SCIP_RETCODE | addRelaxation (SCIP *scip, SCIP_CONS *cons, SCIP_Bool *infeasible) |
static SCIP_Bool | checkCons (SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool checklprows) |
static SCIP_RETCODE | resolvePropagation (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *infervar, PROPRULE proprule, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real inferbd, SCIP_Bool usebdwidening) |
static SCIP_RETCODE | analyzeConflict (SCIP *scip, SCIP_CONS *cons, SCIP_VAR *infervar, SCIP_Real inferbd, PROPRULE proprule, SCIP_BOUNDTYPE boundtype, SCIP_Bool usebdwidening) |
static SCIP_RETCODE | separateCons (SCIP *scip, SCIP_CONS *cons, SCIP_Bool usebdwidening, SCIP_SOL *sol, SCIP_RESULT *result) |
static SCIP_RETCODE | chgLhs (SCIP *scip, SCIP_CONS *cons, SCIP_Real lhs) |
static SCIP_RETCODE | chgRhs (SCIP *scip, SCIP_CONS *cons, SCIP_Real rhs) |
static SCIP_RETCODE | propagateCons (SCIP *scip, SCIP_CONS *cons, SCIP_Bool usebdwidening, SCIP_Bool *cutoff, int *nchgbds, int *nchgsides, int *ndelconss) |
static void | checkRedundancySide (SCIP *scip, SCIP_VAR *var, SCIP_VAR *vbdvar, SCIP_Real coef0, SCIP_Real coef1, SCIP_Real side0, SCIP_Real side1, SCIP_Bool *sideequal, SCIP_Bool *cons0sidered, SCIP_Bool *cons1sidered, SCIP_Bool islhs) |
static SCIP_RETCODE | preprocessConstraintPairs (SCIP *scip, SCIP_CONS **conss, int nconss, SCIP_Bool *cutoff, int *nchgbds, int *ndelconss, int *nchgcoefs, int *nchgsides) |
static SCIP_RETCODE | prettifyConss (SCIP *scip, SCIP_CONS **conss, int nconss, int *nchgcoefs, int *nchgsides) |
static SCIP_RETCODE | applyFixings (SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, SCIP_Bool *cutoff, int *nchgbds, int *ndelconss, int *naddconss) |
static SCIP_RETCODE | tightenCoefs (SCIP *scip, SCIP_CONS *cons, int *nchgcoefs, int *nchgsides, int *ndelconss, SCIP_Bool *cutoff, int *nchgbds) |
static SCIP_RETCODE | upgradeConss (SCIP *scip, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_CONS **conss, int nconss, SCIP_Bool *cutoff, int *naggrvars, int *nchgbds, int *nchgcoefs, int *nchgsides, int *ndelconss, int *naddconss) |
Linear constraint upgrading | |
static | SCIP_DECL_LINCONSUPGD (linconsUpgdVarbound) |
Callback methods | |
static | SCIP_DECL_CONSHDLRCOPY (conshdlrCopyVarbound) |
static | SCIP_DECL_CONSFREE (consFreeVarbound) |
static | SCIP_DECL_CONSEXITSOL (consExitsolVarbound) |
static | SCIP_DECL_CONSDELETE (consDeleteVarbound) |
static | SCIP_DECL_CONSTRANS (consTransVarbound) |
static | SCIP_DECL_CONSINITLP (consInitlpVarbound) |
static | SCIP_DECL_CONSSEPALP (consSepalpVarbound) |
static | SCIP_DECL_CONSSEPASOL (consSepasolVarbound) |
static | SCIP_DECL_CONSENFOLP (consEnfolpVarbound) |
static | SCIP_DECL_CONSENFORELAX (consEnforelaxVarbound) |
static | SCIP_DECL_CONSENFOPS (consEnfopsVarbound) |
static | SCIP_DECL_CONSCHECK (consCheckVarbound) |
static | SCIP_DECL_CONSPROP (consPropVarbound) |
static | SCIP_DECL_CONSPRESOL (consPresolVarbound) |
static | SCIP_DECL_CONSRESPROP (consRespropVarbound) |
static | SCIP_DECL_CONSLOCK (consLockVarbound) |
static | SCIP_DECL_CONSPRINT (consPrintVarbound) |
static | SCIP_DECL_CONSCOPY (consCopyVarbound) |
static | SCIP_DECL_CONSPARSE (consParseVarbound) |
static | SCIP_DECL_CONSGETVARS (consGetVarsVarbound) |
static | SCIP_DECL_CONSGETNVARS (consGetNVarsVarbound) |
static | SCIP_DECL_EVENTEXEC (eventExecVarbound) |
Interface methods | |
SCIP_RETCODE | SCIPincludeConshdlrVarbound (SCIP *scip) |
SCIP_RETCODE | SCIPcreateConsVarbound (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *var, SCIP_VAR *vbdvar, SCIP_Real vbdcoef, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode) |
SCIP_RETCODE | SCIPcreateConsBasicVarbound (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *var, SCIP_VAR *vbdvar, SCIP_Real vbdcoef, SCIP_Real lhs, SCIP_Real rhs) |
SCIP_Real | SCIPgetLhsVarbound (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetRhsVarbound (SCIP *scip, SCIP_CONS *cons) |
SCIP_VAR * | SCIPgetVarVarbound (SCIP *scip, SCIP_CONS *cons) |
SCIP_VAR * | SCIPgetVbdvarVarbound (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetVbdcoefVarbound (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetDualsolVarbound (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetDualfarkasVarbound (SCIP *scip, SCIP_CONS *cons) |
SCIP_ROW * | SCIPgetRowVarbound (SCIP *scip, SCIP_CONS *cons) |
Macro Definition Documentation
◆ CONSHDLR_NAME
#define CONSHDLR_NAME "varbound" |
Definition at line 73 of file cons_varbound.c.
Referenced by addRelaxation(), SCIP_DECL_CONSFREE(), SCIP_DECL_CONSHDLRCOPY(), SCIP_DECL_CONSPRESOL(), SCIPcreateConsVarbound(), SCIPgetDualfarkasVarbound(), SCIPgetDualsolVarbound(), SCIPgetLhsVarbound(), SCIPgetRhsVarbound(), SCIPgetRowVarbound(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), SCIPincludeConshdlrVarbound(), and separateCons().
◆ CONSHDLR_DESC
Definition at line 74 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_SEPAPRIORITY
#define CONSHDLR_SEPAPRIORITY +900000 |
priority of the constraint handler for separation
Definition at line 75 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_ENFOPRIORITY
#define CONSHDLR_ENFOPRIORITY -500000 |
priority of the constraint handler for constraint enforcing
Definition at line 76 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_CHECKPRIORITY
#define CONSHDLR_CHECKPRIORITY -500000 |
priority of the constraint handler for checking feasibility
Definition at line 77 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_SEPAFREQ
#define CONSHDLR_SEPAFREQ 0 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 78 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_PROPFREQ
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 79 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_EAGERFREQ
#define CONSHDLR_EAGERFREQ 100 |
frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only
Definition at line 80 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_MAXPREROUNDS
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 83 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_DELAYSEPA
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 84 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_DELAYPROP
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 85 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_NEEDSCONS
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 86 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_PRESOLTIMING
#define CONSHDLR_PRESOLTIMING (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_MEDIUM) |
Definition at line 88 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ CONSHDLR_PROP_TIMING
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 89 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ EVENTHDLR_NAME
#define EVENTHDLR_NAME "varbound" |
Definition at line 91 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ EVENTHDLR_DESC
#define EVENTHDLR_DESC "bound change event handler for variable bound constraints" |
Definition at line 92 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ LINCONSUPGD_PRIORITY
#define LINCONSUPGD_PRIORITY +50000 |
priority of the constraint handler for upgrading of linear constraints
Definition at line 94 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ DEFAULT_PRESOLPAIRWISE
#define DEFAULT_PRESOLPAIRWISE TRUE |
should pairwise constraint comparison be performed in presolving?
Definition at line 103 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ DEFAULT_MAXLPCOEF
#define DEFAULT_MAXLPCOEF 1e+09 |
maximum coefficient in varbound constraint to be added as a row into LP
Definition at line 104 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ DEFAULT_USEBDWIDENING
#define DEFAULT_USEBDWIDENING TRUE |
should bound widening be used to initialize conflict analysis?
Definition at line 105 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
◆ MAXSCALEDCOEF
#define MAXSCALEDCOEF 1000LL |
maximal coefficient value after scaling
Definition at line 108 of file cons_varbound.c.
Referenced by prettifyConss().
Typedef Documentation
◆ PROPRULE
Definition at line 144 of file cons_varbound.c.
Enumeration Type Documentation
◆ Proprule
enum Proprule |
Propagation rules
Definition at line 137 of file cons_varbound.c.
Function Documentation
◆ SCIP_DECL_SORTPTRCOMP()
|
static |
compares two varbound constraints cons1: \( lhs1 \le x1 + c1 y1 \le rhs1 \) and cons2: \( lhs2 \le x2 + c2 y2 \le rhs2 \) w.r.t. the indices of the contained variables
returns -1 if:
- the index of x1 is smaller than the index of x2 or
- x1 = x2 and the index of y1 is smaller than the index of y2 or
- x1 = x2 and y1 = y2 and cons2 was recently changed, but cons1 not
returns 0 if x1 = x2, y1 = y2, and the changed status of both constraints is the same
and returns +1 otherwise
Definition at line 164 of file cons_varbound.c.
References conshdlrdataCreate(), NULL, SCIPconsGetData(), and SCIPvarGetIndex().
◆ conshdlrdataCreate()
|
static |
creates constraint handler data for varbound constraint handler
- Parameters
-
scip SCIP data structure conshdlrdata pointer to store the constraint handler data eventhdlr event handler
Definition at line 200 of file cons_varbound.c.
References conshdlrdataFree(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.
Referenced by SCIP_DECL_SORTPTRCOMP(), and SCIPincludeConshdlrVarbound().
◆ conshdlrdataFree()
|
static |
frees constraint handler data for varbound constraint handler
- Parameters
-
scip SCIP data structure conshdlrdata pointer to the constraint handler data
Definition at line 219 of file cons_varbound.c.
References catchEvents(), NULL, and SCIPfreeBlockMemory.
Referenced by conshdlrdataCreate(), and SCIP_DECL_CONSFREE().
◆ catchEvents()
|
static |
catches events for variables
- Parameters
-
scip SCIP data structure cons variable bound constraint eventhdlr event handler
Definition at line 236 of file cons_varbound.c.
References dropEvents(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPcatchVarEvent(), and SCIPconsGetData().
Referenced by applyFixings(), conshdlrdataFree(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsVarbound().
◆ dropEvents()
|
static |
drops events for variables
- Parameters
-
scip SCIP data structure cons variable bound constraint eventhdlr event handler
Definition at line 256 of file cons_varbound.c.
References consdataCreate(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), and SCIPdropVarEvent().
Referenced by applyFixings(), catchEvents(), and SCIP_DECL_CONSDELETE().
◆ consdataCreate()
|
static |
creates a variable bound constraint data object
- Parameters
-
scip SCIP data structure consdata pointer to store the variable bound constraint data var variable x that has variable bound vbdvar binary, integer or implicit integer bounding variable y vbdcoef coefficient c of bounding variable y lhs left hand side of variable bound inequality rhs right hand side of variable bound inequality
Definition at line 276 of file cons_varbound.c.
References consdataFree(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPallocBlockMemory, SCIPcaptureVar(), SCIPerrorMessage, SCIPgetTransformedVar(), SCIPinfinity(), SCIPisGT(), SCIPisInfinity(), SCIPisTransformed(), SCIPisZero(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetType(), and TRUE.
Referenced by dropEvents(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsVarbound().
◆ consdataFree()
|
static |
frees a variable bound constraint data
- Parameters
-
scip SCIP data structure consdata pointer to the variable bound constraint
Definition at line 351 of file cons_varbound.c.
References createRelaxation(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPreleaseRow(), and SCIPreleaseVar().
Referenced by consdataCreate(), and SCIP_DECL_CONSDELETE().
◆ createRelaxation()
|
static |
creates LP row corresponding to variable bound constraint
- Parameters
-
scip SCIP data structure cons variable bound constraint
Definition at line 376 of file cons_varbound.c.
References addRelaxation(), NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), and SCIPcreateEmptyRowCons().
Referenced by addRelaxation(), consdataFree(), and separateCons().
◆ addRelaxation()
|
static |
adds linear relaxation of variable bound constraint to the LP
- Parameters
-
scip SCIP data structure cons variable bound constraint infeasible pointer to store whether infeasibility was detected
Definition at line 397 of file cons_varbound.c.
References checkCons(), CONSHDLR_NAME, createRelaxation(), FALSE, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_VARTYPE_CONTINUOUS, SCIPaddRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebug, SCIPdebugMsg, SCIPerrorMessage, SCIPfindConshdlr(), SCIPisGT(), SCIPprintRow(), SCIProwIsInLP(), and SCIPvarGetType().
Referenced by createRelaxation(), and SCIP_DECL_CONSINITLP().
◆ checkCons()
|
static |
returns whether the given solution is feasible for the given variable bound constraint
- Parameters
-
scip SCIP data structure cons variable bound constraint sol solution to check, NULL for current solution checklprows Do constraints represented by rows in the current LP have to be checked?
Definition at line 445 of file cons_varbound.c.
References FALSE, MAX, NULL, resolvePropagation(), SCIP_Real, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPgetSolVal(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFeasZero(), SCIPisInfinity(), SCIPrelDiff(), SCIProwIsInLP(), SCIPupdateSolLPConsViolation(), and TRUE.
Referenced by addRelaxation(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSENFORELAX(), and separateCons().
◆ resolvePropagation()
|
static |
resolves a propagation on the given variable by supplying the variables needed for applying the corresponding propagation rule (see propagateCons()): (1) left hand side and bounds on y -> lower bound on x (2) left hand side and upper bound on x -> bound on y (3) right hand side and bounds on y -> upper bound on x (4) right hand side and lower bound on x -> bound on y
- Parameters
-
scip SCIP data structure cons constraint that inferred the bound change infervar variable that was deduced proprule propagation rule that deduced the bound change boundtype the type of the changed bound (lower or upper bound) bdchgidx bound change index (time stamp of bound change), or NULL for current time inferbd inference bound which needs to be explained usebdwidening should bound widening be used to in conflict analysis?
Definition at line 500 of file cons_varbound.c.
References analyzeConflict(), NULL, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, REALABS, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPadjustedVarLb(), SCIPadjustedVarUb(), SCIPconsGetData(), SCIPconsGetName(), SCIPerrorMessage, SCIPfeastol(), SCIPgetHugeValue(), SCIPisEQ(), SCIPisInfinity(), SCIPisZero(), SCIPvarGetType(), and SCIPvarIsIntegral().
Referenced by analyzeConflict(), checkCons(), and SCIP_DECL_CONSRESPROP().
◆ analyzeConflict()
|
static |
analyze infeasibility
- Parameters
-
scip SCIP data structure cons variable bound constraint infervar variable that was deduced inferbd bound which led to infeasibility proprule propagation rule that deduced the bound change boundtype the type of the changed bound (lower or upper bound) usebdwidening should bound widening be used to in conflict analysis?
Definition at line 777 of file cons_varbound.c.
References FALSE, MAX, NULL, REALABS, resolvePropagation(), SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_CONFTYPE_PROPAGATION, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIPaddConflictLb(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictUb(), SCIPadjustedVarLb(), SCIPadjustedVarUb(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPfeastol(), SCIPgetConflictVarLb(), SCIPgetConflictVarUb(), SCIPgetStage(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPisConflictAnalysisApplicable(), SCIPvarIsIntegral(), and separateCons().
Referenced by propagateCons(), resolvePropagation(), and separateCons().
◆ separateCons()
|
static |
separates the given variable bound constraint
- Parameters
-
scip SCIP data structure cons variable bound constraint usebdwidening should bound widening be used to in conflict analysis? sol primal CIP solution, NULL for current LP solution result pointer to store the result of the separation call
Definition at line 943 of file cons_varbound.c.
References analyzeConflict(), checkCons(), chgLhs(), CONSHDLR_NAME, createRelaxation(), FALSE, NULL, PROPRULE_1, PROPRULE_3, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_CUTOFF, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIP_VARTYPE_CONTINUOUS, SCIPaddRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetRowSolFeasibility(), SCIPinferVarLbCons(), SCIPinferVarUbCons(), SCIPisFeasEQ(), SCIPisFeasNegative(), SCIPisGT(), SCIPisInfinity(), SCIPisLT(), SCIProwIsInLP(), SCIPvarGetLbLocal(), SCIPvarGetType(), SCIPvarGetUbLocal(), and TRUE.
Referenced by analyzeConflict(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFORELAX(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
◆ chgLhs()
|
static |
sets left hand side of varbound constraint
- Parameters
-
scip SCIP data structure cons linear constraint lhs new left hand side
Definition at line 1074 of file cons_varbound.c.
References chgRhs(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPisLT(), SCIPisPositive(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPunlockVarCons(), and TRUE.
Referenced by preprocessConstraintPairs(), propagateCons(), and separateCons().
◆ chgRhs()
|
static |
sets right hand side of varbound constraint
- Parameters
-
scip SCIP data structure cons linear constraint rhs new right hand side
Definition at line 1154 of file cons_varbound.c.
References FALSE, NULL, propagateCons(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsTransformed(), SCIPinfinity(), SCIPisEQ(), SCIPisGT(), SCIPisInfinity(), SCIPisPositive(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPunlockVarCons(), and TRUE.
Referenced by chgLhs(), preprocessConstraintPairs(), and propagateCons().
◆ propagateCons()
|
static |
propagation method for variable bound constraint
- Parameters
-
scip SCIP data structure cons variable bound constraint usebdwidening should bound widening be used to in conflict analysis? cutoff pointer to store whether the node can be cut off nchgbds pointer to count number of bound changes nchgsides pointer to count number of side changes ndelconss pointer to count number of deleted constraints, or NULL
Definition at line 1235 of file cons_varbound.c.
References analyzeConflict(), checkRedundancySide(), chgLhs(), chgRhs(), FALSE, NULL, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVING, SCIP_VARSTATUS_MULTAGGR, SCIPadjustedVarLb(), SCIPadjustedVarUb(), SCIPchgVarLb(), SCIPchgVarUb(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPfixVar(), SCIPgetStage(), SCIPincConsAge(), SCIPinferVarLbCons(), SCIPinferVarUbCons(), SCIPinfinity(), SCIPinProbing(), SCIPinRepropagation(), SCIPisEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFeasLT(), SCIPisGT(), SCIPisInfinity(), SCIPisLT(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPresetConsAge(), SCIPunmarkConsPropagate(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE.
Referenced by chgRhs(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), and upgradeConss().
◆ checkRedundancySide()
|
static |
- Parameters
-
scip SCIP data structure var variable x that has variable bound vbdvar binary, integer or implicit integer bounding variable y coef0 coefficient c0 of bounding variable y for constraint 0 coef1 coefficient c1 of bounding variable y for constraint 1 side0 one side of variable bound inequality for constraint 0 side1 one side of variable bound inequality for constraint 1 sideequal pointer to store if both constraints have the same redundancy on the given side cons0sidered pointer to store if side of constraint 0 is redundant cons1sidered pointer to store if side of constraint 1 is redundant islhs do we check the left or the right hand side
Definition at line 1633 of file cons_varbound.c.
References eps, FALSE, MAX, MIN, NULL, preprocessConstraintPairs(), REALABS, SCIP_Bool, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPepsilon(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPisFeasIntegral(), SCIPisInfinity(), SCIPisPositive(), SCIPvarGetLbGlobal(), SCIPvarGetType(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by preprocessConstraintPairs(), and propagateCons().
◆ preprocessConstraintPairs()
|
static |
compares each constraint with all other constraints for possible redundancy and removes or changes constraint
we will order all constraint to have constraints with same variables next to each other to speed up presolving
consider two constraints like lhs1 <= x + b1*y <= rhs1 and lhs2 <= x + b2*y <= rhs2 we are doing the following presolving steps:
if( b1 == b2 ) newlhs = MAX(lhs1, lhs2) newrhs = MIN(rhs1, rhs2) updateSides delete one constraint else if( ((b1 > 0) == (b2 > 0)) && (lhs1 != -inf && lhs2 != -inf) || (rhs1 != inf && rhs2 != inf) )
(i.e. both constraint have either a valid lhs or a valid rhs and infinity is on the same side and the coeffcients have the same size ) if( y is binary ) if( lhs1 != -inf ) newlhs = MAX(lhs1, lhs2) newb = newlhs - MAX(lhs1 - b1, lhs2 - b2) else newrhs = MIN(lhs1, lhs2) newb = newrhs - MIN(rhs1 - b1, rhs2 - b2) updateSidesAndCoef delete one constraint else we calculate possible values for both variables and check which constraint is tighter
else nothing possible
We also try to tighten bounds in the case of two constraints lhs1 <= x + b1*y <= rhs1 and lhs2 <= y + b2*x <= rhs2. Eliminiating one variable and inserting into the second yields the following bounds: If b2 > 0: (1 - b1 * b2) * y >= lhs2 - b2 * rhs1 (1 - b1 * b2) * y <= rhs2 - b2 * lhs1 If b2 < 0: (1 - b1 * b2) * y >= lhs2 - b2 * lhs1 (1 - b1 * b2) * y <= rhs2 - b2 * rhs1 The case of x is similar.
- Parameters
-
scip SCIP data structure conss constraint set nconss number of constraints in constraint set cutoff pointer to store TRUE, if a cutoff was found nchgbds pointer to count number of bound changes ndelconss pointer to count number of deleted constraints nchgcoefs pointer to count the number of changed coefficients nchgsides pointer to count number of changed left/right hand sides
Definition at line 1981 of file cons_varbound.c.
References checkRedundancySide(), chgLhs(), chgRhs(), FALSE, MAX, MIN, NULL, prettifyConss(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPadjustedVarLb(), SCIPadjustedVarUb(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPinfinity(), SCIPisEQ(), SCIPisFeasLT(), SCIPisFeasNegative(), SCIPisFeasPositive(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPsortPtr(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPunlockVarCons(), SCIPupdateConsFlags(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), and TRUE.
Referenced by checkRedundancySide(), and SCIP_DECL_CONSPRESOL().
◆ prettifyConss()
|
static |
for all varbound constraints with two integer variables make the coefficients integral
- Parameters
-
scip SCIP data structure conss constraint set nconss number of constraints in constraint set nchgcoefs pointer to count the number of changed coefficients nchgsides pointer to count number of changed left/right hand sides
Definition at line 2559 of file cons_varbound.c.
References ABS, applyFixings(), FALSE, MAXSCALEDCOEF, MIN, NULL, REALABS, SCIP_Bool, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPconsGetData(), SCIPconsIsDeleted(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPepsilon(), SCIPfeastol(), SCIPgetNImplVars(), SCIPgetNIntVars(), SCIPinfinity(), SCIPisEQ(), SCIPisGE(), SCIPisInfinity(), SCIPisIntegral(), SCIPisLT(), SCIPrealToRational(), and SCIPvarGetType().
Referenced by preprocessConstraintPairs(), and SCIP_DECL_CONSPRESOL().
◆ applyFixings()
|
static |
replaces fixed and aggregated variables in variable bound constraint by active problem variables
- Parameters
-
scip SCIP data structure cons variable bound constraint eventhdlr event handler cutoff pointer to store whether an infeasibility was detected nchgbds pointer to count number of bound changes ndelconss pointer to count number of deleted constraints naddconss pointer to count number of added constraints
Definition at line 2719 of file cons_varbound.c.
References catchEvents(), dropEvents(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPaddCoefLinear(), SCIPaddCons(), SCIPcaptureVar(), SCIPchgLhsLinear(), SCIPchgRhsLinear(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPgetProbvarSum(), SCIPisFeasGT(), SCIPisFeasLT(), SCIPisInfinity(), SCIPisIntegral(), SCIPisZero(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPround(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), tightenCoefs(), and TRUE.
Referenced by prettifyConss(), SCIP_DECL_CONSPRESOL(), and upgradeConss().
◆ tightenCoefs()
|
static |
tightens variable bound coefficient by inspecting the global bounds of the involved variables; note: this is also performed by the linear constraint handler - only necessary if the user directly creates variable bound constraints
- Parameters
-
scip SCIP data structure cons variable bound constraint nchgcoefs pointer to count the number of changed coefficients nchgsides pointer to count the number of left and right hand sides ndelconss pointer to count number of deleted constraints cutoff pointer to store whether the node can be cut off nchgbds pointer to count number of bound changes
Definition at line 3131 of file cons_varbound.c.
References FALSE, MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPdelCons(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPisEQ(), SCIPisFeasGE(), SCIPisFeasGT(), SCIPisFeasIntegral(), SCIPisFeasLE(), SCIPisFeasLT(), SCIPisGT(), SCIPisInfinity(), SCIPisIntegral(), SCIPisLT(), SCIPisZero(), SCIPtightenVarLbGlobal(), SCIPtightenVarUbGlobal(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), TRUE, and upgradeConss().
Referenced by applyFixings(), SCIP_DECL_CONSPRESOL(), and upgradeConss().
◆ upgradeConss()
|
static |
check if we can upgrade to a set-packing constraint
- Parameters
-
scip SCIP data structure conshdlrdata constraint handler data conss constraint set nconss number of constraints in constraint set cutoff pointer to store whether the node can be cut off naggrvars pointer to count the number of aggregated variables nchgbds pointer to count number of bound changes nchgcoefs pointer to count the number of changed coefficients nchgsides pointer to count the number of left and right hand sides ndelconss pointer to count the number of deleted constraints naddconss pointer to count the number of added constraints
Definition at line 3580 of file cons_varbound.c.
References applyFixings(), NULL, propagateCons(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_LINCONSUPGD(), SCIP_OKAY, SCIPaddCons(), SCIPaggregateVars(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsMarkedPropagate(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsSetpack(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPgetNBinVars(), SCIPgetNegatedVar(), SCIPgetNImplVars(), SCIPisEQ(), SCIPisInfinity(), SCIPisLE(), SCIPisZero(), SCIPreleaseCons(), SCIPvarGetName(), SCIPvarIsBinary(), and tightenCoefs().
Referenced by SCIP_DECL_CONSPRESOL(), and tightenCoefs().
◆ SCIP_DECL_LINCONSUPGD()
|
static |
tries to upgrade a linear constraint into a variable bound constraint
Definition at line 3785 of file cons_varbound.c.
References NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSHDLRCOPY(), SCIP_OKAY, SCIP_Real, SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsVarbound(), SCIPdebugMsg, SCIPinfinity(), SCIPisInfinity(), SCIPisIntegral(), SCIPisZero(), and SCIPvarGetType().
Referenced by upgradeConss().
◆ SCIP_DECL_CONSHDLRCOPY()
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 3866 of file cons_varbound.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSFREE(), SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrVarbound(), and TRUE.
Referenced by SCIP_DECL_LINCONSUPGD().
◆ SCIP_DECL_CONSFREE()
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 3882 of file cons_varbound.c.
References CONSHDLR_NAME, conshdlrdataFree(), NULL, SCIP_DECL_CONSEXITSOL(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPconshdlrSetData().
Referenced by SCIP_DECL_CONSHDLRCOPY().
◆ SCIP_DECL_CONSEXITSOL()
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 3903 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_OKAY, SCIPconsGetData(), and SCIPreleaseRow().
Referenced by SCIP_DECL_CONSFREE().
◆ SCIP_DECL_CONSDELETE()
|
static |
frees specific constraint data
Definition at line 3926 of file cons_varbound.c.
References consdataFree(), dropEvents(), NULL, SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconshdlrGetData(), and SCIPisTransformed().
Referenced by SCIP_DECL_CONSEXITSOL().
◆ SCIP_DECL_CONSTRANS()
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 3947 of file cons_varbound.c.
References catchEvents(), consdataCreate(), NULL, SCIP_CALL, SCIP_DECL_CONSINITLP(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), and SCIPcreateCons().
Referenced by SCIP_DECL_CONSDELETE().
◆ SCIP_DECL_CONSINITLP()
|
static |
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)
Definition at line 3981 of file cons_varbound.c.
References addRelaxation(), FALSE, SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_OKAY, and SCIPconsIsInitial().
Referenced by SCIP_DECL_CONSTRANS().
◆ SCIP_DECL_CONSSEPALP()
|
static |
separation method of constraint handler for LP solutions
Definition at line 3999 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSSEPASOL(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetData(), and separateCons().
Referenced by SCIP_DECL_CONSINITLP().
◆ SCIP_DECL_CONSSEPASOL()
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 4029 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSENFOLP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetData(), and separateCons().
Referenced by SCIP_DECL_CONSSEPALP().
◆ SCIP_DECL_CONSENFOLP()
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 4059 of file cons_varbound.c.
References checkCons(), FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSENFORELAX(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPincConsAge(), SCIPresetConsAge(), and separateCons().
Referenced by SCIP_DECL_CONSSEPASOL().
◆ SCIP_DECL_CONSENFORELAX()
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 4099 of file cons_varbound.c.
References checkCons(), FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSENFOPS(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPincConsAge(), SCIPresetConsAge(), and separateCons().
Referenced by SCIP_DECL_CONSENFOLP().
◆ SCIP_DECL_CONSENFOPS()
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 4139 of file cons_varbound.c.
References checkCons(), NULL, SCIP_CALL, SCIP_DECL_CONSCHECK(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPincConsAge(), SCIPresetConsAge(), and TRUE.
Referenced by SCIP_DECL_CONSENFORELAX().
◆ SCIP_DECL_CONSCHECK()
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 4166 of file cons_varbound.c.
References checkCons(), NULL, SCIP_CALL, SCIP_DECL_CONSPROP(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPisFeasGE(), SCIPisFeasLE(), and SCIPprintCons().
Referenced by SCIP_DECL_CONSENFOPS().
◆ SCIP_DECL_CONSPROP()
|
static |
domain propagation method of constraint handler
Definition at line 4209 of file cons_varbound.c.
References FALSE, NULL, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSPRESOL(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconshdlrGetData(), and SCIPdebugMsg.
Referenced by SCIP_DECL_CONSCHECK().
◆ SCIP_DECL_CONSPRESOL()
|
static |
presolving method of constraint handler
Definition at line 4246 of file cons_varbound.c.
References applyFixings(), CONSHDLR_NAME, FALSE, NULL, preprocessConstraintPairs(), prettifyConss(), propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSRESPROP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_PRESOLTIMING_MEDIUM, SCIP_SUCCESS, SCIPaddVarVlb(), SCIPaddVarVub(), SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPisInfinity(), SCIPisStopped(), SCIPvarGetName(), tightenCoefs(), TRUE, and upgradeConss().
Referenced by SCIP_DECL_CONSPROP().
◆ SCIP_DECL_CONSRESPROP()
|
static |
propagation conflict resolving method of constraint handler
Definition at line 4401 of file cons_varbound.c.
References NULL, resolvePropagation(), SCIP_CALL, SCIP_DECL_CONSLOCK(), SCIP_OKAY, SCIP_SUCCESS, and SCIPconshdlrGetData().
Referenced by SCIP_DECL_CONSPRESOL().
◆ SCIP_DECL_CONSLOCK()
|
static |
variable rounding lock method of constraint handler
Definition at line 4420 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPaddVarLocksType(), SCIPconsGetData(), and SCIPisInfinity().
Referenced by SCIP_DECL_CONSRESPROP().
◆ SCIP_DECL_CONSPRINT()
|
static |
constraint display method of constraint handler
Definition at line 4458 of file cons_varbound.c.
References NULL, SCIP_DECL_CONSCOPY(), SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_BINARY_CHAR, SCIP_VARTYPE_CONTINUOUS_CHAR, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_IMPLINT_CHAR, SCIP_VARTYPE_INTEGER, SCIP_VARTYPE_INTEGER_CHAR, SCIPconsGetData(), SCIPinfoMessage(), SCIPisEQ(), SCIPisInfinity(), SCIPvarGetName(), and SCIPvarGetType().
Referenced by SCIP_DECL_CONSLOCK().
◆ SCIP_DECL_CONSCOPY()
|
static |
constraint copying method of constraint handler
Definition at line 4500 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSPARSE(), SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetName(), SCIPcopyConsLinear(), SCIPfreeBufferArray, SCIPgetLhsVarbound(), SCIPgetRhsVarbound(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), and SCIPgetVbdvarVarbound().
Referenced by SCIP_DECL_CONSPRINT().
◆ SCIP_DECL_CONSPARSE()
|
static |
constraint parsing method of constraint handler
Definition at line 4533 of file cons_varbound.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSGETVARS(), SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateConsVarbound(), SCIPdebugMsg, SCIPerrorMessage, SCIPfreeBufferArray, SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPparseVarsLinearsum(), SCIPstrToRealValue(), and SCIPvarGetName().
Referenced by SCIP_DECL_CONSCOPY().
◆ SCIP_DECL_CONSGETVARS()
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 4656 of file cons_varbound.c.
References FALSE, NULL, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), and TRUE.
Referenced by SCIP_DECL_CONSPARSE().
◆ SCIP_DECL_CONSGETNVARS()
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 4681 of file cons_varbound.c.
References SCIP_DECL_EVENTEXEC(), SCIP_OKAY, and TRUE.
Referenced by SCIP_DECL_CONSGETVARS().
◆ SCIP_DECL_EVENTEXEC()
|
static |
execution method of bound change event handler
Definition at line 4695 of file cons_varbound.c.
References FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), SCIPeventGetType(), SCIPincludeConshdlrVarbound(), and SCIPmarkConsPropagate().
Referenced by SCIP_DECL_CONSGETNVARS().