Open source operations research tools developed at Google.
Project   |   Google+ Or-Tools   |   Mailing list   |   Download   |   What's new?
or-tools doodle

Welcome to the or-tools library main documentation hub

This is work in progress. Pages will be modified, moved or even removed.
Please, think twice before printing. Be green, read on the screen! (Don't do like those guys!)

We are working hard to provide useful documentation. The documentation is distributed in several documents:

You can find more details about these documents in the foreword of the manual.

For suggestions, remarks, corrections about the documentation, please contact Thank you very much.

The or-tools documentation is covered by the Apache License 2.0.


What's new?


Here is a little summary:

v.0.1.5: (2012-04-30 12:46:04)
------------------------------
* Major changes in the scripts to generate the doc:
  - the scripts have been completely rewritten and the directories
    completely rearranged.
* Minor enhancements to the manual:
  - html version: several graphic enhancements.
  - preface: comments from Hakan (Thanks again and again! ;-) )
  - chap2:
    + table with cryptarithmetic puzzle improved in both version.
    + figures "at a glance" done anew.
    + comments from Hakan.
* FAQ:
  - several graphic enhancements.
* Tutorials:
  - few corrections in the C++ code.
* Lab sessions:
  - chap2: questions posted.

This is the list of changes.


The User's Manual


The epub version is still experimental. We recommend calibre to view the epub version. With this version, you should be able to convert the manual to the right format for your preferred handheld device.

The manual

Progress at a glance:

Manual
Foreword
95%
Part I: Basics
Chap1: Introduction
5%
Chap2: First steps with or-tools
90%
Chap3: Using objectives
65%
Chap4: Search primitives
10%
Part II: Customization
Chap5: Large Neighbourhood Search
0%
Chap6: Local Search operators
0%
Chap7: Custom constraints
0%
Part III: Routing
Chap8: TSP with constraints
0%
Chap9: VRP with constraints
0%
Part IV: Technicalities
Chap10: Utilities
2%
Chap11: Modeling tricks
0%
Appendices
Index
5%
Glossary
0%
Documentation generation
Templates
Manual
83%
FAQ
91%
Documentation hub
75%
Lab sessions
70%
Slides
78%
Tutorials
90%
Scripts
Manual
85%
FAQ
100%
Documentation hub
100%
Lab sessions
20%
Slides
65%
Tutorials
90%
Global automation
Installation
0%
Global scripts
30%
Testing
40%
Miscellaneous
Doc on doc
60%
collaborative working
85%
Directory structure
100%


The tutorial examples


You can download all the code at once or pick a single file in the list below. All files are encoded in UTF-8 and we use LF (Unix) newlines (the code is cross-platform though).

The code is not well documented inside the source files as we explain it in great details in the user's manual. Some files don't have corresponding files in some languages as the features implemented just don't have an equivalent in that languages (for instance, the Google gflags library is missing in Java and C#).

Coding styles we follow:

C++
Google C++ Style Guide
Python
Google Python Style Guide

Coding styles we try to follow:

Java
Android Code Style Rules
C#
google-api-dotnet-client Coding standards

Code:

Everything: tutorial_all_examples.zip


The presentation slides


These presentation slides are intended for a 50 minutes session.

Slides

chap2:
Slides   |   Handouts


The lab sessions


These lab sessions are intended for a 2x50 minutes session with a computer.

Labs

chap2:
lab_chap2_A4.pdf   |   lab_chap2_USLetter.pdf