Skip to content

Releases: google/or-tools

v9.1 (2021/09)

01 Oct 08:35
Compare
Choose a tag to compare

Platform changes

  • Ubuntu 16.04 LTS is deprecated (actions/runner-images#3287).
  • Add support for Debian 11 (Bullseye).
  • Add support for Fedora 34.
  • python: use manylinux2014 image (PEP 599).
  • python: add support for aarch64 linux using manylinux2014_aarch64 image.
  • .Net: add .Net5 support.

Dependencies Update

  • abseil-cpp 20210324.1 -> 20210324.2.
  • Protobuf 3.15.8 -> 3.18.0.
  • SCIP 7.0.1 -> master.
  • Googletest 1.8.0 -> 1.10.0.
  • python: use of warning in cp_model.py (#2530).
  • python: absl-py 0.11 -> 0.13.

CMake

  • Bump minimum version required 3.14 -> 3.15 (#2528).
  • python: bump minimum required version 3.14 -> 3.18 (#2774).

Make

  • Make based build is deprecated please migrate to Bazel or CMake

Java

  • Improve robustness of the native library loader (#2742).
  • Fix jvm GC crash when routing model or the constraint solver were disposed (#2091, #2466).
  • Fix CP-SAT logging callback crash when using multiple workers (#2775).

CP-SAT

  • Improve robustness of the LNS code (see #2525).
  • Improve scheduling code: new factory methods to create fixed size intervals,
    new search heuristics, improved presolve and new linear cuts.
  • Improve routing code: new dedicated LNS.
  • Improve model checker. It is now more pedantic, especially w.r.t. potential overflows.
  • Improve MIP code: better presolve and multiple improvements to the linear relaxation of MIP
    and CP models.
  • Improve search diversity. When using more than 12 workers, add workers dedicated to
    improving the lower bound of the objective.
  • Change to the parallelism code: by default, the solver will now use all available cores.
    Use the num_search_parameters to specify the level of parallelism.
  • Deprecate SearchAllSolutions and SolveWithSolutionCallback.
  • Python API: more pedantic checks when using var == ... or var != ... outside a model.Add() call.

v9.0 (2021/04)

30 Apr 08:51
Compare
Choose a tag to compare

Platform changes

  • Added support for Centos-7 (#2498)

Dependencies Update

  • abseil-cpp 20200923.3 -> 20210324.1 (#2523)
  • Protobuf 3.15.3 -> 3.15.8 (#2524)
  • Java: jna-platform 5.5.0 -> 5.8.0 (#252)

Features/Fix

  • Improve multi-threading when using CP-SAT solver (#1588)
  • Add logger access support in Python, Java and .Net (#2245)
  • C++: Replace Google type [u]int(16|32|64) by cstdint ones (e.g. uint64_t)
  • Python: Fix std::vector<std::string> support (#2453)

Makefile

  • Rework CPLEX support (#2470)

v8.2 (2021/03)

03 Mar 15:24
Compare
Choose a tag to compare

Dependency Updates

  • abseil-cpp 20200923.2 -> 20200923.3
  • Protobuf 3.14.0 -> 3.15.3

Routing

  • Expose new APIs:
    • int RegisterUnaryTransitVector(std::vector<int64>) and
    • int RegisterTransitMatrix(std::vector<std::vector<int64>>)
  • Change return of AddVectorDimension() and AddMatrixDimension() to std::pair<int, bool> whose int is the transit evaluator id.

v8.1 (2020-12)

09 Dec 21:10
Compare
Choose a tag to compare

Dependency Updates

  • abseil-cpp 20200923 -> 20200923.2
  • Protobuf 3.13.0 -> 3.14.0
  • Add support for Gurobi 9.1.0
  • drop Glog dependency (replaced by a custom implementation depending on abseil-cpp flags)
  • drop Gflag dependency (replaced by abseil-cpp flags component)

Bug Fixes

  • Fix double counting of Gurobi floating license (#2227)
  • Fix windows build (#2200)

v8.0 (2020-10)

11 Oct 12:27
Compare
Choose a tag to compare

Dependency updates

  • abseil-cpp 20200225.2 -> 20200923
  • Protobuf 3.12.2 -> 3.13.0

Platform changes

  • Added support for Python3.9 (#2187)
  • Dropped support for Python3.5 (#2186)
  • Added support for Ubuntu 20.10 (#2188)
  • Dropped support for Ubuntu 16.04 LTS and Ubuntu 19.10 (#2188)

Known Breaking Change

  • Since last synchronization with Google internal code base, now Routing and SAT (i.e. OR-Tools) use some C++17.
    WARNING: If you provide your own version of abseil-cpp please verify it is built against C++17 too.
  • The MPSolver::CreateSolver signature has been changed. The model name argument has been dropped.

CMake

  • Fix disabling SCIP support when using -DUSE_SCIP=OFF (#2129)
  • Integrate samples and examples to the CMake build system.
    note: can be disable by using -DBUILD_SAMPLES=OFF and -DBUILD_EXAMPLES=OFF.
    note: can be disable for a specific language using -DBUILD_<LANG>_SAMPLES=OFF or
    -DBUILD_<LANG>_EXAMPLES=OFF (with <LANG> among CXX, PYTHON, JAVA and DOTNET).

Make

  • Require Make >= 4.3 (use of Make eval function).
  • Require CMake >= 3.14 (use of CMake --verbose option).
  • Add option to disable SCIP support using USE_SCIP=OFF (#2134)
  • Add option to disable CLP and CBC support using USE_COINOR=OFF

Java

  • OR-Tools now generate maven packages (#202).

Bug fixes

  • Fix C++ and Python build on FreeBSD (#2126).
  • Fix build in debug on windows (#2077).
  • Fix long standing crash in parallel on CP-SAT on Windows (#2001, #2019).

v7.8 (2020-07)

04 Aug 11:48
Compare
Choose a tag to compare

Dependency updates

  • Gurobi 9.0.2 is now pre-integrated in prebuilt binaries. It will search for the gurobi 90 shared library in the default install path of the Gurobi installers on MAC OS X and Windows, or in the GUROBI_HOME directory.
  • SCIP 7.0.1 is now integrated in prebuilt binaries.Please ensure compliance with the SCIP license before using it.
  • Added support for optional Xpress Solver 8.9.0.

Linear Solver

  • Added a static LinearSolver::CreateSolver() method to simplify checking support for integrated linear solver backends. It works in all languages.

CMake

  • Fix and add support for FreeBSD (#2105)
  • Use of FetchContent() to build dependencies
  • Use of CMP0091 to control Runtime Library on Windows

Bazel

  • Cleanup protobuf usage.

Bug fixes

  • CP-SAT: Fix sorting in cumulative cut generation.
  • Linear Solver: Fix leak in .Net wrapper when using CreateSolver().

v7.7 (2020-06)

12 Jun 17:32
Compare
Choose a tag to compare

Dependency updates

  • Abseil-cpp 20200225 -> 20200225.2
  • Protobuf 3.11.4 -> 3.12.2
  • bazel-skylib 0.8.0 -> 1.0.2 (for bazel based build)
  • Fix optional SCIP 7.0 support

CP-SAT Update

  • Now, the solver returns Optimal instead of Feasible in a satisfiability model (i.e. without objective)
  • Fix multi-threading crash (#2005)
  • Improve feasibility pump

CMake

  • Add maven package generation (#202)
  • Fix Windows build

v7.6 (2020-04)

23 Apr 19:53
Compare
Choose a tag to compare

Dependency updates

  • Abseil-cpp 8ba96a8 -> b832dce (LTS 20200225)

CP-SAT Update

  • Improve cut management
  • Add debugging tools
  • Fix UNSAT bug in presolve (see #1908)

Bug fixes

  • Fix swigwin.exe url
  • Fix swig typemap management for Java and .Net

v7.5 (2020-01)

28 Jan 08:58
Compare
Choose a tag to compare

Platform updates

  • Added support for Python 3.8 (#1719)
  • Dropped support compilation from sources on Visual Studio 2017 (#1852).
  • Updated support from Centos 7 to Centos 8 (#1827)

Dependency updates

  • Protobuf 3.10.0 -> 3.11.2 (#1829)

Bug fixes

The following and performances improvements (for a complete list see Milestone v7.5)

In particular:

  • Fixed Assembly loading see #1421 (comment)
  • Exposed the GetStartIndex and GetEndIndex methods of RouteIndexManager (#1843)
  • Fixed SWIG to remove broken methods (#1838, #1276).

v7.4 (2019-10)

11 Oct 14:49
Compare
Choose a tag to compare

Abandoned platforms

As announced in the previous release, Python 2.7 has been officially abandoned.

Dependency updates

  • Protobuf 3.9.0 -> 3.10.0

New features

  • CP-SAT: The solver now checks for constraints that do not support enforcement literals (they are the Boolean literals passed to OnlyEnforceIf() methods). The model checker will return an error before solving if such a constraint has an enforcement literal.

  • Linear Solver: The linear solver wrapper now supports XPressMP. You will need to recompile from source to use it.

  • Dotnet: The architecture of the nuget package has been completely rewritten. In particular, it should support dotnet framework >= 4.5.2 on windows platforms.

Performance improvements

This release features significant code and performance improvements on the GLOP simplex, the Routing library, and the CP-SAT solver.