Posts

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
  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
  add:
    UNIX_SCIP_DIR=<path to sciptopsuite-4.0.0>/scip-4.0.0
  make clean
  make cc

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

on windows:
download the compiled library:
http://scip.zib.de/download.php?fname=scip-4.0.0.win.x86_64.vc14.opt.spx2.lib.zip
  download the headers:
http://scip.zib.de/download/release/scipoptheaders-4.0.0.tgz

  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 cvrp_disjoint_tw.cc 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 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 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!

Visual Studio 2015 support + new version of protobuf

Hi,

Two notable changes in the code.
The first is that I have finally compiled or-tools with visual studio 2015.
Compiling from sources should work straight away, hopefully.

The second is that I have upgraded protobuf from 3.0.0 beta2 to beta3.
This was needed to support visual studio 2015.

There are two small bad news:
  - It is still in beta, so I cannot release nuget packages as they require stable sub-packages (protobuf C# in that case)
  - The new protoc compiler rewrites the names of enums in protobufs for C#.
    Therefore PATH_CHEAPEST_ARC -> PathCheapestArc.
    I have updated the tsp and vrp examples to reflect the new naming.

Thanks