You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On MacOS compile Coin-OR in -O1 to avoid crash in runners.
Routing
Improvement on filters.
Improve first solution heuristics.
Improve time break placements.
CP-SAT
Breaking changes:
The underlying protocol buffer is incompatible with previous versions. Any stored protocol buffer will have to be re-generated with the updated builder APIs (in C++, Python, Java, and .NET)
In particular, the interval protobuf was clean as we removed the old fields (start, size, and end) and renamed the new ones (using _view) to use the name of the removed fields.
AddProductEquality has been removed. Please use AddMultiplicationEquality.
Now that we have floating point coefficients for the objective, we have removed ScaleObjectiveBy which had a problematic semantics.
New features:
The all_different, reservoir, modulo, multiplication and division constraints accept affine expressions (a * var + b) everywhere it required integer variables.
The objective accepts floating point coefficients (See the DoubleLinearExpr class in C++/Java/.NET. See the knapsack_2d_sat.py example in Python).
The no_overlap_2d constraint supports optional intervals.
The C++ API implements + and * operators to build expressions.
Improvements:
Improved presolve code.
Tighter model checker.
Rework reservoir constraint.
Add energetic cuts for the no_overlap_2d constraint.
Improved linear relaxation of encoding constraints (literal implies var == value).
Deprecated and removed methods
Deprecated C++ BooleanSum and BooleanScalProd. Just use Sum and ScalProd.
Removed C++ AddLinMinEquality and AddLinMaxEquality. Just use AddMinEquality and AddMaxEquality.
Future incompatibilities
At some point in the future, we will rewrite the Java modelling layer to be closer to the C++ layer.
In the C++ modelling layer, we will make the IntVar(BoolVar var) ctor explicit.
We are contemplating making the python API PEP 8 compliant (using snake_case names). If this happen, we will provide a sed file to port the code.
Build System
Bazel
Fix Windows build.
CMake
Add FETCH_PYTHON_DEPS option (default ON).
Add optional support for GPLK solver (default -DUSE_GLPK=OFF).