Doc automatic update

This commit is contained in:
nikolaj.van.omme@gmail.com
2012-09-08 17:12:27 +00:00
parent d404365e06
commit 687e049204
22 changed files with 465 additions and 166 deletions

View File

@@ -1,4 +1,22 @@
v.0.1.13: (2012-09-08 12:51:55)
-------------------------------
The manual has now more than 200 pages.
* Scripts:
generate_manual.py improved.
* Minor enhancements to the manual:
- Intro of chapter 9 to give you an idea of its content.
The links to the tutorial material don't work: this is normal.
v.0.1.13: (2012-09-07 14:23:59)
-------------------------------
The manual has now more than 200 pages.
* Scripts:
generate_manual.py improved.
* Minor enhancements to the manual:
v.0.1.12: (2012-08-31 14:01:23)
-------------------------------
* Minor enhancements to the manual:

View File

@@ -73,12 +73,14 @@ Thank you very much.
<h2>What's new?</h2>
<hr>
<p id="new">Here is a little summary:</p>
<pre id="verbatim">v.0.1.12: (2012-08-31 14:01:23)
<pre id="verbatim">v.0.1.13: (2012-09-08 12:51:55)
-------------------------------
The manual has now more than 200 pages.
* Scripts:
generate_manual.py improved.
* Minor enhancements to the manual:
- epub: cover and authors added, some corrections.
- minor corrections.
- 5.1, 5.2 and (partially) 5.3 added.
- Intro of chapter 9 to give you an idea of its content.
The links to the tutorial material don't work: this is normal.
</pre>
@@ -101,9 +103,9 @@ We also recommend to use the epub version as it is currently the best available
<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.12.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.12.pdf.zip">Letter pdf version</a></li>
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual.v.0.1.12.epub.zip">epub version</a> (experimental)</li>
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual_A4.v.0.1.13.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.13.pdf.zip">Letter pdf version</a></li>
<li class="manual_download"><a href="http://or-tools.googlecode.com/files/user_manual.v.0.1.13.epub.zip">epub version</a> (experimental)</li>
</ul>
<h4 id="progress">Progress at a glance:</h4>
@@ -210,8 +212,8 @@ The following percentages show you the completion status of the manual. Note tha
<td>Chap9: TSP with constraints</td>
<td>
<div class="progress_background">
<div class="progress_foreground_red" style="width:7%;">
<span>7%</span>
<div class="progress_foreground_red" style="width:34%;">
<span>34%</span>
</div>
</div>
</td>
@@ -230,8 +232,8 @@ The following percentages show you the completion status of the manual. Note tha
<td>Chap11: ARP with constraints</td>
<td>
<div class="progress_background">
<div class="progress_foreground_red" style="width:0%;">
<span>0%</span>
<div class="progress_foreground_red" style="width:2%;">
<span>2%</span>
</div>
</div>
</td>
@@ -360,8 +362,8 @@ The following percentages show you the completion status of the manual. Note tha
<td width="25%">Manual</td>
<td>
<div class="progress_background">
<div class="progress_foreground_green" style="width:85%;">
<span>85%</span>
<div class="progress_foreground_green" style="width:87%;">
<span>87%</span>
</div>
</div>
</td>
@@ -517,6 +519,20 @@ files in some languages as the features implemented just don't have an equivalen
<dt>chap3:</dt><dd><a href="tutorials/c++/chap3/golomb1.cc">golomb1.cc</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap3/golomb2.cc">golomb2.cc</a> &nbsp; | &nbsp;
<a href="tutorials/c++/chap3/golomb3.cc">golomb3.cc</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap3/golomb4.cc">golomb4.cc</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap3/golomb5.cc">golomb5.cc</a>
&nbsp; | &nbsp; <a href="tutorials/c++/chap3/golomb6.cc">golomb6.cc</a></dd>
<dt>chap4:</dt><dd>-</dd>
<dt>chap5:</dt><dd>-</dd>
<dt>chap6:</dt><dd>-</dd>
<dt>chap7:</dt><dd>-</dd>
<dt>chap8:</dt><dd>-</dd>
<dt>chap9:</dt><dd><a href="tutorials/c++/chap9/tsp.h">tsp.h</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap9/tsp_epix.h">tsp_epix.h</a> &nbsp; | &nbsp;
<a href="tutorials/c++/chap9/tsplib_solution_to_epix.cc">tsplib_solution_to_epix.cc</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap9/tsp.cc">tsp.cc</a> &nbsp;
| &nbsp; <a href="tutorials/c++/chap9/tsp_forbidden_arcs.cc">tsp_forbidden_arcs.cc</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap9/tsp_exact.cc">tsp_exact.cc</a>
&nbsp; | &nbsp; <a href="tutorials/c++/chap9/tsptw.h">tsptw.h</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap9/tsptw_epix.h">tsptw_epix.h</a>
&nbsp; | &nbsp; <a href="tutorials/c++/chap9/tsptw.cc">tsptw.cc</a> &nbsp; | &nbsp; <a href="tutorials/c++/chap9/tsptw_ls.cc">tsptw_ls.cc</a></dd>
<dt>chap10:</dt><dd>-</dd>
<dt>chap11:</dt><dd>-</dd>
<dt>chap12:</dt><dd>-</dd>
<dt>chap13:</dt><dd>-</dd>
</dl>
<li class="language" id="Python">Python</li>
@@ -524,7 +540,17 @@ files in some languages as the features implemented just don't have an equivalen
<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> &nbsp; | &nbsp; <a href="tutorials/python/chap2/cp_is_fun2.py">cp_is_fun2.py</a> &nbsp; | &nbsp;
<a href="tutorials/python/chap2/cp_is_fun3.py">cp_is_fun3.py</a> &nbsp; | &nbsp; <a href="tutorials/python/chap2/cp_is_fun4.py">cp_is_fun4.py</a> </dd>
<dt>chap3:</dt><dd></dd>
<dt>chap3:</dt><dd>-</dd>
<dt>chap4:</dt><dd>-</dd>
<dt>chap5:</dt><dd>-</dd>
<dt>chap6:</dt><dd>-</dd>
<dt>chap7:</dt><dd>-</dd>
<dt>chap8:</dt><dd>-</dd>
<dt>chap9:</dt><dd>-</dd>
<dt>chap10:</dt><dd>-</dd>
<dt>chap11:</dt><dd>-</dd>
<dt>chap12:</dt><dd>-</dd>
<dt>chap13:</dt><dd>-</dd>
</dl>
<li class="language" id="Java">Java</li>
@@ -532,7 +558,17 @@ files in some languages as the features implemented just don't have an equivalen
<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> &nbsp; | &nbsp; <a href="tutorials/java/com/google/ortools/tutorial/chap2/CpIsFun2.java">CpIsFun2.java</a> &nbsp; | &nbsp;
<span class="empty">CpIsFun3.java</span> &nbsp; | &nbsp; <a href="tutorials/java/com/google/ortools/tutorial/chap2/CpIsFun4.java">CpIsFun4.java</a> </dd>
<dt>chap3:</dt><dd></dd>
<dt>chap3:</dt><dd>-</dd>
<dt>chap4:</dt><dd>-</dd>
<dt>chap5:</dt><dd>-</dd>
<dt>chap6:</dt><dd>-</dd>
<dt>chap7:</dt><dd>-</dd>
<dt>chap8:</dt><dd>-</dd>
<dt>chap9:</dt><dd>-</dd>
<dt>chap10:</dt><dd>-</dd>
<dt>chap11:</dt><dd>-</dd>
<dt>chap12:</dt><dd>-</dd>
<dt>chap13:</dt><dd>-</dd>
</dl>
<li class="language" id="Csharp">C#</li>
@@ -540,7 +576,17 @@ files in some languages as the features implemented just don't have an equivalen
<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> &nbsp; | &nbsp; <a href="tutorials/csharp/chap2/cp_is_fun2.cs">cp_is_fun2.cs</a> &nbsp; | &nbsp;
<span class="empty">cp_is_fun3.cs</span> &nbsp; | &nbsp; <a href="tutorials/csharp/chap2/cp_is_fun4.cs">cp_is_fun4.cs</a> </dd>
<dt>chap3:</dt><dd></dd>
<dt>chap3:</dt><dd>-</dd>
<dt>chap4:</dt><dd>-</dd>
<dt>chap5:</dt><dd>-</dd>
<dt>chap6:</dt><dd>-</dd>
<dt>chap7:</dt><dd>-</dd>
<dt>chap8:</dt><dd>-</dd>
<dt>chap9:</dt><dd>-</dd>
<dt>chap10:</dt><dd>-</dd>
<dt>chap11:</dt><dd>-</dd>
<dt>chap12:</dt><dd>-</dd>
<dt>chap13:</dt><dd>-</dd>
</dl>
</ul>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

View File

@@ -27,7 +27,7 @@
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="shortcut icon" href="../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../index.html" />
<link rel="next" title="9.1. A whole zoo of routing problems" href="tsp/zoo_routing_problems.html" />
<link rel="next" title="9.1. A whole zoo of Routing Problems" href="tsp/zoo_routing_problems.html" />
<link rel="prev" title="8.5. Summary" href="custom_constraints/summary.html" />
</head>
<body>
@@ -38,7 +38,7 @@
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="tsp/zoo_routing_problems.html" title="9.1. A whole zoo of routing problems"
<a href="tsp/zoo_routing_problems.html" title="9.1. A whole zoo of Routing Problems"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="custom_constraints/summary.html" title="8.5. Summary"
@@ -54,38 +54,158 @@
<div class="section" id="travelling-salesman-problems-with-constraints-the-tsp-with-time-windows">
<span id="chapter-tsp-with-constraints"></span><h1>9. Travelling Salesman Problems with constraints: the TSP with time windows</h1>
<p>The third part of this manual deals with <em>Routing Problems</em>: we have a graph<a class="footnote-reference" href="#graph-or-network" id="id1">[1]</a> and seek
to find a set of routes covering some or all nodes and/or edges/arcs while optimizing an objective function along
the routes<a class="footnote-reference" href="#transportation-metaphor" id="id2">[2]</a> (time, goods delivered, etc.) and respecting
certain constraints (number of vehicles, fixed depots, capacities, clients to serve, time windows, etc.).</p>
<table class="docutils footnote" frame="void" id="graph-or-network" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>A <em>graph</em> <img class="math" src="../_images/math/b70ec1f605bd05af0f0f71e2631ec6f09d63890d.png" alt="G=(V,E)" style="vertical-align: -4px"/> is a set of vertices (the set <img class="math" src="../_images/math/12d58aa29201da09d8e620f8698e3a37547f6b4a.png" alt="V" style="vertical-align: 0px"/>) connected by edges
(the set <img class="math" src="../_images/math/fa2fa899f0afb05d6837885523503a2d4df434f9.png" alt="E" style="vertical-align: 0px"/>). A directed edge is called an <em>arc</em>. When we have capacities on the edges, we talk
about a <em>network</em>.</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="transportation-metaphor" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>The transportation metaphor is helpful to visualize the problems but the class
of Routing Problems is much broader. The <em>Transportation Problem</em> for instance is really an <em>Assignment Problem</em>.
Networks can be of any type: telephone networks (circuit switching), electronic data
networks (such as the internet), etc.</td></tr>
</tbody>
</table>
<p>To solve these problems, the or-tools offers a dedicated Constraint Programming sub-library:
the <em>Routing Library</em> (RL).</p>
<p>The next three chapters each deal with one of three broad categories of Routing Problems:</p>
<ul class="simple">
<li>The chapter <a class="reference internal" href="#chapter-tsp-with-constraints"><em>Travelling Salesman Problems with constraints: the TSP with time windows</em></a> deals with <em>Node Routing Problems</em> where nodes must to be
visited and served.</li>
<li>The chapter <a class="reference internal" href="VRP.html#chapter-vrp-with-constraints"><em>Vehicule Routing Problems with constraints: the capacitated vehicle routing problem</em></a> deals with <em>Vehicle Routing Problems</em> where vehicles serve clients
along the routes.</li>
<li>The chapter <a class="reference internal" href="arc_routing.html#chapter-arc-routing-with-constraints"><em>Arc Routing Problems with constraints: the cumulative chinese postman problem</em></a> deals with <em>Arc Routing Problems</em> where arcs/edges must be
visited and served.</li>
</ul>
<p>These three categories of problems share common properties but they all have their
own paradigms and scientific communities.</p>
<p>In this chapter, we&#8217;ll discover the RL with what is probably the most studied problem in Operations Research:
the <em>Travelling Salesman Problem</em> (TSP)<a class="footnote-reference" href="#tsp-two-l" id="id3">[3]</a>. The best algorithms can now routinely
solve TSP instances with then thousands of nodes to optimality<a class="footnote-reference" href="#tsp-record" id="id4">[4]</a>.</p>
<p>These problems are out of scope of the Constraint Programming paradigm<a class="footnote-reference" href="#tsp-difficult-for-cp" id="id5">[5]</a>. CP shines when
you consider complicated side constraints like the addition of <em>time windows</em>: each customer (represented by a node)
has to be visited inside a given time interval.</p>
<table class="docutils footnote" frame="void" id="tsp-two-l" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id3">[3]</a></td><td>We use the Canadian (and British) spelling of the verb <em>travelling</em> but you&#8217;ll find much more
scientific articles under the American spelling: <em>traveling</em>.</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="tsp-record" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id4">[4]</a></td><td>The record at the time of writing is the <tt class="docutils literal"><span class="pre">pla85900</span></tt> instance in Gerd Reinelt&#8217;s
<a class="reference external" href="http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/">TSPLIB</a>. This instance is a VLSI application
with 85 900 nodes. For many other instances with <strong>millions</strong> of nodes, solutions can be found that are
guaranteed to be within 1% of an optimal tour!</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="tsp-difficult-for-cp" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id5">[5]</a></td><td>At least for now and if you try to solve them to optimality.</td></tr>
</tbody>
</table>
<p class="rubric">Overview:</p>
<p>We start this chapter by presenting in broad terms the different categories of Routing Problems and describe
the Routing Library (RL) in a nutshell. Next, we introduce the Travelling Salesman Problem (TSP) and the TSPLIB instances.
To better understand the RL, we say a few words about its inner working and the CP model we use. Because most of the
Routing Problems are intractable, we use Local Search. We explain our two phases approach in details and show how
to model the TSP in a few lines. We also show how to solve the TSP to optimality with the RL. Finally, we model and
solve the TSP with Time Windows.</p>
<p class="rubric">Prerequisites:</p>
<ul class="simple">
<li>Basic knowledge of C++.</li>
<li>Basic knowledge of Constraint Programming (see chapter <a class="reference internal" href="introduction.html#chapter-introduction"><em>Introduction to constraint programming</em></a>).</li>
<li>Basic knowledge of the Constraint Programming Solver (see chapter <a class="reference internal" href="first_steps.html#chapter-first-steps"><em>First steps with or-tools: cryptarithmetic puzzles</em></a>).</li>
<li>Basic knowledge of Local Search (see chapter <a class="reference internal" href="LS.html#chapter-local-search"><em>Local search: the job-shop problem</em></a>).</li>
</ul>
<p class="rubric">Files:</p>
<p>You can find the code in the directory <tt class="docutils literal"><span class="pre">documentation/tutorials/C++/chap9</span></tt>.</p>
<p>We use the excellent <tt class="docutils literal"><span class="pre">C++</span></tt><a class="footnote-reference" href="#epix-latex" id="id6">[6]</a> <a class="reference external" href="http://mathcs.holycross.edu/~ahwang/current/ePiX.html">ePiX library</a>
to visualize TSP solutions in <em>TSPLIB</em> format and TSPTW solutions in <em>López-Ibáñez-Blum</em> and <em>da Silva-Urrutia</em> formats.</p>
<table class="docutils footnote" frame="void" id="epix-latex" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id6">[6]</a></td><td>The ePiX library uses the <img class="math" src="../_images/math/6e706c7be892b58ea1c3ab147eaae242299cf3da.png" alt="\text{\TeX/\LaTeX}" style="vertical-align: -4px"/> engine to create beautiful graphics.</td></tr>
</tbody>
</table>
<p>The files inside this directory are:</p>
<ul class="simple">
<li><tt class="file docutils literal"><span class="pre">tsp.h</span></tt>: This file contains the <tt class="docutils literal"><span class="pre">TSPData</span></tt> class that records the data for the TSP.
This file is used throughout the TSP examples.</li>
<li><tt class="file docutils literal"><span class="pre">tsp_epix.h</span></tt>: This file provide the helper functions to visualize TSPLIB solutions with the ePiX library.</li>
<li><tt class="file docutils literal"><span class="pre">tsplib_solution_to_epix.cc</span></tt>: A simple program to visualize solutions in TSPLIB format with the ePiX library.</li>
<li><tt class="file docutils literal"><span class="pre">tsp.cc</span></tt>: A basic implementation of the TSP with the RL.</li>
<li><tt class="file docutils literal"><span class="pre">tsp_forbidden_arcs.cc</span></tt>: The TSP with forbidden connexions between some nodes.</li>
<li><tt class="file docutils literal"><span class="pre">tsp_exact.cc</span></tt>: A basic exact implementation of the TSP with the RL.</li>
<li><tt class="file docutils literal"><span class="pre">tsptw.h</span></tt>: This file contains the <tt class="docutils literal"><span class="pre">TSPTWData</span></tt> class that records the data for the Travelling Salesman Problem with
Time Windows. This file is used throughout the TSPTW examples.</li>
<li><tt class="file docutils literal"><span class="pre">tsptw_epix.h</span></tt>: This file provide the helper functions to visualize TSPTW solutions with the ePiX library.</li>
<li><tt class="file docutils literal"><span class="pre">tsptw.cc</span></tt>: A basic implementation of the TSPTW with the RL.</li>
<li><tt class="file docutils literal"><span class="pre">tsptw_ls.cc</span></tt>: A specialized implementation of the TSPTW with the RL.</li>
</ul>
<p class="rubric">Content:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="tsp/zoo_routing_problems.html">9.1. A whole zoo of routing problems</a><ul>
<li class="toctree-l1"><a class="reference internal" href="tsp/zoo_routing_problems.html">9.1. A whole zoo of Routing Problems</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tsp/zoo_routing_problems.html#node-routing-problems">9.1.1. Node Routing Problems</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/zoo_routing_problems.html#vehicle-routing-problems">9.1.2. Vehicle Routing Problems</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/zoo_routing_problems.html#arc-routing-problems">9.1.3. Arc Routing Problems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tsp/routing_library.html">9.2. The Vehicle Routing Library (VRL) in a nutshell</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/routing_library.html">9.2. The Routing Library (RL) in a nutshell</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tsp/routing_library.html#objectives">9.2.1. Objectives</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/routing_library.html#out-of-the-box-models">9.2.2. Out of the box models</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/routing_library.html#on-top-of-the-cp-library">9.2.3. On top of the CP library</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/routing_library.html#node-and-vehicle-oriented">9.2.4. Node and vehicle oriented</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/routing_library.html#local-search">9.2.5. Local Search</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/routing_library.html#tuning-the-search">9.2.6. Tuning the search</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/routing_library.html#limitations">9.2.7. Limitations</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tsp/tsp.html">9.3. The travelling Salesman Problem</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsp.html#what-is-the-travelling-salesman-problem">9.3.1. What is the Travelling Salesman Problem?</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsp.html#id1">9.3.1. The Travelling Salesman Problem</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsp.html#benchmark-data">9.3.2. Benchmark data</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsp.html#the-tspdata-class">9.3.3. The <tt class="docutils literal"><span class="pre">TSPData</span></tt> class</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsp.html#visualization-with-epix">9.3.4. Visualization with <tt class="docutils literal"><span class="pre">ePix</span></tt></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tsp/automatic_variables.html">9.4. Automatic variables</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tsp/automatic_variables.html#nodeindex-or-int64">9.4.1. <tt class="docutils literal"><span class="pre">NodeIndex</span></tt> or <tt class="docutils literal"><span class="pre">int64</span></tt>?</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/automatic_variables.html#path-variables">9.4.2. Path variables</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/automatic_variables.html#dimension-variables">9.4.3. Dimension variables</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/model_behind_scene.html">9.4. The model behind the scene</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tsp/model_behind_scene.html#the-idea">9.4.1. The idea</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/model_behind_scene.html#the-variables">9.4.2. The variables</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/model_behind_scene.html#the-constraints">9.4.3. The constraints</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tsp/first_implementation.html">9.5. An exact implementation of the TSP</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/two_phases_approaches.html">9.6. The two phases approach</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tsp/two_phases_approaches.html#local-path-operator">9.6.1. Local Path Operator</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/two_phases_approaches.html">9.5. The two phases approach</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tsp/two_phases_approaches.html#the-initial-solution">9.5.1. The initial solution</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/two_phases_approaches.html#local-search-pathoperators">9.5.2. Local Search <tt class="docutils literal"><span class="pre">PathOperator</span></tt>s</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tsp/tspwtw.html">9.7. The Travelling Salesman Problem with Time Windows (TSPTW)</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/second_implementation.html">9.8. An exact implementation of the TSPTW</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/third_implementation.html">9.9. The TSPTW and Local Search</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/first_tsp_implementation.html">9.6. The TSP in or-tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/exact_tsp_implementation.html">9.7. An exact implementation of the TSP</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/tsptw.html">9.8. The Travelling Salesman Problem with Time Windows (TSPTW)</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsptw.html#the-travelling-salesman-problem-with-time-windows">9.8.1. The Travelling Salesman Problem with Time Windows</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsptw.html#benchmark-data">9.8.2. Benchmark data</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsptw.html#the-tsptwdata-class">9.8.3. The <tt class="docutils literal"><span class="pre">TSPTWData</span></tt> class</a></li>
<li class="toctree-l2"><a class="reference internal" href="tsp/tsptw.html#visualization-with-epix">9.8.4. Visualization with <tt class="docutils literal"><span class="pre">ePix</span></tt></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tsp/first_tsptw_implementation.html">9.9. The TSPTW in or-tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="tsp/tsptw_summary.html">9.10. Summary</a></li>
</ul>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
</div>
</div>
@@ -205,7 +325,7 @@ Search:
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="tsp/zoo_routing_problems.html" title="9.1. A whole zoo of routing problems"
<a href="tsp/zoo_routing_problems.html" title="9.1. A whole zoo of Routing Problems"
>next</a> |</li>
<li class="right" >
<a href="custom_constraints/summary.html" title="8.5. Summary"

View File

@@ -92,7 +92,7 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="search_primitives/default_search.html">5.7. Default search</a></li>
<li class="toctree-l1"><a class="reference internal" href="search_primitives/breaking_symmetry.html">5.8. Breaking symmetries with <tt class="docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</a><ul class="simple">
<li class="toctree-l1"><a class="reference internal" href="search_primitives/breaking_symmetry.html">5.8. Breaking symmetries (part II): <tt class="docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</a><ul class="simple">
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="search_primitives/summary.html">5.9. Summary</a></li>

View File

@@ -74,7 +74,7 @@ that prints the first solution of a given <tt class="docutils literal"><span cla
the boolean gflag <tt class="docutils literal"><span class="pre">FLAGS_print</span></tt> is set to <tt class="docutils literal"><span class="pre">true</span></tt>.</p>
<p>To be able to collect only
unique solutions (up to a symmetry), we will use <tt class="docutils literal"><span class="pre">SymmetryBreaker</span></tt>s
in the section <a class="reference internal" href="breaking_symmetry.html#search-primitives-breaking-symmetry"><em>Breaking symmetries with SymmetryBreakers</em></a>.</p>
in the section <a class="reference internal" href="breaking_symmetry.html#search-primitives-breaking-symmetry"><em>Breaking symmetries (part II): SymmetryBreakers</em></a>.</p>
<p>A boolean gflag <tt class="docutils literal"><span class="pre">FLAGS_use_symmetry</span></tt> allows or disallows the use of <tt class="docutils literal"><span class="pre">SymmetryBreaker</span></tt>s. This flag is defined
in the header <tt class="docutils literal"><span class="pre">./nqueens_utilities.h</span></tt> and to be able to use it in our main file, we need to <em>declare</em> it:</p>
<div class="highlight-c++"><div class="highlight"><pre><span class="n">DECLARE_bool</span><span class="p">(</span><span class="n">use_symmetry</span><span class="p">);</span>

View File

@@ -82,7 +82,7 @@ when some of the callbacks of the <tt class="docutils literal"><span class="pre"
traverse or explore. Each node of the tree corresponds to a state of the search. Take an array of variables <img class="math" src="../../_images/math/3721871babf1d0ae999f03599154b5bc5f56adff.png" alt="x[]" style="vertical-align: -5px"/>
and a valid index <img class="math" src="../../_images/math/34857b3ba74ce5cd8607f3ebd23e9015908ada71.png" alt="i" style="vertical-align: 0px"/>.</p>
<p>At one node in the search tree, we divide the search space in two exclusive search subspaces by imposing
<img class="math" src="../../_images/math/1fb5e597525d6008ac2d935abb8d146f3ddc02f2.png" alt="x[i] = 2" style="vertical-align: -5px"/> at one branch and <img class="math" src="../../_images/math/4937591eda0b24f172fddd70dec6839a7f7e2761.png" alt="x[i] \neq 2" style="vertical-align: -5px"/> at another branch like in Figure
<img class="math" src="../../_images/math/1fb5e597525d6008ac2d935abb8d146f3ddc02f2.png" alt="x[i] = 2" style="vertical-align: -5px"/> at one branch and <img class="math" src="../../_images/math/4937591eda0b24f172fddd70dec6839a7f7e2761.png" alt="x[i] \neq 2" style="vertical-align: -5px"/> at another branch like in the Figure
<a class="reference internal" href="#search-space-divided-in-two"><em>The search space is divided in two search sub-trees</em></a>.</p>
<div class="figure align-center" id="search-space-divided-in-two">
<img alt="The search space is divided in two search sub-trees." src="../../_images/search_tree0.png" />
@@ -117,7 +117,7 @@ that is passed as an argument to another code. This is a very common and handy w
example, the search algorithm is low level code. You don&#8217;t want to change this code but you would like to change the behaviour of the
search algorithm to your liking. How do you do this? Callbacks are to the rescue! At some places in the low level code,
some functions are called and you can redefine those functions. There are several techniques available. In this section, we redefine
some virtual functions of an abstract class. In section XXX, we will see yet another similar mechanism.</p>
some virtual functions of an abstract class. In section XXX, we will see another similar mechanism.</p>
<p>An example will clarify this mechanism. Take a <tt class="docutils literal"><span class="pre">SearchMonitor</span></tt> class. If you want to implement your own search monitor, you
inherit from <tt class="docutils literal"><span class="pre">SearchMonitor</span></tt> and you redefine the methods you need:</p>
<div class="highlight-c++"><div class="highlight"><pre><span class="k">class</span> <span class="nc">MySearchMonitor</span><span class="o">:</span> <span class="k">public</span> <span class="n">SearchMonitor</span> <span class="p">{</span>
@@ -158,7 +158,7 @@ A <tt class="docutils literal"><span class="pre">DecisionBuilder</span></tt> is
tree at this node by applying this decision (left branch) and by refuting this decision (right branch).</p>
<p>At the current node, the <tt class="docutils literal"><span class="pre">DecisionBuilder</span></tt> of the current search returns
a <tt class="docutils literal"><span class="pre">Decision</span></tt>. The <tt class="docutils literal"><span class="pre">Decision</span></tt> class basically tells the solver what to do
going left (<tt class="docutils literal"><span class="pre">Apply()</span></tt>) or right (<tt class="docutils literal"><span class="pre">Refute</span></tt>) as illustrated on the next figure.</p>
going left (<tt class="docutils literal"><span class="pre">Apply()</span></tt>) or right (<tt class="docutils literal"><span class="pre">Refute()</span></tt>) as illustrated on the next figure.</p>
<div class="figure align-center">
<a class="reference internal image-reference" href="../../_images/decision1.png"><img alt="A Decision class Apply() or Refute()" src="../../_images/decision1.png" style="width: 150pt;" /></a>
<p class="caption"><tt class="docutils literal"><span class="pre">Apply()</span></tt>: go left, <tt class="docutils literal"><span class="pre">Refute()</span></tt>: go right.</p>
@@ -177,7 +177,7 @@ to implement different variants of the search algorithm.</td></tr>
</table>
<div class="topic">
<p class="topic-title first">What is a pre-order traversal of a binary tree?</p>
<p>The search tree depicted on Figure <a class="reference internal" href="cpviz.html#search-tree-of-nqueens-with-n-equal-to-4"><em>The actual search tree of our search</em></a> has
<p>The search tree depicted on the Figure <a class="reference internal" href="cpviz.html#search-tree-of-nqueens-with-n-equal-to-4"><em>The actual search tree of our search</em></a> has
its node numbered in the order given by a pre-order traversal. There are two other traversals:
<em>in-order</em> and <em>post-order</em>. We invite the curious reader to google <em>pre-order traversal of a tree</em>
to find more. There are a number of applets showing the different traversals.</p>
@@ -578,12 +578,12 @@ algorithm:</p>
<span class="k">case</span> <span class="nl">OUTSIDE_SEARCH:</span> <span class="p">{</span>
<span class="n">state_</span> <span class="o">=</span> <span class="n">IN_ROOT_NODE</span><span class="p">;</span>
<span class="n">search</span><span class="o">-&gt;</span><span class="n">BeginInitialPropagation</span><span class="p">();</span><span class="c1">// SEARCHMONITOR CALLBACKS</span>
<span class="n">CP_TRY</span><span class="p">(</span><span class="n">search</span><span class="p">)</span> <span class="p">{</span>
<span class="k">try</span> <span class="p">{</span>
<span class="n">ProcessConstraints</span><span class="p">();</span>
<span class="n">search</span><span class="o">-&gt;</span><span class="n">EndInitialPropagation</span><span class="p">();</span><span class="c1">// SEARCHMONITOR CALLBACKS</span>
<span class="p">...</span>
<span class="n">state_</span> <span class="o">=</span> <span class="n">IN_SEARCH</span><span class="p">;</span>
<span class="p">}</span> <span class="n">CP_ON_FAIL</span> <span class="p">{</span>
<span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="k">const</span> <span class="n">FailException</span><span class="o">&amp;</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
<span class="p">...</span>
<span class="n">state_</span> <span class="o">=</span> <span class="n">PROBLEM_INFEASIBLE</span><span class="p">;</span>
<span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
@@ -714,7 +714,8 @@ but these possibilities are not shown here.</td></tr>
<table class="docutils footnote" frame="void" id="try-catch-not-used" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id7">[6]</a></td><td>Did we already mention that the <tt class="docutils literal"><span class="pre">try</span> <span class="pre">-</span> <span class="pre">catch</span></tt> mechanism is <em>not</em> used in the production code?</td></tr>
<tr><td class="label"><a class="fn-backref" href="#id7">[6]</a></td><td>Did we already mention that the <tt class="docutils literal"><span class="pre">try</span> <span class="pre">-</span> <span class="pre">catch</span></tt> mechanism is <em>not</em> used in the production
code? ;-)</td></tr>
</tbody>
</table>
<p>If the <tt class="docutils literal"><span class="pre">Decision</span></tt> pointer <tt class="docutils literal"><span class="pre">fd</span></tt> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>, this means that we have backtracked to the first available (non visited)

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>5.8. Breaking symmetries with SymmetryBreakers &mdash; or-tools User&#39;s Manual</title>
<title>5.8. Breaking symmetries (part II): SymmetryBreakers &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -54,8 +54,8 @@
<div class="bodywrapper">
<div class="body">
<div class="section" id="breaking-symmetries-with-symmetrybreakers">
<span id="search-primitives-breaking-symmetry"></span><h1>5.8. Breaking symmetries with <tt class="docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</h1>
<div class="section" id="breaking-symmetries-part-ii-symmetrybreakers">
<span id="search-primitives-breaking-symmetry"></span><h1>5.8. Breaking symmetries (part II): <tt class="docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</h1>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
@@ -141,7 +141,7 @@ Search:
title="next chapter">5.9. Summary</a></p>
<h3>Current section</a></h3>
<ul>
<li><a class="reference internal" href="#">5.8. Breaking symmetries with <tt class="docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</a><ul class="simple">
<li><a class="reference internal" href="#">5.8. Breaking symmetries (part II): <tt class="docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</a><ul class="simple">
</ul>
</li>
</ul>

View File

@@ -28,7 +28,7 @@
<link rel="shortcut icon" href="../../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="5. Defining search primitives: the n-queens problem" href="../search_primitives.html" />
<link rel="next" title="5.8. Breaking symmetries with SymmetryBreakers" href="breaking_symmetry.html" />
<link rel="next" title="5.8. Breaking symmetries (part II): SymmetryBreakers" href="breaking_symmetry.html" />
<link rel="prev" title="5.6. Customized search primitives" href="customized_search_primitives.html" />
</head>
<body>
@@ -39,7 +39,7 @@
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="breaking_symmetry.html" title="5.8. Breaking symmetries with SymmetryBreakers"
<a href="breaking_symmetry.html" title="5.8. Breaking symmetries (part II): SymmetryBreakers"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="customized_search_primitives.html" title="5.6. Customized search primitives"
@@ -138,7 +138,7 @@ Search:
title="previous chapter">5.6. Customized search primitives</a></p>
<h3>Next section</h3>
<p class="topless"><a href="breaking_symmetry.html"
title="next chapter">5.8. Breaking symmetries with <tt class="docutils literal docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</a></p>
title="next chapter">5.8. Breaking symmetries (part II): <tt class="docutils literal docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</a></p>
</div>
</div>
<div class="clearer"></div>
@@ -150,7 +150,7 @@ Search:
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="breaking_symmetry.html" title="5.8. Breaking symmetries with SymmetryBreakers"
<a href="breaking_symmetry.html" title="5.8. Breaking symmetries (part II): SymmetryBreakers"
>next</a> |</li>
<li class="right" >
<a href="customized_search_primitives.html" title="5.6. Customized search primitives"

View File

@@ -29,7 +29,7 @@
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="5. Defining search primitives: the n-queens problem" href="../search_primitives.html" />
<link rel="next" title="6. Local search: the job-shop problem" href="../LS.html" />
<link rel="prev" title="5.8. Breaking symmetries with SymmetryBreakers" href="breaking_symmetry.html" />
<link rel="prev" title="5.8. Breaking symmetries (part II): SymmetryBreakers" href="breaking_symmetry.html" />
</head>
<body>
<div class="related">
@@ -42,7 +42,7 @@
<a href="../LS.html" title="6. Local search: the job-shop problem"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="breaking_symmetry.html" title="5.8. Breaking symmetries with SymmetryBreakers"
<a href="breaking_symmetry.html" title="5.8. Breaking symmetries (part II): SymmetryBreakers"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../search_primitives.html" accesskey="U">5. Defining search primitives: the n-queens problem</a> &raquo;</li>
@@ -135,7 +135,7 @@ Search:
title="previous chapter">5. Defining search primitives: the n-queens problem</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="breaking_symmetry.html"
title="previous chapter">5.8. Breaking symmetries with <tt class="docutils literal docutils literal docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</a></p>
title="previous chapter">5.8. Breaking symmetries (part II): <tt class="docutils literal docutils literal docutils literal"><span class="pre">SymmetryBreaker</span></tt>s</a></p>
<h3>Next section</h3>
<p class="topless"><a href="../LS.html"
title="next chapter">6. Local search: the job-shop problem</a></p>
@@ -153,7 +153,7 @@ Search:
<a href="../LS.html" title="6. Local search: the job-shop problem"
>next</a> |</li>
<li class="right" >
<a href="breaking_symmetry.html" title="5.8. Breaking symmetries with SymmetryBreakers"
<a href="breaking_symmetry.html" title="5.8. Breaking symmetries (part II): SymmetryBreakers"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../search_primitives.html" >5. Defining search primitives: the n-queens problem</a> &raquo;</li>

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9.8. An exact implementation of the TSPTW &mdash; or-tools User&#39;s Manual</title>
<title>9.7. An exact implementation of the TSP &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -28,8 +28,8 @@
<link rel="shortcut icon" href="../../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.9. The TSPTW and Local Search" href="third_implementation.html" />
<link rel="prev" title="9.7. The Travelling Salesman Problem with Time Windows (TSPTW)" href="tspwtw.html" />
<link rel="next" title="9.8. The Travelling Salesman Problem with Time Windows (TSPTW)" href="tsptw.html" />
<link rel="prev" title="9.6. The TSP in or-tools" href="first_tsp_implementation.html" />
</head>
<body>
<div class="related">
@@ -39,10 +39,10 @@
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="third_implementation.html" title="9.9. The TSPTW and Local Search"
<a href="tsptw.html" title="9.8. The Travelling Salesman Problem with Time Windows (TSPTW)"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="tspwtw.html" title="9.7. The Travelling Salesman Problem with Time Windows (TSPTW)"
<a href="first_tsp_implementation.html" title="9.6. The TSP in or-tools"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" accesskey="U">9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>
@@ -54,8 +54,8 @@
<div class="bodywrapper">
<div class="body">
<div class="section" id="an-exact-implementation-of-the-tsptw">
<span id="tsptw-first-implementation"></span><h1>9.8. An exact implementation of the TSPTW</h1>
<div class="section" id="an-exact-implementation-of-the-tsp">
<span id="exact-tsp-implementation"></span><h1>9.7. An exact implementation of the TSP</h1>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
@@ -134,11 +134,11 @@ Search:
<p class="topless"><a href="../TSP.html"
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="tspwtw.html"
title="previous chapter">9.7. The Travelling Salesman Problem with Time Windows (TSPTW)</a></p>
<p class="topless"><a href="first_tsp_implementation.html"
title="previous chapter">9.6. The TSP in or-tools</a></p>
<h3>Next section</h3>
<p class="topless"><a href="third_implementation.html"
title="next chapter">9.9. The TSPTW and Local Search</a></p>
<p class="topless"><a href="tsptw.html"
title="next chapter">9.8. The Travelling Salesman Problem with Time Windows (TSPTW)</a></p>
</div>
</div>
<div class="clearer"></div>
@@ -150,10 +150,10 @@ Search:
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="third_implementation.html" title="9.9. The TSPTW and Local Search"
<a href="tsptw.html" title="9.8. The Travelling Salesman Problem with Time Windows (TSPTW)"
>next</a> |</li>
<li class="right" >
<a href="tspwtw.html" title="9.7. The Travelling Salesman Problem with Time Windows (TSPTW)"
<a href="first_tsp_implementation.html" title="9.6. The TSP in or-tools"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" >9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9.5. An exact implementation of the TSP &mdash; or-tools User&#39;s Manual</title>
<title>9.6. The TSP in or-tools &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -28,8 +28,8 @@
<link rel="shortcut icon" href="../../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.6. The two phases approach" href="two_phases_approaches.html" />
<link rel="prev" title="9.4. Automatic variables" href="automatic_variables.html" />
<link rel="next" title="9.7. An exact implementation of the TSP" href="exact_tsp_implementation.html" />
<link rel="prev" title="9.5. The two phases approach" href="two_phases_approaches.html" />
</head>
<body>
<div class="related">
@@ -39,10 +39,10 @@
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="two_phases_approaches.html" title="9.6. The two phases approach"
<a href="exact_tsp_implementation.html" title="9.7. An exact implementation of the TSP"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="automatic_variables.html" title="9.4. Automatic variables"
<a href="two_phases_approaches.html" title="9.5. The two phases approach"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" accesskey="U">9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>
@@ -54,8 +54,8 @@
<div class="bodywrapper">
<div class="body">
<div class="section" id="an-exact-implementation-of-the-tsp">
<span id="tsp-first-implementation"></span><h1>9.5. An exact implementation of the TSP</h1>
<div class="section" id="the-tsp-in-or-tools">
<span id="first-tsp-implementation"></span><h1>9.6. The TSP in or-tools</h1>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
@@ -134,11 +134,11 @@ Search:
<p class="topless"><a href="../TSP.html"
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="automatic_variables.html"
title="previous chapter">9.4. Automatic variables</a></p>
<h3>Next section</h3>
<p class="topless"><a href="two_phases_approaches.html"
title="next chapter">9.6. The two phases approach</a></p>
title="previous chapter">9.5. The two phases approach</a></p>
<h3>Next section</h3>
<p class="topless"><a href="exact_tsp_implementation.html"
title="next chapter">9.7. An exact implementation of the TSP</a></p>
</div>
</div>
<div class="clearer"></div>
@@ -150,10 +150,10 @@ Search:
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="two_phases_approaches.html" title="9.6. The two phases approach"
<a href="exact_tsp_implementation.html" title="9.7. An exact implementation of the TSP"
>next</a> |</li>
<li class="right" >
<a href="automatic_variables.html" title="9.4. Automatic variables"
<a href="two_phases_approaches.html" title="9.5. The two phases approach"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" >9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9.9. The TSPTW and Local Search &mdash; or-tools User&#39;s Manual</title>
<title>9.9. The TSPTW in or-tools &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -29,7 +29,7 @@
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.10. Summary" href="tsptw_summary.html" />
<link rel="prev" title="9.8. An exact implementation of the TSPTW" href="second_implementation.html" />
<link rel="prev" title="9.8. The Travelling Salesman Problem with Time Windows (TSPTW)" href="tsptw.html" />
</head>
<body>
<div class="related">
@@ -42,7 +42,7 @@
<a href="tsptw_summary.html" title="9.10. Summary"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="second_implementation.html" title="9.8. An exact implementation of the TSPTW"
<a href="tsptw.html" title="9.8. The Travelling Salesman Problem with Time Windows (TSPTW)"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" accesskey="U">9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>
@@ -54,8 +54,8 @@
<div class="bodywrapper">
<div class="body">
<div class="section" id="the-tsptw-and-local-search">
<span id="tsptw-local-search"></span><h1>9.9. The TSPTW and Local Search</h1>
<div class="section" id="the-tsptw-in-or-tools">
<span id="first-tsptw-implementation"></span><h1>9.9. The TSPTW in or-tools</h1>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
@@ -134,8 +134,8 @@ Search:
<p class="topless"><a href="../TSP.html"
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="second_implementation.html"
title="previous chapter">9.8. An exact implementation of the TSPTW</a></p>
<p class="topless"><a href="tsptw.html"
title="previous chapter">9.8. The Travelling Salesman Problem with Time Windows (TSPTW)</a></p>
<h3>Next section</h3>
<p class="topless"><a href="tsptw_summary.html"
title="next chapter">9.10. Summary</a></p>
@@ -153,7 +153,7 @@ Search:
<a href="tsptw_summary.html" title="9.10. Summary"
>next</a> |</li>
<li class="right" >
<a href="second_implementation.html" title="9.8. An exact implementation of the TSPTW"
<a href="tsptw.html" title="9.8. The Travelling Salesman Problem with Time Windows (TSPTW)"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" >9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9.4. Automatic variables &mdash; or-tools User&#39;s Manual</title>
<title>9.4. The model behind the scene &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -28,7 +28,7 @@
<link rel="shortcut icon" href="../../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.5. An exact implementation of the TSP" href="first_implementation.html" />
<link rel="next" title="9.5. The two phases approach" href="two_phases_approaches.html" />
<link rel="prev" title="9.3. The travelling Salesman Problem" href="tsp.html" />
</head>
<body>
@@ -39,7 +39,7 @@
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="first_implementation.html" title="9.5. An exact implementation of the TSP"
<a href="two_phases_approaches.html" title="9.5. The two phases approach"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="tsp.html" title="9.3. The travelling Salesman Problem"
@@ -54,19 +54,28 @@
<div class="bodywrapper">
<div class="body">
<div class="section" id="automatic-variables">
<span id="id1"></span><h1>9.4. Automatic variables</h1>
<div class="section" id="the-model-behind-the-scene">
<span id="automatic-variables"></span><h1>9.4. The model behind the scene</h1>
<div class="section" id="the-idea">
<h2>9.4.1. The idea</h2>
</div>
<div class="section" id="the-variables">
<h2>9.4.2. The variables</h2>
<div class="section" id="nodeindex-or-int64">
<h2>9.4.1. <tt class="docutils literal"><span class="pre">NodeIndex</span></tt> or <tt class="docutils literal"><span class="pre">int64</span></tt>?</h2>
<h3>9.4.2.1. <tt class="docutils literal"><span class="pre">NodeIndex</span></tt> or <tt class="docutils literal"><span class="pre">int64</span></tt>?</h3>
</div>
<div class="section" id="path-variables">
<h2>9.4.2. Path variables</h2>
<div class="section" id="how-to-follow-a-path">
<h3>9.4.2.1. How to follow a path?</h3>
<h3>9.4.2.2. Path variables</h3>
<div class="section" id="how-to-follow-a-route">
<h4>9.4.2.2.1. How to follow a route?</h4>
</div>
</div>
<div class="section" id="dimension-variables">
<h2>9.4.3. Dimension variables</h2>
<h3>9.4.2.3. Dimension variables</h3>
</div>
</div>
<div class="section" id="the-constraints">
<h2>9.4.3. The constraints</h2>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
</div>
@@ -149,17 +158,22 @@ Search:
<p class="topless"><a href="tsp.html"
title="previous chapter">9.3. The travelling Salesman Problem</a></p>
<h3>Next section</h3>
<p class="topless"><a href="first_implementation.html"
title="next chapter">9.5. An exact implementation of the TSP</a></p>
<p class="topless"><a href="two_phases_approaches.html"
title="next chapter">9.5. The two phases approach</a></p>
<h3>Current section</a></h3>
<ul>
<li><a class="reference internal" href="#">9.4. Automatic variables</a><ul>
<li><a class="reference internal" href="#nodeindex-or-int64">9.4.1. <tt class="docutils literal"><span class="pre">NodeIndex</span></tt> or <tt class="docutils literal"><span class="pre">int64</span></tt>?</a></li>
<li><a class="reference internal" href="#path-variables">9.4.2. Path variables</a><ul>
<li><a class="reference internal" href="#how-to-follow-a-path">9.4.2.1. How to follow a path?</a></li>
<li><a class="reference internal" href="#">9.4. The model behind the scene</a><ul>
<li><a class="reference internal" href="#the-idea">9.4.1. The idea</a></li>
<li><a class="reference internal" href="#the-variables">9.4.2. The variables</a><ul>
<li><a class="reference internal" href="#nodeindex-or-int64">9.4.2.1. <tt class="docutils literal"><span class="pre">NodeIndex</span></tt> or <tt class="docutils literal"><span class="pre">int64</span></tt>?</a></li>
<li><a class="reference internal" href="#path-variables">9.4.2.2. Path variables</a><ul>
<li><a class="reference internal" href="#how-to-follow-a-route">9.4.2.2.1. How to follow a route?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#dimension-variables">9.4.3. Dimension variables</a></li>
<li><a class="reference internal" href="#dimension-variables">9.4.2.3. Dimension variables</a></li>
</ul>
</li>
<li><a class="reference internal" href="#the-constraints">9.4.3. The constraints</a></li>
</ul>
</li>
</ul>
@@ -175,7 +189,7 @@ Search:
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="first_implementation.html" title="9.5. An exact implementation of the TSP"
<a href="two_phases_approaches.html" title="9.5. The two phases approach"
>next</a> |</li>
<li class="right" >
<a href="tsp.html" title="9.3. The travelling Salesman Problem"

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9.2. The Vehicle Routing Library (VRL) in a nutshell &mdash; or-tools User&#39;s Manual</title>
<title>9.2. The Routing Library (RL) in a nutshell &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -29,7 +29,7 @@
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.3. The travelling Salesman Problem" href="tsp.html" />
<link rel="prev" title="9.1. A whole zoo of routing problems" href="zoo_routing_problems.html" />
<link rel="prev" title="9.1. A whole zoo of Routing Problems" href="zoo_routing_problems.html" />
</head>
<body>
<div class="related">
@@ -42,7 +42,7 @@
<a href="tsp.html" title="9.3. The travelling Salesman Problem"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="zoo_routing_problems.html" title="9.1. A whole zoo of routing problems"
<a href="zoo_routing_problems.html" title="9.1. A whole zoo of Routing Problems"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" accesskey="U">9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>
@@ -54,10 +54,31 @@
<div class="bodywrapper">
<div class="body">
<div class="section" id="the-vehicle-routing-library-vrl-in-a-nutshell">
<span id="tsp-routing-solver"></span><h1>9.2. The Vehicle Routing Library (VRL) in a nutshell</h1>
<div class="section" id="the-routing-library-rl-in-a-nutshell">
<span id="tsp-routing-solver"></span><h1>9.2. The Routing Library (RL) in a nutshell</h1>
<div class="section" id="objectives">
<h2>9.2.1. Objectives</h2>
</div>
<div class="section" id="out-of-the-box-models">
<h2>9.2.2. Out of the box models</h2>
</div>
<div class="section" id="on-top-of-the-cp-library">
<h2>9.2.3. On top of the CP library</h2>
</div>
<div class="section" id="node-and-vehicle-oriented">
<h2>9.2.4. Node and vehicle oriented</h2>
</div>
<div class="section" id="local-search">
<h2>9.2.5. Local Search</h2>
</div>
<div class="section" id="tuning-the-search">
<h2>9.2.6. Tuning the search</h2>
</div>
<div class="section" id="limitations">
<h2>9.2.7. Limitations</h2>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
</div>
</div>
@@ -135,10 +156,24 @@ Search:
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="zoo_routing_problems.html"
title="previous chapter">9.1. A whole zoo of routing problems</a></p>
title="previous chapter">9.1. A whole zoo of Routing Problems</a></p>
<h3>Next section</h3>
<p class="topless"><a href="tsp.html"
title="next chapter">9.3. The travelling Salesman Problem</a></p>
<h3>Current section</a></h3>
<ul>
<li><a class="reference internal" href="#">9.2. The Routing Library (RL) in a nutshell</a><ul>
<li><a class="reference internal" href="#objectives">9.2.1. Objectives</a></li>
<li><a class="reference internal" href="#out-of-the-box-models">9.2.2. Out of the box models</a></li>
<li><a class="reference internal" href="#on-top-of-the-cp-library">9.2.3. On top of the CP library</a></li>
<li><a class="reference internal" href="#node-and-vehicle-oriented">9.2.4. Node and vehicle oriented</a></li>
<li><a class="reference internal" href="#local-search">9.2.5. Local Search</a></li>
<li><a class="reference internal" href="#tuning-the-search">9.2.6. Tuning the search</a></li>
<li><a class="reference internal" href="#limitations">9.2.7. Limitations</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
@@ -153,7 +188,7 @@ Search:
<a href="tsp.html" title="9.3. The travelling Salesman Problem"
>next</a> |</li>
<li class="right" >
<a href="zoo_routing_problems.html" title="9.1. A whole zoo of routing problems"
<a href="zoo_routing_problems.html" title="9.1. A whole zoo of Routing Problems"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" >9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>

View File

@@ -28,8 +28,8 @@
<link rel="shortcut icon" href="../../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.4. Automatic variables" href="automatic_variables.html" />
<link rel="prev" title="9.2. The Vehicle Routing Library (VRL) in a nutshell" href="routing_library.html" />
<link rel="next" title="9.4. The model behind the scene" href="model_behind_scene.html" />
<link rel="prev" title="9.2. The Routing Library (RL) in a nutshell" href="routing_library.html" />
</head>
<body>
<div class="related">
@@ -39,10 +39,10 @@
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="automatic_variables.html" title="9.4. Automatic variables"
<a href="model_behind_scene.html" title="9.4. The model behind the scene"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="routing_library.html" title="9.2. The Vehicle Routing Library (VRL) in a nutshell"
<a href="routing_library.html" title="9.2. The Routing Library (RL) in a nutshell"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" accesskey="U">9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>
@@ -56,8 +56,26 @@
<div class="section" id="the-travelling-salesman-problem">
<span id="tsp-tsp"></span><h1>9.3. The travelling Salesman Problem</h1>
<div class="section" id="what-is-the-travelling-salesman-problem">
<h2>9.3.1. What is the Travelling Salesman Problem?</h2>
<div class="section" id="id1">
<h2>9.3.1. The Travelling Salesman Problem</h2>
</div>
<div class="section" id="benchmark-data">
<h2>9.3.2. Benchmark data</h2>
<div class="section" id="the-tsplib-format">
<h3>9.3.2.1. The TSPLIB format</h3>
<div class="section" id="the-instance-file">
<h4>9.3.2.1.1. The instance file</h4>
</div>
<div class="section" id="the-solution-file">
<h4>9.3.2.1.2. The solution file</h4>
</div>
</div>
</div>
<div class="section" id="the-tspdata-class">
<h2>9.3.3. The <tt class="docutils literal"><span class="pre">TSPData</span></tt> class</h2>
</div>
<div class="section" id="visualization-with-epix">
<h2>9.3.4. Visualization with <tt class="docutils literal"><span class="pre">ePix</span></tt></h2>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
</div>
@@ -138,14 +156,24 @@ Search:
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="routing_library.html"
title="previous chapter">9.2. The Vehicle Routing Library (VRL) in a nutshell</a></p>
title="previous chapter">9.2. The Routing Library (RL) in a nutshell</a></p>
<h3>Next section</h3>
<p class="topless"><a href="automatic_variables.html"
title="next chapter">9.4. Automatic variables</a></p>
<p class="topless"><a href="model_behind_scene.html"
title="next chapter">9.4. The model behind the scene</a></p>
<h3>Current section</a></h3>
<ul>
<li><a class="reference internal" href="#">9.3. The travelling Salesman Problem</a><ul>
<li><a class="reference internal" href="#what-is-the-travelling-salesman-problem">9.3.1. What is the Travelling Salesman Problem?</a></li>
<li><a class="reference internal" href="#id1">9.3.1. The Travelling Salesman Problem</a></li>
<li><a class="reference internal" href="#benchmark-data">9.3.2. Benchmark data</a><ul>
<li><a class="reference internal" href="#the-tsplib-format">9.3.2.1. The TSPLIB format</a><ul>
<li><a class="reference internal" href="#the-instance-file">9.3.2.1.1. The instance file</a></li>
<li><a class="reference internal" href="#the-solution-file">9.3.2.1.2. The solution file</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#the-tspdata-class">9.3.3. The <tt class="docutils literal"><span class="pre">TSPData</span></tt> class</a></li>
<li><a class="reference internal" href="#visualization-with-epix">9.3.4. Visualization with <tt class="docutils literal"><span class="pre">ePix</span></tt></a></li>
</ul>
</li>
</ul>
@@ -161,10 +189,10 @@ Search:
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="automatic_variables.html" title="9.4. Automatic variables"
<a href="model_behind_scene.html" title="9.4. The model behind the scene"
>next</a> |</li>
<li class="right" >
<a href="routing_library.html" title="9.2. The Vehicle Routing Library (VRL) in a nutshell"
<a href="routing_library.html" title="9.2. The Routing Library (RL) in a nutshell"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" >9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9.7. The Travelling Salesman Problem with Time Windows (TSPTW) &mdash; or-tools User&#39;s Manual</title>
<title>9.8. The Travelling Salesman Problem with Time Windows (TSPTW) &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -28,8 +28,8 @@
<link rel="shortcut icon" href="../../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.8. An exact implementation of the TSPTW" href="second_implementation.html" />
<link rel="prev" title="9.6. The two phases approach" href="two_phases_approaches.html" />
<link rel="next" title="9.9. The TSPTW in or-tools" href="first_tsptw_implementation.html" />
<link rel="prev" title="9.7. An exact implementation of the TSP" href="exact_tsp_implementation.html" />
</head>
<body>
<div class="related">
@@ -39,10 +39,10 @@
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="second_implementation.html" title="9.8. An exact implementation of the TSPTW"
<a href="first_tsptw_implementation.html" title="9.9. The TSPTW in or-tools"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="two_phases_approaches.html" title="9.6. The two phases approach"
<a href="exact_tsp_implementation.html" title="9.7. An exact implementation of the TSP"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" accesskey="U">9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>
@@ -55,9 +55,27 @@
<div class="body">
<div class="section" id="the-travelling-salesman-problem-with-time-windows-tsptw">
<span id="tspwtw"></span><h1>9.7. The Travelling Salesman Problem with Time Windows (TSPTW)</h1>
<span id="tspwtw"></span><h1>9.8. The Travelling Salesman Problem with Time Windows (TSPTW)</h1>
<div class="section" id="the-travelling-salesman-problem-with-time-windows">
<h2>9.8.1. The Travelling Salesman Problem with Time Windows</h2>
</div>
<div class="section" id="benchmark-data">
<h2>9.8.2. Benchmark data</h2>
<div class="section" id="the-lopez-ibanez-blum-format">
<h3>9.8.2.1. The López-Ibáñez-Blum format</h3>
</div>
<div class="section" id="the-da-silva-urrutia-format">
<h3>9.8.2.2. The da Silva-Urrutia format</h3>
</div>
</div>
<div class="section" id="the-tsptwdata-class">
<h2>9.8.3. The <tt class="docutils literal"><span class="pre">TSPTWData</span></tt> class</h2>
</div>
<div class="section" id="visualization-with-epix">
<h2>9.8.4. Visualization with <tt class="docutils literal"><span class="pre">ePix</span></tt></h2>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
</div>
</div>
@@ -134,11 +152,26 @@ Search:
<p class="topless"><a href="../TSP.html"
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="two_phases_approaches.html"
title="previous chapter">9.6. The two phases approach</a></p>
<p class="topless"><a href="exact_tsp_implementation.html"
title="previous chapter">9.7. An exact implementation of the TSP</a></p>
<h3>Next section</h3>
<p class="topless"><a href="second_implementation.html"
title="next chapter">9.8. An exact implementation of the TSPTW</a></p>
<p class="topless"><a href="first_tsptw_implementation.html"
title="next chapter">9.9. The TSPTW in or-tools</a></p>
<h3>Current section</a></h3>
<ul>
<li><a class="reference internal" href="#">9.8. The Travelling Salesman Problem with Time Windows (TSPTW)</a><ul>
<li><a class="reference internal" href="#the-travelling-salesman-problem-with-time-windows">9.8.1. The Travelling Salesman Problem with Time Windows</a></li>
<li><a class="reference internal" href="#benchmark-data">9.8.2. Benchmark data</a><ul>
<li><a class="reference internal" href="#the-lopez-ibanez-blum-format">9.8.2.1. The López-Ibáñez-Blum format</a></li>
<li><a class="reference internal" href="#the-da-silva-urrutia-format">9.8.2.2. The da Silva-Urrutia format</a></li>
</ul>
</li>
<li><a class="reference internal" href="#the-tsptwdata-class">9.8.3. The <tt class="docutils literal"><span class="pre">TSPTWData</span></tt> class</a></li>
<li><a class="reference internal" href="#visualization-with-epix">9.8.4. Visualization with <tt class="docutils literal"><span class="pre">ePix</span></tt></a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
@@ -150,10 +183,10 @@ Search:
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="second_implementation.html" title="9.8. An exact implementation of the TSPTW"
<a href="first_tsptw_implementation.html" title="9.9. The TSPTW in or-tools"
>next</a> |</li>
<li class="right" >
<a href="two_phases_approaches.html" title="9.6. The two phases approach"
<a href="exact_tsp_implementation.html" title="9.7. An exact implementation of the TSP"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" >9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>

View File

@@ -29,7 +29,7 @@
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="10. Vehicule Routing Problems with constraints: the capacitated vehicle routing problem" href="../VRP.html" />
<link rel="prev" title="9.9. The TSPTW and Local Search" href="third_implementation.html" />
<link rel="prev" title="9.9. The TSPTW in or-tools" href="first_tsptw_implementation.html" />
</head>
<body>
<div class="related">
@@ -42,7 +42,7 @@
<a href="../VRP.html" title="10. Vehicule Routing Problems with constraints: the capacitated vehicle routing problem"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="third_implementation.html" title="9.9. The TSPTW and Local Search"
<a href="first_tsptw_implementation.html" title="9.9. The TSPTW in or-tools"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" accesskey="U">9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>
@@ -135,8 +135,8 @@ Search:
<p class="topless"><a href="../TSP.html"
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="third_implementation.html"
title="previous chapter">9.9. The TSPTW and Local Search</a></p>
<p class="topless"><a href="first_tsptw_implementation.html"
title="previous chapter">9.9. The TSPTW in or-tools</a></p>
<h3>Next section</h3>
<p class="topless"><a href="../VRP.html"
title="next chapter">10. Vehicule Routing Problems with constraints: the capacitated vehicle routing problem</a></p>
@@ -154,7 +154,7 @@ Search:
<a href="../VRP.html" title="10. Vehicule Routing Problems with constraints: the capacitated vehicle routing problem"
>next</a> |</li>
<li class="right" >
<a href="third_implementation.html" title="9.9. The TSPTW and Local Search"
<a href="first_tsptw_implementation.html" title="9.9. The TSPTW in or-tools"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" >9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9.6. The two phases approach &mdash; or-tools User&#39;s Manual</title>
<title>9.5. The two phases approach &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -28,8 +28,8 @@
<link rel="shortcut icon" href="../../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.7. The Travelling Salesman Problem with Time Windows (TSPTW)" href="tspwtw.html" />
<link rel="prev" title="9.5. An exact implementation of the TSP" href="first_implementation.html" />
<link rel="next" title="9.6. The TSP in or-tools" href="first_tsp_implementation.html" />
<link rel="prev" title="9.4. The model behind the scene" href="model_behind_scene.html" />
</head>
<body>
<div class="related">
@@ -39,10 +39,10 @@
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="tspwtw.html" title="9.7. The Travelling Salesman Problem with Time Windows (TSPTW)"
<a href="first_tsp_implementation.html" title="9.6. The TSP in or-tools"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="first_implementation.html" title="9.5. An exact implementation of the TSP"
<a href="model_behind_scene.html" title="9.4. The model behind the scene"
accesskey="P">previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" accesskey="U">9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>
@@ -55,9 +55,12 @@
<div class="body">
<div class="section" id="the-two-phases-approach">
<span id="tsp-two-phases-approaches"></span><h1>9.6. The two phases approach</h1>
<div class="section" id="local-path-operator">
<h2>9.6.1. Local Path Operator</h2>
<span id="tsp-two-phases-approaches"></span><h1>9.5. The two phases approach</h1>
<div class="section" id="the-initial-solution">
<h2>9.5.1. The initial solution</h2>
</div>
<div class="section" id="local-search-pathoperators">
<h2>9.5.2. Local Search <tt class="docutils literal"><span class="pre">PathOperator</span></tt>s</h2>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
</div>
@@ -137,15 +140,16 @@ Search:
<p class="topless"><a href="../TSP.html"
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Previous section</h3>
<p class="topless"><a href="first_implementation.html"
title="previous chapter">9.5. An exact implementation of the TSP</a></p>
<p class="topless"><a href="model_behind_scene.html"
title="previous chapter">9.4. The model behind the scene</a></p>
<h3>Next section</h3>
<p class="topless"><a href="tspwtw.html"
title="next chapter">9.7. The Travelling Salesman Problem with Time Windows (TSPTW)</a></p>
<p class="topless"><a href="first_tsp_implementation.html"
title="next chapter">9.6. The TSP in or-tools</a></p>
<h3>Current section</a></h3>
<ul>
<li><a class="reference internal" href="#">9.6. The two phases approach</a><ul>
<li><a class="reference internal" href="#local-path-operator">9.6.1. Local Path Operator</a></li>
<li><a class="reference internal" href="#">9.5. The two phases approach</a><ul>
<li><a class="reference internal" href="#the-initial-solution">9.5.1. The initial solution</a></li>
<li><a class="reference internal" href="#local-search-pathoperators">9.5.2. Local Search <tt class="docutils literal"><span class="pre">PathOperator</span></tt>s</a></li>
</ul>
</li>
</ul>
@@ -161,10 +165,10 @@ Search:
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="tspwtw.html" title="9.7. The Travelling Salesman Problem with Time Windows (TSPTW)"
<a href="first_tsp_implementation.html" title="9.6. The TSP in or-tools"
>next</a> |</li>
<li class="right" >
<a href="first_implementation.html" title="9.5. An exact implementation of the TSP"
<a href="model_behind_scene.html" title="9.4. The model behind the scene"
>previous</a> |</li>
<li><a href="../../index.html">or-tools User&#39;s Manual</a> &raquo;</li>
<li><a href="../TSP.html" >9. Travelling Salesman Problems with constraints: the TSP with time windows</a> &raquo;</li>

View File

@@ -8,7 +8,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>9.1. A whole zoo of routing problems &mdash; or-tools User&#39;s Manual</title>
<title>9.1. A whole zoo of Routing Problems &mdash; or-tools User&#39;s Manual</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@@ -28,7 +28,7 @@
<link rel="shortcut icon" href="../../_static/logo.ico"/>
<link rel="top" title="or-tools User&#39;s Manual" href="../../index.html" />
<link rel="up" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
<link rel="next" title="9.2. The Vehicle Routing Library (VRL) in a nutshell" href="routing_library.html" />
<link rel="next" title="9.2. The Routing Library (RL) in a nutshell" href="routing_library.html" />
<link rel="prev" title="9. Travelling Salesman Problems with constraints: the TSP with time windows" href="../TSP.html" />
</head>
<body>
@@ -39,7 +39,7 @@
<a href="../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="routing_library.html" title="9.2. The Vehicle Routing Library (VRL) in a nutshell"
<a href="routing_library.html" title="9.2. The Routing Library (RL) in a nutshell"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="../TSP.html" title="9. Travelling Salesman Problems with constraints: the TSP with time windows"
@@ -55,7 +55,7 @@
<div class="body">
<div class="section" id="a-whole-zoo-of-routing-problems">
<span id="whole-zoo-routing-problems"></span><h1>9.1. A whole zoo of routing problems</h1>
<span id="whole-zoo-routing-problems"></span><h1>9.1. A whole zoo of Routing Problems</h1>
<div class="section" id="node-routing-problems">
<h2>9.1.1. Node Routing Problems</h2>
</div>
@@ -147,10 +147,10 @@ Search:
title="previous chapter">9. Travelling Salesman Problems with constraints: the TSP with time windows</a></p>
<h3>Next section</h3>
<p class="topless"><a href="routing_library.html"
title="next chapter">9.2. The Vehicle Routing Library (VRL) in a nutshell</a></p>
title="next chapter">9.2. The Routing Library (RL) in a nutshell</a></p>
<h3>Current section</a></h3>
<ul>
<li><a class="reference internal" href="#">9.1. A whole zoo of routing problems</a><ul>
<li><a class="reference internal" href="#">9.1. A whole zoo of Routing Problems</a><ul>
<li><a class="reference internal" href="#node-routing-problems">9.1.1. Node Routing Problems</a></li>
<li><a class="reference internal" href="#vehicle-routing-problems">9.1.2. Vehicle Routing Problems</a></li>
<li><a class="reference internal" href="#arc-routing-problems">9.1.3. Arc Routing Problems</a></li>
@@ -169,7 +169,7 @@ Search:
<a href="../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="routing_library.html" title="9.2. The Vehicle Routing Library (VRL) in a nutshell"
<a href="routing_library.html" title="9.2. The Routing Library (RL) in a nutshell"
>next</a> |</li>
<li class="right" >
<a href="../TSP.html" title="9. Travelling Salesman Problems with constraints: the TSP with time windows"