github scipopt/scip v10.1.0

6 hours ago

Features

  • added command line option -t to specify the number of threads, which triggers concurrent solving via SCIPsolveConcurrent()

Performance improvements

  • implemented interval function evaluation callback in CONOPT interface
  • reduced complexity of SCIPundoBdchgsProof() during conflict analysis accelerating execution for many variables
  • terminate dynamic programming in the exact knapsack solver early once the optimal LP-based upper bound is reached

Fixed bugs

  • include original objective offset when writing transformed problem
  • corrected random seed calculation in SCIPsetInitializeRandomSeed() in optimized mode
  • correct node selector for heuristic node preview in main solving loop
  • stop interrupted node without copying to child node to simplify continuation of solve
  • fixed bug with locking/unlocking aggregated variables in cons_orbisack/orbitope_full/orbitope_pp/symresack
  • fixed a bug in sassy/dejavu by adding a patch to dejavu/preprocess.h
  • fixed that registering branching candidates in the estimate callback of a nlhdlr was not accounted in the nlhdlr statistics
  • fixed that copying relaxation-only variable in SCIPgetVarCopy() was not rejected as intended
  • apply consistent arithmetic and tolerance to SCIPselectWeighted*() for stable critical item
  • fixed invalid memory access when calling SCIPgetStatus() in INIT stage
  • fixed that functions declared in pub_history.h were not included in optimized builds of SCIP
  • fixed that parameter changes were printed to the log when parsing emphasis settings via an "emphasis:" line in a settings file (other parameter settings are not printed)
  • disabled use of std::unchecked_array_iterator in amplmp's variant of fmt when using MSVC >= 2026
  • fixed compilation issue with MSVC 2026 when enabling C++20
  • fixed compilation issues with clang-based Intel compiler on Windows
  • fixed that check/check.sh did not reset EXECNAME before calling tmpfile configuration script

Interface changes

New API functions

  • added SCIPcalcBestCut() to try multiple cut generation methods (FlowCover, KnapsackCover, CMIR) on an aggregation row and return the best cut by efficacy
  • added SCIPinitCutGenParams(), SCIPcreateCutGenResult(), and SCIPfreeCutGenResult() as helper functions for SCIPcalcBestCut()
  • added SCIPnlpiOracleEvalObjectiveInterval() and SCIPnlpiOracleEvalConstraintInterval()
  • added SCIPgetSolvingPhase() along with enum SCIP_SOLVINGPHASE to query the current solving phase tracked by the solvingphase event handler, phase evaluation requires solvingphases/enabled = TRUE or solvingphases/testmode = TRUE
  • added SCIPgetSolvingPhaseFlags() along with typedef SCIP_SOLVINGPHASEFLAG for flags SCIP_SOLVINGPHASEFLAG_NONE/RANK1/ESTIMATE/OPTIMAL/LOG to query which reached transition criteria have been detected by the solvingphase event handler, flag evaluation requires solvingphases/enabled = TRUE or solvingphases/testmode = TRUE
  • added SCIPiisGetSubscipCons() and SCIPiisGetSubscipVar() to get the variables and constraints of the IIS subscip corresponding to the main problem
  • added SCIPiisGetVarsmap() and SCIPiisGetConssmap()

New parameters

  • presolving/milp/enableGF2: whether to enable GF2 presolver in upcoming PaPILO 4
  • concurrent/symmetrybefore: whether symmetry should be computed before concurrent solving
  • constraints/<handler>/copytypedcons for knapsack, logicor, setppc, and varbound constraint handlers to copy constraints with their native type instead of as linear constraints (default: FALSE)

Data Structures

  • added struct SCIP_CUTGENPARAMS for cut generation parameters
  • added struct SCIP_CUTGENRESULT for cut generation result

Build system

  • added build flag CHECKNAME=auto to control name checks in plugin function calls

Cmake

  • added workaround to avoid -isystem for ZLIB headers on macOS (leads to compilation issues for C++ code)

Makefiles

  • changed default compiler (COMP) from gnu to clang when on macOS and added make/make.darwin.arm.clang{.opt,.dbg,}
  • fixed makefiles for build with LPS=highs

Miscellaneous

  • added an example with a nonlinear handler for the potential function of the Lennard-Jones Cluster problem

For more information on attached assets, check https://scipopt.org/index.php#download.

Don't miss a new scip release

NewReleases is sending notifications on new releases.