Releases: google/or-tools
v9.1 (2021/09)
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
incp_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 thenum_search_parameters
to specify the level of parallelism. - Deprecate
SearchAllSolutions
andSolveWithSolutionCallback
. - Python API: more pedantic checks when using
var == ...
orvar != ...
outside amodel.Add()
call.
v9.0 (2021/04)
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)
Dependency Updates
- abseil-cpp 20200923.2 -> 20200923.3
- Protobuf 3.14.0 -> 3.15.3
Routing
- Expose new APIs:
int RegisterUnaryTransitVector(std::vector<int64>)
andint RegisterTransitMatrix(std::vector<std::vector<int64>>)
- Change return of
AddVectorDimension()
andAddMatrixDimension()
tostd::pair<int, bool>
whoseint
is the transit evaluator id.
v8.1 (2020-12)
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
v8.0 (2020-10)
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>
amongCXX
,PYTHON
,JAVA
andDOTNET
).
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
v7.8 (2020-07)
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)
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)
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)
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)
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.