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, \
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 |