OR-Tools
Optimization suite for constraint programming, routing, scheduling and linear solvers
Google's solver suite where nearly every release note is really about CP-SAT.
◆Recent moves
- 1y ago
Dependencies split into shared libraries, Python 3.13 support, CP-SAT hint preservation
The build change is the notable part: protobuf, abseil, re2 and HiGHS become separate shared libraries and Windows ships DLLs, which matters to anyone packaging OR-Tools downstream. CP-SAT gets rewritten hint transformation during presolve so complete hints survive it, plus more no_overlap_2d work.
View source ↗ - 1y ago
AlmaLinux and Rocky Linux 9 support, experimental set_cover Python binding
Mostly platform coverage — AlmaLinux 9, Rocky Linux 9, Ubuntu 24.04 — with an experimental set_cover Python binding as the one new capability. The release also documents a known CP-SAT callback performance problem across Python, Java and .NET rather than fixing it.
View source ↗ - 1y ago
CP-SAT core search and presolve improvements, absl::Span migration
A CP-SAT-heavy release: improved core-based search, better lb_tree_search, a best-bound callback, and merged linear and difference propagators. The C++ surface continues migrating to absl::Span and absl::string_view, which is a signature-level change for embedders.
View source ↗ - 1y ago
Python API rewritten to PEP 8 naming; MathOpt ships in the Python wheel
Renaming model.AddBoolOr to model.add_bool_or across the CP-SAT Python API is a break every existing script eventually has to absorb. MathOpt entering the Python wheel signals it is meant to be used, not just built.
View source ↗ - 1y ago
ModelBuilder gains indicator constraints and hinting; MathOpt deep rework
Extends the ModelBuilder API with indicator constraints, hinting support and model cloning, and ports it to .NET. The MathOpt rework and routing fixes round it out — this is the release where the newer modeling layers start looking serious.
View source ↗ - 3y ago
Graph library reworked, pandas support in the Python model builder
A deep graph rework plus a new objective_shaving_search CP-SAT worker aimed at lower bounds. Allowing pandas DataFrames and Series to create variables is the first sign of OR-Tools meeting data-science workflows where they are rather than requiring solver-shaped input.
View source ↗