Releases: google/or-tools
v6.7.1 (2018-03)
Fix Protobuf version on UNIX: ~v3.1.0-alpha-1 (3d9d1a1255) -> v3.5.1
v6.7 (2018-03)
Update to required dependencies
- Protobuf 3.5.0 -> 3.5.1
Misc
- Refactor base to prepare abseil-cpp integration.
- Add some CI jobs.
- Add
make install_python
target. - Use
JAVA_HOME
instead ofJDK_DIRECTORY
SAT
- Performance improvement.
- Improves Python API.
- Add C# API aka CpSolver.cs (EXPERIMENTAL).
Glop
- Code refactoring.
- Performance improvement.
CMake Support (EXPERIMENTAL)
- Add C++ OR-Tools CMake support.
- Be able to build OR-Tools as a standalone CMake project.
- Be able to incorporate OR-Tools into an Existing CMake project.
- Add Python OR-Tools CMake based build.
- Generate python package (wheel) using CMake.
Contributions
- Fix winsock2.h redefinition on windows Thanks to Florent Tollin de Rivarol.
- Add F# Support (EXPERIMENTAL) Thanks to Matthew Moore.
Note: only available with Makefile builder. - Add .NET Standard Support (EXPERIMENTAL) Thanks to Ziad Elmalki.
Note: only available with Makefile builder
Full list of commits since v6.6 here
v6.6 (2017-11)
Updates to required dependencies
- Protobuf to 3.3.0 -> 3.5.0.
- gflags to 2.2.0 -> 2.2.1.
- CBC 2.9.8 -> 2.9.9.
- Add Python module six (1.10) as required dependency for Python.
Bugfixes
- Pull request #494 Name refactoring. Adding comments for IntelliSense in some editors.
Thanks to Matthew Moore. - Pull request #516 Instruction for F# standalone binary.
Thanks to Matthew Moore. - Improve precision in Glop.
SAT Solver
- Improve internal SAT solver, Fix various bugs.
- Add a VRP constraint to the SAT solver, linked to the LP solver.
- Change the solution observer in the SAT solver to take a CpSolverResponse as a parameter.
- Improve the use of Glop in SAT Solver.
- Speedup SAT-LP connection.
- Add Reservoir constraint to the SAT cp_model protobuf format.
SAT/Python
-
Introduction of the SAT API in Python.
-
Code in ortools/sat/python/cp_model.py.
-
Add examples in examples/python/:
-
Add support for IPython notebook.
-
Python examples are exported to notebooks and available in examples/notebook.
Examples
- Rewrite rcpsp_parser to use ProtoBuf format to store the problem.
- Improve RCPSP parser.
Full list of commits since v6.5 here
v6.5 (2017-10)
September 2017 release of OR-Tools.
v6.4 (2017-09)
Change in platforms
- Pypi modules on Linux platforms are now delivered as wheel files using the manylinux1 tag. Thanks to Federico Ficarelli. With this change, we have backtracked the per-linux modules introduced in the July 2017 release.
New features
- Improved scaling method used inside GLOP.
- Fix wrapping of evaluators in the C# routing library. Thanks to DevNamedZed.
- Improve the performance of the flatzinc presolve for large models.
- Use the SAT backed for flatzinc by default.
- Improve performance of the Core based approach for the sat solver.
- Fix bug in the linear assignment algorithm that was failing incorrectly.
- Added F# examples in ortools/examples/fsharp. (Thanks to Matthew Moore).
- Remove check for positive penalties in the routing library.
v6.3 (2017-08)
OR-Tools August 2017 release
v6.2 (2017-07)
Change in platforms
- We now support multiple Linux binary distributions (Ubuntu 14.04, 16.04, 17.04, CentOS 9, Debian 9).
- Pypi modules on Linux platforms now include a tag that describes the distribution (ubuntu-14.04, ubuntu-16.04, ubuntu-17.04, centos-7, debian-9).
- Python wheel files for Linux are now available to download in the github release page.
New features
We have added support for Docker to build linux artifacts. Go to or-tools/tools/docker and look at the Makefile to see possible targets (make archive, make pypi, and make pypi3). These commands will create an export subdirectory and add binary artifacts in it.
Release of June 2017
v6.1 OR-Tools June 2017 release v6.1
Release of May 2017
New directory structure in C++
We have changed the source/include structure of or-tools when using C++. The goal is to provide better encapsulation of the C++ include files. It also has the benefit of aligning the C++ and the python directory structures.
- src/ has been renamed ortools/.
- All #include command in C++ files now have the prefix ortools added. #include "constraint/constraint_solver.h" is now #include "ortools/constraint/constraint_solver.h".
New features
Bazel support
You can now build or-tools with bazel, Google's build tool. It works on Linux and Mac OS X. After downloading bazel version 0.4.5 or later, change directory to or-tools and build the examples: bazel build examples/cpp/....
Routing
We have implemented the support for breaks (e.g., vehicle downtime due to drivers eating lunch)in the routing library. This feature is shown in the cvrptw_with_breaks.cc example.
SCIP support
The linear solver wrapper now support SCIP 4.0. You now need to build SCIP first, and then tell or-tools that you will use it. Instructions are available here.
GLPK support
We have also changed the way with build with GLPK. See here.
Cleanups
-
We have removed all usage of hash_map, hash_set in the C++ codebase as they are deprecated. They were replaced by unordered_map and unordered_set from the STL.
-
Cleanup of the C# makefiles, courtesy of Michael Powell.
Release of or-tools : January 2017.
New Features
Installing
- Introduced simpler procedures for installing or-tools, either from binary distributions or from source code. See Installing or-tools for more information.
Routing
- Implemented an algorithm to compute the Held-Karp lower bound for symmetric Traveling Salesman Problems. This enables you to compute an upper bound to the gap between the cost of a potentially non-optimal solution and the cost of the optimal solution.
- Added a new method to the vehicle routing library,
RoutingModel::SetBreakIntervalsOfVehicle
, which lets you add break intervals — time periods when a vehicle cannot perform any tasks (such as traveling or visiting a node). For an example that uses this option, see
https://github.com/google/or-tools/blob/master/examples/cpp/cvrptw_with_breaks.cc.
Scheduling
- Added support for more data formats in the parser for the Project Scheduling Library.
Sat solver
- The Sat solver's cumulative constraint now accepts optional intervals, created with the
NewOptionalInterval
method. For an example, see
https://github.com/google/or-tools/blob/master/examples/cpp/rcpsp_sat.cc. - You can now solve a maximum satisfiability problem by specifying the objective as a weighted sum of literals. It is no longer necessary to create an intermediate integer variable.
Performance improvements
- Sat solver — Improved performance of the Sat solver, particularly for the cumulative constraint.
- Glop solver— Improved numerical robustness of the Glop solver, which now returns even more accurate solutions to hard numerical problems.
- Flatzinc solver
- Greatly improved performance of the Sat backend for the flatzinc interpreter.
- Simplified the C# flatzinc interface. For an example of the new interface, see
https://github.com/google/or-tools/blob/master/examples/csharp/csfz.cs.
Bug Fixes
- Using the
PathCheapestArc
heuristic on routing models with a single vehicle and side constraints would sometimes cause the solver to run for an excessively long time. This has been fixed by properly taking into account side-constraints. - In Java, the routing solver would sometimes crash when solving vehicle routing problems. This has been fixed in the latest release.