Detailed Description
constraint handler for bivariate nonlinear constraints \(\textrm{lhs} \leq f(x,y) + c z \leq \textrm{rhs}\)
Definition in file cons_bivariate.c.
#include "blockmemshell/memory.h"
#include "nlpi/exprinterpret.h"
#include "nlpi/pub_expr.h"
#include "nlpi/type_exprinterpret.h"
#include "scip/cons_bivariate.h"
#include "scip/cons_nonlinear.h"
#include "scip/cons_quadratic.h"
#include "scip/debug.h"
#include "scip/heur_subnlp.h"
#include "scip/heur_trysol.h"
#include "scip/intervalarith.h"
#include "scip/pub_cons.h"
#include "scip/pub_event.h"
#include "scip/pub_heur.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_nlp.h"
#include "scip/pub_sol.h"
#include "scip/pub_tree.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_cons.h"
#include "scip/scip_copy.h"
#include "scip/scip_cut.h"
#include "scip/scip_event.h"
#include "scip/scip_expr.h"
#include "scip/scip_general.h"
#include "scip/scip_heur.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_sepa.h"
#include "scip/scip_sol.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_tree.h"
#include "scip/scip_var.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 |
Macro Definition Documentation
◆ CONSHDLR_NAME
#define CONSHDLR_NAME "bivariate" |
Definition at line 70 of file cons_bivariate.c.
Referenced by SCIP_DECL_CONSEXITSOL(), SCIP_DECL_CONSINITSOL(), SCIPcreateConsBivariate(), and SCIPincludeConshdlrBivariate().
◆ CONSHDLR_DESC
#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 71 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_SEPAPRIORITY
#define CONSHDLR_SEPAPRIORITY 5 |
priority of the constraint handler for separation
Definition at line 72 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_ENFOPRIORITY
#define CONSHDLR_ENFOPRIORITY -55 |
priority of the constraint handler for constraint enforcing
Definition at line 73 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_CHECKPRIORITY
#define CONSHDLR_CHECKPRIORITY -3600000 |
priority of the constraint handler for checking feasibility
Definition at line 74 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_SEPAFREQ
#define CONSHDLR_SEPAFREQ 1 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 75 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_PROPFREQ
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 76 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ 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 77 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_MAXPREROUNDS
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 80 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_DELAYSEPA
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 81 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_DELAYPROP
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 82 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_NEEDSCONS
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 83 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_PRESOLTIMING
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_FAST |
Definition at line 85 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_PROP_TIMING
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 86 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ INTERVALINFTY
#define INTERVALINFTY 1E+43 |
value for infinity in interval operations
Definition at line 88 of file cons_bivariate.c.
Referenced by propagateBounds(), propagateBoundsCons(), SCIP_DECL_EVENTEXEC(), and SCIP_DECL_EXPRGRAPHVARADDED().
◆ NEWTONMAXITER
#define NEWTONMAXITER 1000 |
maximal number of iterations in newton method
Definition at line 89 of file cons_bivariate.c.
Referenced by solveDerivativeEquation().
◆ INITLPMAXVARVAL
#define INITLPMAXVARVAL 1000.0 |
maximal absolute value of variable for still generating a linearization cut at that point in initlp
Definition at line 90 of file cons_bivariate.c.
Referenced by SCIP_DECL_CONSINITLP().
◆ QUADCONSUPGD_PRIORITY
#define QUADCONSUPGD_PRIORITY 5000 |
priority of the constraint handler for upgrading of quadratic constraints
Definition at line 92 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ NONLINCONSUPGD_PRIORITY
#define NONLINCONSUPGD_PRIORITY 10000 |
priority of the constraint handler for upgrading of nonlinear constraints
Definition at line 93 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ infty2infty
#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 174 of file cons_bivariate.c.
Referenced by propagateBoundsCons(), SCIP_DECL_EVENTEXEC(), and SCIP_DECL_EXPRGRAPHVARADDED().
Typedef Documentation
◆ SEPADATA_CONVEXCONCAVE
typedef struct SepaData_ConvexConcave SEPADATA_CONVEXCONCAVE |
data structure to cache data used for separation of convex-concave constraints
Definition at line 114 of file cons_bivariate.c.
Function Documentation
◆ SCIP_DECL_EVENTEXEC() [1/3]
|
static |
processes bound tightening event
Definition at line 178 of file cons_bivariate.c.
References catchLinearVarEvents(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_OKAY, SCIPeventGetType(), and SCIPmarkConsPropagate().
Referenced by dropLinearVarEvents(), and separatePoint().
◆ catchLinearVarEvents()
|
static |
catches variable bound change events on the linear variable in a bivariate constraint
- Parameters
-
scip SCIP data structure cons constraint for which to catch bound change events
Definition at line 198 of file cons_bivariate.c.
References dropLinearVarEvents(), NULL, 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().
◆ dropLinearVarEvents()
|
static |
drops variable bound change events on the linear variable in a bivariate constraint
- Parameters
-
scip SCIP data structure cons constraint for which to catch bound change events
Definition at line 251 of file cons_bivariate.c.
References NULL, 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().
◆ SCIP_DECL_EVENTEXEC() [2/3]
|
static |
processes bound change events for variables in expression graph
Definition at line 303 of file cons_bivariate.c.
References FALSE, infty2infty, INTERVALINFTY, NULL, 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().
◆ SCIP_DECL_EXPRGRAPHVARADDED()
|
static |
callback method for variable addition in expression graph
Definition at line 350 of file cons_bivariate.c.
References FALSE, infty2infty, INTERVALINFTY, MAX, NULL, SCIP_CALL, SCIP_DECL_EXPRGRAPHVARREMOVE(), SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_VARFIXED, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIPaddVarLocksType(), SCIPcatchVarEvent(), SCIPdebugMessage, SCIPexprgraphSetVarNodeBounds(), SCIPinfinity(), SCIPintervalSetBounds(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and SCIPvarIsActive().
Referenced by SCIP_DECL_EVENTEXEC().
◆ SCIP_DECL_EXPRGRAPHVARREMOVE()
|
static |
callback method for variable removal in expression graph
Definition at line 388 of file cons_bivariate.c.
References lockLinearVariable(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_VARFIXED, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIPaddVarLocksType(), SCIPdebugMessage, SCIPdropVarEvent(), and SCIPvarGetName().
Referenced by SCIP_DECL_EXPRGRAPHVARADDED().
◆ lockLinearVariable()
|
static |
locks linear variable in a constraint
- Parameters
-
scip SCIP data structure cons constraint where to lock a variable var variable to lock coef coefficient of variable in constraint
Definition at line 414 of file cons_bivariate.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPisInfinity(), SCIPlockVarCons(), and unlockLinearVariable().
Referenced by removeFixedVariables(), and SCIP_DECL_EXPRGRAPHVARREMOVE().
◆ unlockLinearVariable()
|
static |
unlocks linear variable in a constraint
- Parameters
-
scip SCIP data structure cons constraint where to unlock a variable var variable to unlock coef coefficient of variable in constraint
Definition at line 445 of file cons_bivariate.c.
References NULL, removeFixedVariables(), SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPisInfinity(), and SCIPunlockVarCons().
Referenced by lockLinearVariable(), and removeFixedVariables().
◆ removeFixedVariables()
|
static |
resolves variable fixations and aggregations in a constraint
- Parameters
-
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 476 of file cons_bivariate.c.
References catchLinearVarEvents(), dropLinearVarEvents(), FALSE, lockLinearVariable(), NULL, 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().
◆ removeFixedNonlinearVariables()
|
static |
removes fixed variables from expression graph
- Parameters
-
scip SCIP data structure conshdlr constraint handler
Definition at line 705 of file cons_bivariate.c.
References computeViolation(), NULL, 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().
◆ computeViolation()
|
static |
computes violation of a constraint
- Parameters
-
scip SCIP data structure conshdlr constraint handler cons constraint sol solution or NULL if LP solution should be used
Definition at line 781 of file cons_bivariate.c.
References computeViolations(), MAX, NULL, 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(), SCIPvarGetUbLocal(), x, and y.
Referenced by computeViolations(), proposeFeasibleSolution(), removeFixedNonlinearVariables(), and SCIP_DECL_CONSCHECK().
◆ computeViolations()
|
static |
computes violation of a set of constraints
- Parameters
-
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 913 of file cons_bivariate.c.
References computeViolation(), initSepaDataCreateVred(), MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPfeastol(), and SCIPisGT().
Referenced by computeViolation(), enforceConstraint(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
◆ initSepaDataCreateVred()
|
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)
- Parameters
-
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 961 of file cons_bivariate.c.
References initSepaData(), NULL, 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().
◆ initSepaData()
|
static |
initializes separation data
- Parameters
-
scip SCIP data structure exprinterpreter expressions interpreter cons constraint
Definition at line 1061 of file cons_bivariate.c.
References freeSepaData(), initSepaDataCreateVred(), MAX, NULL, 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().
◆ freeSepaData()
|
static |
frees separation data
- Parameters
-
scip SCIP data structure cons constraint
Definition at line 1217 of file cons_bivariate.c.
References NULL, perturb(), SCIP_BIVAR_CONVEX_CONCAVE, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), and SCIPexprtreeFree().
Referenced by initSepaData(), and SCIP_DECL_CONSEXITSOL().
◆ perturb()
perturbs a value w.r.t. bounds
- Parameters
-
val value to perturb on input; perturbed value on output lb lower bound ub upper bound amount relative amount of perturbation
Definition at line 1266 of file cons_bivariate.c.
References NULL, SCIP_Real, and solveDerivativeEquation().
Referenced by freeSepaData(), generate1ConvexIndefiniteUnderestimator(), generateConvexConcaveUnderestimator(), generateLinearizationCut(), and solveDerivativeEquation().
◆ 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)
- Parameters
-
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 1291 of file cons_bivariate.c.
References FALSE, generateLinearizationCut(), MAX, NEWTONMAXITER, NULL, 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().
◆ generateLinearizationCut()
|
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)
- Parameters
-
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 1452 of file cons_bivariate.c.
References FALSE, generateEstimatingHyperplane(), NULL, perturb(), SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_BIVAR_ALLCONVEX, SCIP_BIVAR_CONVEX_CONCAVE, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarsToRow(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPcreateEmptyRowCons(), SCIPdebugMsg, SCIPexprintCompile(), SCIPexprintGrad(), SCIPexprtreeGetInterpreterData(), SCIPexprtreeGetVars(), SCIPgetNLPs(), SCIPinfinity(), SCIPisEQ(), SCIPisFinite, SCIPisInfinity(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), TRUE, x, and y.
Referenced by generateCut(), SCIP_DECL_CONSINITLP(), SCIP_DECL_EVENTEXEC(), and solveDerivativeEquation().
◆ generateEstimatingHyperplane()
|
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
- Parameters
-
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 1528 of file cons_bivariate.c.
References FALSE, generateOverestimatingHyperplaneCut(), NULL, 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(), TRUE, x, and y.
Referenced by generateConvexConcaveEstimator(), generateLinearizationCut(), and generateOverestimatingHyperplaneCut().
◆ generateOverestimatingHyperplaneCut()
|
static |
generates a cut for lhs <= f(x,y) + c*z with f(x,y) being convex
- Parameters
-
scip SCIP data structure exprinterpreter expressions interpreter cons constraint x0y0 reference values for nonlinear variables row storage for cut
Definition at line 1774 of file cons_bivariate.c.
References FALSE, generateEstimatingHyperplane(), generateUnderestimatorParallelYFacets(), NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPaddVarsToRow(), SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPcreateRowCons(), SCIPdebugMsg, SCIPexprtreeGetVars(), SCIPinfinity(), SCIPisFinite, SCIPisInfinity(), and TRUE.
Referenced by generateCut(), generateEstimatingHyperplane(), and SCIP_DECL_CONSINITLP().
◆ generateUnderestimatorParallelYFacets()
|
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)
- Parameters
-
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 1826 of file cons_bivariate.c.
References FALSE, generateOrthogonal_lx_ly_Underestimator(), MAX, NULL, 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(), TRUE, x, and y.
Referenced by generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), and generateOverestimatingHyperplaneCut().
◆ generateOrthogonal_lx_ly_Underestimator()
|
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)
- Parameters
-
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 2058 of file cons_bivariate.c.
References FALSE, generateOrthogonal_lx_uy_Underestimator(), MAX, NULL, 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(), TRUE, x, and y.
Referenced by generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), and generateUnderestimatorParallelYFacets().
◆ generateOrthogonal_lx_uy_Underestimator()
|
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)
- Parameters
-
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 2451 of file cons_bivariate.c.
References FALSE, generateConvexConcaveUnderestimator(), MAX, NULL, 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(), TRUE, x, and y.
Referenced by generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), and generateOrthogonal_lx_ly_Underestimator().
◆ generateConvexConcaveUnderestimator()
|
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)
- Parameters
-
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 2831 of file cons_bivariate.c.
References FALSE, generateConvexConcaveEstimator(), MAX, NULL, 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(), TRUE, x, and y.
Referenced by generateConvexConcaveEstimator(), and generateOrthogonal_lx_uy_Underestimator().
◆ generateConvexConcaveEstimator()
|
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
- Parameters
-
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 3344 of file cons_bivariate.c.
References FALSE, generateConvexConcaveUnderestimator(), generateEstimatingHyperplane(), lifting(), NULL, 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(), SCIPconsGetName(), SCIPcreateEmptyRowCons(), SCIPcreateRowCons(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPexprtreeGetVars(), SCIPgetNLPs(), SCIPgetStage(), SCIPinfinity(), SCIPisFinite, SCIPisInfinity(), SCIPisPositive(), SCIPsnprintf(), and TRUE.
Referenced by generateConvexConcaveUnderestimator(), generateCut(), and SCIP_DECL_CONSINITLP().
◆ lifting()
|
static |
computes an underestimating hyperplane for functions that are convex in x and y if the point to cut off lies on the boundary
- Parameters
-
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 3511 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimatorAtBoundary(), NULL, REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPexprintGrad(), SCIPisEQ(), SCIPisFinite, SCIPisInfinity(), and TRUE.
Referenced by generate1ConvexIndefiniteUnderestimatorAtBoundary(), and generateConvexConcaveEstimator().
◆ generate1ConvexIndefiniteUnderestimatorAtBoundary()
|
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)
- Parameters
-
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 3601 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), lifting(), NULL, REALABS, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMsg, SCIPdebugMsgPrint, SCIPerrorMessage, SCIPexprintGrad(), SCIPexprtreeGetVars(), SCIPexprtreePrintWithNames(), SCIPgetMessagehdlr(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisFinite, SCIPisInfinity(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), TRUE, x, and y.
Referenced by generate1ConvexIndefiniteUnderestimator(), and lifting().
◆ generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA()
|
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.
- Parameters
-
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 3795 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), generateOrthogonal_lx_ly_Underestimator(), generateUnderestimatorParallelYFacets(), NULL, 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(), TRUE, x, and y.
Referenced by generate1ConvexIndefiniteUnderestimator(), and generate1ConvexIndefiniteUnderestimatorAtBoundary().
◆ generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB()
|
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)
- Parameters
-
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 3991 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimator(), generateOrthogonal_lx_uy_Underestimator(), generateUnderestimatorParallelYFacets(), NULL, 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(), TRUE, x, and y.
Referenced by generate1ConvexIndefiniteUnderestimator(), and generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA().
◆ generate1ConvexIndefiniteUnderestimator()
|
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)
- If the point lies on the boundary we apply the lifting technique.
- If the point lies in the interior we check the pattern of the concave directions and compute the corresponding underestimators.
- Parameters
-
scip SCIP data structure exprinterpreter expressions interpreter cons constraint xyref reference values for x and y row storage for cut
Definition at line 4179 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimatorAtBoundary(), generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternA(), generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), generateCut(), NULL, perturb(), REALABS, SCIP_BIVAR_1CONVEX_INDEFINITE, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPaddVarToRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPcreateEmptyRowCons(), SCIPdebugMsg, SCIPexprintHessianDense(), SCIPexprtreeGetVars(), SCIPinfinity(), SCIPisFeasEQ(), SCIPisFinite, SCIPisInfinity(), SCIPisPositive(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), TRUE, x, and y.
Referenced by generate1ConvexIndefiniteUnderestimatorInTheInteriorPatternB(), generateCut(), and SCIP_DECL_CONSINITLP().
◆ generateCut()
|
static |
generates a cut
- Parameters
-
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 4324 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimator(), generateConvexConcaveEstimator(), generateLinearizationCut(), generateOverestimatingHyperplaneCut(), isConvexLocal(), MAX, NULL, 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(), SCIPvarGetUbLocal(), x, and y.
Referenced by generate1ConvexIndefiniteUnderestimator(), and separatePoint().
◆ isConvexLocal()
|
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
- Parameters
-
scip SCIP data structure cons constraint side constraint side to consider
Definition at line 4526 of file cons_bivariate.c.
References FALSE, NULL, 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(), separatePoint(), x, and y.
Referenced by generateCut(), and separatePoint().
◆ separatePoint()
|
static |
tries to separate solution or LP solution by a linear cut
assumes that constraint violations have been computed
- Parameters
-
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 4627 of file cons_bivariate.c.
References FALSE, generateCut(), isConvexLocal(), MAX, NULL, 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().
◆ SCIP_DECL_EVENTEXEC() [3/3]
|
static |
processes the event that a new primal solution has been found adds linearizations of all-convex constraints to the cutpool
Definition at line 4738 of file cons_bivariate.c.
References generateLinearizationCut(), NULL, 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.
◆ registerBranchingVariables()
|
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.
- Parameters
-
scip SCIP data structure conss constraints to check nconss number of constraints to check nnotify counter for number of notifications performed
Definition at line 4818 of file cons_bivariate.c.
References NULL, 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().
◆ registerLargeRelaxValueVariableForBranching()
|
static |
registers a nonlinear variable from a violated constraint as branching candidate that has a large absolute value in the relaxation
- Parameters
-
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 4929 of file cons_bivariate.c.
References enforceViolatedFixedNonlinear(), NULL, REALABS, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPaddExternBranchCand(), SCIPconsGetData(), SCIPexprtreeGetVars(), SCIPfeastol(), SCIPgetSolVal(), SCIPisEQ(), SCIPisGT(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by enforceConstraint(), and registerBranchingVariables().
◆ enforceViolatedFixedNonlinear()
|
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
- Parameters
-
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 4987 of file cons_bivariate.c.
References FALSE, h, NULL, 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().
◆ propagateBoundsTightenVar()
|
static |
tightens bounds on a variable to given interval
- Parameters
-
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 5114 of file cons_bivariate.c.
References FALSE, NULL, 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().
◆ propagateBoundsCons()
|
static |
tightens bounds of z in a single bivariate constraint checks for redundancy and infeasibility
- Parameters
-
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 5186 of file cons_bivariate.c.
References FALSE, infty2infty, INTERVALINFTY, MAX, NULL, 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().
◆ propagateBounds()
|
static |
calls domain propagation for a set of constraints
- Parameters
-
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 5302 of file cons_bivariate.c.
References FALSE, INTERVALINFTY, NULL, 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().
◆ proposeFeasibleSolution()
|
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.
- Parameters
-
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 5447 of file cons_bivariate.c.
References computeViolation(), createConsFromQuadTerm(), FALSE, MAX, NULL, SCIP_Bool, 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().
◆ createConsFromQuadTerm()
|
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
- Parameters
-
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 5606 of file cons_bivariate.c.
References SCIP_QuadElement::coef, createExprtreeFromMonomial(), SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, NULL, 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(), SCIPisLE(), x, and y.
Referenced by proposeFeasibleSolution(), and SCIP_DECL_QUADCONSUPGD().
◆ createExprtreeFromMonomial()
|
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
- Parameters
-
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 5772 of file cons_bivariate.c.
References createConsFromMonomial(), FALSE, NULL, 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(), TRUE, x, and y.
Referenced by createConsFromMonomial(), and createConsFromQuadTerm().
◆ createConsFromMonomial()
|
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
- Parameters
-
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 5889 of file cons_bivariate.c.
References createExprtreeFromMonomial(), enforceConstraint(), FALSE, NULL, 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().
◆ enforceConstraint()
|
static |
helper function to enforce constraints
- Parameters
-
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 5962 of file cons_bivariate.c.
References computeViolations(), enforceViolatedFixedNonlinear(), MAX, NULL, 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(), SCIPgetLPFeastol(), SCIPgetSolVal(), SCIPisGT(), SCIPisStopped(), SCIPnodeGetEstimate(), SCIPvarGetName(), SCIPwarningMessage(), separatePoint(), and TRUE.
Referenced by createConsFromMonomial(), SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFORELAX().
◆ SCIP_DECL_CONSHDLRCOPY()
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 6138 of file cons_bivariate.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSFREE(), SCIP_OKAY, SCIPincludeConshdlrBivariate(), and TRUE.
Referenced by enforceConstraint().
◆ SCIP_DECL_CONSFREE()
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 6154 of file cons_bivariate.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSINIT(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPexprgraphFree(), SCIPexprgraphGetNVars(), SCIPexprintFree(), and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSHDLRCOPY().
◆ SCIP_DECL_CONSINIT()
|
static |
initialization method of constraint handler (called after problem was transformed)
Definition at line 6182 of file cons_bivariate.c.
References NULL, SCIP_DECL_CONSEXIT(), SCIP_OKAY, SCIPconshdlrGetData(), and SCIPfindHeur().
Referenced by SCIP_DECL_CONSFREE().
◆ SCIP_DECL_CONSEXIT()
|
static |
deinitialization method of constraint handler (called before transformed problem is freed)
Definition at line 6200 of file cons_bivariate.c.
References NULL, SCIP_DECL_CONSINITPRE(), SCIP_OKAY, and SCIPconshdlrGetData().
Referenced by SCIP_DECL_CONSINIT().
◆ SCIP_DECL_CONSINITPRE()
|
static |
presolving initialization method of constraint handler (called when presolving is about to begin)
Definition at line 6218 of file cons_bivariate.c.
References FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSEXITPRE(), SCIP_OKAY, SCIPconsGetData(), and SCIPmarkConsPropagate().
Referenced by SCIP_DECL_CONSEXIT().
◆ SCIP_DECL_CONSEXITPRE()
|
static |
presolving deinitialization method of constraint handler (called after presolving has been finished)
Definition at line 6244 of file cons_bivariate.c.
References NULL, 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().
◆ SCIP_DECL_CONSINITSOL()
|
static |
solving process initialization method of constraint handler (called when branch and bound process is about to begin)
Definition at line 6295 of file cons_bivariate.c.
References BMSclearMemoryArray, CONSHDLR_NAME, initSepaData(), NULL, 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_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_VERBLEVEL_HIGH, SCIPaddNlRow(), SCIPcatchEvent(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsEnabled(), SCIPcreateNlRow(), SCIPdebugMsg, SCIPfindEventhdlr(), SCIPisInfinity(), SCIPisNLPConstructed(), SCIPreleaseNlRow(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPverbMessage(), and TRUE.
Referenced by SCIP_DECL_CONSEXITPRE().
◆ SCIP_DECL_CONSEXITSOL()
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 6425 of file cons_bivariate.c.
References CONSHDLR_NAME, freeSepaData(), NULL, SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_EVENTTYPE_SOLFOUND, SCIP_OKAY, SCIPconshdlrGetData(), SCIPdropEvent(), and SCIPfindEventhdlr().
Referenced by SCIP_DECL_CONSINITSOL().
◆ SCIP_DECL_CONSDELETE()
|
static |
frees specific constraint data
Definition at line 6460 of file cons_bivariate.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPexprtreeFree(), and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSEXITSOL().
◆ SCIP_DECL_CONSTRANS()
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 6491 of file cons_bivariate.c.
References NULL, 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().
◆ SCIP_DECL_CONSINITLP()
|
static |
LP initialization method of constraint handler (called before the initial LP relaxation at a node is solved)
Definition at line 6525 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimator(), generateConvexConcaveEstimator(), generateLinearizationCut(), generateOverestimatingHyperplaneCut(), INITLPMAXVARVAL, MAX, NULL, 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().
◆ SCIP_DECL_CONSSEPALP()
|
static |
separation method of constraint handler for LP solutions
Definition at line 6746 of file cons_bivariate.c.
References computeViolations(), FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSSEPASOL(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIPgetSepaMinEfficacy(), and separatePoint().
Referenced by SCIP_DECL_CONSINITLP().
◆ SCIP_DECL_CONSSEPASOL()
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 6770 of file cons_bivariate.c.
References computeViolations(), FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSENFOLP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIPgetSepaMinEfficacy(), and separatePoint().
Referenced by SCIP_DECL_CONSSEPALP().
◆ SCIP_DECL_CONSENFOLP()
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 6793 of file cons_bivariate.c.
References enforceConstraint(), NULL, SCIP_CALL, SCIP_DECL_CONSENFORELAX(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSSEPASOL().
◆ SCIP_DECL_CONSENFORELAX()
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 6802 of file cons_bivariate.c.
References enforceConstraint(), SCIP_CALL, SCIP_DECL_CONSENFOPS(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSENFOLP().
◆ SCIP_DECL_CONSENFOPS()
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 6812 of file cons_bivariate.c.
References computeViolations(), MAX, NULL, 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().
◆ SCIP_DECL_CONSCHECK()
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 6893 of file cons_bivariate.c.
References computeViolation(), FALSE, NULL, 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().
◆ SCIP_DECL_CONSPROP()
|
static |
domain propagation method of constraint handler
Definition at line 6989 of file cons_bivariate.c.
References NULL, propagateBounds(), SCIP_CALL, SCIP_DECL_CONSPRESOL(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSCHECK().
◆ SCIP_DECL_CONSPRESOL()
|
static |
presolving method of constraint handler
Definition at line 7006 of file cons_bivariate.c.
References FALSE, NULL, 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().
◆ SCIP_DECL_CONSLOCK()
|
static |
variable rounding lock method of constraint handler
Definition at line 7083 of file cons_bivariate.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSACTIVE(), SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIPaddVarLocksType(), SCIPconsGetData(), and SCIPisInfinity().
Referenced by SCIP_DECL_CONSPRESOL().
◆ SCIP_DECL_CONSACTIVE()
|
static |
constraint activation notification method of constraint handler
Definition at line 7126 of file cons_bivariate.c.
References NULL, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSDEACTIVE(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPexprgraphAddExprtreeSum(), SCIPexprtreeGetVars(), SCIPmarkDoNotMultaggrVar(), and SCIPvarIsActive().
Referenced by SCIP_DECL_CONSLOCK().
◆ SCIP_DECL_CONSDEACTIVE()
|
static |
constraint deactivation notification method of constraint handler
Definition at line 7170 of file cons_bivariate.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSENABLE(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMsg, and SCIPexprgraphReleaseNode().
Referenced by SCIP_DECL_CONSACTIVE().
◆ SCIP_DECL_CONSENABLE()
|
static |
constraint enabling notification method of constraint handler
Definition at line 7197 of file cons_bivariate.c.
References catchLinearVarEvents(), NULL, SCIP_CALL, SCIP_DECL_CONSDISABLE(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsActive(), SCIPconsIsTransformed(), SCIPdebugMsg, and SCIPexprgraphEnableNode().
Referenced by SCIP_DECL_CONSDEACTIVE().
◆ SCIP_DECL_CONSDISABLE()
|
static |
constraint disabling notification method of constraint handler
Definition at line 7229 of file cons_bivariate.c.
References dropLinearVarEvents(), NULL, SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsTransformed(), SCIPdebugMsg, and SCIPexprgraphDisableNode().
Referenced by SCIP_DECL_CONSENABLE().
◆ SCIP_DECL_CONSPRINT()
|
static |
constraint display method of constraint handler
Definition at line 7259 of file cons_bivariate.c.
References NULL, 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().
◆ SCIP_DECL_CONSCOPY()
|
static |
constraint copying method of constraint handler
Definition at line 7322 of file cons_bivariate.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSGETVARS(), SCIP_OKAY, SCIPblkmem(), SCIPconsGetData(), SCIPconsGetName(), SCIPcreateConsBivariate(), SCIPexprtreeCopy(), SCIPexprtreeFree(), SCIPexprtreeGetVars(), SCIPexprtreeSetVars(), SCIPgetVarCopy(), and TRUE.
Referenced by SCIP_DECL_CONSPRINT().
◆ SCIP_DECL_CONSGETVARS()
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 7388 of file cons_bivariate.c.
References FALSE, NULL, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), SCIPexprtreeGetVars(), and TRUE.
Referenced by SCIP_DECL_CONSCOPY().
◆ SCIP_DECL_CONSGETNVARS()
|
static |
constraint method of constraint handler which returns the number of variables (if possible)
Definition at line 7413 of file cons_bivariate.c.
References SCIP_DECL_QUADCONSUPGD(), SCIP_OKAY, and TRUE.
Referenced by SCIP_DECL_CONSGETVARS().
◆ SCIP_DECL_QUADCONSUPGD()
|
static |
tries to upgrade a quadratic constraint into a bivariate constraint
Definition at line 7427 of file cons_bivariate.c.
References BMSclearMemoryArray, SCIP_BilinTerm::coef, createConsFromQuadTerm(), FALSE, SCIP_QuadVarTerm::lincoef, NULL, 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, SCIP_BilinTerm::var2, x, and y.
Referenced by SCIP_DECL_CONSGETNVARS().
◆ SCIP_DECL_EXPRGRAPHNODEREFORM()
|
static |
tries to reformulate a expression graph node that is a monomial in two variables
Definition at line 7755 of file cons_bivariate.c.
References createConsFromMonomial(), NULL, 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(), TRUE, x, and y.
Referenced by SCIP_DECL_QUADCONSUPGD().