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)
141 * - nnewchgvartypes : number of variable type changes since the last call to the presolving method
142 * - nnewchgbds : number of variable bounds tightened since the last call to the presolving method
148 * - nnewchgsides : number of changed left or right hand sides since the last call to the presolving method
150 * @note the counters state the changes since the last call including the changes of this presolving method during its
153 * @note if the propagator uses dual information for presolving it is nesassary to check via calling SCIPallowDualReds
172 * - SCIP_UNBOUNDED : at least one variable is not bounded by any constraint in obj. direction -> problem is unbounded
173 * - SCIP_CUTOFF : at least one constraint is infeasible in the variable's bounds -> problem is infeasible
179 #define SCIP_DECL_PROPPRESOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, int nrounds, SCIP_PRESOLTIMING presoltiming, \
183 int* ndelconss, int* naddconss, int* nupgdconss, int* nchgcoefs, int* nchgsides, SCIP_RESULT* result)
202 #define SCIP_DECL_PROPEXEC(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_PROPTIMING proptiming, SCIP_RESULT* result)
207 * This method is called during conflict analysis. If the propagator wants to support conflict analysis,
208 * it should call SCIPinferVarLbProp() or SCIPinferVarUbProp() in domain propagation instead of SCIPchgVarLb() or
210 * In the SCIPinferVarLbProp() and SCIPinferVarUbProp() calls, the propagator provides a pointer to itself
212 * The propagation conflict resolving method can then be implemented, to provide a "reasons" for the bound
213 * changes, i.e. the bounds of variables at the time of the propagation, that forced the propagator to set the
214 * conflict variable's bound to its current value. It can use the "inferinfo" tag to identify its own propagation
215 * rule and thus identify the "reason" bounds. The bounds that form the reason of the assignment must then be provided
216 * by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(),
217 * SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and/or SCIPaddConflictBinvar() in the propagation conflict
220 * See the description of the propagation conflict resolving method of constraint handlers for further details.
222 * @note if the propagtor uses dual information it is nesassary to check via calling SCIPallowDualReds and
223 * SCIPallowObjProp if dual reductions and propgation with the current cutoff bound, resp., are allowed.
229 * - inferinfo : the user information passed to the corresponding SCIPinferVarLbProp() or SCIPinferVarUbProp() call
231 * - bdchgidx : the index of the bound change, representing the point of time where the change took place
238 * - SCIP_SUCCESS : the conflicting bound change has been successfully resolved by adding all reason bounds
239 * - SCIP_DIDNOTFIND : the conflicting bound change could not be resolved and has to be put into the conflict set
243 #define SCIP_DECL_PROPRESPROP(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_VAR* infervar, int inferinfo, \
timing definitions for SCIP type definitions for return codes for SCIP methods type definitions for SCIP's main datastructure result codes for SCIP callback methods common defines and data types used in all packages of SCIP |