May 2017 release of OR-Tools

We have just released a new version of OR-Tools on

github: Release notes:

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/.... …

Linking glpk with or-tools on unix

Following the change on SCIP, here is the new procedure to compile and link GLPK with or-tools

This currently applies to unix only:

First download the latest glpk archive (4.61 at the time of this post).

Untar, cd into the glpk directory

on linux:
  ./configure --prefix=<install_path> --with-pic
  make install

on mac OS X:
  ./configure --prefix=<install_path>
  make CFLAGS='--mmacosx-version-min=10.8'
  make install

then add:
  UNIX_GLPK_DIR=<install_path> in or-tools/Makefile.local

recompile or-tools:
  make clean
  make cc

test it:
  run bin/integer_programming and bin/linear_programming. Both must display glpk runs.

I have no easy solution for glpk on windows currently, still investigating.

Changing the way we link with SCIP

As of today, I pushed support for scip 4.0.0 on both unix and windows.
In the process, I have changed the way to setup or-tools to include scip at compilation time.

on unix:
  untar the scipoptsuite> archive somewhere
  cd <path to scipoptsuite-4.0.0>
  make GMP=false READLINE=false

  in or-tools, edit Makefile.local
    UNIX_SCIP_DIR=<path to sciptopsuite-4.0.0>/scip-4.0.0
  make clean
  make cc

  to test it, run:
  it should display the scip solver run.

on windows:
download the compiled library:
  download the headers:

  uncompress, untar everything.
  create a directory that will contains what is needed
  md scip-4.0.0
  copy the include directory from the scipoptheaders archive inside this directory
  copy the libscipopt.lib file inside this directory
  copy the dll file somewhere on your path

Release of September 2016

We’re happy to announce the release of September 2016 version of or-tools. Here's what's new with this release : Sat : Extended scheduling API and modified examples (weighted_tardiness_sat, and jobshop_sat) to use it. Graph : Added iterator traits to Graph classes. Or-tools distribution :  Nuget package is supported again (Your remarks about this particular update would be appreciable).
We will be happy to receive your feedback.
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 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 example. Glop (linear optimizatio…

New release v2016-06

We're happy to announce the release of a new version of or-tools : v2016-06. This main improvements and changes in this version are : Examples: c++: getting rid of filelinereader in examplesdata: Add single machine scheduling problems Sat: Remove unused core method (Resolution nodes)Added drat writer to checks proofs on unsatisfiabilityAdd preprocessor Documentation: Lots of cleanup in the header files.Please check the new documentation at Bop: Add new neighborhoods Constraint Solver: Removed most of the instances of the callbacks (src/base/callback.h) from the CP libraryAdded NotMemberCt (variable cannot belong to a set of intervals) Routing library: INCOMPATIBLE CHANGE: capacity for vehicles in dimension is now an array instead of a callback GLOP: Change internal representation of sparse matrixperformance improvements Graph: Added A* contributed codeRewrite Dijkstra and Bellman-Ford algorithms to replace callbacks into std::function (C++)Change API of…

Documentation: new examples and reference manual

Hi all. 

We've added more content to our documentation hub: short tutorials on how to solve integer programming problems, job shop problems, and vehicle routing problems with time windows. We've also added over 800 pages of comprehensive documentation detailing our C++ API. (That documentation is automatically generated, so the formatting will be odd in places.)

We'll be adding plenty more content in the months to come. If you have specific requests, let us know!