569 lines
16 KiB
HTML
569 lines
16 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<link rel="logo icon" href="static/logo.ico" type="image/x-icon">
|
|
|
|
<title>Welcome to the or-tools main documentation hub!</title>
|
|
|
|
<link rel="stylesheet" href="static/documentation_hub.css">
|
|
|
|
</head>
|
|
<body>
|
|
<div id="wrap">
|
|
<div class="rightmenu">
|
|
<div class="description">
|
|
Open source <strong>operations research tools</strong> developed at <em><a href="http://www.google.com">Google</a></em>.
|
|
</div>
|
|
<div class="toolbar">
|
|
<a href="http://code.google.com/p/or-tools/">Project</a>
|
|
|
|
|
<a href="https://plus.google.com/u/0/108010024297451468877/posts">Google+ Or-Tools</a>
|
|
|
|
|
<a href="http://or-tools.blogspot.com">Blog</a>
|
|
|
|
|
<a href="http://groups.google.com/group/or-tools-discuss">Mailing list</a>
|
|
|
|
|
<a href="http://code.google.com/p/or-tools/downloads/list">Download</a>
|
|
|
|
|
<a href="#new">What's new?</a>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<a href="http://code.google.com/p/or-tools/"><img src="static/or2doodle.gif" width="25%" alt="or-tools doodle" /></a>
|
|
|
|
<hr>
|
|
|
|
<h1>Welcome to the <a href="https://code.google.com/p/or-tools/">or-tools library</a> main documentation hub</h1>
|
|
|
|
|
|
<div class="note">This is work in progress. Pages will be modified, moved or even removed but at least we are in sync with the code!</div>
|
|
|
|
<div class="safe_trees">Please, think twice before printing. Be green, read on the screen! (Don't do like <a href="http://mail.google.com/mail/help/paper/more.html">those guys</a>!)<br />
|
|
</div>
|
|
|
|
<p>We are working hard to provide useful documentation. The documentation is distributed in several documents:</p>
|
|
<ul>
|
|
<li>the <strong><a href="http://code.google.com/p/or-tools/wiki/AGettingStarted">Getting started</a></strong> page: explains how to download and install the library.</li>
|
|
<li>the <strong><a href="#user_manual">user's manual</a></strong>: a user's guide that explains the <em>Constraint Programming</em> part of the library.</li>
|
|
<li>the <strong><a href="#tutorial_examples">tutorial examples</a></strong>: all the complete examples presented in the user's manual.</li>
|
|
<li>the <strong><a href="reference_manual/or-tools/index.html">reference manual</a></strong>: the documentation generated by <a href="http://www.doxygen.org/">doxygen</a>.</li>
|
|
<li>the <strong><a href="#presentation_slides">presentation slides</a></strong>: intended for teaching sessions.</li>
|
|
<li>the <strong><a href="#lab_sessions">lab sessions</a></strong>: 2x50 minutes modules.</li>
|
|
<li>the <strong><a href="faq/index.html">F.A.Q.</a></strong>: frequently asked questions.</li>
|
|
|
|
</ul>
|
|
|
|
<p>You can find more details about these documents in the foreword of the manual.</p>
|
|
<p>For suggestions, remarks, corrections about the documentation, please contact
|
|
<script type="text/javascript">
|
|
n = 'ortools.doc';
|
|
d = 'gmail.com';
|
|
document.write('<a href="ma');
|
|
document.write('ilto:' + n + '@');
|
|
document.write(d + '">');
|
|
document.write(n + '@');
|
|
document.write(d + '</a>.');
|
|
</script>
|
|
<noscript>ortools.doc(at)gmail.com</noscript>
|
|
Thank you very much.
|
|
</p>
|
|
|
|
<p>The or-tools documentation is covered by the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
|
|
<hr>
|
|
<h2>What's new?</h2>
|
|
<hr>
|
|
<p id="new">Here is a little summary:</p>
|
|
<pre id="verbatim">v.0.1.10: (2012-08-23 16:31:16)
|
|
-------------------------------
|
|
* Minor enhancements to the manual:
|
|
- section 6.4 modified
|
|
- section 6.5 added
|
|
* Scripts:
|
|
- test of automatic upload: works again
|
|
- indirection before commit
|
|
|
|
</pre>
|
|
|
|
<p>This is the <a href="changes_list.txt">list of changes</a>.</p>
|
|
|
|
<hr>
|
|
<h2 id="user_manual">The User's Manual</h2>
|
|
<hr>
|
|
<p><font color=red><b>We are experiencing some troubles with the epub version. Stay tuned for more soon.</b></font></p>
|
|
<p>The epub version is still experimental. We recommend <a href="http://calibre-ebook.com/">calibre</a> 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.</p>
|
|
|
|
<h4>The manual</h4>
|
|
<ul>
|
|
<li>Progress at a glance: <a href="#manual_progress">Manual</a> - <a href="#documentation_progress">Documentation generation</a></li>
|
|
<li><a href="user_manual/index.html">Online version</a></li>
|
|
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual_A4.v.0.1.10.pdf.zip">A4 pdf version</a></li>
|
|
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual_USletter.v.0.1.10.pdf.zip">Letter pdf version</a></li>
|
|
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual.v.0.1.10.epub.zip">epub version</a> (experimental)</li>
|
|
</ul>
|
|
|
|
<h4 id="progress">Progress at a glance:</h4>
|
|
|
|
The following percentages show you the completion status of the manual. Note that what we publish online might be not up to date.
|
|
|
|
<h5 id="manual_progress">Manual</h5>
|
|
<table width="100%">
|
|
<tr>
|
|
<td width="25%">Foreword</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:95%;">
|
|
<span>95%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<th>Part I: Basics</th>
|
|
<tr>
|
|
<td width="25%">Chap1: Introduction </td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:47%;">
|
|
<span>47%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap2: First steps with or-tools</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:93%;">
|
|
<span>93%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap3: Using objectives</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:85%;">
|
|
<span>85%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap4: Reification</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:0%;">
|
|
<span>0%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
|
|
<th>Part II: Customization</th>
|
|
<tr>
|
|
<td>Chap5: Search primitives</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:67%;">
|
|
<span>67%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap6: Local Search operators</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:60%;">
|
|
<span>60%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap7: Large Neighbourhood Search</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:2%;">
|
|
<span>2%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap8: Custom constraints</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:1%;">
|
|
<span>1%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<th>Part III: Routing</th>
|
|
<tr>
|
|
<td>Chap9: TSP with constraints</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:1%;">
|
|
<span>1%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap10: VRP with constraints</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:1%;">
|
|
<span>1%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap11: ARP with constraints</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:0%;">
|
|
<span>0%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<th>Part IV: Technicalities</th>
|
|
<tr>
|
|
<td>Chap11: Utilities</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:2%;">
|
|
<span>2%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap12: Modeling tricks</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:0%;">
|
|
<span>0%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Chap13: Under the hood</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:5%;">
|
|
<span>5%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
|
|
<th>Appendices</th>
|
|
<tr>
|
|
<td>Index</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:5%;">
|
|
<span>5%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h5 id="documentation_progress">Documentation generation</h5>
|
|
|
|
<table width="100%">
|
|
<th>Templates</th>
|
|
<tr>
|
|
<td width="25%">Manual</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:83%;">
|
|
<span>83%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>FAQ</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:91%;">
|
|
<span>91%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Documentation hub</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:75%;">
|
|
<span>75%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Lab sessions</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:70%;">
|
|
<span>70%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Slides</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:78%;">
|
|
<span>78%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Tutorials</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:90%;">
|
|
<span>90%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<th>Scripts</th>
|
|
<tr>
|
|
<td width="25%">Manual</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:85%;">
|
|
<span>85%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>FAQ</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:100%;">
|
|
<span>100%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Documentation hub</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:100%;">
|
|
<span>100%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Lab sessions</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:20%;">
|
|
<span>20%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Slides</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:65%;">
|
|
<span>65%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Tutorials</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:90%;">
|
|
<span>90%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<th>Global automation</th>
|
|
<tr>
|
|
<td>Installation</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:0%;">
|
|
<span>0%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Global scripts</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:30%;">
|
|
<span>30%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Testing</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_red" style="width:40%;">
|
|
<span>40%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<th>Miscellaneous</th>
|
|
<tr>
|
|
<td>Doc on doc</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:60%;">
|
|
<span>60%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>collaborative working</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:85%;">
|
|
<span>85%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Directory structure</td>
|
|
<td>
|
|
<div class="progress_background">
|
|
<div class="progress_foreground_green" style="width:100%;">
|
|
<span>100%</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
<hr>
|
|
<h2 id="tutorial_examples">The tutorial examples</h2>
|
|
<hr>
|
|
<p>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).</p>
|
|
<p>The code is not well documented inside the source files as we explain it in great details in the <a href="#user_manual">user's manual</a>. 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#).</p>
|
|
<h5>Coding styles we follow:</h5>
|
|
<p>
|
|
<dl>
|
|
<dt>C++</dt><dd><a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">Google C++ Style Guide</a></dd>
|
|
<dt>Python</dt><dd><a href="http://google-styleguide.googlecode.com/svn/trunk/pyguide.html">Google Python Style Guide</a></dd>
|
|
</dl>
|
|
</p>
|
|
<h5>Coding styles we try to follow:</h5>
|
|
<p>
|
|
<dl>
|
|
<dt>Java</dt><dd><a href="https://sites.google.com/a/android.com/opensource/submit-patches/code-style-guide">Android Code Style Rules</a></dd>
|
|
<dt>C#</dt><dd><a href="http://code.google.com/p/google-api-dotnet-client/wiki/CodingStandards">google-api-dotnet-client Coding standards</a></dd>
|
|
</dl>
|
|
</p>
|
|
|
|
<h5>Code:</h5>
|
|
|
|
<p>Everything: <a href="http://or-tools.googlecode.com/files/tutorials_all_examples.zip">tutorial_all_examples.zip</a></p>
|
|
|
|
<p>
|
|
<div class="examples_list">
|
|
<ul>
|
|
<li class="language" id="C++">C++</li>
|
|
|
|
<dl>
|
|
<dt>all:</dt><dd><a href="http://or-tools.googlecode.com/files/tutorials_c++_examples.zip">tutorial_c++_examples.zip</a></dd>
|
|
<dt>chap2:</dt><dd><a href="tutorials/c++/chap2/cp_is_fun1.cc">cp_is_fun1.cc</a> | <a href="tutorials/c++/chap2/cp_is_fun2.cc">cp_is_fun2.cc</a> |
|
|
<a href="tutorials/c++/chap2/cp_is_fun3.cc">cp_is_fun3.cc</a> | <a href="tutorials/c++/chap2/cp_is_fun4.cc">cp_is_fun4.cc</a> </dd>
|
|
<dt>chap3:</dt><dd><a href="tutorials/c++/chap3/golomb1.cc">golomb1.cc</a> | <a href="tutorials/c++/chap3/golomb2.cc">golomb2.cc</a> |
|
|
<a href="tutorials/c++/chap3/golomb3.cc">golomb3.cc</a> | <a href="tutorials/c++/chap3/golomb4.cc">golomb4.cc</a> | <a href="tutorials/c++/chap3/golomb5.cc">golomb5.cc</a>
|
|
| <a href="tutorials/c++/chap3/golomb6.cc">golomb6.cc</a></dd>
|
|
</dl>
|
|
|
|
<li class="language" id="Python">Python</li>
|
|
<dl>
|
|
<dt>all:</dt><dd><a href="http://or-tools.googlecode.com/files/tutorials_python_examples.zip">tutorial_python_examples.zip</a></dd>
|
|
<dt>chap2:</dt><dd><a href="tutorials/python/chap2/cp_is_fun1.py">cp_is_fun1.py</a> | <a href="tutorials/python/chap2/cp_is_fun2.py">cp_is_fun2.py</a> |
|
|
<a href="tutorials/python/chap2/cp_is_fun3.py">cp_is_fun3.py</a> | <a href="tutorials/python/chap2/cp_is_fun4.py">cp_is_fun4.py</a> </dd>
|
|
<dt>chap3:</dt><dd></dd>
|
|
</dl>
|
|
|
|
<li class="language" id="Java">Java</li>
|
|
<dl>
|
|
<dt>all:</dt><dd><a href="http://or-tools.googlecode.com/files/tutorials_java_examples.zip">tutorial_java_examples.zip</a></dd>
|
|
<dt>chap2:</dt><dd><a href="tutorials/java/com/google/ortools/tutorial/chap2/CpIsFun1.java">CpIsFun1.java</a> | <a href="tutorials/java/com/google/ortools/tutorial/chap2/CpIsFun2.java">CpIsFun2.java</a> |
|
|
<span class="empty">CpIsFun3.java</span> | <a href="tutorials/java/com/google/ortools/tutorial/chap2/CpIsFun4.java">CpIsFun4.java</a> </dd>
|
|
<dt>chap3:</dt><dd></dd>
|
|
</dl>
|
|
|
|
<li class="language" id="Csharp">C#</li>
|
|
<dl>
|
|
<dt>all:</dt><dd><a href="http://or-tools.googlecode.com/files/tutorials_csharp_examples.zip">tutorial_csharp_examples.zip</a></dd>
|
|
<dt>chap2:</dt><dd><a href="tutorials/csharp/chap2/cp_is_fun1.cs">cp_is_fun1.cs</a> | <a href="tutorials/csharp/chap2/cp_is_fun2.cs">cp_is_fun2.cs</a> |
|
|
<span class="empty">cp_is_fun3.cs</span> | <a href="tutorials/csharp/chap2/cp_is_fun4.cs">cp_is_fun4.cs</a> </dd>
|
|
<dt>chap3:</dt><dd></dd>
|
|
</dl>
|
|
</ul>
|
|
</div>
|
|
</p>
|
|
|
|
<hr>
|
|
<h2 id="presentation_slides">The presentation slides</h2>
|
|
<hr>
|
|
<p>These presentation slides are intended for a 50 minutes session.</p>
|
|
|
|
<h4>Slides</h4>
|
|
<p>
|
|
<div class="examples_list">
|
|
<dl>
|
|
<dt>chap2:</dt><dd><a href="http://or-tools.googlecode.com/files/chap2_slides.pdf.zip">Slides</a> | <a href="http://or-tools.googlecode.com/files/chap2_handouts.pdf.zip">Handouts</a></dd>
|
|
</dl>
|
|
</div>
|
|
</p>
|
|
|
|
<hr>
|
|
<h2 id="lab_sessions">The lab sessions</h2>
|
|
<hr>
|
|
<p>These lab sessions are intended for a 2x50 minutes session with a computer.</p>
|
|
|
|
<h4>Labs</h4>
|
|
<p>
|
|
<div class="examples_list">
|
|
<dl>
|
|
<dt>chap2:</dt><dd><a href="labs/lab_chap2_A4.pdf">lab_chap2_A4.pdf</a> | <a href="labs/lab_chap2_USLetter.pdf">lab_chap2_USLetter.pdf</a></dd>
|
|
</dl>
|
|
</div>
|
|
</p>
|
|
|
|
|
|
<hr>
|
|
<div class="footer">© Copyright 2012, Google</div>
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|