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 <ctype.h>
#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_nlp.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 "scip/dbldblarith.h"
#include "scip/symmetry_graph.h"
#include "symmetry/struct_symmetry.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 |
Functions | |
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) |
SCIP_RETCODE | SCIPcleanupConssVarbound (SCIP *scip, SCIP_Bool onlychecked, SCIP_Bool *infeasible, int *naddconss, int *ndelconss, int *nchgbds) |
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_RETCODE | addNlrow (SCIP *scip, SCIP_CONS *cons) |
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 void | 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) |
static SCIP_RETCODE | addSymmetryInformation (SCIP *scip, SYM_SYMTYPE symtype, SCIP_CONS *cons, SYM_GRAPH *graph, SCIP_Bool *success) |
Callback methods | |
static | SCIP_DECL_CONSHDLRCOPY (conshdlrCopyVarbound) |
static | SCIP_DECL_CONSFREE (consFreeVarbound) |
static | SCIP_DECL_CONSINITSOL (consInitsolVarbound) |
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_CONSACTIVE (consActiveVarbound) |
static | SCIP_DECL_CONSDEACTIVE (consDeactiveVarbound) |
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_CONSGETPERMSYMGRAPH (consGetPermsymGraphVarbound) |
static | SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH (consGetSignedPermsymGraphVarbound) |
static | SCIP_DECL_EVENTEXEC (eventExecVarbound) |
#define CONSHDLR_NAME "varbound" |
Definition at line 88 of file cons_varbound.c.
Definition at line 89 of file cons_varbound.c.
#define CONSHDLR_SEPAPRIORITY +900000 |
priority of the constraint handler for separation
Definition at line 90 of file cons_varbound.c.
#define CONSHDLR_ENFOPRIORITY -500000 |
priority of the constraint handler for constraint enforcing
Definition at line 91 of file cons_varbound.c.
#define CONSHDLR_CHECKPRIORITY -500000 |
priority of the constraint handler for checking feasibility
Definition at line 92 of file cons_varbound.c.
#define CONSHDLR_SEPAFREQ 0 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 93 of file cons_varbound.c.
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 94 of file cons_varbound.c.
#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 95 of file cons_varbound.c.
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 97 of file cons_varbound.c.
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 98 of file cons_varbound.c.
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 99 of file cons_varbound.c.
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 100 of file cons_varbound.c.
#define CONSHDLR_PRESOLTIMING (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_MEDIUM) |
Definition at line 102 of file cons_varbound.c.
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 103 of file cons_varbound.c.
#define EVENTHDLR_NAME "varbound" |
Definition at line 105 of file cons_varbound.c.
Definition at line 106 of file cons_varbound.c.
#define LINCONSUPGD_PRIORITY +50000 |
priority of the constraint handler for upgrading of linear constraints
Definition at line 108 of file cons_varbound.c.
#define DEFAULT_PRESOLPAIRWISE TRUE |
should pairwise constraint comparison be performed in presolving?
Definition at line 117 of file cons_varbound.c.
#define DEFAULT_MAXLPCOEF 1e+09 |
maximum coefficient in varbound constraint to be added as a row into LP
Definition at line 118 of file cons_varbound.c.
Referenced by SCIPincludeConshdlrVarbound().
#define DEFAULT_USEBDWIDENING TRUE |
should bound widening be used to initialize conflict analysis?
Definition at line 119 of file cons_varbound.c.
#define MAXSCALEDCOEF 1000LL |
maximal coefficient value after scaling
Definition at line 122 of file cons_varbound.c.
enum Proprule |
Propagation rules
Definition at line 152 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 180 of file cons_varbound.c.
References assert(), NULL, 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 216 of file cons_varbound.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.
Referenced by SCIPincludeConshdlrVarbound().
|
static |
frees constraint handler data for varbound constraint handler
scip | SCIP data structure |
conshdlrdata | pointer to the constraint handler data |
Definition at line 235 of file cons_varbound.c.
References assert(), NULL, and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSFREE().
|
static |
catches events for variables
scip | SCIP data structure |
cons | variable bound constraint |
eventhdlr | event handler |
Definition at line 252 of file cons_varbound.c.
References assert(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPcatchVarEvent(), and SCIPconsGetData().
Referenced by applyFixings(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsVarbound().
|
static |
drops events for variables
scip | SCIP data structure |
cons | variable bound constraint |
eventhdlr | event handler |
Definition at line 272 of file cons_varbound.c.
References assert(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), and SCIPdropVarEvent().
Referenced by applyFixings(), 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 292 of file cons_varbound.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPallocBlockMemory, SCIPcaptureVar(), SCIPerrorMessage, SCIPgetTransformedVar(), SCIPinfinity(), SCIPisGT(), SCIPisInfinity(), SCIPisTransformed(), SCIPisZero(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetType(), TRUE, and var.
Referenced by 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 368 of file cons_varbound.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPreleaseNlRow(), SCIPreleaseRow(), and SCIPreleaseVar().
Referenced by SCIP_DECL_CONSDELETE().
|
static |
creates LP row corresponding to variable bound constraint
scip | SCIP data structure |
cons | variable bound constraint |
Definition at line 399 of file cons_varbound.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), and SCIPcreateEmptyRowCons().
Referenced by addRelaxation(), 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 420 of file cons_varbound.c.
References assert(), 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 SCIP_DECL_CONSINITLP().
|
static |
adds varbound constraint as row to the NLP, if not added yet
scip | SCIP data structure |
cons | varbound constraint |
Definition at line 468 of file cons_varbound.c.
References assert(), NULL, SCIP_CALL, SCIP_EXPRCURV_LINEAR, SCIP_OKAY, SCIP_Real, SCIPaddNlRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsLocal(), SCIPcreateNlRow(), SCIPisNLPConstructed(), SCIPnlrowIsInNLP(), and vars.
Referenced by SCIP_DECL_CONSACTIVE(), and SCIP_DECL_CONSINITSOL().
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 513 of file cons_varbound.c.
References assert(), MAX, NULL, SCIP_Bool, SCIP_Real, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPgetSolVal(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisInfinity(), SCIPrelDiff(), SCIProwIsInLP(), SCIPupdateSolLPConsViolation(), sol, and TRUE.
Referenced by 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 562 of file cons_varbound.c.
References assert(), NULL, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, QUAD, QUAD_ASSIGN, QUAD_TO_DBL, REALABS, SCIP_Bool, 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(), SCIPquadprecDivQD, SCIPquadprecProdDD, SCIPquadprecProdQD, SCIPquadprecSumDD, SCIPquadprecSumQD, SCIPquadprecSumQQ, SCIPvarGetType(), SCIPvarIsIntegral(), and var.
Referenced by analyzeConflict(), 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 981 of file cons_varbound.c.
References assert(), FALSE, MAX, NULL, REALABS, resolvePropagation(), SCIP_Bool, 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(), and SCIPvarIsIntegral().
Referenced by propagateCons(), 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 1149 of file cons_varbound.c.
References analyzeConflict(), assert(), checkCons(), CONSHDLR_NAME, createRelaxation(), cutoff, FALSE, NULL, PROPRULE_1, PROPRULE_3, QUAD, QUAD_TO_DBL, result, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_CUTOFF, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPaddRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetRowSolFeasibility(), SCIPinferVarLbCons(), SCIPinferVarUbCons(), SCIPisFeasEQ(), SCIPisFeasNegative(), SCIPisGT(), SCIPisInfinity(), SCIPisLT(), SCIPquadprecProdDD, SCIPquadprecSumQD, SCIProwIsInLP(), SCIPvarGetLbLocal(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), sol, TRUE, and var.
Referenced by 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 1289 of file cons_varbound.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPisLT(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPunlockVarCons(), and TRUE.
Referenced by preprocessConstraintPairs(), and propagateCons().
|
static |
sets right hand side of varbound constraint
scip | SCIP data structure |
cons | linear constraint |
rhs | new right hand side |
Definition at line 1369 of file cons_varbound.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconsIsTransformed(), SCIPinfinity(), SCIPisEQ(), SCIPisGT(), SCIPisInfinity(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPunlockVarCons(), and TRUE.
Referenced by 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 1450 of file cons_varbound.c.
References analyzeConflict(), assert(), chgLhs(), chgRhs(), cutoff, FALSE, NULL, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, QUAD, QUAD_TO_DBL, 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(), SCIPisFeasLT(), SCIPisGE(), SCIPisGT(), SCIPisInfinity(), SCIPisLE(), SCIPisLT(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPquadprecDivQD, SCIPquadprecProdDD, SCIPquadprecSumDD, SCIPquadprecSumQD, SCIPresetConsAge(), SCIPunmarkConsPropagate(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE.
Referenced by 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 1905 of file cons_varbound.c.
References assert(), eps, FALSE, MAX, MIN, NULL, REALABS, SCIP_Bool, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPepsilon(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPisFeasIntegral(), SCIPisInfinity(), SCIPisPositive(), SCIPvarGetLbGlobal(), SCIPvarGetType(), SCIPvarGetUbGlobal(), TRUE, and var.
Referenced by 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.
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 2253 of file cons_varbound.c.
References assert(), c, checkRedundancySide(), chgLhs(), chgRhs(), cutoff, FALSE, MAX, MIN, NULL, 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 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 2857 of file cons_varbound.c.
References ABS, assert(), c, FALSE, MAXSCALEDCOEF, MIN, NULL, REALABS, SCIP_Bool, SCIP_Longint, 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 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 3018 of file cons_varbound.c.
References assert(), catchEvents(), cutoff, dropEvents(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, 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(), SCIPisEQ(), SCIPisFeasGE(), SCIPisFeasGT(), SCIPisFeasLE(), SCIPisFeasLT(), SCIPisInfinity(), SCIPisIntegral(), SCIPisZero(), SCIPlockVarCons(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPround(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPunlockVarCons(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), TRUE, and var.
Referenced by SCIP_DECL_CONSPRESOL(), SCIPcleanupConssVarbound(), 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 3503 of file cons_varbound.c.
References assert(), cutoff, 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(), SCIPisGE(), SCIPisGT(), SCIPisInfinity(), SCIPisIntegral(), SCIPisLE(), SCIPisLT(), SCIPisZero(), SCIPmarkConsPropagate(), SCIPtightenVarLbGlobal(), SCIPtightenVarUbGlobal(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), tightenCoefs(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL(), tightenCoefs(), 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 4057 of file cons_varbound.c.
References applyFixings(), assert(), c, cutoff, NULL, propagateCons(), REALABS, SCIP_Bool, SCIP_CALL, 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(), tightenCoefs(), and vars.
Referenced by SCIP_DECL_CONSPRESOL().
|
static |
tries to upgrade a linear constraint into a variable bound constraint
Definition at line 4263 of file cons_varbound.c.
References assert(), NULL, nvars, REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsVarbound(), SCIPdebugMsg, SCIPinfinity(), SCIPisInfinity(), SCIPisIntegral(), SCIPisZero(), SCIPvarGetType(), var, and vars.
|
static |
adds symmetry information of constraint to a symmetry detection graph
scip | SCIP pointer |
symtype | type of symmetries that need to be added |
cons | constraint |
graph | symmetry detection graph |
success | pointer to store whether symmetry information could be added |
Definition at line 4336 of file cons_varbound.c.
References assert(), NULL, nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPextendPermsymDetectionGraphLinear(), SCIPfreeBufferArray, SCIPgetLhsVarbound(), SCIPgetNVars(), SCIPgetRhsVarbound(), SCIPgetSymActiveVariables(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), SCIPisTransformed(), and vars.
Referenced by SCIP_DECL_CONSGETPERMSYMGRAPH(), and SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH().
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 4392 of file cons_varbound.c.
References assert(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrVarbound(), TRUE, and valid.
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 4408 of file cons_varbound.c.
References assert(), CONSHDLR_NAME, conshdlrdataFree(), NULL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPconshdlrSetData().
|
static |
solving process initialization method of constraint handler
Definition at line 4429 of file cons_varbound.c.
References addNlrow(), c, SCIP_CALL, SCIP_OKAY, and SCIPisNLPConstructed().
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 4446 of file cons_varbound.c.
References assert(), c, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPreleaseNlRow(), and SCIPreleaseRow().
|
static |
frees specific constraint data
Definition at line 4474 of file cons_varbound.c.
References assert(), consdataFree(), dropEvents(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), and SCIPisTransformed().
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 4495 of file cons_varbound.c.
References assert(), catchEvents(), consdataCreate(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), and SCIPcreateCons().
|
static |
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)
Definition at line 4529 of file cons_varbound.c.
References addRelaxation(), assert(), FALSE, i, SCIP_CALL, SCIP_OKAY, and SCIPconsIsInitial().
|
static |
separation method of constraint handler for LP solutions
Definition at line 4547 of file cons_varbound.c.
References assert(), i, NULL, result, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetData(), and separateCons().
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 4577 of file cons_varbound.c.
References assert(), i, NULL, result, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetData(), separateCons(), and sol.
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 4607 of file cons_varbound.c.
References assert(), checkCons(), FALSE, i, NULL, result, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPincConsAge(), SCIPresetConsAge(), and separateCons().
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 4647 of file cons_varbound.c.
References assert(), checkCons(), FALSE, i, NULL, result, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPincConsAge(), SCIPresetConsAge(), separateCons(), and sol.
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 4687 of file cons_varbound.c.
References checkCons(), i, NULL, result, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPincConsAge(), SCIPresetConsAge(), and TRUE.
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 4714 of file cons_varbound.c.
References assert(), checkCons(), i, NULL, result, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPprintCons(), and sol.
|
static |
domain propagation method of constraint handler
Definition at line 4757 of file cons_varbound.c.
References assert(), cutoff, FALSE, i, NULL, propagateCons(), result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconshdlrGetData(), and SCIPdebugMsg.
|
static |
presolving method of constraint handler
Definition at line 4793 of file cons_varbound.c.
References applyFixings(), assert(), CONSHDLR_NAME, cutoff, FALSE, i, NULL, preprocessConstraintPairs(), prettifyConss(), propagateCons(), REALABS, result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_PRESOLTIMING_MEDIUM, SCIP_SUCCESS, SCIPaddVarVlb(), SCIPaddVarVub(), SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsActive(), SCIPconsIsModifiable(), SCIPdebugMsg, SCIPisInfinity(), SCIPisStopped(), SCIPvarGetName(), tightenCoefs(), TRUE, and upgradeConss().
|
static |
propagation conflict resolving method of constraint handler
Definition at line 4948 of file cons_varbound.c.
References assert(), NULL, resolvePropagation(), result, SCIP_CALL, SCIP_OKAY, SCIP_SUCCESS, and SCIPconshdlrGetData().
|
static |
variable rounding lock method of constraint handler
Definition at line 4967 of file cons_varbound.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarLocksType(), SCIPconsGetData(), and SCIPisInfinity().
|
static |
constraint activation notification method of constraint handler
Definition at line 5005 of file cons_varbound.c.
References addNlrow(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPgetStage(), and SCIPisNLPConstructed().
|
static |
constraint deactivation notification method of constraint handler
Definition at line 5017 of file cons_varbound.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPconsGetData(), SCIPdelNlRow(), and SCIPgetStage().
|
static |
constraint display method of constraint handler
Definition at line 5039 of file cons_varbound.c.
References assert(), NULL, 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().
|
static |
constraint copying method of constraint handler
Definition at line 5081 of file cons_varbound.c.
References NULL, propagate, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetName(), SCIPcopyConsLinear(), SCIPfreeBufferArray, SCIPgetLhsVarbound(), SCIPgetRhsVarbound(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), valid, and vars.
|
static |
constraint parsing method of constraint handler
Definition at line 5114 of file cons_varbound.c.
References assert(), FALSE, NULL, nvars, propagate, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateConsVarbound(), SCIPdebugMsg, SCIPerrorMessage, SCIPfreeBufferArray, SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPparseReal(), SCIPparseVarsLinearsum(), SCIPskipSpace(), SCIPvarGetName(), and vars.
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 5231 of file cons_varbound.c.
References assert(), FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), TRUE, and vars.
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 5256 of file cons_varbound.c.
|
static |
constraint handler method which returns the permutation symmetry detection graph of a constraint
Definition at line 5266 of file cons_varbound.c.
References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_PERM.
|
static |
constraint handler method which returns the signed permutation symmetry detection graph of a constraint
Definition at line 5275 of file cons_varbound.c.
References addSymmetryInformation(), SCIP_CALL, SCIP_OKAY, and SYM_SYMTYPE_SIGNPERM.
|
static |
execution method of bound change event handler
Definition at line 5288 of file cons_varbound.c.
References assert(), FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), SCIPeventGetType(), and SCIPmarkConsPropagate().