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 <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 |
Typedefs | |
typedef enum Proprule | PROPRULE |
Enumerations | |
enum | Proprule { PROPRULE_INVALID = 0 , PROPRULE_1 = 1 , PROPRULE_2 = 2 , PROPRULE_3 = 3 , PROPRULE_4 = 4 , PROPRULE_0_INVALID = 0 , 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 = 0 , PROPRULE_2 = 1 , PROPRULE_3 = 2 , PROPRULE_4 = 3 , PROPRULE_INVALID = 4 , PROPRULE_1 , PROPRULE_2 , PROPRULE_3 , PROPRULE_4 , PROPRULE_0 , PROPRULE_1 , PROPRULE_INTLB , PROPRULE_INTUB , PROPRULE_INVALID } |
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) |
Macro Definition Documentation
◆ CONSHDLR_NAME
#define CONSHDLR_NAME "varbound" |
Definition at line 88 of file cons_varbound.c.
◆ CONSHDLR_DESC
Definition at line 89 of file cons_varbound.c.
◆ CONSHDLR_SEPAPRIORITY
#define CONSHDLR_SEPAPRIORITY +900000 |
priority of the constraint handler for separation
Definition at line 90 of file cons_varbound.c.
◆ CONSHDLR_ENFOPRIORITY
#define CONSHDLR_ENFOPRIORITY -500000 |
priority of the constraint handler for constraint enforcing
Definition at line 91 of file cons_varbound.c.
◆ CONSHDLR_CHECKPRIORITY
#define CONSHDLR_CHECKPRIORITY -500000 |
priority of the constraint handler for checking feasibility
Definition at line 92 of file cons_varbound.c.
◆ CONSHDLR_SEPAFREQ
#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.
◆ CONSHDLR_PROPFREQ
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 94 of file cons_varbound.c.
◆ 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 96 of file cons_varbound.c.
◆ CONSHDLR_MAXPREROUNDS
#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.
◆ CONSHDLR_DELAYSEPA
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 98 of file cons_varbound.c.
◆ CONSHDLR_DELAYPROP
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 99 of file cons_varbound.c.
◆ CONSHDLR_NEEDSCONS
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 100 of file cons_varbound.c.
◆ CONSHDLR_PRESOLTIMING
#define CONSHDLR_PRESOLTIMING (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_MEDIUM) |
Definition at line 102 of file cons_varbound.c.
◆ CONSHDLR_PROP_TIMING
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 103 of file cons_varbound.c.
◆ EVENTHDLR_NAME
#define EVENTHDLR_NAME "varbound" |
Definition at line 105 of file cons_varbound.c.
◆ EVENTHDLR_DESC
#define EVENTHDLR_DESC "bound change event handler for variable bound constraints" |
Definition at line 106 of file cons_varbound.c.
◆ LINCONSUPGD_PRIORITY
#define LINCONSUPGD_PRIORITY +50000 |
priority of the constraint handler for upgrading of linear constraints
Definition at line 108 of file cons_varbound.c.
◆ DEFAULT_PRESOLPAIRWISE
#define DEFAULT_PRESOLPAIRWISE TRUE |
should pairwise constraint comparison be performed in presolving?
Definition at line 117 of file cons_varbound.c.
◆ DEFAULT_MAXLPCOEF
#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.
◆ DEFAULT_USEBDWIDENING
#define DEFAULT_USEBDWIDENING TRUE |
should bound widening be used to initialize conflict analysis?
Definition at line 119 of file cons_varbound.c.
◆ MAXSCALEDCOEF
#define MAXSCALEDCOEF 1000LL |
maximal coefficient value after scaling
Definition at line 122 of file cons_varbound.c.
Typedef Documentation
◆ PROPRULE
Definition at line 159 of file cons_varbound.c.
Enumeration Type Documentation
◆ Proprule
enum Proprule |
Propagation rules
Definition at line 152 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 180 of file cons_varbound.c.
References 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 216 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.
Referenced by 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 235 of file cons_varbound.c.
References NULL, and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSFREE().
◆ catchEvents()
|
static |
catches events for variables
- Parameters
-
scip SCIP data structure cons variable bound constraint eventhdlr event handler
Definition at line 252 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPcatchVarEvent(), and SCIPconsGetData().
Referenced by applyFixings(), 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 272 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), and SCIPdropVarEvent().
Referenced by applyFixings(), 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 292 of file cons_varbound.c.
References 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 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 368 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPreleaseNlRow(), SCIPreleaseRow(), and SCIPreleaseVar().
Referenced by 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 399 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsRemovable(), and SCIPcreateEmptyRowCons().
Referenced by addRelaxation(), 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 420 of file cons_varbound.c.
References CONSHDLR_NAME, createRelaxation(), FALSE, NULL, REALABS, 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().
◆ addNlrow()
|
static |
adds varbound constraint as row to the NLP, if not added yet
- Parameters
-
scip SCIP data structure cons varbound constraint
Definition at line 468 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_EXPRCURV_LINEAR, SCIP_OKAY, SCIP_Real, SCIPaddNlRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsActive(), SCIPconsIsChecked(), SCIPconsIsLocal(), SCIPcreateNlRow(), SCIPisNLPConstructed(), and SCIPnlrowIsInNLP().
Referenced by SCIP_DECL_CONSACTIVE(), and SCIP_DECL_CONSINITSOL().
◆ 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 513 of file cons_varbound.c.
References MAX, NULL, SCIP_Real, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPgetSolVal(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisInfinity(), SCIPrelDiff(), SCIProwIsInLP(), SCIPupdateSolLPConsViolation(), and TRUE.
Referenced by 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 562 of file cons_varbound.c.
References NULL, PROPRULE_1, PROPRULE_2, PROPRULE_3, PROPRULE_4, QUAD, QUAD_ASSIGN, QUAD_TO_DBL, 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(), SCIPquadprecDivQD, SCIPquadprecProdDD, SCIPquadprecProdQD, SCIPquadprecSumDD, SCIPquadprecSumQD, SCIPquadprecSumQQ, SCIPvarGetType(), and SCIPvarIsIntegral().
Referenced by analyzeConflict(), 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 981 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(), and SCIPvarIsIntegral().
Referenced by propagateCons(), 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 1149 of file cons_varbound.c.
References analyzeConflict(), checkCons(), CONSHDLR_NAME, createRelaxation(), FALSE, NULL, PROPRULE_1, PROPRULE_3, QUAD, QUAD_TO_DBL, 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(), and TRUE.
Referenced by 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 1289 of file cons_varbound.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPisLT(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPunlockVarCons(), and TRUE.
Referenced by preprocessConstraintPairs(), and propagateCons().
◆ 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 1369 of file cons_varbound.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsIsTransformed(), SCIPinfinity(), SCIPisEQ(), SCIPisGT(), SCIPisInfinity(), SCIPlockVarCons(), SCIPmarkConsPropagate(), SCIPunlockVarCons(), and TRUE.
Referenced by 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 1450 of file cons_varbound.c.
References analyzeConflict(), chgLhs(), chgRhs(), 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().
◆ 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 1905 of file cons_varbound.c.
References eps, FALSE, MAX, MIN, NULL, REALABS, SCIP_Bool, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPepsilon(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPisFeasIntegral(), SCIPisInfinity(), SCIPisPositive(), SCIPvarGetLbGlobal(), SCIPvarGetType(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by preprocessConstraintPairs().
◆ 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 2253 of file cons_varbound.c.
References checkRedundancySide(), chgLhs(), chgRhs(), 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().
◆ 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 2857 of file cons_varbound.c.
References ABS, 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().
◆ 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 3018 of file cons_varbound.c.
References catchEvents(), 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(), and TRUE.
Referenced by SCIP_DECL_CONSPRESOL(), SCIPcleanupConssVarbound(), 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 3503 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(), 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().
◆ 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 4057 of file cons_varbound.c.
References applyFixings(), 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(), and tightenCoefs().
Referenced by SCIP_DECL_CONSPRESOL().
◆ SCIP_DECL_LINCONSUPGD()
|
static |
tries to upgrade a linear constraint into a variable bound constraint
Definition at line 4263 of file cons_varbound.c.
References NULL, 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(), and SCIPvarGetType().
◆ addSymmetryInformation()
|
static |
adds symmetry information of constraint to a symmetry detection graph
- Parameters
-
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 NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPextendPermsymDetectionGraphLinear(), SCIPfreeBufferArray, SCIPgetLhsVarbound(), SCIPgetNVars(), SCIPgetRhsVarbound(), SCIPgetSymActiveVariables(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), and SCIPisTransformed().
Referenced by SCIP_DECL_CONSGETPERMSYMGRAPH(), and SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH().
◆ SCIP_DECL_CONSHDLRCOPY()
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 4392 of file cons_varbound.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrVarbound(), and TRUE.
◆ SCIP_DECL_CONSFREE()
|
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 CONSHDLR_NAME, conshdlrdataFree(), NULL, SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPconshdlrSetData().
◆ SCIP_DECL_CONSINITSOL()
|
static |
solving process initialization method of constraint handler
Definition at line 4429 of file cons_varbound.c.
References addNlrow(), SCIP_CALL, SCIP_OKAY, and SCIPisNLPConstructed().
◆ SCIP_DECL_CONSEXITSOL()
|
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 NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPreleaseNlRow(), and SCIPreleaseRow().
◆ SCIP_DECL_CONSDELETE()
|
static |
frees specific constraint data
Definition at line 4474 of file cons_varbound.c.
References consdataFree(), dropEvents(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconshdlrGetData(), and SCIPisTransformed().
◆ SCIP_DECL_CONSTRANS()
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 4495 of file cons_varbound.c.
References catchEvents(), consdataCreate(), NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), and SCIPcreateCons().
◆ SCIP_DECL_CONSINITLP()
|
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(), FALSE, SCIP_CALL, SCIP_OKAY, and SCIPconsIsInitial().
◆ SCIP_DECL_CONSSEPALP()
|
static |
separation method of constraint handler for LP solutions
Definition at line 4547 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetData(), and separateCons().
◆ SCIP_DECL_CONSSEPASOL()
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 4577 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconshdlrGetData(), and separateCons().
◆ SCIP_DECL_CONSENFOLP()
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 4607 of file cons_varbound.c.
References checkCons(), FALSE, NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPincConsAge(), SCIPresetConsAge(), and separateCons().
◆ SCIP_DECL_CONSENFORELAX()
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 4647 of file cons_varbound.c.
References checkCons(), FALSE, NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPconshdlrGetData(), SCIPincConsAge(), SCIPresetConsAge(), and separateCons().
◆ SCIP_DECL_CONSENFOPS()
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 4687 of file cons_varbound.c.
References checkCons(), NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIPincConsAge(), SCIPresetConsAge(), and TRUE.
◆ SCIP_DECL_CONSCHECK()
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 4714 of file cons_varbound.c.
References checkCons(), NULL, SCIP_CALL, SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPisFeasGE(), SCIPisFeasLE(), and SCIPprintCons().
◆ SCIP_DECL_CONSPROP()
|
static |
domain propagation method of constraint handler
Definition at line 4757 of file cons_varbound.c.
References FALSE, NULL, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconshdlrGetData(), and SCIPdebugMsg.
◆ SCIP_DECL_CONSPRESOL()
|
static |
presolving method of constraint handler
Definition at line 4793 of file cons_varbound.c.
References applyFixings(), CONSHDLR_NAME, FALSE, NULL, preprocessConstraintPairs(), prettifyConss(), propagateCons(), REALABS, 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().
◆ SCIP_DECL_CONSRESPROP()
|
static |
propagation conflict resolving method of constraint handler
Definition at line 4948 of file cons_varbound.c.
References NULL, resolvePropagation(), SCIP_CALL, SCIP_OKAY, SCIP_SUCCESS, and SCIPconshdlrGetData().
◆ SCIP_DECL_CONSLOCK()
|
static |
variable rounding lock method of constraint handler
Definition at line 4967 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddVarLocksType(), SCIPconsGetData(), and SCIPisInfinity().
◆ SCIP_DECL_CONSACTIVE()
|
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().
◆ SCIP_DECL_CONSDEACTIVE()
|
static |
constraint deactivation notification method of constraint handler
Definition at line 5017 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPconsGetData(), SCIPdelNlRow(), and SCIPgetStage().
◆ SCIP_DECL_CONSPRINT()
|
static |
constraint display method of constraint handler
Definition at line 5039 of file cons_varbound.c.
References 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().
◆ SCIP_DECL_CONSCOPY()
|
static |
constraint copying method of constraint handler
Definition at line 5081 of file cons_varbound.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetName(), SCIPcopyConsLinear(), SCIPfreeBufferArray, SCIPgetLhsVarbound(), SCIPgetRhsVarbound(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), and SCIPgetVbdvarVarbound().
◆ SCIP_DECL_CONSPARSE()
|
static |
constraint parsing method of constraint handler
Definition at line 5114 of file cons_varbound.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateConsVarbound(), SCIPdebugMsg, SCIPerrorMessage, SCIPfreeBufferArray, SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPparseReal(), SCIPparseVarsLinearsum(), SCIPskipSpace(), and SCIPvarGetName().
◆ SCIP_DECL_CONSGETVARS()
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 5231 of file cons_varbound.c.
References FALSE, NULL, SCIP_OKAY, SCIPconsGetData(), and TRUE.
◆ SCIP_DECL_CONSGETNVARS()
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 5256 of file cons_varbound.c.
◆ SCIP_DECL_CONSGETPERMSYMGRAPH()
|
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.
◆ SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH()
|
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.
◆ SCIP_DECL_EVENTEXEC()
|
static |
execution method of bound change event handler
Definition at line 5288 of file cons_varbound.c.
References FALSE, NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPconsGetData(), SCIPeventGetType(), and SCIPmarkConsPropagate().