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 | SCIP_PRIVATE_ROWPREP |
#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 SCIP_PRIVATE_ROWPREP |
Definition at line 36 of file cons_soc.c.
#define CONSHDLR_NAME "soc" |
Definition at line 50 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 51 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_SEPAPRIORITY 10 |
priority of the constraint handler for separation
Definition at line 52 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_ENFOPRIORITY -40 |
priority of the constraint handler for constraint enforcing
Definition at line 53 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_CHECKPRIORITY -10 |
priority of the constraint handler for checking feasibility
Definition at line 54 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 55 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 56 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 57 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 60 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 61 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 62 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 63 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 65 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 66 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 68 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 70 of file cons_soc.c.
Referenced by SCIP_DECL_QUADCONSUPGD().
typedef struct VarEventData VAREVENTDATA |
Definition at line 83 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, 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 174 of file cons_soc.c.
References catchVarEvents(), VarEventData::cons, 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 202 of file cons_soc.c.
References catchLhsVarEvents(), catchRhsVarEvents(), dropLhsVarEvents(), 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 239 of file cons_soc.c.
References dropRhsVarEvents(), 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 267 of file cons_soc.c.
References dropVarEvents(), 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 291 of file cons_soc.c.
References dropLhsVarEvents(), dropRhsVarEvents(), 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 327 of file cons_soc.c.
References VarEventData::cons, createNlRow(), 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 347 of file cons_soc.c.
References SCIP_QuadElement::coef, evalLhs(), FALSE, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, 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 687 of file cons_soc.c.
References computeViolation(), SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfinity(), SCIPisInfinity(), and sqrt().
Referenced by addLinearizationCuts(), computeViolation(), and createNlRow().
|
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 727 of file cons_soc.c.
References computeViolations(), evalLhs(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfinity(), SCIPisInfinity(), SCIPrelDiff(), and SCIPupdateSolConsViolation().
Referenced by computeViolations(), evalLhs(), 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 793 of file cons_soc.c.
References computeViolation(), generateCutSol(), 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 |
rowprep | place to store cut |
Definition at line 832 of file cons_soc.c.
References generateCutPoint(), SCIP_RowPrep::nvars, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_RIGHT, SCIPaddRowprepSide(), SCIPaddRowprepTerm(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPcreateRowprep(), SCIPensureRowprepSize(), SCIPgetNLPs(), SCIPgetSolVal(), SCIPisInfinity(), SCIPisPositive(), SCIPsnprintf(), and SCIP_RowPrep::vars.
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 |
rowprep | place to store cut |
Definition at line 877 of file cons_soc.c.
References generateCutProjectedPoint(), SCIP_RowPrep::nvars, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_RIGHT, SCIPaddRowprepSide(), SCIPaddRowprepTerm(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPcreateRowprep(), SCIPensureRowprepSize(), SCIPgetNLPs(), SCIPisInfinity(), SCIPisZero(), SCIPsnprintf(), sqrt(), and SCIP_RowPrep::vars.
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 |
rowprep | place to store cut |
Definition at line 964 of file cons_soc.c.
References generateCutSol(), generateSparseCut(), SCIP_RowPrep::nvars, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_RIGHT, SCIPaddRowprepSide(), SCIPaddRowprepTerm(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPcreateRowprep(), SCIPdebugMsg, SCIPensureRowprepSize(), SCIPgetNLPs(), SCIPgetSolVal(), SCIPisFeasEQ(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPsnprintf(), and SCIP_RowPrep::vars.
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 |
rowprep | place to store cut |
minefficacy | minimal efficacy for a cut to be accepted |
Definition at line 1033 of file cons_soc.c.
References generateCutPoint(), generateCutSol(), MAX, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPfreeRowprep(), SCIPgetRowprepViolation(), SCIPgetSolVal(), SCIPgetSolVals(), SCIPisGT(), SCIPisInfinity(), SCIPisPositive(), 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 1143 of file cons_soc.c.
References addLinearizationCuts(), FALSE, generateCutProjectedPoint(), generateCutSol(), generateSparseCut(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPaddRow(), SCIPcleanupRowprep(), SCIPconsGetData(), SCIPconshdlrGetData(), SCIPdebugMsg, SCIPfeastol(), SCIPfreeRowprep(), SCIPgetCutEfficacy(), SCIPgetRowprepRowCons(), SCIPgetSepaMinEfficacy(), SCIPinfinity(), SCIPisCutApplicable(), SCIPisGT(), SCIPisInfinity(), SCIPisLE(), SCIPlpfeastol(), SCIPmarkRowNotRemovableLocal(), SCIPreleaseRow(), SCIPresetConsAge(), 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 1258 of file cons_soc.c.
References evalLhs(), FALSE, generateCutSol(), SCIP_RowPrep::local, SCIP_Bool, SCIP_CALL, SCIP_DECL_EVENTEXEC(), SCIP_OKAY, SCIPaddPoolCut(), SCIPaddRow(), SCIPconsGetData(), SCIPconsGetName(), SCIPconsIsLocal(), SCIPdebugMsg, SCIPfreeRowprep(), SCIPgetRowprepRowCons(), SCIPgetRowprepViolation(), SCIPisInfinity(), SCIPisPositive(), SCIPreleaseRow(), 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 1340 of file cons_soc.c.
References addLinearizationCuts(), 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 1394 of file cons_soc.c.
References BMSclearMemoryArray, catchLhsVarEvents(), catchRhsVarEvents(), catchVarEvents(), dropLhsVarEvents(), dropRhsVarEvents(), dropVarEvents(), FALSE, SCIP_QuadVarTerm::lincoef, 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 \(\alpha3 > 0\), and the lower bound of \(x_3 \geq -offset3\). Also x2 = NULL is allowed, in which case the second term is assumed to be constant, and \(offset2 \neq 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 1831 of file cons_soc.c.
References cos(), FALSE, M_PI, 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 \(\alpha3 > 0.0\), and the lower bound of \(x_3 \geq -offset3\). Also x2 = NULL is allowed, in which case the second term is assumed to be constant, and \(offset2 \neq 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 2064 of file cons_soc.c.
References cos(), M_PI, 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 2310 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 \leq (\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 2346 of file cons_soc.c.
References FALSE, 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 |
redundant | buffer to indicate whether constraint was marked for deletion because of redundancy |
Definition at line 2482 of file cons_soc.c.
References FALSE, SCIP_Interval::inf, MAX, 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, SCIPdelConsLocal(), SCIPepsilon(), SCIPfeastol(), SCIPfreeBufferArray, SCIPinfinity(), SCIPintervalAdd(), SCIPintervalAddScalar(), SCIPintervalDivScalar(), SCIPintervalGetInf(), SCIPintervalGetRoundingMode(), SCIPintervalGetSup(), SCIPintervalMulScalar(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIPintervalSetRoundingModeUpwards(), SCIPintervalSquare(), SCIPintervalSquareRoot(), SCIPintervalSub(), SCIPintervalSubScalar(), SCIPisGT(), SCIPisInfinity(), SCIPisLE(), 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 2680 of file cons_soc.c.
References disaggregate(), FALSE, 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 \leq \alpha_{n+1} (x_{n+1} + \beta_{n+1})\, z_i\) and a single linear constraint \(\sum_i z_i \leq \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 2771 of file cons_soc.c.
References enforceConstraint(), FALSE, 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 2970 of file cons_soc.c.
References computeViolations(), CONSHDLR_NAME, 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 3092 of file cons_soc.c.
References SCIP_BilinTerm::coef, CONSHDLR_NAME, FALSE, LapackDsyev(), SCIP_QuadVarTerm::lincoef, MAX, 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(), SCIPswapReals(), 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 3909 of file cons_soc.c.
References CONSHDLR_NAME, 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 3925 of file cons_soc.c.
References CONSHDLR_NAME, 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 3944 of file cons_soc.c.
References 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 3972 of file cons_soc.c.
References FALSE, 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 3991 of file cons_soc.c.
References 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 4015 of file cons_soc.c.
References CONSHDLR_NAME, createNlRow(), FALSE, 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 4070 of file cons_soc.c.
References CONSHDLR_NAME, 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 4112 of file cons_soc.c.
References CONSHDLR_NAME, dropVarEvents(), SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPreleaseNlRow(), and SCIPreleaseVar().
Referenced by SCIP_DECL_CONSEXITSOL().
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 4166 of file cons_soc.c.
References catchVarEvents(), CONSHDLR_NAME, FALSE, 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 4234 of file cons_soc.c.
References addLinearizationCuts(), computeViolations(), FALSE, 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(), SCIPgetSepaMinEfficacy(), 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 4363 of file cons_soc.c.
References computeViolations(), FALSE, 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 4392 of file cons_soc.c.
References enforceConstraint(), SCIP_CALL, SCIP_DECL_CONSENFORELAX(), and SCIP_OKAY.
Referenced by SCIP_DECL_CONSSEPASOL().
|
static |
constraint enforcing method of constraint handler for relaxation solutions
Definition at line 4402 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 4412 of file cons_soc.c.
References computeViolations(), 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 4433 of file cons_soc.c.
References computeViolation(), CONSHDLR_NAME, FALSE, 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 4547 of file cons_soc.c.
References propagateBounds(), SCIP_Bool, 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 4574 of file cons_soc.c.
References disaggregate(), 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 4668 of file cons_soc.c.
References CONSHDLR_NAME, 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 4699 of file cons_soc.c.
References CONSHDLR_NAME, 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 4742 of file cons_soc.c.
References FALSE, 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 4796 of file cons_soc.c.
References FALSE, 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 5017 of file cons_soc.c.
References BMScopyMemoryArray, FALSE, 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 5038 of file cons_soc.c.
References SCIP_OKAY, SCIPconsGetData(), SCIPincludeConshdlrSOC(), and TRUE.
Referenced by SCIP_DECL_CONSGETVARS().