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.h.
#include "scip/def.h"
#include "scip/type_cons.h"
#include "scip/type_misc.h"
#include "scip/type_nlp.h"
#include "nlpi/type_nlpi.h"
#include "scip/type_retcode.h"
#include "scip/type_scip.h"
#include "scip/type_var.h"
Go to the source code of this file.
Functions | |
SCIP_RETCODE | SCIPincludeConshdlrSOC (SCIP *scip) |
Second Order Cone Constraints | |
This constraint handler implements second order cone constraints of the form \[ \sqrt{\gamma + \sum_{i=1}^{n} (\alpha_i\, (x_i + \beta_i))^2} \leq \alpha_{n+1}\, (x_{n+1}+\beta_{n+1}) \] Here, \(\gamma \geq 0\) and either \(x_{n+1} \geq -\beta_{n+1}, \alpha_{n+1} \geq 0\) or \(x_{n+1} \leq -\beta_{n+1}, \alpha_{n+1} \leq 0\). Constraints are enforced by separation, where cuts are generated by linearizing the (convex) nonlinear function on the left-hand-side of the constraint. Further, a linear outer-approximation (which includes new variables) based on Ben-Tal & Nemirovski or Glineur can be added. See also
| |
SCIP_RETCODE | SCIPcreateConsSOC (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Real *coefs, SCIP_Real *offsets, SCIP_Real constant, SCIP_VAR *rhsvar, SCIP_Real rhscoeff, SCIP_Real rhsoffset, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable) |
SCIP_RETCODE | SCIPcreateConsBasicSOC (SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Real *coefs, SCIP_Real *offsets, SCIP_Real constant, SCIP_VAR *rhsvar, SCIP_Real rhscoeff, SCIP_Real rhsoffset) |
SCIP_RETCODE | SCIPgetNlRowSOC (SCIP *scip, SCIP_CONS *cons, SCIP_NLROW **nlrow) |
int | SCIPgetNLhsVarsSOC (SCIP *scip, SCIP_CONS *cons) |
SCIP_VAR ** | SCIPgetLhsVarsSOC (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real * | SCIPgetLhsCoefsSOC (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real * | SCIPgetLhsOffsetsSOC (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetLhsConstantSOC (SCIP *scip, SCIP_CONS *cons) |
SCIP_VAR * | SCIPgetRhsVarSOC (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetRhsCoefSOC (SCIP *scip, SCIP_CONS *cons) |
SCIP_Real | SCIPgetRhsOffsetSOC (SCIP *scip, SCIP_CONS *cons) |
SCIP_RETCODE | SCIPaddToNlpiProblemSOC (SCIP *scip, SCIP_CONS *cons, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *nlpiprob, SCIP_HASHMAP *scipvar2nlpivar, SCIP_Bool names) |