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 Definition: struct_prop.h:36 result codes for SCIP callback methods common defines and data types used in all packages of SCIP |