All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
type_prop.h
Go to the documentation of this file.
22 /*+1+2+3+4+5+6+7+8+9+0+1+2*/
75 * This method is called when the presolving process is about to begin, even if presolving is turned off. The
76 * propagator may use this call to initialize its presolving data, before the presolving process begins.
78 * Necessary modifications that have to be performed even if presolving is turned off should be done here or in the
89 * This method is called after the presolving has been finished, even if presolving is turned off.
92 * Besides necessary modifications and clean up, no time consuming operations should be performed, especially if the
93 * problem has already been solved. Use the method SCIPgetStatus(), which in this case returns SCIP_STATUS_OPTIMAL,
102 /** solving process initialization method of propagator (called when branch and bound process is about to begin)
104 * This method is called when the presolving was finished and the branch and bound process is about to begin.
107 * Besides necessary modifications and clean up, no time consuming operations should be performed, especially if the
108 * problem has already been solved. Use the method SCIPgetStatus(), which in this case returns SCIP_STATUS_OPTIMAL,
117 /** solving process deinitialization method of propagator (called before branch and bound process data is freed)
127 #define SCIP_DECL_PROPEXITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_Bool restart)
140 *  nnewchgvartypes : number of variable type changes since the last call to the presolving method
141 *  nnewchgbds : number of variable bounds tightened since the last call to the presolving method
147 *  nnewchgsides : number of changed left or right hand sides since the last call to the presolving method
149 * @note the counters state the changes since the last call including the changes of this presolving method during its
168 *  SCIP_UNBOUNDED : at least one variable is not bounded by any constraint in obj. direction > problem is unbounded
169 *  SCIP_CUTOFF : at least one constraint is infeasible in the variable's bounds > problem is infeasible
179 int* ndelconss, int* naddconss, int* nupgdconss, int* nchgcoefs, int* nchgsides, SCIP_RESULT* result)
198 #define SCIP_DECL_PROPEXEC(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_PROPTIMING proptiming, SCIP_RESULT* result)
203 * This method is called during conflict analysis. If the propagator wants to support conflict analysis,
204 * it should call SCIPinferVarLbProp() or SCIPinferVarUbProp() in domain propagation instead of SCIPchgVarLb() or
206 * In the SCIPinferVarLbProp() and SCIPinferVarUbProp() calls, the propagator provides a pointer to itself
208 * The propagation conflict resolving method can then be implemented, to provide a "reasons" for the bound
209 * changes, i.e. the bounds of variables at the time of the propagation, that forced the propagator to set the
210 * conflict variable's bound to its current value. It can use the "inferinfo" tag to identify its own propagation
211 * rule and thus identify the "reason" bounds. The bounds that form the reason of the assignment must then be provided
212 * by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(),
213 * SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and/or SCIPaddConflictBinvar() in the propagation conflict
216 * See the description of the propagation conflict resolving method of constraint handlers for further details.
222 *  inferinfo : the user information passed to the corresponding SCIPinferVarLbProp() or SCIPinferVarUbProp() call
224 *  bdchgidx : the index of the bound change, representing the point of time where the change took place
231 *  SCIP_SUCCESS : the conflicting bound change has been successfully resolved by adding all reason bounds
232 *  SCIP_DIDNOTFIND : the conflicting bound change could not be resolved and has to be put into the conflict set
236 #define SCIP_DECL_PROPRESPROP(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_VAR* infervar, int inferinfo, \
