Detailed Description
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 "blockmemshell/memory.h"
#include <ctype.h>
#include "nlpi/exprinterpret.h"
#include "nlpi/nlpi.h"
#include "nlpi/nlpi_ipopt.h"
#include "nlpi/pub_expr.h"
#include "nlpi/type_expr.h"
#include "scip/cons_linear.h"
#include "scip/cons_quadratic.h"
#include "scip/cons_soc.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_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.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_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_sepa.h"
#include "scip/scip_sol.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_tree.h"
#include "scip/scip_var.h"
#include <string.h>
Go to the source code of this file.
Data Structures | |
struct | VarEventData |
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 |
Macro Definition Documentation
◆ SCIP_PRIVATE_ROWPREP
#define SCIP_PRIVATE_ROWPREP |
Definition at line 30 of file cons_soc.c.
◆ CONSHDLR_NAME
#define CONSHDLR_NAME "soc" |
Definition at line 77 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().
◆ CONSHDLR_DESC
#define CONSHDLR_DESC "constraint handler for second order cone constraints" |
Definition at line 78 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_SEPAPRIORITY
#define CONSHDLR_SEPAPRIORITY 10 |
priority of the constraint handler for separation
Definition at line 79 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_ENFOPRIORITY
#define CONSHDLR_ENFOPRIORITY -40 |
priority of the constraint handler for constraint enforcing
Definition at line 80 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_CHECKPRIORITY
#define CONSHDLR_CHECKPRIORITY -10 |
priority of the constraint handler for checking feasibility
Definition at line 81 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_SEPAFREQ
#define CONSHDLR_SEPAFREQ 1 |
frequency for separating cuts; zero means to separate only in the root node
Definition at line 82 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_PROPFREQ
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 83 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ 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 84 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_MAXPREROUNDS
#define CONSHDLR_MAXPREROUNDS -1 |
maximal number of presolving rounds the constraint handler participates in (-1: no limit)
Definition at line 87 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_DELAYSEPA
#define CONSHDLR_DELAYSEPA FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 88 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_DELAYPROP
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 89 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_NEEDSCONS
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 90 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_PROP_TIMING
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
propagation timing mask of the constraint handler
Definition at line 92 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ CONSHDLR_PRESOLTIMING
#define CONSHDLR_PRESOLTIMING SCIP_PRESOLTIMING_ALWAYS |
presolving timing of the constraint handler (fast, medium, or exhaustive)
Definition at line 93 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ QUADCONSUPGD_PRIORITY
#define QUADCONSUPGD_PRIORITY 10000 |
priority of the constraint handler for upgrading of quadratic constraints
Definition at line 95 of file cons_soc.c.
Referenced by SCIPincludeConshdlrSOC().
◆ UPGSCALE
#define UPGSCALE 10 /* scale factor used in general upgrades of quadratic cons to soc */ |
Definition at line 97 of file cons_soc.c.
Referenced by SCIP_DECL_QUADCONSUPGD().
Typedef Documentation
◆ VAREVENTDATA
typedef struct VarEventData VAREVENTDATA |
Definition at line 110 of file cons_soc.c.
Function Documentation
◆ catchLhsVarEvents()
|
static |
catch left hand side variable events
- Parameters
-
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 169 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().
◆ catchRhsVarEvents()
|
static |
catch right hand side variable events
- Parameters
-
scip SCIP data structure eventhdlr event handler cons constraint for which to catch bound change events
Definition at line 201 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().
◆ catchVarEvents()
|
static |
catch variables events
- Parameters
-
scip SCIP data structure eventhdlr event handler cons constraint for which to catch bound change events
Definition at line 229 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().
◆ dropLhsVarEvents()
|
static |
drop left hand side variable events
- Parameters
-
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 266 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().
◆ dropRhsVarEvents()
|
static |
drop right hand side variable events
- Parameters
-
scip SCIP data structure eventhdlr event handler cons constraint for which to catch bound change events
Definition at line 294 of file cons_soc.c.
References dropVarEvents(), NULL, SCIP_CALL, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_OKAY, SCIPconsGetData(), and SCIPdropVarEvent().
Referenced by dropLhsVarEvents(), dropVarEvents(), and presolveRemoveFixedVariables().
◆ dropVarEvents()
|
static |
drop variable events
- Parameters
-
scip SCIP data structure eventhdlr event handler cons constraint for which to catch bound change events
Definition at line 318 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().
◆ SCIP_DECL_EVENTEXEC() [1/2]
|
static |
process variable bound tightening event
Definition at line 354 of file cons_soc.c.
References VarEventData::cons, createNlRow(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPmarkConsPropagate().
Referenced by addLinearizationCuts(), and dropVarEvents().
◆ createNlRow()
|
static |
create a nonlinear row representation of the constraint and stores them in consdata
- Parameters
-
scip SCIP data structure conshdlr SOC constraint handler cons SOC constraint
Definition at line 374 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(), SCIPvarGetUbGlobal(), and SQR.
Referenced by SCIP_DECL_CONSINITSOL(), SCIP_DECL_EVENTEXEC(), and SCIPgetNlRowSOC().
◆ evalLhs()
|
static |
evaluates the left hand side of a SOC constraint
- Parameters
-
scip SCIP data structure cons constraint to evaluate sol solution to evaluate, or NULL if LP solution should be used
Definition at line 714 of file cons_soc.c.
References computeViolation(), NULL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfinity(), SCIPisInfinity(), and sqrt().
Referenced by addLinearizationCuts(), computeViolation(), and createNlRow().
◆ computeViolation()
|
static |
computes violation of a SOC constraint
- Parameters
-
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 754 of file cons_soc.c.
References computeViolations(), evalLhs(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPgetSolVal(), SCIPinfinity(), SCIPisInfinity(), SCIPrelDiff(), and SCIPupdateSolConsViolation().
Referenced by computeViolations(), evalLhs(), and SCIP_DECL_CONSCHECK().
◆ computeViolations()
|
static |
computes violations for a set of constraints
- Parameters
-
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 820 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().
◆ generateCutSol()
|
static |
generate supporting hyperplane in a given solution
- Parameters
-
scip SCIP pointer cons constraint sol solution to separate, or NULL for LP solution rowprep place to store cut
Definition at line 859 of file cons_soc.c.
References generateCutPoint(), NULL, 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().
◆ generateCutPoint()
|
static |
generate supporting hyperplane in a given point
- Parameters
-
scip SCIP pointer cons constraint x point (lhs-vars) where to generate cut rowprep place to store cut
Definition at line 904 of file cons_soc.c.
References ABS, generateCutProjectedPoint(), NULL, 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(), SCIP_RowPrep::vars, and x.
Referenced by generateCutSol(), and generateSparseCut().
◆ generateCutProjectedPoint()
|
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).
- Parameters
-
scip SCIP pointer cons constraint sol solution to separate, or NULL for LP solution rowprep place to store cut
Definition at line 991 of file cons_soc.c.
References generateCutSol(), generateSparseCut(), NULL, 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().
◆ generateSparseCut()
|
static |
generates sparsified supporting hyperplane
- Parameters
-
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 1060 of file cons_soc.c.
References ABS, generateCutPoint(), generateCutSol(), MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPconsGetData(), SCIPconshdlrGetData(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPfreeRowprep(), SCIPgetRowprepViolation(), SCIPgetSolVal(), SCIPgetSolVals(), SCIPisGT(), SCIPisInfinity(), SCIPisPositive(), SCIPsortRealInt(), separatePoint(), TRUE, and x.
Referenced by generateCutProjectedPoint(), and separatePoint().
◆ separatePoint()
|
static |
separates a point, if possible
- Parameters
-
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 1170 of file cons_soc.c.
References addLinearizationCuts(), FALSE, generateCutProjectedPoint(), generateCutSol(), generateSparseCut(), NULL, 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().
◆ addLinearizationCuts()
|
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.
- Parameters
-
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 1285 of file cons_soc.c.
References evalLhs(), FALSE, generateCutSol(), SCIP_RowPrep::local, NULL, 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().
◆ SCIP_DECL_EVENTEXEC() [2/2]
|
static |
processes the event that a new primal solution has been found
Definition at line 1367 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().
◆ presolveRemoveFixedVariables()
|
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)
- Parameters
-
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 1421 of file cons_soc.c.
References ABS, 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, SCIP_QuadVarTerm::var, and x.
Referenced by SCIP_DECL_CONSPRESOL(), and SCIP_DECL_EVENTEXEC().
◆ presolveCreateGlineurApproxDim3()
|
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.
- Parameters
-
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 1858 of file cons_soc.c.
References ABS, 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().
◆ presolveCreateBenTalNemirovskiApproxDim3()
|
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.
- Parameters
-
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 2091 of file cons_soc.c.
References ABS, 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().
◆ 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
- Parameters
-
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 2337 of file cons_soc.c.
References presolveCreateBenTalNemirovskiApproxDim3(), presolveCreateGlineurApproxDim3(), presolveCreateOuterApprox(), SCIP_CALL, and SCIP_OKAY.
Referenced by presolveCreateBenTalNemirovskiApproxDim3(), and presolveCreateOuterApprox().
◆ 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
- Parameters
-
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 2373 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().
◆ propagateBounds()
|
static |
propagates variable bounds
- Parameters
-
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 2509 of file cons_soc.c.
References a, b, 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, 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().
◆ polishSolution()
|
static |
tries to adjust a solution such that it satisfies a given constraint by increasing the value for the constraints right hand side variable
- Parameters
-
scip SCIP data structure cons constraint sol solution to polish success buffer to store whether polishing was successful
Definition at line 2707 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().
◆ disaggregate()
|
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
- Parameters
-
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 2798 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(), SQR, and TRUE.
Referenced by polishSolution(), and SCIP_DECL_CONSPRESOL().
◆ 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) result pointer to store the result of the enforcing call
Definition at line 2996 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().
◆ SCIP_DECL_QUADCONSUPGD()
|
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 3118 of file cons_soc.c.
References a, 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(), SCIPswapReals(), SCIPvarGetLbGlobal(), SCIP_QuadVarTerm::sqrcoef, sqrt(), TRUE, UPGSCALE, SCIP_QuadVarTerm::var, SCIP_BilinTerm::var1, and SCIP_BilinTerm::var2.
Referenced by enforceConstraint().
◆ SCIP_DECL_CONSHDLRCOPY()
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 3935 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().
◆ SCIP_DECL_CONSFREE()
|
static |
destructor of constraint handler to free constraint handler data (called when SCIP is exiting)
Definition at line 3951 of file cons_soc.c.
References CONSHDLR_NAME, NULL, SCIP_DECL_CONSINIT(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPconshdlrGetName(), and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_CONSHDLRCOPY().
◆ SCIP_DECL_CONSINIT()
|
static |
initialization method of constraint handler (called after problem was transformed)
Definition at line 3970 of file cons_soc.c.
References NULL, SCIP_CALL, SCIP_DECL_CONSEXIT(), SCIP_OKAY, SCIPconshdlrGetData(), SCIPexprintGetName(), SCIPfindHeur(), and SCIPmarkConsPropagate().
Referenced by SCIP_DECL_CONSFREE().
◆ SCIP_DECL_CONSEXIT()
|
static |
deinitialization method of constraint handler (called before transformed problem is freed)
Definition at line 3998 of file cons_soc.c.
References FALSE, NULL, SCIP_DECL_CONSEXITPRE(), SCIP_OKAY, and SCIPconshdlrGetData().
Referenced by SCIP_DECL_CONSINIT().
◆ SCIP_DECL_CONSEXITPRE()
|
static |
presolving deinitialization method of constraint handler (called after presolving has been finished)
Definition at line 4017 of file cons_soc.c.
References NULL, SCIP_DECL_CONSINITSOL(), SCIP_OKAY, SCIPconsIsAdded(), and SCIPenableNLP().
Referenced by SCIP_DECL_CONSEXIT().
◆ SCIP_DECL_CONSINITSOL()
|
static |
solving process initialization method of constraint handler (called when branch and bound process is about to begin)
Definition at line 4041 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().
◆ SCIP_DECL_CONSEXITSOL()
|
static |
solving process deinitialization method of constraint handler (called before branch and bound process data is freed)
Definition at line 4096 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().
◆ SCIP_DECL_CONSDELETE()
|
static |
frees specific constraint data
Definition at line 4138 of file cons_soc.c.
References CONSHDLR_NAME, dropVarEvents(), NULL, SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, SCIPconsGetName(), SCIPconshdlrGetData(), SCIPconshdlrGetName(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPreleaseNlRow(), and SCIPreleaseVar().
Referenced by SCIP_DECL_CONSEXITSOL().
◆ SCIP_DECL_CONSTRANS()
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 4192 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().
◆ SCIP_DECL_CONSSEPALP()
|
static |
separation method of constraint handler for LP solutions
Definition at line 4260 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(), SCIPgetSepaMinEfficacy(), SCIPheurPassSolTrySol(), SCIPisNLPConstructed(), SCIPsetNLPInitialGuessSol(), SCIPsolveNLP(), separatePoint(), and TRUE.
Referenced by SCIP_DECL_CONSTRANS().
◆ SCIP_DECL_CONSSEPASOL()
|
static |
separation method of constraint handler for arbitrary primal solutions
Definition at line 4389 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().
◆ SCIP_DECL_CONSENFOLP()
|
static |
constraint enforcing method of constraint handler for LP solutions
Definition at line 4418 of file cons_soc.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 4428 of file cons_soc.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 4438 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().
◆ SCIP_DECL_CONSCHECK()
|
static |
feasibility check method of constraint handler for integral solutions
Definition at line 4459 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(), SCIPheurPassSolTrySol(), SCIPinfoMessage(), SCIPisGT(), SCIPisInfinity(), SCIPprintCons(), SCIPunlinkSol(), SCIPupdateStartpointHeurSubNlp(), SCIPvarGetStatus(), SCIPvarMayRoundDown(), and SCIPvarMayRoundUp().
Referenced by SCIP_DECL_CONSENFOPS().
◆ SCIP_DECL_CONSPROP()
|
static |
domain propagation method of constraint handler
Definition at line 4567 of file cons_soc.c.
References NULL, propagateBounds(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSPRESOL(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, and SCIP_OKAY.
Referenced by SCIP_DECL_CONSCHECK().
◆ SCIP_DECL_CONSPRESOL()
|
static |
presolving method of constraint handler
Definition at line 4594 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().
◆ SCIP_DECL_CONSLOCK()
|
static |
variable rounding lock method of constraint handler
Definition at line 4688 of file cons_soc.c.
References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIPaddVarLocksType(), SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), and SCIPdebugMsg.
Referenced by SCIP_DECL_CONSPRESOL().
◆ SCIP_DECL_CONSPRINT()
|
static |
constraint display method of constraint handler
Definition at line 4721 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().
◆ SCIP_DECL_CONSCOPY()
|
static |
constraint copying method of constraint handler
Definition at line 4764 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().
◆ SCIP_DECL_CONSPARSE()
|
static |
constraint parsing method of constraint handler
Definition at line 4818 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().
◆ SCIP_DECL_CONSGETVARS()
|
static |
constraint method of constraint handler which returns the variables (if possible)
Definition at line 5039 of file cons_soc.c.
References BMScopyMemoryArray, FALSE, NULL, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), and TRUE.
Referenced by SCIP_DECL_CONSPARSE().
◆ SCIP_DECL_CONSGETNVARS()
|
static |
constraint method of constraint handler which returns the number of variable (if possible)
Definition at line 5060 of file cons_soc.c.
References NULL, SCIP_OKAY, SCIPconsGetData(), SCIPincludeConshdlrSOC(), and TRUE.
Referenced by SCIP_DECL_CONSGETVARS().