All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cons.h
Go to the documentation of this file.
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
76 int checkpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
77 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
78 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
79 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
81 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
82 SCIP_Bool delaysepa, /**< should separation method be delayed, if other separators found cuts? */
83 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
84 SCIP_Bool delaypresol, /**< should presolving method be delayed, if other presolvers found reductions? */
85 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
86 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagation method of constraint handlers should be executed */
87 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
91 SCIP_DECL_CONSINITPRE ((*consinitpre)), /**< presolving initialization method of constraint handler */
92 SCIP_DECL_CONSEXITPRE ((*consexitpre)), /**< presolving deinitialization method of constraint handler */
93 SCIP_DECL_CONSINITSOL ((*consinitsol)), /**< solving process initialization method of constraint handler */
94 SCIP_DECL_CONSEXITSOL ((*consexitsol)), /**< solving process deinitialization method of constraint handler */
96 SCIP_DECL_CONSTRANS ((*constrans)), /**< transform constraint data into data belonging to the transformed problem */
97 SCIP_DECL_CONSINITLP ((*consinitlp)), /**< initialize LP with relaxations of "initial" constraints */
99 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
182 /** calls LP initialization method of constraint handler to separate all initial active constraints */
222 /** calls enforcing method of constraint handler for LP solution for all constraints added after last
237 /** calls enforcing method of constraint handler for pseudo solution for all constraints added after last
249 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */
301 int* nchgsides, /**< pointer to total number of changed left/right hand sides of all presolvers */
316 /** locks rounding of variables involved in the given constraint constraint handler that doesn't need constraints */
322 /** unlocks rounding of variables involved in the given constraint constraint handler that doesn't need constraints */
337 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
366 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */
373 SCIP_DECL_CONSEXITSOL ((*consexitsol)) /**< solving process deinitialization method of constraint handler */
380 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */
387 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */
395 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
396 SCIP_Bool delaypresol /**< should presolving method be delayed, if other presolvers found reductions? */
406 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem */
410 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */
413 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints */
417 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */
502 /** adds constraint addition to constraint set changes, and captures constraint; activates constraint if the
546 /** applies constraint set change to the global problem and deletes the constraint set change data */
574 /** creates and captures a constraint, and inserts it into the conss array of its constraint handler
576 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution
578 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
609 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
616 /** copies source constraint of source SCIP into the target constraint for the target SCIP, using the variable map for
617 * mapping the variables of the source SCIP to the variables of the target SCIP; if the copying process was successful
620 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution
622 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
629 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */
635 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
645 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */
646 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
652 /** parses constraint information (in cip format) out of a string; if the parsing process was successful a constraint is
655 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, an LP or pseudo solution
657 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
686 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
749 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
750 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */
759 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
802 int inferinfo, /**< the user information passed to the corresponding SCIPinferVarLbCons() or SCIPinferVarUbCons() call */
804 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */
815 int nnewfixedvars, /**< number of variables fixed since the last call to the presolving method */
816 int nnewaggrvars, /**< number of variables aggregated since the last call to the presolving method */
817 int nnewchgvartypes, /**< number of variable type changes since the last call to the presolving method */
818 int nnewchgbds, /**< number of variable bounds tightened since the last call to the presolving method */
819 int nnewholes, /**< number of domain holes added since the last call to the presolving method */
820 int nnewdelconss, /**< number of deleted constraints since the last call to the presolving method */
821 int nnewaddconss, /**< number of added constraints since the last call to the presolving method */
822 int nnewupgdconss, /**< number of upgraded constraints since the last call to the presolving method */
823 int nnewchgcoefs, /**< number of changed coefficients since the last call to the presolving method */
824 int nnewchgsides, /**< number of changed left or right hand sides since the last call to the presolving method */
827 int* nchgvartypes, /**< pointer to count total number of variable type changes of all presolvers */
828 int* nchgbds, /**< pointer to count total number of variable bounds tightened of all presolvers */
832 int* nupgdconss, /**< pointer to count total number of upgraded constraints of all presolvers */
834 int* nchgsides, /**< pointer to count total number of changed left/right hand sides of all presolvers */
854 * If the number of variables is greater than the available slots in the variable array, nothing happens except that
855 * the success point is set to FALSE. With the method SCIPgetConsNVars() it is possible to get the number of variables
860 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
868 int varssize, /**< available slots in vars array which is needed to check if the array is large enough */
874 * @note The success pointer indicates if the contraint handler was able to return the number of variables
876 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
884 SCIP_Bool* success /**< pointer to store whether the constraint successfully returned the number of variables */
887 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the
899 /** gets and captures transformed constraint of a given constraint; if the constraint is not yet transformed,
994 /** gets associated transformed constraint of an original constraint, or NULL if no associated transformed constraint
1008 int depth, /**< depth in the tree where the constraint activation takes place, or -1 for global problem */
1020 /** enables constraint's separation, enforcing, and propagation capabilities or marks them to be enabled in next update */
1028 /** disables constraint's separation, enforcing, and propagation capabilities or marks them to be disabled in next update */
1043 /** disables constraint's separation capabilities or marks them to be disabled in next update */
1050 /** enables constraint's propagation capabilities or marks them to be enabled in next update */
1057 /** disables constraint's propagation capabilities or marks them to be disabled in next update */
1083 * if it's age exceeds the constraint age limit, makes constraint obsolete or marks constraint to be made obsolete
1101 * if it's age exceeds the constraint age limit, makes constraint obsolete or marks constraint to be made obsolete
1118 * if it was obsolete, makes constraint useful again or marks constraint to be made useful again in next update
1126 /** adds an active constraint to the propagation queue(if not already marked for propagation) of corresponding
1135 /** returns first constraint from propagation queue(if not empty) of given constraint handler */
1140 /** removes constraint from propagation queue(if not empty) of given constraint handler and unmarks constraint to be
1151 /** resolves the given conflicting bound, that was deduced by the given constraint, by putting all "reason" bounds
1152 * leading to the deduction into the conflict queue with calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
1153 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar();
1164 SCIP_BDCHGIDX* bdchgidx, /**< bound change index, representing the point of time where change took place */
|