github google/or-tools v9.12

5 days ago

Platforms

  • This will be the last release to support Python3.8.
  • Add Python 3.13 support.
  • Add muslinux wheel package.
  • This will be the last release to support Java 1.8

Builds

  • dependencies (protobuf, abseil, re2, highs) are now seperated shared libraries
  • Windows libraries are now dll

Dependencies

C++

  • Protobuf 29.3
  • CoinUtils: 2.11.12
  • Osi: 0.108.11
  • Clp: 1.17.10
  • Cgl: 0.60.9
  • Cbc: 2.10.12
  • HiGHS: 1.9.0
  • Scip: v920
  • benchmark: 1.9.1

Graph

  • Old graph classes (EbertGraph, StarGraph, ForwardEbertGraph, ForwardStarGraph) have been removed.
    Use ReverseArcListGraph<> and ListGraph<> instead. Those are conceptually similar, but typically perform better.
    APIs are mostly compatible.

CP-SAT

  • Improve the no_overlap_2d layer (propagation, presolve, cuts)
  • Add RandomHalfBranching search heuristics
  • Improve Cumulative propagation and cuts
  • Rewrote the hint transformation during presolve. Feasible and complete hints should now be preserved after presolve
  • Rewrite and optimize the linear expression part of the python layer
  • Improve shared tree workers, implement job affinity with workers
  • Add scheduling samples
  • Support 1-var affine expressions in the Automaton constraint
  • Support 1-var affine expressions in the Element constraint
  • Speed up LNS
  • Tens of fixes for bugs found by fuzzer

Linear Solver

  • Add WriteModelToMpsFile to MPSolver in Java, Python and .NET

Math Opt

  • Add Xpress support.

Model Builder

  • Speedup of the python expression part.
  • Add HiGHS support.

SCIP

  • This is likely the last release of SCIP build with glop
  • We will transition to SCIP with SOPLEX builds
  • This is already the case for the Bazel build

Known Issues

  • MathOpt: python_math_opt_solver_test failed on macOS #4460
  • cmake: MacOS Intel based python wheel do not contains mypy files #4540
  • cmake: cxx_graph_shortest_paths_test (Timeout) #4539

Full Changelog: v9.11...v9.12

Don't miss a new or-tools release

NewReleases is sending notifications on new releases.