Scippy

SCIP

Solving Constraint Integer Programs

SCIP stages

The SCIP object goes through different stages during the solving process, the transitions from one to the next are presented in the following diagram.

More exhaustively, the stages are:

SCIP_STAGE_INIT = 0, /**< SCIP data structures are initialized, no problem exists
* SCIP_STAGE_PROBLEM = 1, /**< the problem is being created and modified
* SCIP_STAGE_TRANSFORMING = 2, /**< the problem is being transformed into solving data space
* SCIP_STAGE_TRANSFORMED = 3, /**< the problem was transformed into solving data space
* SCIP_STAGE_INITPRESOLVE = 4, /**< presolving is initialized
* SCIP_STAGE_PRESOLVING = 5, /**< the problem is being presolved
* SCIP_STAGE_EXITPRESOLVE = 6, /**< presolving is exited
* SCIP_STAGE_PRESOLVED = 7, /**< the problem was presolved
* SCIP_STAGE_INITSOLVE = 8, /**< the solving process data is being initialized
* SCIP_STAGE_SOLVING = 9, /**< the problem is being solved
* SCIP_STAGE_SOLVED = 10, /**< the problem was solved
* SCIP_STAGE_EXITSOLVE = 11, /**< the solving process data is being freed
* SCIP_STAGE_FREETRANS = 12, /**< the transformed problem is being freed
* SCIP_STAGE_FREE = 13 /**< SCIP data structures are being freed
*
@ SCIP_STAGE_INIT
Definition: type_set.h:44

Most functions can be called in a subset of the stages, this is then documented, a runtime check is often added and will throw a SCIP_INVALIDCALL if the stage is not allowed.