Scippy

SCIP

Solving Constraint Integer Programs

Interface changes between SCIP 2.1 and SCIP 3.0

New and changed callbacks

  • Conflict Analysis:

    • Added parameter "relaxedbds" to conflict handler callback method SCIP_DECL_CONFLICTEXEC(). This array contains bounds which are sufficient to create a valid conflict
  • Constraint Handler:

    • New optional callback methods in constraint handlers: SCIP_DECL_CONSGETVARS and SCIP_DECL_CONSGETNVARS. These callbacks, if implemented, should return an array of all variables and the number of all variables used by the given constraint, respectively. (This method might, e.g., be called by a presolver)
    • Added a propagation timing parameter "proptiming" to SCIP_DECL_CONSPROP(), giving the current timing at which this method is called
    • Added a parameter 'restart' to the SCIP_DECL_CONSEXITSOL() callback method, indicating whether this call was triggered by a restart.
    • Added a parameter 'relaxedbd' to SCIP_DECL_CONSRESPROP() callback method. If explaining a given bound change (index), it is sufficient to explain the reason for reaching the 'relaxedbd' value, see above
    • Removed parameters "isunbounded", "isinfeasible" and "result" from SCIP_DECL_CONSINITPRE() and SCIP_DECL_CONSEXITPRE() callback methods. It is not allowed to determine unboundedness or infeasibility in these callbacks, anymore.
  • Message Handler:

  • Presolving:

    • Removed parameters "isunbounded", "isinfeasible" and "result" from SCIP_DECL_PRESOLINITPRE() and SCIP_DECL_PRESOLSEXITPRE(). It is not allowed to determine unboundedness or infeasibility in these callbacks, anymore.
  • Propagator:

    • Added a propagation timing parameter "proptiming" to SCIP_DECL_PROPEXEC(), giving the current timing at which this method is called.
    • Added a parameter 'restart' to SCIP_DECL_PROPEXITSOL() callback method, indicating whether this call was triggered by a restart.
    • Added a parameter 'relaxedbd' to SCIP_DECL_PROPRESPROP() callback method. If explaining a given bound change (index), it is sufficient to explain the reason for reaching the 'relaxedbd' value.
    • Removed parameters "isunbounded", "isinfeasible" and "result" from SCIP_DECL_PROPINITPRE() and SCIP_DECL_PROPEXITPRE() callback methods. It is not allowed to determined unboundedness or infeasibility in these callbacks, anymore.
  • NLP Solver Interface:


Changed interface methods


Miscellaneous

  • Replaced SCIPparamSet*() by SCIPchg*Param() (where * is either Bool, Int, Longint, Real, Char, or String).
  • New parameter in SCIPcopy() and SCIPcopyPlugins() to indicate whether the message handler from the source SCIP should be passed to the target SCIP (only the pointer is copied and the usage counter of the message handler is increased).
  • SCIPprintCons() does not print termination symbol ";\n" anymore; if wanted, use SCIPinfoMessage() to print ";\n" manually
  • All objscip *.h file now use the default SCIP interface macros.
  • The methods SCIPsortedvecInsert*() have an additional parameter which can be used to receive the position where the new element was inserted.
  • New macro SCIPdebugPrintCons() to print constraint only if SCIP_DEBUG flag is set.


For further information we refer to the Release notes and the Changelog.