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 |