constraint handler for second order cone constraints \(\sqrt{\gamma + \sum_{i=1}^{n} (\alpha_i\, (x_i + \beta_i))^2} \leq \alpha_{n+1}\, (x_{n+1}+\beta_{n+1})\)
Definition in file cons_soc.c.
#include <assert.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include "scip/cons_soc.h"
#include "scip/cons_quadratic.h"
#include "scip/cons_linear.h"
#include "scip/heur_subnlp.h"
#include "scip/heur_trysol.h"
#include "scip/intervalarith.h"
#include "nlpi/nlpi.h"
#include "nlpi/exprinterpret.h"
#include "nlpi/nlpi_ipopt.h"
Go to the source code of this file.
Macros | |
#define | CONSHDLR_NAME "soc" |
#define | CONSHDLR_DESC "constraint handler for second order cone constraints" |
#define | CONSHDLR_SEPAPRIORITY 10 |
#define | CONSHDLR_ENFOPRIORITY -40 |
#define | CONSHDLR_CHECKPRIORITY -10 |
#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_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
#define | CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_ALWAYS |
#define | QUADCONSUPGD_PRIORITY 10000 |
#define | UPGSCALE 10 /* scale factor used in general upgrades of quadratic cons to soc */ |
Typedefs | |
typedef struct VarEventData | VAREVENTDATA |
#define CONSHDLR_NAME "soc" |
Definition at line 48 of file cons_soc.c.
Referenced by enforceConstraint(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSEXITSOL(), SCIP_DECL_CONSFREE(), SCIP_DECL_CONSHDLRCOPY(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSLOCK(), SCIP_DECL_CONSPRINT(), SCIP_DECL_CONSTRANS(), SCIP_DECL_QUADCONSUPGD(), SCIPcreateConsSOC(), and SCIPincludeConshdlrSOC().
#define CONSHDLR_DESC "constraint handler for second order cone constraints" |
Definition at line 49 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_SEPAPRIORITY 10 |
priority of the constraint handler for separation
Definition at line 50 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_ENFOPRIORITY -40 |
priority of the constraint handler for constraint enforcing
Definition at line 51 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_CHECKPRIORITY -10 |
priority of the constraint handler for checking feasibility
Definition at line 52 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_SEPAFREQ 1 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 53 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 54 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#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 55 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 58 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 59 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 60 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 61 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
propagation timing mask of the constraint handler
Definition at line 63 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_ALWAYS |
presolving timing of the constraint handler (fast, medium, or exhaustive)
Definition at line 64 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define QUADCONSUPGD_PRIORITY 10000 |
priority of the constraint handler for upgrading of quadratic constraints
Definition at line 66 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define UPGSCALE 10 /* scale factor used in general upgrades of quadratic cons to soc */ |
Definition at line 68 of file cons_soc.c.
Referenced by SCIP_DECL_QUADCONSUPGD().
typedef struct VarEventData VAREVENTDATA |
Definition at line 81 of file cons_soc.c.
|
static |
catch left hand side variable events
scip | SCIP data structure |
eventhdlr | event handler |
cons | constraint for which to catch bound change events |
varidx | index of the variable which events to catch |
Definition at line 142 of file cons_soc.c.
References catchRhsVarEvents(), VarEventData::cons, NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_OKAY, SCIPcatchVarEvent(), SCIPconsGetData(), SCIPmarkConsPropagate(), and VarEventData::varidx.
Referenced by catchVarEvents(), and presolveRemoveFixedVariables().
|
static |
catch right hand side variable events
scip | SCIP data structure |
eventhdlr | event handler |
cons | constraint for which to catch bound change events |
Definition at line 173 of file cons_soc.c.
References catchVarEvents(), VarEventData::cons, NULL, SCIP_CALL, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPcatchVarEvent(), SCIPconsGetData(), and SCIPmarkConsPropagate().
Referenced by catchLhsVarEvents(), catchVarEvents(), and presolveRemoveFixedVariables().
|
static |
catch variables events
scip | SCIP data structure |
eventhdlr | event handler |
cons | constraint for which to catch bound change events |
Definition at line 200 of file cons_soc.c.
References catchLhsVarEvents(), catchRhsVarEvents(), dropLhsVarEvents(), NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, and SCIPconsGetData().
Referenced by catchRhsVarEvents(), presolveRemoveFixedVariables(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsSOC().
|
static |
drop left hand side variable events
scip | SCIP data structure |
eventhdlr | event handler |
cons | constraint for which to catch bound change events |
varidx | index of the variable which events to catch |
Definition at line 237 of file cons_soc.c.
References dropRhsVarEvents(), NULL, SCIP_CALL, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_OKAY, SCIPconsGetData(), SCIPdropVarEvent(), and VarEventData::varidx.
Referenced by catchVarEvents(), dropVarEvents(), and presolveRemoveFixedVariables().
|
static |
drop right hand side variable events
scip | SCIP data structure |
eventhdlr | event handler |
cons | constraint for which to catch bound change events |
Definition at line 264 of file cons_soc.c.
References dropVarEvents(), NULL, SCIP_CALL, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPconsGetData(), and SCIPdropVarEvent().
Referenced by dropLhsVarEvents(), dropVarEvents(), and presolveRemoveFixedVariables().
|
static |
drop variable events
scip | SCIP data structure |
eventhdlr | event handler |
cons | constraint for which to catch bound change events |
Definition at line 287 of file cons_soc.c.
References dropLhsVarEvents(), dropRhsVarEvents(), NULL, SCIP_CALL, SCIP_DECL_EVENTEXEC(), SCIP_OKAY, SCIPconsGetData(), and SCIPfreeBlockMemoryArray.
Referenced by dropRhsVarEvents(), presolveRemoveFixedVariables(), and SCIP_DECL_CONSDELETE().
|
static |
process variable bound tightening event
Definition at line 323 of file cons_soc.c.
References VarEventData::cons, createNlRow(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPmarkConsPropagate().
Referenced by addLinearizationCuts(), and dropVarEvents().
|
static |
create a nonlinear row representation of the constraint and stores them in consdata
scip | SCIP data structure |
conshdlr | SOC constraint handler |
cons | SOC constraint |
Definition at line 343 of file cons_soc.c.
References SCIP_QuadElement::coef, evalLhs(), FALSE, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, NULL, SCIP_ExprTree::nvars, SCIP_CALL, SCIP_ERROR, SCIP_EXPR_CONST, SCIP_EXPR_DIV, SCIP_EXPR_EXP, SCIP_EXPR_MINUS, SCIP_EXPR_MUL, SCIP_EXPR_PLUS, SCIP_EXPR_SQRT, SCIP_EXPR_SQUARE, SCIP_EXPR_VARIDX, SCIP_EXPRCURV_CONVEX, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIP_Real, SCIPaddLinearCoefToNlRow(), SCIPaddQuadElementToNlRow(), SCIPaddQuadVarToNlRow(), SCIPallocBufferArray, SCIPblkmem(), SCIPchgNlRowRhs(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPcreateNlRow(), SCIPdebug, SCIPdebugMsg, SCIPdebugPrintCons, SCIPerrorMessage, SCIPexprCreate(), SCIPexprCreateLinear(), SCIPexprCreateMonomial(), SCIPexprCreatePolynomial(), SCIPexprtreeAddVars(), SCIPexprtreeCreate(), SCIPexprtreeFree(), SCIPexprtreeSetVars(), SCIPfreeBufferArray, SCIPinfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPnlrowSearchQuadVar(), SCIPprintNlRow(), SCIPreleaseNlRow(), SCIPvarGetLbGlobal(), and SCIPvarGetUbGlobal().
Referenced by SCIP_DECL_CONSINITSOL(), SCIP_DECL_EVENTEXEC(), and SCIPgetNlRowSOC().
|
static |
evaluates the left hand side of a SOC constraint
scip | SCIP data structure |
cons | constraint to evaluate |
sol | solution to evaluate, or NULL if LP solution should be used |
Definition at line 684 of file cons_soc.c.
References getGradientNorm(), NULL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfinity(), SCIPisInfinity(), and sqrt().
Referenced by addLinearizationCuts(), computeViolation(), and createNlRow().
scip | SCIP data structure |
cons | constraint |
sol | solution or NULL if LP solution should be used |
Definition at line 724 of file cons_soc.c.
References computeViolation(), NULL, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPisInfinity(), and sqrt().
Referenced by computeViolation(), and evalLhs().
|
static |
computes violation of a SOC constraint
scip | SCIP data structure |
conshdlr | constraint handler |
cons | constraint to evaluate |
sol | solution to evaluate, or NULL if LP solution should be used |
Definition at line 757 of file cons_soc.c.
References computeViolations(), evalLhs(), getGradientNorm(), MAX, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPerrorMessage, SCIPgetSolVal(), SCIPinfinity(), and SCIPisInfinity().
Referenced by computeViolations(), getGradientNorm(), and SCIP_DECL_CONSCHECK().
|
static |
computes violations for a set of constraints
scip | SCIP data structure |
conshdlr | constraint handler |
conss | constraints to evaluate |
nconss | number of constraints to evaluate |
sol | solution to evaluate, or NULL if LP solution should be used |
maxviolcons | a buffer to store pointer to maximal violated constraint, or NULL if of no interest |
Definition at line 858 of file cons_soc.c.
References computeViolation(), generateCutSol(), 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().
|
static |
generate supporting hyperplane in a given solution
scip | SCIP pointer |
cons | constraint |
sol | solution to separate, or NULL for LP solution |
row | place to store cut |
Definition at line 897 of file cons_soc.c.
References FALSE, generateCutPoint(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarsToRow(), SCIPaddVarToRow(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPcreateEmptyRowCons(), SCIPfreeBufferArray, SCIPgetNLPs(), SCIPgetSolVal(), SCIPinfinity(), SCIPisInfinity(), SCIPisPositive(), SCIPsnprintf(), and TRUE.
Referenced by addLinearizationCuts(), computeViolations(), generateCutProjectedPoint(), generateSparseCut(), and separatePoint().
|
static |
generate supporting hyperplane in a given point
scip | SCIP pointer |
cons | constraint |
x | point (lhs-vars) where to generate cut |
row | place to store cut |
Definition at line 949 of file cons_soc.c.
References FALSE, generateCutProjectedPoint(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarsToRow(), SCIPaddVarToRow(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPcreateEmptyRowCons(), SCIPfreeBufferArray, SCIPgetNLPs(), SCIPinfinity(), SCIPisInfinity(), SCIPisZero(), SCIPsnprintf(), sqrt(), and TRUE.
Referenced by generateCutSol(), and generateSparseCut().
|
static |
generate supporting hyperplane w.r.t. solution projected on feasible set
Instead of linearizing the SOC constraint in the given solution point, this function projects the point first onto the feasible set of the SOC constraint (w.r.t. euclidean norm (scaled by alpha)) and linearizes the SOC constraint there. The hope is that this produces somewhat tighter cuts.
The projection has only be computed for the case gamma = 0. If gamma > 0, generateCut is called.
Let \(\hat x\) be sol or the LP solution if sol == NULL. Then the projected point \(\tilde x\) is given by
\[ \tilde x_i = \frac{\hat x_i + \lambda \beta_i}{1-\lambda}, \quad i=1,\ldots, n; \quad \tilde x_{n+1} = \frac{\hat x_{n+1} - \lambda \beta_{n+1}}{1+\lambda} \]
where
\[ \lambda = \frac{1-A}{1+A}, \qquad A = \frac{\alpha_{n+1}(\hat x_{n+1}+\beta_{n+1})}{\sqrt{\sum_{i=1}^n (\alpha_i(\hat x_i+\beta_i))^2}} \]
If lambda is very close to 1, generateCut is called.
The generated cut is very similar to the unprojected form. The only difference is in the right hand side, which is (in the case beta = 0) multiplied by 1/(1-lambda).
scip | SCIP pointer |
cons | constraint |
sol | solution to separate, or NULL for LP solution |
row | place to store cut |
Definition at line 1045 of file cons_soc.c.
References FALSE, generateCutSol(), generateSparseCut(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarsToRow(), SCIPaddVarToRow(), SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPcreateEmptyRowCons(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPgetNLPs(), SCIPgetSolVal(), SCIPinfinity(), SCIPisFeasEQ(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPsnprintf(), and TRUE.
Referenced by generateCutPoint(), and separatePoint().
|
static |
generates sparsified supporting hyperplane
scip | SCIP pointer |
conshdlr | constraint handler |
cons | constraint |
sol | solution to separate, or NULL for LP solution |
row | place to store cut |
minefficacy | minimal efficacy for a cut to be accepted |
Definition at line 1121 of file cons_soc.c.
References generateCutPoint(), generateCutSol(), MAX, MIN, NULL, REALABS, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPallocBufferArray, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPdebugMsg, SCIPerrorMessage, SCIPfreeBufferArray, SCIPgetRowMaxCoef(), SCIPgetRowSolFeasibility(), SCIPgetSolVal(), SCIPgetSolVals(), SCIPisGT(), SCIPisInfinity(), SCIPisPositive(), SCIPreleaseRow(), SCIProwGetLhs(), SCIProwGetRhs(), SCIPsortRealInt(), separatePoint(), and TRUE.
Referenced by generateCutProjectedPoint(), and separatePoint().
|
static |
separates a point, if possible
scip | SCIP data structure |
conshdlr | constraint handler |
conss | constraints |
nconss | number of constraints |
nusefulconss | number of constraints that seem to be useful |
sol | solution to separate, or NULL for LP solution |
inenforcement | whether we are in constraint enforcement |
cutoff | pointer to store whether a fixing leads to a cutoff |
success | buffer to store whether the point was separated |
Definition at line 1260 of file cons_soc.c.
References addLinearizationCuts(), FALSE, generateCutProjectedPoint(), generateCutSol(), generateSparseCut(), MAX, MIN, NULL, REALABS, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPaddCut(), SCIPconsGetData(), SCIPconshdlrGetData(), SCIPdebugMsg, SCIPepsilon(), SCIPerrorMessage, SCIPfeastol(), SCIPgetCutEfficacy(), SCIPgetRelaxFeastolFactor(), SCIPgetRowMaxCoef(), SCIPgetRowSolFeasibility(), SCIPisCutApplicable(), SCIPisGT(), SCIPisInfinity(), SCIPisLE(), SCIPmarkRowNotRemovableLocal(), SCIPreleaseRow(), SCIPresetConsAge(), SCIProwGetLhs(), SCIProwGetRhs(), and TRUE.
Referenced by enforceConstraint(), generateSparseCut(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
|
static |
adds linearizations cuts for convex constraints w.r.t. a given reference point to cutpool and sepastore if separatedlpsol is not NULL, then a cut that separates the LP solution is added to the sepastore and is forced to enter the LP if separatedlpsol is not NULL, but cut does not separate the LP solution, then it is added to the cutpool only if separatedlpsol is NULL, then cut is added to cutpool only
scip | SCIP data structure |
conshdlr | quadratic constraints handler |
conss | constraints |
nconss | number of constraints |
ref | reference point where to linearize, or NULL for LP solution |
separatedlpsol | buffer to store whether a cut that separates the current LP solution was found and added to LP, or NULL if adding to cutpool only |
minefficacy | minimal efficacy of a cut when checking for separation of LP solution |
cutoff | pointer to store whether a cutoff was detected |
Definition at line 1400 of file cons_soc.c.
References evalLhs(), FALSE, generateCutSol(), MAX, MIN, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_EVENTEXEC(), SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPaddCut(), SCIPaddPoolCut(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsLocal(), SCIPdebugMsg, SCIPerrorMessage, SCIPgetRowLPFeasibility(), SCIPgetRowMaxCoef(), SCIPisInfinity(), SCIPisPositive(), SCIPreleaseRow(), SCIProwGetLhs(), SCIProwGetRhs(), SCIProwIsLocal(), and TRUE.
Referenced by SCIP_DECL_CONSSEPALP(), SCIP_DECL_EVENTEXEC(), and separatePoint().
|
static |
processes the event that a new primal solution has been found
Definition at line 1513 of file cons_soc.c.
References addLinearizationCuts(), NULL, presolveRemoveFixedVariables(), SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_SOLFOUND, SCIP_OKAY, SCIPconshdlrGetConss(), SCIPconshdlrGetData(), SCIPconshdlrGetNConss(), SCIPdebugMsg, SCIPeventGetSol(), SCIPeventGetType(), SCIPheurGetName(), and SCIPsolGetHeur().
|
static |
removes fixed variables, replace aggregated and negated variables
repeats replacements until no further change is found; takes care of capture/release and locks, but not of variable events (assumes that var events are not caught yet)
scip | SCIP data structure |
conshdlr | constraint handler for signpower constraints |
cons | constraint |
ndelconss | counter for number of deleted constraints |
nupgdconss | counter for number of upgraded constraints |
nchgbds | counter for number of bound changes |
nfixedvars | counter for number of fixed variables |
iscutoff | to store whether constraint cannot be satisfied |
isdeleted | to store whether constraint is redundant and can be deleted |
Definition at line 1566 of file cons_soc.c.
References BMSclearMemoryArray, catchLhsVarEvents(), catchRhsVarEvents(), catchVarEvents(), dropLhsVarEvents(), dropRhsVarEvents(), dropVarEvents(), FALSE, SCIP_QuadVarTerm::lincoef, NULL, presolveCreateGlineurApproxDim3(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_ORIGINAL, SCIPaddCons(), SCIPallocBufferArray, SCIPcaptureVar(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPcreateConsQuadratic2(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPfixVar(), SCIPfreeBufferArray, SCIPgetProbvarSum(), SCIPinfinity(), SCIPisFeasLE(), SCIPisNegative(), SCIPisZero(), SCIPlockVarCons(), SCIPreallocBlockMemoryArray, SCIPreleaseCons(), SCIPreleaseNlRow(), SCIPreleaseVar(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPunlockVarCons(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsActive(), SCIP_QuadVarTerm::sqrcoef, sqrt(), TRUE, and SCIP_QuadVarTerm::var.
Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_EVENTEXEC().
|
static |
adds the linear outer-approximation of Glineur et.al. for a SOC constraint of dimension 3
Input is the data for a constraint \(\sqrt{(\alpha_1(x_1+offset1))^2 + (\alpha_2(x_2+offset2))^2) \leq \alpha_3(x_3+offset3)}\). Here constant >= 0.0, alpha3 > 0.0, and the lower bound of x3 >= -offset3. Also x2 = NULL is allowed, in which case the second term is assumed to be constant, and offset2 != 0 is needed.
scip | SCIP data structure |
cons | original constraint |
x1 | variable x1 |
x2 | variable x2 |
x3 | variable x3 |
alpha1 | coefficient of x1 |
alpha2 | coefficient of x2 |
alpha3 | coefficient of x3 |
offset1 | offset of x1 |
offset2 | offset of x2 |
offset3 | offset of x3 |
N | size of linear approximation, need to be >= 1 |
basename | string to use for building variable and constraint names |
naddconss | buffer where to add the number of added constraints |
Definition at line 2003 of file cons_soc.c.
References cos(), FALSE, M_PI, NULL, presolveCreateBenTalNemirovskiApproxDim3(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddCons(), SCIPaddVar(), SCIPallocBufferArray, SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPcreateVar(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPfreeBufferArray, SCIPinfinity(), SCIPisGE(), SCIPisPositive(), SCIPisZero(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPtightenVarLb(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPwarningMessage(), sin(), and TRUE.
Referenced by presolveCreateOuterApproxDim3(), and presolveRemoveFixedVariables().
|
static |
adds the linear outer-approximation of Ben-Tal and Nemirovski for a SOC constraint of dimension 3
Input is the data for a constraint \(\sqrt{constant + (\alpha_1(x_1+offset1))^2 + (\alpha_2(x_2+offset2))^2) \leq \alpha_3(x_3+offset3)}\). Here constant >= 0.0, alpha3 > 0.0, and the lower bound of x3 >= -offset3. Also x2 = NULL is allowed, in which case the second term is assumed to be constant, and offset2 != 0 is needed.
scip | SCIP data structure |
cons | original constraint |
x1 | variable x1 |
x2 | variable x2 |
x3 | variable x3 |
alpha1 | coefficient of x1 |
alpha2 | coefficient of x2 |
alpha3 | coefficient of x3 |
offset1 | offset of x1 |
offset2 | offset of x2 |
offset3 | offset of x3 |
N | size of linear approximation, need to be >= 1 |
basename | string to use for building variable and constraint names |
naddconss | buffer where to add the number of added constraints |
Definition at line 2236 of file cons_soc.c.
References cos(), M_PI, NULL, pow(), presolveCreateOuterApproxDim3(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddCons(), SCIPaddVar(), SCIPallocBufferArray, SCIPchgVarLbGlobal(), SCIPchgVarLbNode(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPcreateVar(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPinfinity(), SCIPisGE(), SCIPisPositive(), SCIPisZero(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), sin(), and TRUE.
Referenced by presolveCreateGlineurApproxDim3(), and presolveCreateOuterApproxDim3().
|
static |
adds a linear outer approx for a three dimensional SOC constraint
chooses between Ben-Tan/Nemirovski and Glineur and calls the corresponding function
scip | SCIP data structure |
cons | original constraint |
x1 | variable x1 |
x2 | variable x2 |
x3 | variable x3 |
alpha1 | coefficient of x1 |
alpha2 | coefficient of x2 |
alpha3 | coefficient of x3 |
offset1 | offset of x1 |
offset2 | offset of x2 |
offset3 | offset of x3 |
N | size of linear approximation, need to be >= 1 |
glineur | whether to prefer Glineur to Ben-Tal Nemirovski |
basename | string to use for building variable and constraint names |
naddconss | buffer where to add the number of added constraints |
Definition at line 2482 of file cons_soc.c.
References presolveCreateBenTalNemirovskiApproxDim3(), presolveCreateGlineurApproxDim3(), presolveCreateOuterApprox(), SCIP_CALL, and SCIP_OKAY.
Referenced by presolveCreateBenTalNemirovskiApproxDim3(), and presolveCreateOuterApprox().
|
static |
adds linear outer approximation of Ben-Tal and Nemirovski for a constraint \(\gamma + \sum_{i=1}^n (\alpha_i (x_i + \beta_i))^2 <= (\alpha_{n+1} (x_{n+1} + \beta_{n+1}))^2\) to the LP
if n>2, calls same function recursively; if n=2, calls presolveCreateBenTalNemirovskiApproxDim3
scip | SCIP data structure |
nlhsvars | number of variables on left hand side (n) |
lhsvars | variables on left hand side (x_i) |
lhscoefs | coefficients of variables on left hand side (alpha_i) |
lhsoffsets | offsets of variable on left hand side (beta_i) |
rhsvar | variable on right hand side (y) |
rhscoeff | coefficient of variable on right hand side (alpha_{n+1}) |
rhsoffset | offset of variable on right hand side (beta_{n+1}) |
constant | constant term (gamma) |
basename | prefix for variable and constraint name |
origcons | original constraint for which this SOC3 set is added |
soc3_nr_auxvars | number of auxiliary variables to use for a SOC3 constraint, or 0 if automatic |
glineur | whether Glineur should be preferred to Ben-Tal Nemirovski |
naddconss | buffer where to add the number of added constraints |
Definition at line 2518 of file cons_soc.c.
References FALSE, NULL, presolveCreateOuterApproxDim3(), propagateBounds(), SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIPaddVar(), SCIPcreateVar(), SCIPinfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPreleaseVar(), SCIPsnprintf(), sqrt(), and TRUE.
Referenced by presolveCreateOuterApproxDim3(), and SCIP_DECL_CONSPRESOL().
|
static |
propagates variable bounds
scip | SCIP data structure |
cons | constraint |
result | buffer to store result of propagation |
nchgbds | buffer where to add number of tightened bounds |
Definition at line 2654 of file cons_soc.c.
References FALSE, SCIP_Interval::inf, MAX, MIN, NULL, polishSolution(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_VARSTATUS_MULTAGGR, SCIPallocBufferArray, SCIPcomputeVarLbLocal(), SCIPcomputeVarUbLocal(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsMarkedPropagate(), SCIPdebugMsg, SCIPepsilon(), SCIPfreeBufferArray, SCIPinfinity(), SCIPintervalAdd(), SCIPintervalAddScalar(), SCIPintervalDivScalar(), SCIPintervalGetInf(), SCIPintervalGetRoundingMode(), SCIPintervalGetSup(), SCIPintervalMulScalar(), SCIPintervalSetBounds(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIPintervalSetRoundingModeUpwards(), SCIPintervalSquare(), SCIPintervalSquareRoot(), SCIPintervalSub(), SCIPintervalSubScalar(), SCIPisInfinity(), SCIPresetConsAge(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPunmarkConsPropagate(), SCIPvarGetName(), SCIPvarGetStatus(), and SCIP_Interval::sup.
Referenced by enforceConstraint(), presolveCreateOuterApprox(), SCIP_DECL_CONSPRESOL(), and SCIP_DECL_CONSPROP().
|
static |
tries to adjust a solution such that it satisfies a given constraint by increasing the value for the constraints right hand side variable
scip | SCIP data structure |
cons | constraint |
sol | solution to polish |
success | buffer to store whether polishing was successful |
Definition at line 2837 of file cons_soc.c.
References disaggregate(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPceil(), SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMsg, SCIPfloor(), SCIPgetSolVal(), SCIPinfinity(), SCIPisGT(), SCIPisInfinity(), SCIPisLT(), SCIPisZero(), SCIPsetSolVal(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarIsIntegral(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), and TRUE.
Referenced by propagateBounds(), and SCIP_DECL_CONSCHECK().
|
static |
disaggregates a (sufficiently large) SOC constraint into smaller ones; for each term on the lhs we add a quadratic constraint (alpha_i * (x_i + beta_i))^2 <= alpha_{n+1} (x_{n+1} + beta_{n+1}) * z_i and a single linear constraint sum { z_i } <= alpha_{n+1} * (x_{n+1} + beta_{n+1}); each quadratic constraint might be upgraded to a SOC; since the violations of all quadratic constraints sum up we scale each constraint by the number of lhs terms + 1
scip | SCIP data structure |
cons | constraint |
consdata | constraint data |
naddconss | pointer to count total number of added constraints |
ndelconss | pointer to count total number of deleted constraints |
success | pointer to store whether disaggregation was successful |
Definition at line 2928 of file cons_soc.c.
References enforceConstraint(), FALSE, NULL, scalars, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddCons(), SCIPaddVar(), SCIPallocBufferArray, SCIPconsGetName(), SCIPcreateConsBasicLinear(), SCIPcreateConsBasicSOC(), SCIPcreateVar(), SCIPdebugMsg, SCIPdelCons(), SCIPfreeBufferArray, SCIPinfinity(), SCIPisZero(), SCIPmultiaggregateVar(), SCIPprintCons(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPvarGetName(), and TRUE.
Referenced by polishSolution(), and SCIP_DECL_CONSPRESOL().
|
static |
helper function to enforce constraints
scip | SCIP data structure |
conshdlr | constraint handler |
conss | constraints to process |
nconss | number of constraints |
nusefulconss | number of useful (non-obsolete) constraints to process |
sol | solution to enforce (NULL for the LP solution) |
result | pointer to store the result of the enforcing call |
Definition at line 3127 of file cons_soc.c.
References computeViolations(), CONSHDLR_NAME, NULL, propagateBounds(), SCIP_Bool, SCIP_BRANCHED, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_QUADCONSUPGD(), SCIP_FEASIBLE, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPcreateChild(), SCIPdebugMsg, SCIPfeastol(), SCIPgetCurrentNode(), SCIPisGT(), SCIPisStopped(), SCIPnodeGetEstimate(), SCIPwarningMessage(), separatePoint(), and TRUE.
Referenced by disaggregate(), SCIP_DECL_CONSENFOLP(), and SCIP_DECL_CONSENFORELAX().
|
static |
tries to upgrade a quadratic constraint to a SOC constraint
We treat as special cases, quadratic with no bilinear terms and hyperbolic quadratic constraints with exactly on bilinear component containing nonnegative variables. For this we use the formula:
\[ x^T x \leq yz,\; y \geq 0,\; z \geq 0 \qquad\Leftrightarrow\qquad \left\| \left(\begin{array}{c} x \\ \frac{1}{2}(y - z)\end{array}\right) \right\| \leq \frac{1}{2}(y + z). \]
Definition at line 3247 of file cons_soc.c.
References SCIP_BilinTerm::coef, CONSHDLR_NAME, FALSE, LapackDsyev(), SCIP_QuadVarTerm::lincoef, MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSHDLRCOPY(), SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_PRESOLTIMING_FAST, SCIP_PRESOLTIMING_MEDIUM, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddCons(), SCIPaddVar(), SCIPallocBufferArray, SCIPallocClearBufferArray, SCIPcomputeVarLbGlobal(), SCIPcomputeVarUbGlobal(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateConsLinear(), SCIPcreateConsQuadratic2(), SCIPcreateConsSOC(), SCIPcreateVar(), SCIPcreateVarBasic(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPfindConshdlr(), SCIPfindQuadVarTermQuadratic(), SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPgetBilinTermsQuadratic(), SCIPgetCoefsLinearVarsQuadratic(), SCIPgetLhsQuadratic(), SCIPgetLinearVarsQuadratic(), SCIPgetNBilinTermsQuadratic(), SCIPgetNLinearVarsQuadratic(), SCIPgetNQuadVarTermsQuadratic(), SCIPgetQuadVarTermsQuadratic(), SCIPgetRhsQuadratic(), SCIPinfinity(), SCIPisEQ(), SCIPisGE(), SCIPisGT(), SCIPisInfinity(), SCIPisIpoptAvailableIpopt(), SCIPisLE(), SCIPisLT(), SCIPisNegative(), SCIPisZero(), SCIPmarkDoNotMultaggrVar(), SCIPmultiaggregateVar(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPsortQuadVarTermsQuadratic(), SCIPvarGetLbGlobal(), SCIP_QuadVarTerm::sqrcoef, sqrt(), TRUE, UPGSCALE, SCIP_QuadVarTerm::var, SCIP_BilinTerm::var1, and SCIP_BilinTerm::var2.
Referenced by enforceConstraint().
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 4053 of file cons_soc.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSFREE(), SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrSOC(), and TRUE.
Referenced by SCIP_DECL_QUADCONSUPGD().
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 4069 of file cons_soc.c.
References CONSHDLR_NAME, NULL, SCIP_DECL_CONSINIT(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSHDLRCOPY().
|
static |
initialization method of constraint handler (called after problem was transformed)
Definition at line 4088 of file cons_soc.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSEXIT(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPexprintGetName(), SCIPfindHeur(), and SCIPmarkConsPropagate().
Referenced by SCIP_DECL_CONSFREE().
|
static |
deinitialization method of constraint handler (called before transformed problem is freed)
Definition at line 4116 of file cons_soc.c.
References FALSE, NULL, SCIP_DECL_CONSEXITPRE(), SCIP_OKAY, and SCIPconshdlrGetData().
Referenced by SCIP_DECL_CONSINIT().
|
static |
presolving deinitialization method of constraint handler (called after presolving has been finished)
Definition at line 4135 of file cons_soc.c.
References NULL, SCIP_DECL_CONSINITSOL(), SCIP_OKAY, SCIPconsIsAdded(), and SCIPenableNLP().
Referenced by SCIP_DECL_CONSEXIT().
|
static |
solving process initialization method of constraint handler (called when branch and bound process is about to begin)
Definition at line 4159 of file cons_soc.c.
References CONSHDLR_NAME, createNlRow(), FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSEXITSOL(), SCIP_EVENTTYPE_SOLFOUND, SCIP_OKAY, SCIPaddNlRow(), SCIPcatchEvent(), SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconsIsEnabled(), SCIPfindEventhdlr(), and SCIPisNLPConstructed().
Referenced by SCIP_DECL_CONSEXITPRE().
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 4214 of file cons_soc.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_EVENTTYPE_SOLFOUND, SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPdropEvent(), SCIPfindEventhdlr(), and SCIPreleaseNlRow().
Referenced by SCIP_DECL_CONSINITSOL().
|
static |
frees specific constraint data
Definition at line 4256 of file cons_soc.c.
References CONSHDLR_NAME, dropVarEvents(), NULL, SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, and SCIPreleaseVar().
Referenced by SCIP_DECL_CONSEXITSOL().
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 4303 of file cons_soc.c.
References catchVarEvents(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_MAXSTRLEN, SCIP_OKAY, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, SCIPcaptureVar(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), SCIPdebugMsg, SCIPduplicateBlockMemoryArray, SCIPgetTransformedVar(), SCIPgetTransformedVars(), and SCIPsnprintf().
Referenced by SCIP_DECL_CONSDELETE().
|
static |
separation method of constraint handler for LP solutions
Definition at line 4371 of file cons_soc.c.
References addLinearizationCuts(), computeViolations(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSSEPASOL(), SCIP_DIDNOTFIND, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_GLOBINFEASIBLE, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_OKAY, SCIP_SEPARATED, SCIPaddLinearConsToNlpHeurSubNlp(), SCIPconshdlrGetData(), SCIPcreateNLPSol(), SCIPdebugMsg, SCIPfreeSol(), SCIPgetDepth(), SCIPgetLPSolstat(), SCIPgetNBinVars(), SCIPgetNContVars(), SCIPgetNIntVars(), SCIPgetNLPFracVars(), SCIPgetNLPSolstat(), SCIPgetNNlpis(), SCIPgetNVars(), SCIPheurPassSolTrySol(), SCIPisNLPConstructed(), SCIPsetNLPInitialGuessSol(), SCIPsolveNLP(), separatePoint(), and TRUE.
Referenced by SCIP_DECL_CONSTRANS().
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 4501 of file cons_soc.c.
References computeViolations(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSENFOLP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_SEPARATED, and separatePoint().
Referenced by SCIP_DECL_CONSSEPALP().
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 4530 of file cons_soc.c.
References enforceConstraint(), NULL, SCIP_CALL, SCIP_DECL_CONSENFORELAX(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSSEPASOL().
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 4540 of file cons_soc.c.
References enforceConstraint(), SCIP_CALL, SCIP_DECL_CONSENFOPS(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSENFOLP().
|
static |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 4550 of file cons_soc.c.
References computeViolations(), NULL, SCIP_CALL, SCIP_DECL_CONSCHECK(), SCIP_FEASIBLE, SCIP_INFEASIBLE, and SCIP_OKAY.
Referenced by SCIP_DECL_CONSENFORELAX().
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 4571 of file cons_soc.c.
References computeViolation(), CONSHDLR_NAME, FALSE, NULL, polishSolution(), REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSPROP(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPcreateLPSol(), SCIPcreateSolCopy(), SCIPfeastol(), SCIPfreeSol(), SCIPgetSolVal(), SCIPheurPassSolTrySol(), SCIPinfoMessage(), SCIPisGT(), SCIPisInfinity(), SCIPprintCons(), SCIPunlinkSol(), SCIPupdateStartpointHeurSubNlp(), SCIPvarGetStatus(), SCIPvarMayRoundDown(), and SCIPvarMayRoundUp().
Referenced by SCIP_DECL_CONSENFOPS().
|
static |
domain propagation method of constraint handler
Definition at line 4685 of file cons_soc.c.
References NULL, propagateBounds(), SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSPRESOL(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, and SCIP_OKAY.
Referenced by SCIP_DECL_CONSCHECK().
|
static |
presolving method of constraint handler
Definition at line 4711 of file cons_soc.c.
References disaggregate(), NULL, presolveCreateOuterApprox(), presolveRemoveFixedVariables(), propagateBounds(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSLOCK(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_ERROR, SCIP_OKAY, SCIP_PRESOLTIMING_EXHAUSTIVE, SCIP_PRESOLTIMING_FAST, SCIP_REDUCEDDOM, SCIP_SUCCESS, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetData(), SCIPdebugMsg, SCIPerrorMessage, and TRUE.
Referenced by SCIP_DECL_CONSPROP().
|
static |
variable rounding lock method of constraint handler
Definition at line 4799 of file cons_soc.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPaddVarLocks(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), and SCIPdebugMsg.
Referenced by SCIP_DECL_CONSPRESOL().
|
static |
constraint display method of constraint handler
Definition at line 4830 of file cons_soc.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSCOPY(), SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetName(), SCIPinfoMessage(), SCIPwriteVarName(), and TRUE.
Referenced by SCIP_DECL_CONSLOCK().
|
static |
constraint copying method of constraint handler
Definition at line 4873 of file cons_soc.c.
References FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSPARSE(), SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPcreateConsSOC(), SCIPfreeBufferArray, SCIPgetVarCopy(), and TRUE.
Referenced by SCIP_DECL_CONSPRINT().
|
static |
constraint parsing method of constraint handler
Definition at line 4927 of file cons_soc.c.
References FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSGETVARS(), SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_MINIMAL, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPcreateConsSOC(), SCIPfreeBufferArray, SCIPparseVarName(), SCIPreallocBufferArray, SCIPstrToRealValue(), SCIPverbMessage(), and TRUE.
Referenced by SCIP_DECL_CONSCOPY().
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 5148 of file cons_soc.c.
References BMScopyMemoryArray, FALSE, NULL, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), and TRUE.
Referenced by SCIP_DECL_CONSPARSE().
|
static |
constraint method of constraint handler which returns the number of variable (if possible)
Definition at line 5169 of file cons_soc.c.
References NULL, SCIP_OKAY, SCIPconsGetData(), SCIPincludeConshdlrSOC(), and TRUE.
Referenced by SCIP_DECL_CONSGETVARS().