Thank you for reading this post, don't forget to subscribe!
OR-Tools is an open source software suite for optimization, tuned for tackling the world’s toughest problems in vehicle routing, flows, integer and linear programming, and constraint programming.
After modeling your problem in the programming language of your choice, you can use any of a half dozen solvers to solve it: commercial solvers such as Gurobi or CPLEX, or open-source solvers such as SCIP, GLPK, or Google’s GLOP and award-winning CP-SAT.
What’s New
We have released OR-Tools v9.3. To update your version, see the appropriate section of OR-Tools Installation.
Platform changes
- Drop Debian-10 support.
- Drop Ubuntu-16.04 support.
- Drop .NET Framework 4.5.2.
Dependencies Update
- Add Eigen 3.4.0.
- Add Google re2 2021-11-01.
- Protobuf 3.19.1 -> 3.19.4.
- SCIP 7.0.1 -> v800.
Python
Features
- Add PDLP as experimental.
- Add MathOpt as experimental.
CP-SAT
- Renamed few API for consistency e.g. LinearExpr.ScalProd. -> LinearExpr.WeightedSum..
- Add AddAtLeastOne/AddAtMostOne/AddExactlyOne methods.
- Add AddMultiplicationConstraint(z, x, y) in all languages.
- Add AddMultipleCircuit() in all languages.
C++
- Explicit ctor IntVar(BoolVar).
- Removed LinearExpr::Add* and replaced them by operator e.g. LinearExpr +=.
- Add arithmetic operators on linear expression.
- Removed LinearExpr::BooleanSum/BooleanScalProd, use Sum/WeightedSum.
- Add CpModelBuilder::FixVariable() which overwrite the domain of the variable to a single value.
Java
- Rewrite LinearExpr, add a incremental builder class: LinearExpr.newBuilder().add(x).addSum(
).build(). - Follow C++ API: Circuit, MultipleCircuit, Cumulative, Reservoir, AllowedAssignment and ForbiddenAssignment now return a specialized class with incremental API to add new variables, terms, demands…
C#
- Document all methods.
- Follow C++ API: Circuit, MultipleCircuit, Cumulative, Reservoir, AllowedAssignment and ForbiddenAssignment now return a specialized class with incremental API to add new variables, terms, demands…
- Add LinearExprBuilder class to build expressions incrementally.
Build System
CMake
- Require at least CMake >= 3.18.
Make
- Now use the CMake based build internally.