All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cons_quadratic.h
Go to the documentation of this file.
18 * @brief constraint handler for quadratic constraints \f$\textrm{lhs} \leq \sum_{i,j=1}^n a_{i,j} x_ix_j + \sum_{i=1}^n b_i x_i \leq \textrm{rhs}\f$
28 * For semidefinite matrices \f$A=(a_{i,j})_{i,j}\f$, cuts based on linearization of \f$\langle x, Ax\rangle\f$ are implemented.
29 * For underestimating a non-convex term, McCormick underestimators and secants for univariate concave quadratic terms are implemented.
30 * If \f$\langle x, Ax\rangle\f$ is factorable (i.e., can be written as product of two linear functions),
31 * specialized separation techniques (e.g., lifted tangent inequalities) that take the constraint sides into account are applied.
33 * Branching is performed for variables in nonconvex terms, if the relaxation solution cannot be separated.
36 * During presolve, variable products which contain binary variables may be reformulated into linear constraints, thereby introducing new variables.
41 * <a href="http://dx.doi.org/10.1007/978-1-4614-1927-3">Extending a CIP framework to solve MIQCPs</a>@n
48 * Decomposition of Multistage Stochastic Programs and a Constraint Integer Programming Approach to Mixed-Integer Nonlinear Programming@n
57 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
90 * except for temporary reasons, we assume that the index of var1 is smaller than the index of var2
129 int nbinlin, int nbinquad, int nintlin, int nintquad, int nimpllin, int nimplquad, int ncontlin, int ncontquad, \
142 SCIP_DECL_QUADCONSUPGD((*quadconsupgd)), /**< method to call for upgrading quadratic constraint */
156 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
165 SCIP_Real* lincoefs, /**< coefficients of variables in linear part (b_i) or NULL if nlinvars == 0 */
167 SCIP_VAR** quadvars1, /**< array with first variables in quadratic terms (y_j) or NULL if nquadterms == 0 */
168 SCIP_VAR** quadvars2, /**< array with second variables in quadratic terms (z_j) or NULL if nquadterms == 0 */
169 SCIP_Real* quadcoeffs, /**< array with coefficients of quadratic terms (a_j) or NULL if nquadterms == 0 */
195 * in its most basic variant, i. e., with all constraint flags set to their default values, which can be set
207 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
229 * \ell \leq \sum_{i=1}^n b_i x_i + \sum_{j=1}^m (a_j y_j^2 + b_j y_j) + \sum_{k=1}^p c_k v_k w_k \leq u.
232 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
256 SCIP_Bool removable /**< should the constraint be removed from the LP due to aging or cleanup? */
260 * in its most basic variant, i. e., with all constraint flags set to their default values, which can be set
265 * \ell \leq \sum_{i=1}^n b_i x_i + \sum_{j=1}^m (a_j y_j^2 + b_j y_j) + \sum_{k=1}^p c_kv_kw_k \leq u.
270 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
288 /** Adds a constant to the constraint function, that is, subtracts a constant from both sides */
416 * @note If the quadratic variable terms have not been sorted before, then a search may reorder the current order of the terms.
459 /** Check the quadratic function of a quadratic constraint for its semi-definiteness, if not done yet.
475 /** Indicates whether the quadratic function of a quadratic constraint is (known to be) concave.
|