We’re happy to announce the release of July 2016 version of or-tools. Here's what's new with this release:
Constraint solver:
- Routing
- A disjunction can now be defined with a cardinality, which is the maximum number of nodes that can be active within this disjunction. For example, if you add a disjunction with n nodes and a cardinality of k, then k nodes among the n nodes are allowed to be active. You can use the new definition of [AddDisjunction](https://github.com/google/or-tools/blob/master/src/constraint_solver/routing.h#L525) to do this.
- Added support for multiple disjunctions per node. For example, you can now add a node, N1, to many disjunctions (D1..Dm). This increases its chance of being active within any one of them.
Introduced a faster routing search algorithm for problems related to disjunct time windows.
- Added constraint solver parameters to routing model parameters and log_search to routing search parameters.
- Local search algorithm is faster with resolving problems with disjoint time windows. Please see [cvrp_disjoint_tw.cc](https://github.com/google/or-tools/blob/master/examples/cpp/cvrp_disjoint_tw.cc) example.
Glop (linear optimization):
- Introduced a faster Simplex Algorithm.
Or-tools distribution:
- One archive per platform, rather than individual archives for each of C++, Java, and C. Python archives are still hosted on pypi.
- On pypi, we have switched to wheel (.whl) modules on Mac OS X and Windows.
Introduced a MAJOR.MINOR numbering schema. These numbers are used the archive names, the version stored in Mac OS X shared libraries, python modules, .NET assemblies. The first version we are releasing is with this schema is v4.2
v2016-06
Examples:
- c++: getting rid of filelinereader in examples
- data: Add single machine scheduling problems
Sat:
- Remove unused core method (Resolution nodes)
- Added drat writer to checks proofs on unsatisfiability
- Add preprocessor
Documentation:
- Lots of cleanup in the header files.
- Please check the new documentation at https://developers.google.com/optimization/
Bop:
- Add new neighborhoods
Constraint Solver:
- Removed most of the instances of the callbacks (src/base/callback.h) from the CP library
- Added NotMemberCt (variable cannot belong to a set of intervals)
Routing library:
- INCOMPATIBLE CHANGE: To specify the capacity of vehicles in the AddDimensionWithVehicleCapacity, you now need to pass an array (vector in c++) instead of a callback.
GLOP:
- Change internal representation of sparse matrix
- performance improvements
Graph:
- Added A\* contributed code
- Rewrite Dijkstra and Bellman-Ford algorithms to replace callbacks by std::function (C++)
- Change API of different graph implementation when iterating over arcs and nodes.
v2016-04
Main changes:
- Use protobuf instead of flags in the Constraint Programming and routing libraries.
- See http://or-tools.blogspot.fr/2016/02/heads-up-upcoming-incompatibility-in.html for details.
v2015-12
Changelog:
- Broke compatibility on the Large Neighborhood Search in the CP solver
(see examples/cpp/ls_api.cc, examples/python/pyls_api.py, examples/csharp/csls_api.cs, and
examples/com/google/ortools/sample/LsApi.java to see the new API).
- Cleaned the the python wrapping. Support custom decision in the CP solver (see examples/test/test_cp_api.py to see the API in action).
- Various improvements and bug fixes.
v2015-09
Release of OR-Tools
September 2015
What's new:
- First release on github. Files will be stored there from now on.
- Added binary archives for the flatzinc interpreter (see www.minizinc.org)
- Contains a few fixes over the version used in the challenge