All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cons_nonlinear.h
Go to the documentation of this file.
18 * @brief constraint handler for nonlinear constraints \f$\textrm{lhs} \leq \sum_{i=1}^n a_ix_i + \sum_{j=1}^m c_jf_j(x) \leq \textrm{rhs}\f$
30 * For convex or concave \f$f_j(x)\f$, cuts that separate on the convex hull of the function graph are implemented.
31 * For \f$f_j(x)\f$ that are not known to be convex or concave, a simple variant of linear estimation based on interval gradients is implemented.
33 * Branching is performed for variables in nonconvex terms, if the relaxation solution cannot be separated.
35 * This header offers the upgrade functionality to upgrade a general nonlinear constraint into a more specific constraint
41 * Further, the function representation is stored in an expression graph, which allows to propagate variable domains
43 * During presolve, the expression graph is reformulated, whereby new variables and constraints are created
44 * such that for the remaining nonlinear constraints the functions \f$f_j(x)\f$ are known to be convex or concave.
49 * Decomposition of Multistage Stochastic Programs and a Constraint Integer Programming Approach to Mixed-Integer Nonlinear Programming@n
53 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
123 SCIP_DECL_NONLINCONSUPGD((*nonlinconsupgd)),/**< method to call for upgrading nonlinear constraint, or NULL */
124 SCIP_DECL_EXPRGRAPHNODEREFORM((*nodereform)),/**< method to call for reformulating expression graph node, or NULL */
133 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
145 SCIP_Real* nonlincoefs, /**< coefficients for expression trees for nonlinear part, or NULL if all 1.0 */
168 SCIP_Bool stickingatnode /**< should the constraint always be kept at the node where it was added, even
174 * in its most basic version, i. e., all constraint flags are set to their basic value as explained for the
175 * method SCIPcreateConsNonlinear(); all flags can be set via SCIPsetConsFLAGNAME-methods in scip.h
181 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
193 SCIP_Real* nonlincoefs, /**< coefficients for expression trees for nonlinear part, or NULL if all 1.0 */
199 * this variant takes a node of the expression graph as input and can only be used during presolving
200 * it is assumed that the nonlinear constraint will be added to the transformed problem short after creation
203 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
213 SCIP_EXPRGRAPHNODE* exprgraphnode, /**< expression graph node associated to nonlinear expression */
236 SCIP_Bool stickingatnode /**< should the constraint always be kept at the node where it was added, even
242 * in its most basic version, i. e., all constraint flags are set to their basic value as explained for the
243 * method SCIPcreateConsNonlinear2(); all flags can be set via SCIPsetConsFLAGNAME-methods in scip.h
245 * this variant takes a node of the expression graph as input and can only be used during presolving
246 * it is assumed that the nonlinear constraint will be added to the transformed problem short after creation
251 * @note the constraint gets captured, hence at one point you have to release it using the method SCIPreleaseCons()
261 SCIP_EXPRGRAPHNODE* exprgraphnode, /**< expression graph node associated to nonlinear expression */
|