# SCIP

Solving Constraint Integer Programs

Interface changes between SCIP 1.2 and SCIP 2.0

# New and changed callbacks

• Copying a SCIP instance:

• Branching on externally given candidates:

• The branching rules have a second new callback method (see type_branch.h for more details):
• SCIP_DECL_BRANCHEXECEXT(x) - This method can be used to branch on external branching candidates, which can be added by a user's "relaxation handler" or "constraint handler" plugin, calling SCIPaddExternBranchCand().
• Restarts:

• The callback SCIP_DECL_PROBEXITSOL(x) in the main problem has one new parameter (see type_prob.h for more details):
• The parameter restart is TRUE if the callback method was triggered by a restart.

# Miscellaneous

• The NLPI library is now a separate library that is required when linking against the SCIP library. This requires changes to Makefiles that use SCIP, see the Release notes for more details.
• We do not distinguish between block memory for the original and the transformed problem anymore. The same block memory is now used in both problem stages.
• The usage of strong branching changed. Now, SCIPstartStrongbranch() and SCIPendStrongbranch() must be called before and after strong branching, respectively.
• All C++ objects and constructors have a SCIP pointer, now.
• The predefined setting files like "settings/cuts/off.set,aggressive.set,fast.set" have been replaced by interface methods like SCIPsetHeuristics(), SCIPsetPresolving(), SCIPsetSeparating(), and SCIPsetEmphasis() in scip.h and by user dialogs in the interactive shell like

SCIP> set {heuristics|presolving|separating} emphasis {aggressive|fast|off}

or

SCIP> set emphasis {counter|cpsolver|easycip|feasibility|hardlp|optimality}

For further release notes we refer to the Release notes.