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.
This is work in progress. Pages will be modified, moved or even removed!
The epub version is still experimental. We strongly recommend calibre (ebook-viewer) whenever possible to view the epub version. With this version, you should be able to convert the manual to the right format for your preferred hand-held device. For instance, to transform the epub version into a mobi version:
|Part I: Basics|
|Chap2: First steps with or-tools||
|Chap3: Using objectives||
|Part II: Customization|
|Chap5: Search primitives||
|Chap6: Local Search operators||
|Chap8: Custom constraints||
|Part III: Routing|
|Chap9: TSP with constraints||
|Chap10: VRP with constraints||
|Part IV: Technicalities|
|Chap12: Modeling tricks||
|Chap13: Under the hood||
You can download all the code at once or pick the code corresonding to your favorite language. You'll find the code here. 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 only exist in some languages since some features do not have equivalents in all languages (for instance, the Google gflags library is missing in Java and C#).
Don't be surprised if the code in the manual is slightly different from the code in the tutorials. In the manual, we focus on the essential while the tutorials might be more functional.
Content as of September 4, 2014:
We've filled most of the code with
VLOG(x)s which allow to follow in real time what the programs do.
x varies between
4. The higher the value of
x, the more detailed informations on screen. You can trigger these logs with the
Makefiles are provided. We favor the use of dynamic libraries. See Getting started on how to run the tutorial examples. For more information about our makefiles, see Compiling libraries and running the examples.
Last but not least, you might wonder why we don't use (or rather minimize the use of)
streams in our examples. This is an internal requirement.
You can download all files at once here.
|Chap2:||First steps with or-tools: Cryptarithmetic Puzzles||chap2|
|Chap3:||Using objectives in constraint programming: the Golomb Ruler Problem||chap3|
|Chap5:||Defining search primitives: the n-Queens Problem||chap5|
|Chap6:||Local search: the Job-Shop Problem||chap6|
|Chap7:||Meta-heuristics: several previous problems||chap7|
|Chap8:||Custom constraints: the alldifferent_except_0 constraint||NOT YET|
|Chap9:||Travelling Salesman Problems with constraints: the TSP with time windows||NOT YET|
|Chap10:||Vehicule Routing Problems with constraints: the capacitated vehicle routing problem||chap10: NOT TESTED|
|Common:||Common files||common: NOT TESTED|
|Routing common:||Routing common files||routing_common: NOT TESTED|