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 69 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 70 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_SEPAPRIORITY
#define CONSHDLR_SEPAPRIORITY 5 |
priority of the constraint handler for separation
Definition at line 71 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 72 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 73 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 74 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 75 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 76 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 79 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 80 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 81 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 82 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_PRESOLTIMING
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_FAST |
Definition at line 84 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ CONSHDLR_PROP_TIMING
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 85 of file cons_bivariate.c.
Referenced by SCIPincludeConshdlrBivariate().
◆ INTERVALINFTY
#define INTERVALINFTY 1E+43 |
value for infinity in interval operations
Definition at line 87 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 88 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 89 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 91 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 92 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 173 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 113 of file cons_bivariate.c.
Function Documentation
◆ SCIP_DECL_EVENTEXEC() [1/3]
|
static |
processes bound tightening event
Definition at line 177 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 197 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 250 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 302 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 349 of file cons_bivariate.c.
References FALSE, infty2infty, INTERVALINFTY, MAX, MIN, 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 387 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 413 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 444 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 475 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 704 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 780 of file cons_bivariate.c.
References computeViolations(), MAX, MIN, 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 912 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 960 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 1060 of file cons_bivariate.c.
References freeSepaData(), initSepaDataCreateVred(), MAX, MIN, 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 1216 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 1265 of file cons_bivariate.c.
References MIN, 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 1290 of file cons_bivariate.c.
References FALSE, generateLinearizationCut(), MAX, MIN, 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 1451 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(), SCIPconsGetHdlr(), 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 1527 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 1773 of file cons_bivariate.c.
References FALSE, generateEstimatingHyperplane(), generateUnderestimatorParallelYFacets(), NULL, 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().
◆ 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 1825 of file cons_bivariate.c.
References FALSE, generateOrthogonal_lx_ly_Underestimator(), MAX, MIN, 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 2056 of file cons_bivariate.c.
References FALSE, generateOrthogonal_lx_uy_Underestimator(), MAX, MIN, 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 2447 of file cons_bivariate.c.
References FALSE, generateConvexConcaveUnderestimator(), MAX, MIN, 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 2825 of file cons_bivariate.c.
References FALSE, generateConvexConcaveEstimator(), MAX, MIN, 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 3338 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(), SCIPconsGetHdlr(), 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 3505 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 3595 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 3789 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 3984 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 4171 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(), SCIPconsGetHdlr(), 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 4316 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimator(), generateConvexConcaveEstimator(), generateLinearizationCut(), generateOverestimatingHyperplaneCut(), isConvexLocal(), MAX, MIN, 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 4518 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 4619 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 4730 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 4810 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 4921 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 4979 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 5106 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 5178 of file cons_bivariate.c.
References FALSE, infty2infty, INTERVALINFTY, MAX, MIN, 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 5294 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 5439 of file cons_bivariate.c.
References computeViolation(), createConsFromQuadTerm(), FALSE, MAX, MIN, NULL, 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 5594 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 5760 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 5877 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 5950 of file cons_bivariate.c.
References computeViolations(), enforceViolatedFixedNonlinear(), MAX, MIN, 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(), SCIPgetSolVal(), SCIPisGT(), SCIPisStopped(), SCIPlpfeastol(), 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 6126 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 6142 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 6170 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 6188 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 6206 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 6232 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 6283 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(), 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 6413 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 6448 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 6479 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 6513 of file cons_bivariate.c.
References FALSE, generate1ConvexIndefiniteUnderestimator(), generateConvexConcaveEstimator(), generateLinearizationCut(), generateOverestimatingHyperplaneCut(), INITLPMAXVARVAL, MAX, MIN, 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 6734 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 6758 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 6781 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 6790 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 6800 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 6881 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 6977 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 6994 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 7071 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 7114 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 7158 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 7185 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 7217 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 7247 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 7310 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 7376 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 7401 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 7415 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 7743 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().