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).
Definition in file cons_varbound.c.
#include <assert.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>
#include "scip/cons_varbound.h"
#include "scip/cons_linear.h"
#include "scip/cons_setppc.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) |
#define CONSHDLR_NAME "varbound" |
Definition at line 53 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().
#define CONSHDLR_DESC "variable bounds lhs <= x + c*y <= rhs, x non-binary, y non-continuous" |
Definition at line 54 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_SEPAPRIORITY +900000 |
priority of the constraint handler for separation
Definition at line 55 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_ENFOPRIORITY -500000 |
priority of the constraint handler for constraint enforcing
Definition at line 56 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_CHECKPRIORITY -500000 |
priority of the constraint handler for checking feasibility
Definition at line 57 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_SEPAFREQ 0 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 58 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 59 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#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 60 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 63 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 64 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 65 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 66 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_PRESOLTIMING (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_MEDIUM) |
Definition at line 68 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 69 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define EVENTHDLR_NAME "varbound" |
Definition at line 71 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define EVENTHDLR_DESC "bound change event handler for variable bound constraints" |
Definition at line 72 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define LINCONSUPGD_PRIORITY +50000 |
priority of the constraint handler for upgrading of linear constraints
Definition at line 74 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define DEFAULT_PRESOLPAIRWISE TRUE |
should pairwise constraint comparison be performed in presolving?
Definition at line 83 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define DEFAULT_MAXLPCOEF 1e+09 |
maximum coefficient in varbound constraint to be added as a row into LP
Definition at line 84 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define DEFAULT_USEBDWIDENING TRUE |
should bound widening be used to initialize conflict analysis?
Definition at line 85 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define MAXSCALEDCOEF 1000LL |
maximal coefficient value after scaling
Definition at line 88 of file cons_varbound.c.
Referenced by prettifyConss().
Definition at line 124 of file cons_varbound.c.
enum Proprule |
Propagation rules
Definition at line 117 of file cons_varbound.c.
|
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:
returns 0 if x1 = x2, y1 = y2, and the changed status of both constraints is the same
and returns +1 otherwise
Definition at line 144 of file cons_varbound.c.
References conshdlrdataCreate(), SCIPconsGetData(), and SCIPvarGetIndex().
|
static |
creates constraint handler data for varbound constraint handler
scip | SCIP data structure |
conshdlrdata | pointer to store the constraint handler data |
eventhdlr | event handler |
Definition at line 180 of file cons_varbound.c.
References conshdlrdataFree(), SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.
Referenced by SCIP_DECL_SORTPTRCOMP(), and SCIPincludeConshdlrVarbound().
|
static |
frees constraint handler data for varbound constraint handler
scip | SCIP data structure |
conshdlrdata | pointer to the constraint handler data |
Definition at line 199 of file cons_varbound.c.
References catchEvents(), and SCIPfreeBlockMemory.
Referenced by conshdlrdataCreate(), and SCIP_DECL_CONSFREE().
|
static |
catches events for variables
scip | SCIP data structure |
cons | variable bound constraint |
eventhdlr | event handler |
Definition at line 216 of file cons_varbound.c.
References dropEvents(), SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPcatchVarEvent(), and SCIPconsGetData().
Referenced by applyFixings(), conshdlrdataFree(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsVarbound().
|
static |
drops events for variables
scip | SCIP data structure |
cons | variable bound constraint |
eventhdlr | event handler |
Definition at line 236 of file cons_varbound.c.
References consdataCreate(), SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), and SCIPdropVarEvent().
Referenced by applyFixings(), catchEvents(), and SCIP_DECL_CONSDELETE().
|
static |
creates a variable bound constraint data object
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 256 of file cons_varbound.c.
References consdataFree(), FALSE, 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().
|
static |
frees a variable bound constraint data
scip | SCIP data structure |
consdata | pointer to the variable bound constraint |
Definition at line 331 of file cons_varbound.c.
References createRelaxation(), SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPreleaseRow(), and SCIPreleaseVar().
Referenced by consdataCreate(), and SCIP_DECL_CONSDELETE().
|
static |
creates LP row corresponding to variable bound constraint
scip | SCIP data structure |
cons | variable bound constraint |
Definition at line 356 of file cons_varbound.c.
References addRelaxation(), SCIP_CALL, SCIP_OKAY, SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), and SCIPcreateEmptyRowCons().
Referenced by addRelaxation(), consdataFree(), and separateCons().
|
static |
adds linear relaxation of variable bound constraint to the LP
scip | SCIP data structure |
cons | variable bound constraint |
infeasible | pointer to store whether infeasibility was detected |
Definition at line 377 of file cons_varbound.c.
References checkCons(), CONSHDLR_NAME, createRelaxation(), FALSE, 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().
|
static |
returns whether the given solution is feasible for the given variable bound constraint
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 425 of file cons_varbound.c.
References FALSE, MAX, 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().
|
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
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 481 of file cons_varbound.c.
References analyzeConflict(), 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().
|
static |
analyze infeasibility
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 758 of file cons_varbound.c.
References FALSE, MAX, 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().
|
static |
separates the given variable bound constraint
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 924 of file cons_varbound.c.
References analyzeConflict(), checkCons(), chgLhs(), CONSHDLR_NAME, createRelaxation(), FALSE, 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().
|
static |
sets left hand side of varbound constraint
scip | SCIP data structure |
cons | linear constraint |
lhs | new left hand side |
Definition at line 1055 of file cons_varbound.c.
References chgRhs(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsLocked(), SCIPconsIsTransformed(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPisLT(), SCIPisPositive(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPunlockVarCons(), and TRUE.
Referenced by preprocessConstraintPairs(), propagateCons(), and separateCons().
|
static |
sets right hand side of varbound constraint
scip | SCIP data structure |
cons | linear constraint |
rhs | new right hand side |
Definition at line 1138 of file cons_varbound.c.
References FALSE, propagateCons(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsLocked(), SCIPconsIsTransformed(), SCIPinfinity(), SCIPisEQ(), SCIPisGT(), SCIPisInfinity(), SCIPisPositive(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPunlockVarCons(), and TRUE.
Referenced by chgLhs(), preprocessConstraintPairs(), and propagateCons().
|
static |
propagation method for variable bound constraint
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 1221 of file cons_varbound.c.
References analyzeConflict(), checkRedundancySide(), chgLhs(), chgRhs(), FALSE, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, 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(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE.
Referenced by chgRhs(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), and upgradeConss().
|
static |
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 1615 of file cons_varbound.c.
References eps, FALSE, MAX, 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().
|
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.
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 1963 of file cons_varbound.c.
References checkRedundancySide(), chgLhs(), chgRhs(), FALSE, MAX, prettifyConss(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPadjustedVarLb(), SCIPadjustedVarUb(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsLocked(), 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().
|
static |
for all varbound constraints with two integer variables make the coefficients integral
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 2542 of file cons_varbound.c.
References applyFixings(), FALSE, MAXSCALEDCOEF, 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().
|
static |
replaces fixed and aggregated variables in variable bound constraint by active problem variables
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 2702 of file cons_varbound.c.
References catchEvents(), dropEvents(), FALSE, 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().
|
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
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 3114 of file cons_varbound.c.
References FALSE, MAX, 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().
|
static |
check if we can upgrade to a set-packing constraint
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 3563 of file cons_varbound.c.
References applyFixings(), 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().
|
static |
tries to upgrade a linear constraint into a variable bound constraint
Definition at line 3768 of file cons_varbound.c.
References 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().
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 3849 of file cons_varbound.c.
References CONSHDLR_NAME, SCIP_CALL, SCIP_DECL_CONSFREE(), SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrVarbound(), and TRUE.
Referenced by SCIP_DECL_LINCONSUPGD().
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 3865 of file cons_varbound.c.
References CONSHDLR_NAME, conshdlrdataFree(), SCIP_DECL_CONSEXITSOL(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPconshdlrSetData().
Referenced by SCIP_DECL_CONSHDLRCOPY().
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 3886 of file cons_varbound.c.
References SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_OKAY, SCIPconsGetData(), and SCIPreleaseRow().
Referenced by SCIP_DECL_CONSFREE().
|
static |
frees specific constraint data
Definition at line 3909 of file cons_varbound.c.
References consdataFree(), dropEvents(), SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconshdlrGetData(), and SCIPisTransformed().
Referenced by SCIP_DECL_CONSEXITSOL().
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 3930 of file cons_varbound.c.
References catchEvents(), consdataCreate(), 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().
|
static |
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)
Definition at line 3964 of file cons_varbound.c.
References addRelaxation(), FALSE, SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_OKAY, and SCIPconsIsInitial().
Referenced by SCIP_DECL_CONSTRANS().
|
static |
separation method of constraint handler for LP solutions
Definition at line 3982 of file cons_varbound.c.
References SCIP_CALL, SCIP_DECL_CONSSEPASOL(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetData(), and separateCons().
Referenced by SCIP_DECL_CONSINITLP().
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 4012 of file cons_varbound.c.
References SCIP_CALL, SCIP_DECL_CONSENFOLP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetData(), and separateCons().
Referenced by SCIP_DECL_CONSSEPALP().
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 4042 of file cons_varbound.c.
References checkCons(), FALSE, SCIP_CALL, SCIP_DECL_CONSENFORELAX(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPincConsAge(), SCIPresetConsAge(), and separateCons().
Referenced by SCIP_DECL_CONSSEPASOL().
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 4082 of file cons_varbound.c.
References checkCons(), FALSE, SCIP_CALL, SCIP_DECL_CONSENFOPS(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPincConsAge(), SCIPresetConsAge(), and separateCons().
Referenced by SCIP_DECL_CONSENFOLP().
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 4122 of file cons_varbound.c.
References checkCons(), SCIP_CALL, SCIP_DECL_CONSCHECK(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPincConsAge(), SCIPresetConsAge(), and TRUE.
Referenced by SCIP_DECL_CONSENFORELAX().
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 4149 of file cons_varbound.c.
References checkCons(), 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().
|
static |
domain propagation method of constraint handler
Definition at line 4192 of file cons_varbound.c.
References FALSE, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSPRESOL(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconshdlrGetData(), and SCIPdebugMsg.
Referenced by SCIP_DECL_CONSCHECK().
|
static |
presolving method of constraint handler
Definition at line 4229 of file cons_varbound.c.
References applyFixings(), CONSHDLR_NAME, FALSE, 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().
|
static |
propagation conflict resolving method of constraint handler
Definition at line 4384 of file cons_varbound.c.
References resolvePropagation(), SCIP_CALL, SCIP_DECL_CONSLOCK(), SCIP_OKAY, SCIP_SUCCESS, and SCIPconshdlrGetData().
Referenced by SCIP_DECL_CONSPRESOL().
|
static |
variable rounding lock method of constraint handler
Definition at line 4403 of file cons_varbound.c.
References SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPaddVarLocks(), SCIPconsGetData(), and SCIPisInfinity().
Referenced by SCIP_DECL_CONSRESPROP().
|
static |
constraint display method of constraint handler
Definition at line 4441 of file cons_varbound.c.
References 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().
|
static |
constraint copying method of constraint handler
Definition at line 4483 of file cons_varbound.c.
References SCIP_CALL, SCIP_DECL_CONSPARSE(), SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetName(), SCIPcopyConsLinear(), SCIPfreeBufferArray, SCIPgetLhsVarbound(), SCIPgetRhsVarbound(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), and SCIPgetVbdvarVarbound().
Referenced by SCIP_DECL_CONSPRINT().
|
static |
constraint parsing method of constraint handler
Definition at line 4516 of file cons_varbound.c.
References FALSE, 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().
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 4639 of file cons_varbound.c.
References FALSE, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), and TRUE.
Referenced by SCIP_DECL_CONSPARSE().
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 4663 of file cons_varbound.c.
References SCIP_DECL_EVENTEXEC(), SCIP_OKAY, and TRUE.
Referenced by SCIP_DECL_CONSGETVARS().
|
static |
execution method of bound change event handler
Definition at line 4677 of file cons_varbound.c.
References FALSE, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), SCIPeventGetType(), SCIPincludeConshdlrVarbound(), and SCIPmarkConsPropagate().
Referenced by SCIP_DECL_CONSGETNVARS().