Ortools

Latest version: v9.11.4210

Safety actively analyzes 688867 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 8

7.5

Platform updates
* Added support for Python 3.8 (1719)
* Dropped support compilation from sources on Visual Studio 2017 (https://github.com/google/or-tools/issues/1852).
* Updated support from Centos 7 to Centos 8 (https://github.com/google/or-tools/issues/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](https://github.com/google/or-tools/milestone/10))

In particular:
* Fixed Assembly loading see https://github.com/google/or-tools/issues/1421#issuecomment-555225815
* Exposed the GetStartIndex and GetEndIndex methods of RouteIndexManager (1843)
* Fixed SWIG to remove broken methods (1838, 1276).

7.4

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.

7.3

Deprecation of Python 2.7
Important Notice Python 2.7 will be obsolete by the end of 2019. This is likely the last release to support Python 2.7.

Dependencies updates
- Protobuf 3.8.0 -> 3.9.0

Bugfixes and Performance Improvements
The usual bunch of fixes and performances improvements (See https://github.com/google/or-tools/projects/6)

In particular:
- https://github.com/google/or-tools/issues/1448
- https://groups.google.com/forum/?hl=kn#!topic/or-tools-discuss/nplMSi-w8aI

7.2

Deprecation of Python 2.7
- **Important Notice** Python 2.7 will be obsolete by the end of 2019. There will be at most one more release supporting python 2.7.

Platform changes
- Ubuntu 18.10 -> Ubuntu 19.04
- Support compilation from sources on Visual Studio 2019
- Dropped support for python 3.5 on Windows.

Dependencies updates

- CBC 2.10.1 -> 2.10.3
- Protobuf 3.7.1 -> 3.8.0

CP-SAT

- Multiple improvements focusing on the search, the implementation of the parallelism, and the connection to the linear relaxation
- Added `LinearExpr.Sum()` and `LinearExpr.ScalProd()` APIs in python
- Deprecate `IntVar[].Sum()` and `IntVar[].ScalProd()` APIs in C
- C++: remove `SolveWithModel` as it was a duplicate of `SolveCpModel()`
- add `CpModel.addGreaterThan` and `CpModel.addLessThan` methods to the Java API

Linear Solver:

- Add `MPSolver.SetHint()` in non C++ languages (Supported by SCIP, Gurobi)
- Add `MPSolver.SetNumThreads()` for non C++ languages (supported by CBC, Gurobi, SCIP)
- Rewrite support for scip 6.0.1

Reference manuals

See http://google.github.io/or-tools/

- We have added doxygen and pdoc3 based reference manuals for all languages and all tools (algorithms, routing, graph, linear_solver, and CP-SAT).
- Documentation is complete for C++ (all products) and CP-SAT (C++, Python, Java).
- We are in the process of exporting all C++ documentation to Python and Java.
- .NET documentation is lacking, and we have no solution in the foreseeable future to improve this. We have kept it as it still shows the available API.
- Some non C++ APIs show the link to SWIG through the use of SWIGTYPE_* object in the signatures. We will eliminate all these in the future. Please consider that these methods are not usable.

7.1

Updates to required dependencies
* Glog 0.3.5 -> 0.4.0
* Protobuf 3.6.1 -> 3.7.1
* Cbc 2.9.9 -> 2.10.1
* Cgl 0.59.10 -> 0.60.1
* Clp 1.16.11 -> 1.77.1
* Osi 0.107.9 -> 0.108.1
* Coinutils 2.10.14 -> 2.11.1

CP-SAT
* Breaking change in the CP-SAT API in Python, Java and .Net.
see doc [here](https://github.com/google/or-tools/blob/master/ortools/sat/doc/integer_arithmetic.md#non-contiguous-domain)
* Searching for all solution in a satisfiability problem now returns `OPTIMAL` when search is finished.
* The C++ `CpModel Solve()` method and its variations now take a `CpModelProto` as input. It is created using the `CpModel.Build()` method. So the right call is `CpSolverResponse r = Solve(cp_model.Build());`

Linear solver
* Known bug: the ExportModelAsLpFormat and ExportModelAsMpsFormat methods have been accidentally removed in the Python linear solver module.
Added Support
* Fix SWIG 4.0 compatibility.

7.0

Updates to required dependencies
* GFlags 2.2.1 -> 2.2.2

New required dependencies
* Added [abseil-cpp](https://github.com/abseil/abseil-cpp) (set to `SHA1:bf29470`) as required dependency.

Drop Support
* Drop support of **Visual C++ 2015**
* Visual C++ 2015 is no longer able to compile OR-Tools source code.
* Drop support of Python **3.4** on Linux
* abseil-cpp headers conflict with `Python.h` header see [abseil-cpp \235](https://github.com/abseil/abseil-cpp/issues/235)
* Drop support Ubuntu 14.04 LTS
* need C++11 `std::vector::erase(const_iterator)` not availalbe with GCC 4.8 (see 1139)

Routing
* Use of `IndexManager` to do the conversion between `NodeIndex` and `Index` for **all** API.
* Now, transit callback must be registered first, then you must use the associated id in `AddDimension()`/`SetArcCostXXX()`
Here some examples:
* [tsp.py](https://github.com/google/or-tools/blob/v7.0/ortools/constraint_solver/samples/tsp.py)
* [tsp.cc](https://github.com/google/or-tools/blob/v7.0/ortools/constraint_solver/samples/tsp.cc)
* [Tsp.java](https://github.com/google/or-tools/blob/v7.0/ortools/constraint_solver/samples/Tsp.java)
* [Tsp.cs](https://github.com/google/or-tools/blob/v7.0/ortools/constraint_solver/samples/Tsp.cs)
* Change callback API
* Add support for lambda callback in .Net using `delegate` function.
* Add support for lambda callback in Java using `functionalInterface`.
* All Java API are now in conformance with the Google Java Style Guide (i.e. lower camel case for methods).
* Expose enum class PickupAndDeliveryPolicy in all languages, sample [here](https://github.com/google/or-tools/blob/v7.0/ortools/constraint_solver/doc/PDP.md)
Python
* **WARNING** Manylinux `ortools` wheel package have been build against `manylinux2010` (see [PEP 571](https://www.python.org/dev/peps/pep-0571/)) since *abseil-cpp* require `glibc >= 2.12`. But since `pip` does not support `manylinux2010` [platform compatibility tag](https://packaging.python.org/specifications/platform-compatibility-tags/) yet, package and platform tag has been reset to `manylinux1` (see [PEP 513](https://www.python.org/dev/peps/pep-0513/)).

Bugfix
* Rename few enum after windows clash (e.g. `DeleteFile`, `FLOAT` are macro in MSVC).
* Fix utils/file_nonport compilation on windows.
* Remove non compact table constraints in the original CP solver.
* Add optional_boolean sub-proto.
* Fix ownership for callback in Java and .Net.

Page 4 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.