constraint handler for bivariate nonlinear constraints \(\textrm{lhs} \leq f(x,y) + c z \leq \textrm{rhs}\)
Definition in file cons_bivariate.c.
#include <assert.h>
#include <math.h>
#include "scip/cons_bivariate.h"
#include "scip/cons_linear.h"
#include "scip/cons_quadratic.h"
#include "scip/cons_nonlinear.h"
#include "scip/heur_subnlp.h"
#include "scip/heur_trysol.h"
#include "scip/debug.h"
#include "nlpi/nlpi.h"
#include "nlpi/exprinterpret.h"
Go to the source code of this file.
Macros | |
#define | CONSHDLR_NAME "bivariate" |
#define | CONSHDLR_DESC "constraint handler for constraints of the form lhs <= f(x,y) + c*z <= rhs where f(x,y) is a bivariate function" |
#define | CONSHDLR_SEPAPRIORITY 5 |
#define | CONSHDLR_ENFOPRIORITY -55 |
#define | CONSHDLR_CHECKPRIORITY -3600000 |
#define | CONSHDLR_SEPAFREQ 1 |
#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 |
#define | CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
#define | INTERVALINFTY 1E+43 |
#define | NEWTONMAXITER 1000 |
#define | INITLPMAXVARVAL 1000.0 |
#define | QUADCONSUPGD_PRIORITY 5000 |
#define | NONLINCONSUPGD_PRIORITY 10000 |
#define | infty2infty(infty1, infty2, val) ((val) >= (infty1) ? (infty2) : (val)) |
Typedefs | |
typedef struct SepaData_ConvexConcave | SEPADATA_CONVEXCONCAVE |
#define CONSHDLR_NAME "bivariate" |
Definition at line 39 of file cons_bivariate.c.
Referenced by SCIP_DECL_CONSEXITSOL(), SCIP_DECL_CONSINITSOL(), SCIPcreateConsBivariate(), and SCIPincludeConshdlrBivariate().
#define CONSHDLR_DESC "constraint handler for constraints of the form lhs <= f(x,y) + c*z <= rhs where f(x,y) is a bivariate function" |
Definition at line 40 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_SEPAPRIORITY 5 |
priority of the constraint handler for separation
Definition at line 41 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_ENFOPRIORITY -55 |
priority of the constraint handler for constraint enforcing
Definition at line 42 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_CHECKPRIORITY -3600000 |
priority of the constraint handler for checking feasibility
Definition at line 43 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_SEPAFREQ 1 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 44 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 45 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#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 46 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 49 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 50 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 51 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 52 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_FAST |
Definition at line 54 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 55 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define INTERVALINFTY 1E+43 |
value for infinity in interval operations
Definition at line 57 of file cons_bivariate.c.
Referenced by propagateBounds(), propagateBoundsCons(), SCIP_DECL_EVENTEXEC(), and SCIP_DECL_EXPRGRAPHVARADDED().
#define NEWTONMAXITER 1000 |
maximal number of iterations in newton method
Definition at line 58 of file cons_bivariate.c.
Referenced by solveDerivativeEquation().
#define INITLPMAXVARVAL 1000.0 |
maximal absolute value of variable for still generating a linearization cut at that point in initlp
Definition at line 59 of file cons_bivariate.c.
Referenced by SCIP_DECL_CONSINITLP().
#define QUADCONSUPGD_PRIORITY 5000 |
priority of the constraint handler for upgrading of quadratic constraints
Definition at line 61 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define NONLINCONSUPGD_PRIORITY 10000 |
priority of the constraint handler for upgrading of nonlinear constraints
Definition at line 62 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
#define infty2infty | ( | infty1, | |
infty2, | |||
val | |||
) | ((val) >= (infty1) ? (infty2) : (val)) |
translate from one value of infinity to another
if val is >= infty1, then give infty2, else give val
Definition at line 143 of file cons_bivariate.c.
Referenced by propagateBoundsCons(), SCIP_DECL_EVENTEXEC(), and SCIP_DECL_EXPRGRAPHVARADDED().
typedef struct SepaData_ConvexConcave SEPADATA_CONVEXCONCAVE |
data structure to cache data used for separation of convex-concave constraints
Definition at line 83 of file cons_bivariate.c.
|
static |
processes bound tightening event
Definition at line 147 of file cons_bivariate.c.
References catchLinearVarEvents(), SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_OKAY, SCIPeventGetType(), and SCIPmarkConsPropagate().
Referenced by dropLinearVarEvents(), and separatePoint().
|
static |
catches variable bound change events on the linear variable in a bivariate constraint
scip | SCIP data structure |
cons | constraint for which to catch bound change events |
Definition at line 167 of file cons_bivariate.c.
References dropLinearVarEvents(), SCIP_CALL, SCIP_EVENTTYPE_DISABLED, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPcatchVarEvent(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetData(), SCIPconsIsEnabled(), SCIPconsIsTransformed(), SCIPisInfinity(), and SCIPmarkConsPropagate().
Referenced by removeFixedVariables(), SCIP_DECL_CONSENABLE(), and SCIP_DECL_EVENTEXEC().
|
static |
drops variable bound change events on the linear variable in a bivariate constraint
scip | SCIP data structure |
cons | constraint for which to catch bound change events |
Definition at line 220 of file cons_bivariate.c.
References SCIP_CALL, SCIP_DECL_EVENTEXEC(), SCIP_EVENTTYPE_DISABLED, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdropVarEvent(), and SCIPisInfinity().
Referenced by catchLinearVarEvents(), removeFixedVariables(), and SCIP_DECL_CONSDISABLE().
|
static |
processes bound change events for variables in expression graph
Definition at line 272 of file cons_bivariate.c.
References FALSE, infty2infty, INTERVALINFTY, SCIP_DECL_EXPRGRAPHVARADDED(), SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_LBCHANGED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPdebugMsg, SCIPeventGetNewbound(), SCIPeventGetOldbound(), SCIPeventGetType(), SCIPeventGetVar(), SCIPeventhdlrGetData(), SCIPexprgraphSetVarNodeLb(), SCIPexprgraphSetVarNodeUb(), SCIPinfinity(), and SCIPvarGetName().
|
static |
callback method for variable addition in expression graph
Definition at line 319 of file cons_bivariate.c.
References FALSE, infty2infty, INTERVALINFTY, MAX, SCIP_CALL, SCIP_DECL_EXPRGRAPHVARREMOVE(), SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPaddVarLocks(), SCIPcatchVarEvent(), SCIPdebugMessage, SCIPexprgraphSetVarNodeBounds(), SCIPinfinity(), SCIPintervalSetBounds(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and SCIPvarIsActive().
Referenced by SCIP_DECL_EVENTEXEC().
|
static |
callback method for variable removal in expression graph
Definition at line 357 of file cons_bivariate.c.
References lockLinearVariable(), SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPaddVarLocks(), SCIPdebugMessage, SCIPdropVarEvent(), and SCIPvarGetName().
Referenced by SCIP_DECL_EXPRGRAPHVARADDED().
|
static |
locks linear variable in a constraint
scip | SCIP data structure |
cons | constraint where to lock a variable |
var | variable to lock |
coef | coefficient of variable in constraint |
Definition at line 383 of file cons_bivariate.c.
References SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPisInfinity(), SCIPlockVarCons(), and unlockLinearVariable().
Referenced by removeFixedVariables(), and SCIP_DECL_EXPRGRAPHVARREMOVE().
|
static |
unlocks linear variable in a constraint
scip | SCIP data structure |
cons | constraint where to unlock a variable |
var | variable to unlock |
coef | coefficient of variable in constraint |
Definition at line 414 of file cons_bivariate.c.
References removeFixedVariables(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPisInfinity(), and SCIPunlockVarCons().
Referenced by lockLinearVariable(), and removeFixedVariables().
|
static |
resolves variable fixations and aggregations in a constraint
scip | SCIP data structure |
conshdlr | constraint handler |
cons | constraint where to remove fixed variables |
ischanged | buffer to store whether something was changed in the constraint |
isupgraded | buffer to store whether the constraint has been upgraded (and deleted) |
Definition at line 445 of file cons_bivariate.c.
References catchLinearVarEvents(), dropLinearVarEvents(), FALSE, lockLinearVariable(), removeFixedNonlinearVariables(), SCIP_CALL, SCIP_EXPR_CONST, SCIP_EXPR_VARIDX, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_STAGE_EXITPRESOLVE, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPaddCons(), SCIPblkmem(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsNonlinear(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPexprCreate(), SCIPexprCreateLinear(), SCIPexprFreeDeep(), SCIPexprReindexVars(), SCIPexprtreeCopy(), SCIPexprtreeFree(), SCIPexprtreeGetNVars(), SCIPexprtreeGetRoot(), SCIPexprtreeGetVars(), SCIPexprtreeSetVars(), SCIPexprtreeSubstituteVars(), SCIPgetProbvarSum(), SCIPgetStage(), SCIPisInfinity(), SCIPmarkDoNotMultaggrVar(), SCIPreleaseCons(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarIsActive(), TRUE, and unlockLinearVariable().
Referenced by SCIP_DECL_CONSEXITPRE(), SCIP_DECL_CONSPRESOL(), and unlockLinearVariable().
|
static |
removes fixed variables from expression graph
scip | SCIP data structure |
conshdlr | constraint handler |
Definition at line 674 of file cons_bivariate.c.
References computeViolation(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconshdlrGetData(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPexprgraphGetNVars(), SCIPexprgraphGetVars(), SCIPexprgraphReplaceVarByLinearSum(), SCIPfreeBufferArray, SCIPgetProbvarLinearSum(), SCIPreallocBufferArray, SCIPvarGetName(), SCIPvarIsActive(), and TRUE.
Referenced by removeFixedVariables(), SCIP_DECL_CONSEXITPRE(), and SCIP_DECL_CONSPRESOL().
|
static |
computes violation of a constraint
scip | SCIP data structure |
conshdlr | constraint handler |
cons | constraint |
sol | solution or NULL if LP solution should be used |
Definition at line 750 of file cons_bivariate.c.
References computeViolations(), MAX, REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPexprintCompile(), SCIPexprintEval(), SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetVars(), SCIPgetSolVal(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFinite, SCIPisInfinity(), SCIPrelDiff(), SCIPupdateSolConsViolation(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal().
Referenced by computeViolations(), proposeFeasibleSolution(), removeFixedNonlinearVariables(), and SCIP_DECL_CONSCHECK().
|
static |
computes violation of a set of constraints
scip | SCIP data structure |
conshdlr | constraint handler |
conss | constraints |
nconss | number of constraints |
sol | solution or NULL if LP solution should be used |
maxviolcon | buffer to store constraint with largest violation, or NULL if solution is feasible |
Definition at line 882 of file cons_bivariate.c.
References computeViolation(), initSepaDataCreateVred(), MAX, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPfeastol(), and SCIPisGT().
Referenced by computeViolation(), enforceConstraint(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
|
static |
setup vred(s;x0,y0,ylb,yub) for a given f(x,y) for computing a convex-concave underestimator vred(s;x0,y0,ylb,yub) = (yub-y0)/(yub-ylb) f((yub-ylb)/(yub-y0)x0 - (y0-ylb)/(yub-y0)*s, ylb) + (y0-ylb)/(yub-ylb) f(s,yub)
scip | SCIP data structure |
vred | buffer where to store exprtree for vred |
f | function f(x,y) for which vred should be setup |
Definition at line 930 of file cons_bivariate.c.
References initSepaData(), SCIP_CALL, SCIP_EXPR_DIV, SCIP_EXPR_MINUS, SCIP_EXPR_MUL, SCIP_EXPR_PARAM, SCIP_EXPR_PLUS, SCIP_EXPR_VARIDX, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPexprCopyDeep(), SCIPexprCreate(), SCIPexprCreateLinear(), SCIPexprFreeDeep(), SCIPexprGetOperator(), SCIPexprSubstituteVars(), SCIPexprtreeCreate(), and SCIPexprtreeGetRoot().
Referenced by computeViolations(), and initSepaData().
|
static |
initializes separation data
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
cons | constraint |
Definition at line 1030 of file cons_bivariate.c.
References freeSepaData(), initSepaDataCreateVred(), MAX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_Bool, SCIP_CALL, SCIP_EXPR_PARAM, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPconsGetData(), SCIPexprCopyDeep(), SCIPexprCreate(), SCIPexprCreateLinear(), SCIPexprFreeDeep(), SCIPexprintCompile(), SCIPexprintHessianSparsityDense(), SCIPexprReindexVars(), SCIPexprtreeCopy(), SCIPexprtreeCreate(), SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetRoot(), SCIPexprtreeGetVars(), SCIPexprtreeSetParams(), SCIPexprtreeSetVars(), SCIPexprtreeSubstituteVars(), SCIPisInfinity(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by initSepaDataCreateVred(), and SCIP_DECL_CONSINITSOL().
|
static |
frees separation data
scip | SCIP data structure |
cons | constraint |
Definition at line 1186 of file cons_bivariate.c.
References perturb(), SCIP_BIVAR_CONVEX_CONCAVE, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and SCIPexprtreeFree().
Referenced by initSepaData(), and SCIP_DECL_CONSEXITSOL().
perturbs a value w.r.t. bounds
val | value to perturb on input; perturbed value on output |
lb | lower bound |
ub | upper bound |
amount | relative amount of perturbation |
Definition at line 1235 of file cons_bivariate.c.
References SCIP_Real, and solveDerivativeEquation().
Referenced by freeSepaData(), generate1ConvexIndefiniteUnderestimator(), generateConvexConcaveUnderestimator(), generateLinearizationCut(), and solveDerivativeEquation().
|
static |
solves an equation f'(s) = constant for a univariate convex or concave function f with respect to bounds on s if there is no s between the bounds such that f'(s) = constant, then it returns the closest bound (and still claims success)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | expression tree for f(s) |
targetvalue | target value for derivative |
lb | lower bound on variable |
ub | upper bound on variable |
val | buffer to store solution value |
success | buffer to indicate whether a solution has been found |
Definition at line 1260 of file cons_bivariate.c.
References FALSE, generateLinearizationCut(), MAX, NEWTONMAXITER, perturb(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPexprintGrad(), SCIPexprintHessianDense(), SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetNVars(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisFinite, SCIPisRelEQ(), SCIPisZero(), and TRUE.
Referenced by generateConvexConcaveUnderestimator(), generateOrthogonal_lx_ly_Underestimator(), generateOrthogonal_lx_uy_Underestimator(), generateUnderestimatorParallelYFacets(), and perturb().
|
static |
generates a cut for f(x,y) + c*z <= rhs with f(x,y) being convex or 1-convex with x or y fixed or convex-concave with y fixed f(x0, y0) + <grad, (x,y)-(x0,y0)> + c*z <= rhs, where grad is gradient of f in (x0, y0)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
cons | constraint |
x0y0 | value of x and y variables where to generate cut |
newxy | whether the last evaluation of f(x,y) with the expression interpreter was at (x0, y0) |
row | storage for cut |
Definition at line 1420 of file cons_bivariate.c.
References FALSE, generateEstimatingHyperplane(), perturb(), SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarsToRow(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPcreateEmptyRowCons(), SCIPdebugMsg, SCIPexprintCompile(), SCIPexprintGrad(), SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetVars(), SCIPgetNLPs(), SCIPinfinity(), SCIPisEQ(), SCIPisFinite, SCIPisInfinity(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE.
Referenced by generateCut(), SCIP_DECL_CONSINITLP(), SCIP_DECL_EVENTEXEC(), and solveDerivativeEquation().
|
static |
given a convex (concave, resp.) bivariate function, computes an over- (under-, resp.) estimating hyperplane does not succeed if some variable is unbounded or both variables are fixed
scip | SCIP data structure |
exprinterpreter | expression interpreter |
f | bivariate function to compute under or overestimator for |
doover | whether to compute an overestimator (TRUE) or an underestimator (FALSE) |
x0y0 | reference values for nonlinear variables |
coefx | coefficient of x in estimator |
coefy | coefficient of y in estimator |
constant | constant part of estimator |
success | pointer to indicate whether coefficients where successfully computed |
Definition at line 1496 of file cons_bivariate.c.
References FALSE, generateOverestimatingHyperplaneCut(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcomputeHyperplaneThreePoints(), SCIPdebugMsg, SCIPexprintEval(), SCIPexprtreeGetVars(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisFeasLE(), SCIPisFinite, SCIPisGE(), SCIPisInfinity(), SCIPisLE(), SCIPisNegative(), SCIPisZero(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.
Referenced by generateConvexConcaveEstimator(), generateLinearizationCut(), and generateOverestimatingHyperplaneCut().
|
static |
generates a cut for lhs <= f(x,y) + c*z with f(x,y) being convex
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
cons | constraint |
x0y0 | reference values for nonlinear variables |
row | storage for cut |
Definition at line 1742 of file cons_bivariate.c.
References FALSE, generateEstimatingHyperplane(), generateUnderestimatorParallelYFacets(), SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPaddVarsToRow(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPcreateRowCons(), SCIPdebugMsg, SCIPexprtreeGetVars(), SCIPinfinity(), SCIPisFinite, SCIPisInfinity(), and TRUE.
Referenced by generateCut(), generateEstimatingHyperplane(), and SCIP_DECL_CONSINITLP().
|
static |
generates a linear underestimator for f(x,y) when the generators of the underestimating segment are contained in y=ylb and y=yub. Generate coefficients cutcoeff = (alpha, beta, gamma, delta), such that alpha * x + beta * y - delta <= gamma * f(x,y)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | function f(x,y) |
xyref | reference values for x and y |
cutcoeff | cut coefficients alpha, beta, gamma, delta |
convenvvalue | function value of the convex envelope |
success | buffer to store whether coefficients were successfully computed |
Definition at line 1794 of file cons_bivariate.c.
References FALSE, generateOrthogonal_lx_ly_Underestimator(), MAX, REALABS, SCIP_CALL, SCIP_EXPR_CONST, SCIP_EXPR_MUL, SCIP_EXPR_PLUS, SCIP_EXPR_VARIDX, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPexprCopyDeep(), SCIPexprCreate(), SCIPexprFreeDeep(), SCIPexprGetOperator(), SCIPexprintCompile(), SCIPexprintGrad(), SCIPexprSubstituteVars(), SCIPexprtreeCreate(), SCIPexprtreeEval(), SCIPexprtreeFree(), SCIPexprtreeGetRoot(), SCIPexprtreeGetVars(), SCIPexprtreePrintWithNames(), SCIPgetMessagehdlr(), SCIPisEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFinite, SCIPisInfinity(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), solveDerivativeEquation(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), and generateOverestimatingHyperplaneCut().
|
static |
generates a linear underestimator for f(x,y) with f(x,y) being convex in x and convex in y. The segmenent connects orthogonal facets: Either (x=l_x,y=l_y) or (x=u_x,y=u_y). generate coefficients cutcoeff = (alpha, beta, gamma, delta), such that alpha * x + beta * y - delta <= gamma * f(x,y)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | function f(x,y) |
xyref | reference values for x and y |
cutcoeff | cut coefficients alpha, beta, gamma, delta |
convenvvalue | function value of the convex envelope |
success | buffer to store whether coefficients were successfully computed |
Definition at line 2025 of file cons_bivariate.c.
References FALSE, generateOrthogonal_lx_uy_Underestimator(), MAX, REALABS, SCIP_CALL, SCIP_EXPR_CONST, SCIP_EXPR_DIV, SCIP_EXPR_MINUS, SCIP_EXPR_MUL, SCIP_EXPR_PLUS, SCIP_EXPR_VARIDX, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPexprCopyDeep(), SCIPexprCreate(), SCIPexprFreeDeep(), SCIPexprGetOperator(), SCIPexprintCompile(), SCIPexprintGrad(), SCIPexprSubstituteVars(), SCIPexprtreeCreate(), SCIPexprtreeEval(), SCIPexprtreeFree(), SCIPexprtreeGetRoot(), SCIPexprtreeGetVars(), SCIPexprtreePrintWithNames(), SCIPgetMessagehdlr(), SCIPisEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFinite, SCIPisInfinity(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), solveDerivativeEquation(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), and generateUnderestimatorParallelYFacets().
|
static |
generates a linear underestimator for f(x,y) with f(x,y) being convex in x and convex in y generate coefficients cutcoeff = (alpha, beta, gamma, delta), such that alpha * x + beta * y - delta <= gamma * f(x,y)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | function f(x,y) |
xyref | reference values for x and y |
cutcoeff | cut coefficients alpha, beta, gamma, delta |
convenvvalue | function value of the convex envelope |
success | buffer to store whether coefficients were successfully computed |
Definition at line 2419 of file cons_bivariate.c.
References FALSE, generateConvexConcaveUnderestimator(), MAX, REALABS, SCIP_CALL, SCIP_EXPR_CONST, SCIP_EXPR_DIV, SCIP_EXPR_MINUS, SCIP_EXPR_MUL, SCIP_EXPR_PLUS, SCIP_EXPR_VARIDX, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPexprCopyDeep(), SCIPexprCreate(), SCIPexprFreeDeep(), SCIPexprGetOperator(), SCIPexprintCompile(), SCIPexprintGrad(), SCIPexprSubstituteVars(), SCIPexprtreeCreate(), SCIPexprtreeEval(), SCIPexprtreeFree(), SCIPexprtreeGetRoot(), SCIPexprtreeGetVars(), SCIPexprtreePrintWithNames(), SCIPgetMessagehdlr(), SCIPisEQ(), SCIPisFinite, SCIPisInfinity(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), solveDerivativeEquation(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), and generateOrthogonal_lx_ly_Underestimator().
|
static |
generates a linear underestimator for f(x,y) with f(x,y) being STRICTLY convex in x and concave in y generate coefficients cutcoeff = (alpha, beta, gamma, delta), such that alpha * x + beta * y - delta <= gamma * f(x,y)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | function f(x,y) |
f_yfixed | function f(x;y) with x variable and y parameter |
vred | function vred(s;x0,y0,ylb,yub) |
xyref | reference values for (x,y) |
cutcoeff | cut coefficients alpha, beta, gamma, delta |
convenvvalue | function value of the convex envelope |
success | buffer to store whether coefficients were successfully computed |
Definition at line 2809 of file cons_bivariate.c.
References FALSE, generateConvexConcaveEstimator(), MAX, perturb(), REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPexprintEval(), SCIPexprintGrad(), SCIPexprintNewParametrization(), SCIPexprtreeEval(), SCIPexprtreeGetNVars(), SCIPexprtreeGetVars(), SCIPexprtreePrint(), SCIPexprtreePrintWithNames(), SCIPexprtreeSetParams(), SCIPexprtreeSetParamVal(), SCIPgetMessagehdlr(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFinite, SCIPisGE(), SCIPisInfinity(), SCIPisLE(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), solveDerivativeEquation(), and TRUE.
Referenced by generateConvexConcaveEstimator(), and generateOrthogonal_lx_uy_Underestimator().
|
static |
generates a cut for one side of lhs <= f(x,y) + c*z <= rhs with f(x,y) being convex in x and concave in y
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
cons | constraint |
xyref | reference values for nonlinear variables |
violside | for which side of constraint to find a cut |
row | storage for cut |
Definition at line 3316 of file cons_bivariate.c.
References FALSE, generateConvexConcaveUnderestimator(), generateEstimatingHyperplane(), lifting(), SCIP_BIVAR_CONVEX_CONCAVE, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIP_STAGE_SOLVING, SCIPaddVarsToRow(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPcreateEmptyRowCons(), SCIPcreateRowCons(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPexprtreeGetVars(), SCIPgetNLPs(), SCIPgetStage(), SCIPinfinity(), SCIPisFinite, SCIPisInfinity(), SCIPisPositive(), SCIPsnprintf(), and TRUE.
Referenced by generateConvexConcaveUnderestimator(), generateCut(), and SCIP_DECL_CONSINITLP().
|
static |
computes an underestimating hyperplane for functions that are convex in x and y if the point to cut off lies on the boundary
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | function f(x,y) |
xval | current x value |
yval | current y value |
xlb | lower bound x |
xub | upper bound x |
ylb | lower bound y |
yub | upper bound y |
min_max | min=-1 max=1 |
cutcoeff | returns the lifting coefficient |
convenvvalue | value of the convex envelope at (xval,yval) |
success | buffer to indicate whether lifting was successful |
Definition at line 3483 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimatorAtBoundary(), REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPexprintGrad(), SCIPisEQ(), SCIPisFinite, SCIPisInfinity(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimatorAtBoundary(), and generateConvexConcaveEstimator().
|
static |
generate a linear underestimator for f(x,y) with f(x,y) being convex in x and convex in y and the point to cut off lies on the boundary generate coefficients cutcoeff = (alpha, beta, gamma, delta), such that alpha * x + beta * y - delta <= gamma * f(x,y)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | function f(x,y) |
xyref | reference values for x and y |
cutcoeff | cut coefficients alpha, beta, gamma, delta |
convenvvalue | function value of the convex envelope |
success | buffer to store whether coefficients were successfully computed |
Definition at line 3573 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), lifting(), REALABS, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPerrorMessage, SCIPexprintGrad(), SCIPexprtreeGetVars(), SCIPexprtreePrintWithNames(), SCIPgetMessagehdlr(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisFinite, SCIPisInfinity(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimator(), and lifting().
|
static |
generates a linear underestimator for f(x,y) with f(x,y) being convex in x and convex in y but indefinite This is for the case where the cone of the concave directions is (R_+ x R_-) union (R_- x R_+). We consider two cases: a) the underestimating segmenent connects parallel facets b) the underestimating segmenent connects orthogonal facets where x=l_x, y=l_y and x=u_x, y=u_y We ensure that the parallel facets are the horizontal with y=l_y and y=u_y We compute the objective value of the two problems. The smaller objective value corresponds to the convex envelope. The supporting hyperplane is then constructed at the this point.
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | function f(x,y) |
xyref | reference values for x and y |
cutcoeff | cut coefficients alpha, beta, gamma, delta |
convenvvalue | function value of the convex envelope |
success | buffer to store whether coefficients were successfully computed |
Definition at line 3767 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), generateOrthogonal_lx_ly_Underestimator(), generateUnderestimatorParallelYFacets(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_EXPR_VARIDX, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPexprCreate(), SCIPexprFreeDeep(), SCIPexprintCompile(), SCIPexprintGrad(), SCIPexprtreeCopy(), SCIPexprtreeFree(), SCIPexprtreeGetVars(), SCIPexprtreePrintWithNames(), SCIPexprtreeSetVars(), SCIPexprtreeSubstituteVars(), SCIPgetMessagehdlr(), SCIPinfinity(), SCIPisFinite, SCIPisInfinity(), SCIPisPositive(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimator(), and generate1ConvexIndefiniteUnderestimatorAtBoundary().
|
static |
generates a linear underestimator for f(x,y) with f(x,y) being convex in x and convex in y but indefinite This is for the case where the cone of the concave directions is (R_+ x R_+) union (R_- x R_-). We consider two cases: a) the underestimating segmenent connects parallel facets b) the underestimating segmenent connects orthogonal facets where x=l_x, y=u_y and x=u_x, y=l_y We ensure that the parallel facets are the horizontal with y=l_y and y=u_y We compute the objective value of the two problems. The smaller objective value corresponds to the convex envelope. The supporting hyperplane is then constructed at the this point. Generates coefficients cutcoeff = (alpha, beta, gamma, delta), such that alpha * x + beta * y - delta <= gamma * f(x,y)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
f | function f(x,y) |
xyref | reference values for x and y |
cutcoeff | cut coefficients alpha, beta, gamma, delta |
convenvvalue | function value of the convex envelope |
success | buffer to store whether coefficients were successfully computed |
Definition at line 3962 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimator(), generateOrthogonal_lx_uy_Underestimator(), generateUnderestimatorParallelYFacets(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_EXPR_VARIDX, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPexprCreate(), SCIPexprFreeDeep(), SCIPexprintCompile(), SCIPexprintGrad(), SCIPexprtreeCopy(), SCIPexprtreeFree(), SCIPexprtreeGetVars(), SCIPexprtreePrintWithNames(), SCIPexprtreeSetVars(), SCIPexprtreeSubstituteVars(), SCIPgetMessagehdlr(), SCIPinfinity(), SCIPisFinite, SCIPisGE(), SCIPisInfinity(), SCIPisPositive(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimator(), and generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA().
|
static |
generates a linear underestimator for f(x,y) with f(x,y) being convex in x and convex in y but indefinite generate coefficients cutcoeff = (alpha, beta, gamma, delta), such that alpha * x + beta * y - delta <= gamma * f(x,y)
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
cons | constraint |
xyref | reference values for x and y |
row | storage for cut |
Definition at line 4149 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimatorAtBoundary(), generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), generateCut(), perturb(), REALABS, SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPcreateEmptyRowCons(), SCIPdebugMsg, SCIPexprintHessianDense(), SCIPexprtreeGetVars(), SCIPinfinity(), SCIPisFeasEQ(), SCIPisFinite, SCIPisInfinity(), SCIPisPositive(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), generateCut(), and SCIP_DECL_CONSINITLP().
|
static |
generates a cut
scip | SCIP data structure |
exprinterpreter | expressions interpreter |
cons | constraint |
sol | solution to separate, or NULL if LP solution should be used |
violside | for which side of constraint we want to generate a cut |
cutmaxrange | bound on cut coef range |
row | storage for cut |
Definition at line 4295 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimator(), generateConvexConcaveEstimator(), generateLinearizationCut(), generateOverestimatingHyperplaneCut(), isConvexLocal(), MAX, REALABS, SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPaddVarToRow(), SCIPchgRowLhs(), SCIPchgRowRhs(), SCIPcolGetVar(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPdebugPrintCons, SCIPexprtreeGetVars(), SCIPgetRowMaxCoef(), SCIPgetRowMinCoef(), SCIPgetSolVal(), SCIPisEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisInfinity(), SCIPprintRow(), SCIPreleaseRow(), SCIProwGetCols(), SCIProwGetLhs(), SCIProwGetNNonz(), SCIProwGetRhs(), SCIProwGetVals(), SCIProwIsLocal(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and SCIPvarGetUbLocal().
Referenced by generate1ConvexIndefiniteUnderestimator(), and separatePoint().
|
static |
returns whether one side of a constraint function is convex w.r.t. local bounds i.e., if side == RIGHT, then returns whether constraint function is convex w.r.t. local bounds and if side == LEFT, then returns whether constraint function is concave w.r.t. local bounds
scip | SCIP data structure |
cons | constraint |
side | constraint side to consider |
Definition at line 4497 of file cons_bivariate.c.
References FALSE, SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPcolGetVar(), SCIPconsGetData(), SCIPexprtreeGetVars(), SCIPexprtreePrint(), SCIPgetMessagehdlr(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPisEQ(), SCIPisInfinity(), SCIProwGetCols(), SCIProwGetLhs(), SCIProwGetNNonz(), SCIProwGetRhs(), SCIProwGetVals(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and separatePoint().
Referenced by generateCut(), and separatePoint().
|
static |
tries to separate solution or LP solution by a linear cut
assumes that constraint violations have been computed
scip | SCIP data structure |
conshdlr | quadratic constraints handler |
conss | constraints |
nconss | number of constraints |
nusefulconss | number of constraints that seem to be useful |
sol | solution to separate, or NULL if LP solution should be used |
minefficacy | minimal efficacy of a cut if it should be added to the LP |
inenforcement | whether we are in constraint enforcement |
result | result of separation |
bestefficacy | buffer to store best efficacy of a cut that was added to the LP, if found; or NULL if not of interest |
Definition at line 4598 of file cons_bivariate.c.
References FALSE, generateCut(), isConvexLocal(), MAX, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_EVENTEXEC(), SCIP_DIDNOTFIND, SCIP_FEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPaddRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebug, SCIPdebugMsg, SCIPfeastol(), SCIPgetRowLPFeasibility(), SCIPgetRowSolFeasibility(), SCIPisCutApplicable(), SCIPisGT(), SCIPmarkRowNotRemovableLocal(), and SCIPreleaseRow().
Referenced by enforceConstraint(), isConvexLocal(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
|
static |
processes the event that a new primal solution has been found adds linearizations of all-convex constraints to the cutpool
Definition at line 4709 of file cons_bivariate.c.
References generateLinearizationCut(), registerBranchingVariables(), SCIP_BIVAR_ALLCONVEX, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_SOLFOUND, SCIP_OKAY, SCIP_Real, SCIPaddPoolCut(), SCIPconsGetData(), SCIPconshdlrGetConss(), SCIPconshdlrGetData(), SCIPconshdlrGetNConss(), SCIPconsIsLocal(), SCIPdebugMsg, SCIPeventGetSol(), SCIPeventGetType(), SCIPexprtreeGetVars(), SCIPgetSolVals(), SCIPheurGetName(), SCIPisInfinity(), SCIPreleaseRow(), SCIProwIsLocal(), SCIPsolGetHeur(), and TRUE.
|
static |
registers unfixed variables in nonlinear terms of violated constraints as external branching candidates We score the variables by their gap between the convex envelope and the bivariate function in the current (x,y). This value is given by the constraint violation, since we assume that cuts have been generated which support the convex envelope in the LP.
scip | SCIP data structure |
conss | constraints to check |
nconss | number of constraints to check |
nnotify | counter for number of notifications performed |
Definition at line 4789 of file cons_bivariate.c.
References registerLargeRelaxValueVariableForBranching(), SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPaddExternBranchCand(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPexprtreeGetVars(), SCIPisEQ(), SCIPisFeasZero(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetUbLocal().
Referenced by enforceConstraint(), and SCIP_DECL_EVENTEXEC().
|
static |
registers a nonlinear variable from a violated constraint as branching candidate that has a large absolute value in the relaxation
scip | SCIP data structure |
conss | constraints |
nconss | number of constraints |
sol | solution to enforce (NULL for the LP solution) |
brvar | buffer to store branching variable |
Definition at line 4900 of file cons_bivariate.c.
References enforceViolatedFixedNonlinear(), REALABS, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPaddExternBranchCand(), SCIPconsGetData(), SCIPexprtreeGetVars(), SCIPfeastol(), SCIPgetSolVal(), SCIPisEQ(), SCIPisGT(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by enforceConstraint(), and registerBranchingVariables().
|
static |
enforces violated bivariate constraints where both nonlinear variables can be assumed to be fixed apply a bound change to the remaining linear variable, or recognizing infeasibility
scip | SCIP data structure |
conss | constraints |
nconss | number of constraints |
reduceddom | whether a domain has been reduced |
infeasible | whether we detected infeasibility |
Definition at line 4958 of file cons_bivariate.c.
References FALSE, propagateBoundsTightenVar(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPdebugMsg, SCIPevalExprtreeLocalBounds(), SCIPfeastol(), SCIPinfinity(), SCIPintervalGetInf(), SCIPintervalGetSup(), SCIPintervalIsEmpty(), SCIPisFeasGT(), SCIPisFeasLT(), SCIPisGT(), SCIPisInfinity(), SCIPisZero(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetName(), and TRUE.
Referenced by enforceConstraint(), and registerLargeRelaxValueVariableForBranching().
|
static |
tightens bounds on a variable to given interval
scip | SCIP data structure |
var | variable which bounds to tighten |
bounds | new bounds |
cons | constraint that is propagated |
result | pointer where to update the result of the propagation call |
nchgbds | buffer where to add the the number of changed bounds |
Definition at line 5085 of file cons_bivariate.c.
References FALSE, propagateBoundsCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_VARSTATUS_MULTAGGR, SCIPadjustedVarLb(), SCIPconsGetName(), SCIPdebugMsg, SCIPinfinity(), SCIPintervalGetInf(), SCIPintervalGetSup(), SCIPintervalIsEmpty(), SCIPintervalIsNegativeInfinity(), SCIPintervalIsPositiveInfinity(), SCIPisInfinity(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetStatus(), and SCIPvarGetUbLocal().
Referenced by enforceViolatedFixedNonlinear(), propagateBounds(), and propagateBoundsCons().
|
static |
tightens bounds of z in a single bivariate constraint checks for redundancy and infeasibility
scip | SCIP data structure |
conshdlr | constraint handler |
cons | constraint to process |
result | pointer to store the result of the propagation call |
nchgbds | buffer where to add the the number of changed bounds |
redundant | buffer where to store whether constraint has been found to be redundant |
Definition at line 5157 of file cons_bivariate.c.
References FALSE, infty2infty, INTERVALINFTY, MAX, propagateBounds(), propagateBoundsTightenVar(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_SUCCESS, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebugMsg, SCIPepsilon(), SCIPexprgraphGetNodeBounds(), SCIPexprgraphTightenNodeBounds(), SCIPinfinity(), SCIPinProbing(), SCIPintervalAdd(), SCIPintervalAreDisjoint(), SCIPintervalDivScalar(), SCIPintervalGetInf(), SCIPintervalGetSup(), SCIPintervalIsEmpty(), SCIPintervalIsSubsetEQ(), SCIPintervalMulScalar(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPintervalSub(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE.
Referenced by propagateBounds(), and propagateBoundsTightenVar().
|
static |
calls domain propagation for a set of constraints
scip | SCIP data structure |
conshdlr | constraint handler |
conss | constraints to process |
nconss | number of constraints |
result | pointer to store the result of the propagation calls |
nchgbds | buffer where to add the the number of changed bounds |
ndelconss | buffer where to increase if a constraint was deleted (locally) due to redundancy |
Definition at line 5273 of file cons_bivariate.c.
References FALSE, INTERVALINFTY, propagateBoundsCons(), propagateBoundsTightenVar(), proposeFeasibleSolution(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsDeleted(), SCIPconsIsEnabled(), SCIPconsIsMarkedPropagate(), SCIPdebugMsg, SCIPdelConsLocal(), SCIPexprgraphGetNodeBounds(), SCIPexprgraphGetNVars(), SCIPexprgraphGetVarNodes(), SCIPexprgraphGetVars(), SCIPexprgraphPropagateNodeBounds(), SCIPexprgraphPropagateVarBounds(), SCIPinProbing(), SCIPunmarkConsPropagate(), and TRUE.
Referenced by enforceConstraint(), propagateBoundsCons(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
|
static |
Given a solution where every bivariate constraint is either feasible or can be made feasible by moving the linear variable, construct the corresponding feasible solution and pass it to the trysol heuristic. The method assumes that this is always possible and that not all constraints are feasible already.
scip | SCIP data structure |
conshdlr | constraint handler |
conss | constraints to process |
nconss | number of constraints |
sol | solution to process |
success | buffer to store whether we succeeded to construct a solution that satisfies all provided constraints |
Definition at line 5418 of file cons_bivariate.c.
References computeViolation(), createConsFromQuadTerm(), FALSE, MAX, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_INITPRESOLVE, SCIP_STAGE_SOLVED, SCIPceil(), SCIPconsGetData(), SCIPconshdlrGetData(), SCIPcreateLPSol(), SCIPcreateSolCopy(), SCIPdebugMsg, SCIPfeastol(), SCIPfloor(), SCIPfreeSol(), SCIPgetSolTransObj(), SCIPgetSolVal(), SCIPgetStage(), SCIPgetUpperbound(), SCIPheurPassSolTrySol(), SCIPincSolVal(), SCIPisGT(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisSumLT(), SCIPisZero(), SCIPunlinkSol(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarIsIntegral(), and TRUE.
Referenced by propagateBounds(), and SCIP_DECL_CONSCHECK().
|
static |
creates bivariate constraint from quadratic constraint data of the form lhs <= xsqrcoef * x^2 + xlincoef * x + ysqrcoef * y^2 + ylincoef * y + bilincoef * x*y + zcoef * z <= rhs
scip | SCIP data structure |
srccons | source constraint to take attributes from |
cons | pointer to store new constraint |
name | name of new constraint |
x | first nonlinear variable |
y | second nonlinear variable |
z | linear variable, can be NULL |
coefxx | coefficient of x^2 |
coefx | coefficient of x |
coefyy | coefficient of y^2 |
coefy | coefficient of y |
coefxy | coefficient of x*y |
coefz | coefficient of z |
lhs | left-hand-side |
rhs | right-hand-side |
Definition at line 5573 of file cons_bivariate.c.
References SCIP_QuadElement::coef, createExprtreeFromMonomial(), SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_CALL, SCIP_EXPR_VARIDX, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsBivariate(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPexprCreate(), SCIPexprCreateQuadratic(), SCIPexprtreeCreate(), SCIPexprtreeFree(), SCIPexprtreeSetVars(), and SCIPisLE().
Referenced by proposeFeasibleSolution(), and SCIP_DECL_QUADCONSUPGD().
|
static |
creates expression tree for monomial of the form coef * x^p * y^q with x >= 0 and y >= 0 and checks its convexity type
scip | SCIP data structure |
x | first variable |
y | second variable |
coef | monomial coefficient |
p | exponent of x |
q | exponent of y |
exprtree | buffer to store pointer to expression tree |
mult | buffer to store multiplicator for generated expression tree |
convextype | buffer to store convexity type of expression tree |
Definition at line 5739 of file cons_bivariate.c.
References createConsFromMonomial(), FALSE, SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_BIVAR_UNKNOWN, SCIP_Bool, SCIP_CALL, SCIP_EXPR_VARIDX, SCIP_OKAY, SCIP_Real, SCIPblkmem(), SCIPexprCreate(), SCIPexprCreateMonomial(), SCIPexprCreatePolynomial(), SCIPexprtreeCreate(), SCIPexprtreeSetVars(), SCIPisZero(), and TRUE.
Referenced by createConsFromMonomial(), and createConsFromQuadTerm().
|
static |
creates bivariate constraint from monomial of the form coef * x^p * y^q with x >= 0 and y >= 0 lhs <= coef * x^p * y^q + zcoef * z <= rhs
scip | SCIP data structure |
srccons | source constraint to take attributes from, or NULL |
cons | pointer to store new constraint |
name | name of new constraint |
x | first nonlinear variable |
y | second nonlinear variable |
z | linear variable, can be NULL |
coef | monomial coefficient |
p | exponent of x |
q | exponent of y |
zcoef | coefficient of z |
lhs | left-hand-side |
rhs | right-hand-side |
Definition at line 5856 of file cons_bivariate.c.
References createExprtreeFromMonomial(), enforceConstraint(), FALSE, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsBivariate(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPexprtreeFree(), SCIPisLE(), SCIPisZero(), SCIPvarGetName(), and TRUE.
Referenced by createExprtreeFromMonomial(), and SCIP_DECL_EXPRGRAPHNODEREFORM().
|
static |
helper function to enforce constraints
scip | SCIP data structure |
conshdlr | constraint handler |
conss | constraints to process |
nconss | number of constraints |
nusefulconss | number of useful (non-obsolete) constraints to process |
sol | solution to enforce (NULL for the LP solution) |
solinfeasible | was the solution already declared infeasible by a constraint handler? |
result | pointer to store the result of the enforcing call |
Definition at line 5929 of file cons_bivariate.c.
References computeViolations(), enforceViolatedFixedNonlinear(), MAX, propagateBounds(), registerBranchingVariables(), registerLargeRelaxValueVariableForBranching(), SCIP_Bool, SCIP_BRANCHED, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSHDLRCOPY(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPcreateChild(), SCIPdebugMessage, SCIPdebugMsg, SCIPfeastol(), SCIPgetCurrentNode(), SCIPgetSolVal(), SCIPisGT(), SCIPisStopped(), SCIPlpfeastol(), SCIPnodeGetEstimate(), SCIPvarGetName(), SCIPwarningMessage(), separatePoint(), and TRUE.
Referenced by createConsFromMonomial(), SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFORELAX().
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 6105 of file cons_bivariate.c.
References SCIP_CALL, SCIP_DECL_CONSFREE(), SCIP_OKAY, SCIPincludeConshdlrBivariate(), and TRUE.
Referenced by enforceConstraint().
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 6121 of file cons_bivariate.c.
References SCIP_CALL, SCIP_DECL_CONSINIT(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPexprgraphFree(), SCIPexprgraphGetNVars(), SCIPexprintFree(), and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSHDLRCOPY().
|
static |
initialization method of constraint handler (called after problem was transformed)
Definition at line 6149 of file cons_bivariate.c.
References SCIP_DECL_CONSEXIT(), SCIP_OKAY, SCIPconshdlrGetData(), and SCIPfindHeur().
Referenced by SCIP_DECL_CONSFREE().
|
static |
deinitialization method of constraint handler (called before transformed problem is freed)
Definition at line 6167 of file cons_bivariate.c.
References SCIP_DECL_CONSINITPRE(), SCIP_OKAY, and SCIPconshdlrGetData().
Referenced by SCIP_DECL_CONSINIT().
|
static |
presolving initialization method of constraint handler (called when presolving is about to begin)
Definition at line 6185 of file cons_bivariate.c.
References FALSE, SCIP_CALL, SCIP_DECL_CONSEXITPRE(), SCIP_OKAY, SCIPconsGetData(), and SCIPmarkConsPropagate().
Referenced by SCIP_DECL_CONSEXIT().
|
static |
presolving deinitialization method of constraint handler (called after presolving has been finished)
Definition at line 6211 of file cons_bivariate.c.
References removeFixedNonlinearVariables(), removeFixedVariables(), SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSINITSOL(), SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconsIsAdded(), SCIPenableNLP(), SCIPexprtreeGetNVars(), SCIPvarGetStatus(), and SCIPvarIsActive().
Referenced by SCIP_DECL_CONSINITPRE().
|
static |
solving process initialization method of constraint handler (called when branch and bound process is about to begin)
Definition at line 6262 of file cons_bivariate.c.
References BMSclearMemoryArray, CONSHDLR_NAME, initSepaData(), SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_BIVAR_UNKNOWN, SCIP_CALL, SCIP_DECL_CONSEXITSOL(), SCIP_EVENTTYPE_SOLFOUND, SCIP_EXPRCURV_CONVEX, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, SCIPaddNlRow(), SCIPcatchEvent(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsEnabled(), SCIPcreateNlRow(), SCIPdebugMsg, SCIPfindEventhdlr(), SCIPisInfinity(), SCIPisNLPConstructed(), SCIPreleaseNlRow(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPverbMessage(), and TRUE.
Referenced by SCIP_DECL_CONSEXITPRE().
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 6392 of file cons_bivariate.c.
References CONSHDLR_NAME, freeSepaData(), SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_EVENTTYPE_SOLFOUND, SCIP_OKAY, SCIPconshdlrGetData(), SCIPdropEvent(), and SCIPfindEventhdlr().
Referenced by SCIP_DECL_CONSINITSOL().
|
static |
frees specific constraint data
Definition at line 6427 of file cons_bivariate.c.
References SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPexprtreeFree(), and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSEXITSOL().
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 6458 of file cons_bivariate.c.
References SCIP_CALL, SCIP_DECL_CONSINITLP(), SCIP_OKAY, SCIPblkmem(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), SCIPduplicateBlockMemory, SCIPexprtreeCopy(), SCIPexprtreeGetVars(), SCIPexprtreeSetVars(), SCIPgetTransformedVar(), and SCIPgetTransformedVars().
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 6492 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimator(), generateConvexConcaveEstimator(), generateLinearizationCut(), generateOverestimatingHyperplaneCut(), INITLPMAXVARVAL, MAX, SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPaddRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebug, SCIPdebugMsg, SCIPexprintCompile(), SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetVars(), SCIPgetRowMaxCoef(), SCIPgetRowMinCoef(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPprintRow(), SCIPreleaseRow(), SCIProwGetLhs(), SCIProwGetRhs(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPwarningMessage(), and TRUE.
Referenced by SCIP_DECL_CONSTRANS().
|
static |
separation method of constraint handler for LP solutions
Definition at line 6713 of file cons_bivariate.c.
References computeViolations(), FALSE, SCIP_CALL, SCIP_DECL_CONSSEPASOL(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIPgetSepaMinEfficacy(), and separatePoint().
Referenced by SCIP_DECL_CONSINITLP().
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 6737 of file cons_bivariate.c.
References computeViolations(), FALSE, SCIP_CALL, SCIP_DECL_CONSENFOLP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIPgetSepaMinEfficacy(), and separatePoint().
Referenced by SCIP_DECL_CONSSEPALP().
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 6760 of file cons_bivariate.c.
References enforceConstraint(), SCIP_CALL, SCIP_DECL_CONSENFORELAX(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSSEPASOL().
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 6769 of file cons_bivariate.c.
References enforceConstraint(), SCIP_CALL, SCIP_DECL_CONSENFOPS(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSENFOLP().
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 6779 of file cons_bivariate.c.
References computeViolations(), MAX, propagateBounds(), SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSCHECK(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_INVALID, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SOLVELP, SCIPaddExternBranchCand(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPexprtreeGetVars(), SCIPfeastol(), SCIPisGT(), SCIPisRelEQ(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by SCIP_DECL_CONSENFORELAX().
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 6860 of file cons_bivariate.c.
References computeViolation(), FALSE, proposeFeasibleSolution(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSPROP(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPfeastol(), SCIPinfoMessage(), SCIPisGT(), SCIPisInfinity(), SCIPprintCons(), and SCIPupdateStartpointHeurSubNlp().
Referenced by SCIP_DECL_CONSENFOPS().
|
static |
domain propagation method of constraint handler
Definition at line 6956 of file cons_bivariate.c.
References propagateBounds(), SCIP_CALL, SCIP_DECL_CONSPRESOL(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSCHECK().
|
static |
presolving method of constraint handler
Definition at line 6973 of file cons_bivariate.c.
References FALSE, propagateBounds(), removeFixedNonlinearVariables(), removeFixedVariables(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSLOCK(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SUCCESS, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebugMsg, SCIPdebugPrintCons, and SCIPdelCons().
Referenced by SCIP_DECL_CONSPROP().
|
static |
variable rounding lock method of constraint handler
Definition at line 7050 of file cons_bivariate.c.
References SCIP_CALL, SCIP_DECL_CONSACTIVE(), SCIP_OKAY, SCIPaddVarLocks(), SCIPconsGetData(), and SCIPisInfinity().
Referenced by SCIP_DECL_CONSPRESOL().
|
static |
constraint activation notification method of constraint handler
Definition at line 7092 of file cons_bivariate.c.
References SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSDEACTIVE(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPexprgraphAddExprtreeSum(), SCIPexprtreeGetVars(), SCIPmarkDoNotMultaggrVar(), and SCIPvarIsActive().
Referenced by SCIP_DECL_CONSLOCK().
|
static |
constraint deactivation notification method of constraint handler
Definition at line 7136 of file cons_bivariate.c.
References SCIP_CALL, SCIP_DECL_CONSENABLE(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMsg, and SCIPexprgraphReleaseNode().
Referenced by SCIP_DECL_CONSACTIVE().
|
static |
constraint enabling notification method of constraint handler
Definition at line 7163 of file cons_bivariate.c.
References catchLinearVarEvents(), SCIP_CALL, SCIP_DECL_CONSDISABLE(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsTransformed(), SCIPdebugMsg, and SCIPexprgraphEnableNode().
Referenced by SCIP_DECL_CONSDEACTIVE().
|
static |
constraint disabling notification method of constraint handler
Definition at line 7195 of file cons_bivariate.c.
References dropLinearVarEvents(), SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMsg, and SCIPexprgraphDisableNode().
Referenced by SCIP_DECL_CONSENABLE().
|
static |
constraint display method of constraint handler
Definition at line 7225 of file cons_bivariate.c.
References SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_CALL, SCIP_DECL_CONSCOPY(), SCIP_OKAY, SCIPconsGetData(), SCIPexprtreePrintWithNames(), SCIPgetMessagehdlr(), SCIPinfoMessage(), SCIPisEQ(), SCIPisInfinity(), SCIPwriteVarName(), and TRUE.
Referenced by SCIP_DECL_CONSDISABLE().
|
static |
constraint copying method of constraint handler
Definition at line 7288 of file cons_bivariate.c.
References SCIP_CALL, SCIP_DECL_CONSGETVARS(), SCIP_OKAY, SCIPblkmem(), SCIPconsGetData(), SCIPconsGetName(), SCIPcreateConsBivariate(), SCIPexprtreeCopy(), SCIPexprtreeFree(), SCIPexprtreeGetVars(), SCIPexprtreeSetVars(), SCIPgetVarCopy(), and TRUE.
Referenced by SCIP_DECL_CONSPRINT().
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 7354 of file cons_bivariate.c.
References FALSE, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), SCIPexprtreeGetVars(), and TRUE.
Referenced by SCIP_DECL_CONSCOPY().
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 7380 of file cons_bivariate.c.
References SCIP_DECL_QUADCONSUPGD(), SCIP_OKAY, and TRUE.
Referenced by SCIP_DECL_CONSGETVARS().
|
static |
tries to upgrade a quadratic constraint into a bivariate constraint
Definition at line 7395 of file cons_bivariate.c.
References BMSclearMemoryArray, SCIP_BilinTerm::coef, createConsFromQuadTerm(), FALSE, SCIP_QuadVarTerm::lincoef, SCIP_Bool, SCIP_CALL, SCIP_DECL_EXPRGRAPHNODEREFORM(), SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_PRESOLTIMING_FAST, SCIP_PRESOLTIMING_MEDIUM, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddBilinTermQuadratic(), SCIPaddLinearVarQuadratic(), SCIPaddQuadVarLinearCoefQuadratic(), SCIPaddQuadVarQuadratic(), SCIPaddSquareCoefQuadratic(), SCIPaddVar(), SCIPallocBufferArray, SCIPcheckCurvatureQuadratic(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPcreateConsQuadratic(), SCIPcreateConsQuadratic2(), SCIPcreateVar(), SCIPdebugAddSolVal, SCIPdebugGetSolVal, SCIPdebugPrintCons, SCIPfindQuadVarTermQuadratic(), SCIPfreeBufferArray, SCIPgetBilinTermsQuadratic(), SCIPgetCoefsLinearVarsQuadratic(), SCIPgetLhsQuadratic(), SCIPgetLinearVarsQuadratic(), SCIPgetNBilinTermsQuadratic(), SCIPgetNLinearVarsQuadratic(), SCIPgetNQuadVarTermsQuadratic(), SCIPgetQuadVarTermsQuadratic(), SCIPgetRhsQuadratic(), SCIPinfinity(), SCIPisConcaveQuadratic(), SCIPisConvexQuadratic(), SCIPisInfinity(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsetConsChecked(), SCIPsetConsEnforced(), SCIPsnprintf(), SCIP_QuadVarTerm::sqrcoef, TRUE, SCIP_QuadVarTerm::var, SCIP_BilinTerm::var1, and SCIP_BilinTerm::var2.
Referenced by SCIP_DECL_CONSGETNVARS().
|
static |
tries to reformulate a expression graph node that is a monomial in two variables
Definition at line 7723 of file cons_bivariate.c.
References createConsFromMonomial(), SCIP_CALL, SCIP_EXPR_POLYNOMIAL, SCIP_EXPR_VARIDX, SCIP_EXPRCURV_UNKNOWN, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddCons(), SCIPaddVar(), SCIPcreateVar(), SCIPdebugAddSolVal, SCIPdebugMsg, SCIPdebugPrintCons, SCIPexprGetMonomialCoef(), SCIPexprGetMonomialExponents(), SCIPexprGetMonomialNFactors(), SCIPexprgraphAddVars(), SCIPexprgraphGetNodeBounds(), SCIPexprgraphGetNodeChildren(), SCIPexprgraphGetNodeCurvature(), SCIPexprgraphGetNodeNChildren(), SCIPexprgraphGetNodeOperator(), SCIPexprgraphGetNodePolynomialConstant(), SCIPexprgraphGetNodePolynomialMonomials(), SCIPexprgraphGetNodePolynomialNMonomials(), SCIPexprgraphGetNodeVal(), SCIPexprgraphGetNodeVar(), SCIPexprgraphSetVarNodeValue(), SCIPincludeConshdlrBivariate(), SCIPisEQ(), SCIPisNegative(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPvarGetLbGlobal(), and TRUE.
Referenced by SCIP_DECL_QUADCONSUPGD().