Files
ortools-clone/docs/cpp_graph/hamiltonian__path_8h_source.html

132 lines
209 KiB
HTML
Raw Normal View History

2019-06-13 15:36:14 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OR-Tools</title>
<meta http-equiv="Content-Type" content="text/html;"/>
<meta charset="utf-8"/>
<!--<link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
2019-06-20 23:08:48 +02:00
<link rel="stylesheet" type="text/css" href="ortools.css" title="default" media="screen,print" />
2019-06-13 15:36:14 +02:00
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
</head>
<body>
<div id="banner-container">
<div id="banner">
2019-06-29 18:18:08 +02:00
<span id="sfml">OR-Tools 7.2</span>
2019-06-13 15:36:14 +02:00
</div>
</div>
2019-06-29 18:18:08 +02:00
<link rel="icon" href="https://developers.google.com/optimization/images/orLogo.png">
2019-06-13 15:36:14 +02:00
<div id="content">
<!-- Generated by Doxygen 1.8.15 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
2019-07-15 17:42:24 -07:00
<li class="current"><a href="files.html"><span>Files</span></a></li>
2019-06-13 15:36:14 +02:00
</ul>
</div>
</div><!-- top -->
2019-07-12 13:25:23 -07:00
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('hamiltonian__path_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
2019-06-13 15:36:14 +02:00
<div class="header">
<div class="headertitle">
<div class="title">hamiltonian_path.h</div> </div>
</div><!--header-->
<div class="contents">
2019-06-13 15:51:12 +02:00
<a href="hamiltonian__path_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Copyright 2010-2018 Google LLC</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifndef OR_TOOLS_GRAPH_HAMILTONIAN_PATH_H_</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define OR_TOOLS_GRAPH_HAMILTONIAN_PATH_H_</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Solves the Shortest Hamiltonian Path Problem using a complete algorithm.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// The algorithm was first described in</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// M. Held, R.M. Karp, A dynamic programming approach to sequencing problems,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// J. SIAM 10 (1962) 196-210</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// The Shortest Hamiltonian Path Problem (SHPP) is similar to the Traveling</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// Salesperson Problem (TSP).</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// You have to visit all the cities, starting from a given one and you</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// do not need to return to your starting point. With the TSP, you can start</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</
2019-06-13 15:36:14 +02:00
<div class="ttc" id="classoperations__research_1_1Set_html_a141358673ffd6a239cff71146df9b133"><div class="ttname"><a href="classoperations__research_1_1Set.html#a141358673ffd6a239cff71146df9b133">operations_research::Set::FullSet</a></div><div class="ttdeci">static Set FullSet(Integer card)</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00146">hamiltonian_path.h:146</a></div></div>
<div class="ttc" id="classoperations__research_1_1ElementIterator_html_a9028f0663e576b3eb972983df3967b6f"><div class="ttname"><a href="classoperations__research_1_1ElementIterator.html#a9028f0663e576b3eb972983df3967b6f">operations_research::ElementIterator::operator *</a></div><div class="ttdeci">int operator *() const</div><div class="ttdoc">Returns the smallest element in the current_set_.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00112">hamiltonian_path.h:112</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html">operations_research::HamiltonianPathSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00453">hamiltonian_path.h:453</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a1f635310ba40e9118f83662f4839e104"><div class="ttname"><a href="classoperations__research_1_1Set.html#a1f635310ba40e9118f83662f4839e104">operations_research::Set::RemoveSmallestElement</a></div><div class="ttdeci">Set RemoveSmallestElement() const</div><div class="ttdoc">Returns a set equal to the calling object, with its smallest element removed.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00179">hamiltonian_path.h:179</a></div></div>
<div class="ttc" id="classoperations__research_1_1ElementIterator_html_a6d122c3ffab9e07e631ac9bb37847bbd"><div class="ttname"><a href="classoperations__research_1_1ElementIterator.html#a6d122c3ffab9e07e631ac9bb37847bbd">operations_research::ElementIterator::ElementIterator</a></div><div class="ttdeci">ElementIterator(Set set)</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00106">hamiltonian_path.h:106</a></div></div>
<div class="ttc" id="classoperations__research_1_1PruningHamiltonianSolver_html_a247ca43d1874d57d28e64bba65c8eeb2"><div class="ttname"><a href="classoperations__research_1_1PruningHamiltonianSolver.html#a247ca43d1874d57d28e64bba65c8eeb2">operations_research::PruningHamiltonianSolver::PruningHamiltonianSolver</a></div><div class="ttdeci">PruningHamiltonianSolver(CostFunction cost)</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00931">hamiltonian_path.h:931</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_ad91d511dbe7e638fd8a46171f906f7e6"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#ad91d511dbe7e638fd8a46171f906f7e6">operations_research::LatticeMemoryManager::ValueAtOffset</a></div><div class="ttdeci">CostType ValueAtOffset(uint64 offset) const</div><div class="ttdoc">Returns the memorized value at 'offset'.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00333">hamiltonian_path.h:333</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a5af831720988b31639b578e73d727f4e"><div class="ttname"><a href="classoperations__research_1_1Set.html#a5af831720988b31639b578e73d727f4e">operations_research::Set::ElementRank</a></div><div class="ttdeci">int ElementRank(int n) const</div><div class="ttdoc">Returns the rank of an element in a set.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00183">hamiltonian_path.h:183</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeWithCardinality_html_a361a8278313aa9ba0c4628b0da6590b1"><div class="ttname"><a href="classoperations__research_1_1SetRangeWithCardinality.html#a361a8278313aa9ba0c4628b0da6590b1">operations_research::SetRangeWithCardinality::SetRangeWithCardinality</a></div><div class="ttdeci">SetRangeWithCardinality(int card, int max_card)</div><div class="ttdoc">The end_ set is the first set with cardinality card, that does not fit in max_card bits.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00263">hamiltonian_path.h:263</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_a4f81eab503a836cab0e35f7cffdf9331"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#a4f81eab503a836cab0e35f7cffdf9331">operations_research::LatticeMemoryManager::LatticeMemoryManager</a></div><div class="ttdeci">LatticeMemoryManager()</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00293">hamiltonian_path.h:293</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_aa0c538f9b81cb0081a115b5ea51b9d6e"><div class="ttname"><a href="classoperations__research_1_1Set.html#aa0c538f9b81cb0081a115b5ea51b9d6e">operations_research::Set::AddElement</a></div><div class="ttdeci">Set AddElement(int n) const</div><div class="ttdoc">Returns a set equal to the calling object, with element n added.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00155">hamiltonian_path.h:155</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeIterator_html_a91417bb16ed420eba66eeb88cad385a9"><div class="ttname"><a href="classoperations__research_1_1SetRangeIterator.html#a91417bb16ed420eba66eeb88cad385a9">operations_research::SetRangeIterator::operator *</a></div><div class="ttdeci">SetType operator *() const</div><div class="ttdoc">STL iterator-related methods.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00232">hamiltonian_path.h:232</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeIterator_html_a8b736bbe536c9abc15d84d5fa462a506"><div class="ttname"><a href="classoperations__research_1_1SetRangeIterator.html#a8b736bbe536c9abc15d84d5fa462a506">operations_research::SetRangeIterator::IntegerType</a></div><div class="ttdeci">SetType::IntegerType IntegerType</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00227">hamiltonian_path.h:227</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_aafdb1b510571bc337d0dee99f4ef7dea"><div class="ttname"><a href="classoperations__research_1_1Set.html#aafdb1b510571bc337d0dee99f4ef7dea">operations_research::Set::SmallestSingleton</a></div><div class="ttdeci">Set SmallestSingleton() const</div><div class="ttdoc">Returns the set consisting of the smallest element of the calling object.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00189">hamiltonian_path.h:189</a></div></div>
<div class="ttc" id="namespaceoperations__research_html_a715b0dbb9f0903ab629b8c6da1b35b45"><div class="ttname"><a href="namespaceoperations__research.html#a715b0dbb9f0903ab629b8c6da1b35b45">operations_research::MakeHamiltonianPathSolver</a></div><div class="ttdeci">HamiltonianPathSolver&lt; CostType, CostFunction &gt; MakeHamiltonianPathSolver(int num_nodes, CostFunction cost)</div><div class="ttdoc">Utility function to simplify building a HamiltonianPathSolver from a functor.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00599">hamiltonian_path.h:599</a></div></div>
<div class="ttc" id="classoperations__research_1_1PruningHamiltonianSolver_html_ac958d277ef05676ff46e2a48c77e0925"><div class="ttname"><a href="classoperations__research_1_1PruningHamiltonianSolver.html#ac958d277ef05676ff46e2a48c77e0925">operations_research::PruningHamiltonianSolver::NodeSet</a></div><div class="ttdeci">Set&lt; Integer &gt; NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00893">hamiltonian_path.h:893</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_ac5d506873d40f552209caa36e734990d"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#ac5d506873d40f552209caa36e734990d">operations_research::LatticeMemoryManager::Offset</a></div><div class="ttdeci">uint64 Offset(Set s, int node) const</div><div class="ttdoc">Returns the offset in memory for f(s, node), with node contained in s.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00431">hamiltonian_path.h:431</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_a488b92cff7785ca75270e3480f6b3ac2"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#a488b92cff7785ca75270e3480f6b3ac2">operations_research::HamiltonianPathSolver::TravelingSalesmanCost</a></div><div class="ttdeci">CostType TravelingSalesmanCost()</div><div class="ttdoc">Returns the cost of the TSP tour.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00857">hamiltonian_path.h:857</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeIterator_html_ab10604e513e69c2e69885026aa4419f6"><div class="ttname"><a href="classoperations__research_1_1SetRangeIterator.html#ab10604e513e69c2e69885026aa4419f6">operations_research::SetRangeIterator::SetRangeIterator</a></div><div class="ttdeci">SetRangeIterator(const SetType set)</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00229">hamiltonian_path.h:229</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_ae52acd5c3aa779486356b63d3c264f8b"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#ae52acd5c3aa779486356b63d3c264f8b">operations_research::HamiltonianPathSolver::TravelingSalesmanPath</a></div><div class="ttdeci">std::vector&lt; int &gt; TravelingSalesmanPath()</div><div class="ttdoc">Returns the TSP tour in the vector pointed to by the argument.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00864">hamiltonian_path.h:864</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_a143a5937788ddcaa33e732f98cd26b3f"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#a143a5937788ddcaa33e732f98cd26b3f">operations_research::LatticeMemoryManager::OffsetDelta</a></div><div class="ttdeci">uint64 OffsetDelta(int card, int added_node, int removed_node, int rank) const</div><div class="ttdoc">Returns the offset delta for a set of cardinality 'card', to which node 'removed_node' is replaced by...</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00310">hamiltonian_path.h:310</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a4a7e7acabfbd596162ed619fcca5746f"><div class="ttname"><a href="classoperations__research_1_1Set.html#a4a7e7acabfbd596162ed619fcca5746f">operations_research::Set::Singleton</a></div><div class="ttdeci">static Set Singleton(Integer n)</div><div class="ttdoc">Returns the singleton set with 'n' as its only element.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00151">hamiltonian_path.h:151</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeIterator_html_ae49d2a420e45ad8370e29906e66572ee"><div class="ttname"><a href="classoperations__research_1_1SetRangeIterator.html#ae49d2a420e45ad8370e29906e66572ee">operations_research::SetRangeIterator::operator!=</a></div><div class="ttdeci">bool operator!=(const SetRangeIterator &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00233">hamiltonian_path.h:233</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a24144feea74d47a81c7c1476b24e8e62"><div class="ttname"><a href="classoperations__research_1_1Set.html#a24144feea74d47a81c7c1476b24e8e62">operations_research::Set::Cardinality</a></div><div class="ttdeci">int Cardinality() const</div><div class="ttdoc">Returns the number of elements in the set.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00171">hamiltonian_path.h:171</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_a59f3668d8fc5dfe2b60d96892c080229"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#a59f3668d8fc5dfe2b60d96892c080229">operations_research::LatticeMemoryManager::SetValue</a></div><div class="ttdeci">void SetValue(Set s, int node, CostType value)</div><div class="ttdoc">Memorizes the value = f(s, node) at the correct offset.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00443">hamiltonian_path.h:443</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_ad84aaa6dd878e39e09b522f9dd7653eb"><div class="ttname"><a href="classoperations__research_1_1Set.html#ad84aaa6dd878e39e09b522f9dd7653eb">operations_research::Set::value</a></div><div class="ttdeci">Integer value() const</div><div class="ttdoc">Returns the integer corresponding to the set.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00144">hamiltonian_path.h:144</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeWithCardinality_html_aee6525360117d00bf72c1c399cdaab77"><div class="ttname"><a href="classoperations__research_1_1SetRangeWithCardinality.html#aee6525360117d00bf72c1c399cdaab77">operations_research::SetRangeWithCardinality::SetType</a></div><div class="ttdeci">Set SetType</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00259">hamiltonian_path.h:259</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_aa6d7b94f2dfe466cfe4fa7846b040721"><div class="ttname"><a href="classoperations__research_1_1Set.html#aa6d7b94f2dfe466cfe4fa7846b040721">operations_research::Set::RemoveElement</a></div><div class="ttdeci">Set RemoveElement(int n) const</div><div class="ttdoc">Returns a set equal to the calling object, with element n removed.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00159">hamiltonian_path.h:159</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeIterator_html"><div class="ttname"><a href="classoperations__research_1_1SetRangeIterator.html">operations_research::SetRangeIterator</a></div><div class="ttdoc">An iterator for sets of increasing corresponding values that have the same cardinality.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00223">hamiltonian_path.h:223</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_afe5925b90aecb674fffc3910b93cc925"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#afe5925b90aecb674fffc3910b93cc925">operations_research::HamiltonianPathSolver::NodeSet</a></div><div class="ttdeci">Set&lt; Integer &gt; NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00476">hamiltonian_path.h:476</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a16460bdbc6388e9895591c5c3d396869"><div class="ttname"><a href="classoperations__research_1_1Set.html#a16460bdbc6388e9895591c5c3d396869">operations_research::Set::Includes</a></div><div class="ttdeci">bool Includes(Set other) const</div><div class="ttdoc">Returns true if 'other' is included in the calling set.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00165">hamiltonian_path.h:165</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a0bdd9a18dc27c98ab0e7599fa35a039a"><div class="ttname"><a href="classoperations__research_1_1Set.html#a0bdd9a18dc27c98ab0e7599fa35a039a">operations_research::Set::operator!=</a></div><div class="ttdeci">bool operator!=(const Set &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00202">hamiltonian_path.h:202</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_a2278e850be8943c1bf2ec68e5a81d5ed"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#a2278e850be8943c1bf2ec68e5a81d5ed">operations_research::HamiltonianPathSolver::IsRobust</a></div><div class="ttdeci">bool IsRobust()</div><div class="ttdoc">Returns true if there won't be precision issues.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00784">hamiltonian_path.h:784</a></div></div>
<div class="ttc" id="iterators_8h_html_a62469461ed7c932afba3808f4da0fe3d"><div class="ttname"><a href="iterators_8h.html#a62469461ed7c932afba3808f4da0fe3d">end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="iterators_8h_source.html#l00045">iterators.h:45</a></div></div>
<div class="ttc" id="namespaceutil_html_aadd7603ae6e78cc2490ca9710fbaf180"><div class="ttname"><a href="namespaceutil.html#aadd7603ae6e78cc2490ca9710fbaf180">util::false</a></div><div class="ttdeci">false</div><div class="ttdoc">This is useful for wrapping iterators of a class that support many different iterations.</div><div class="ttdef"><b>Definition:</b> <a href="iterators_8h_source.html#l00030">iterators.h:30</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a7a026ad4d35f459e5ca13e30cea9ad21"><div class="ttname"><a href="classoperations__research_1_1Set.html#a7a026ad4d35f459e5ca13e30cea9ad21">operations_research::Set::SmallestElement</a></div><div class="ttdeci">int SmallestElement() const</div><div class="ttdoc">Returns the index of the smallest element in the set.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00175">hamiltonian_path.h:175</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_a5369cd69622c4264ffcf11a2d5006ecd"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#a5369cd69622c4264ffcf11a2d5006ecd">operations_research::LatticeMemoryManager::BaseOffset</a></div><div class="ttdeci">uint64 BaseOffset(int card, Set s) const</div><div class="ttdoc">Returns the base offset in memory for f(s, node), with node contained in s.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00407">hamiltonian_path.h:407</a></div></div>
<div class="ttc" id="classoperations__research_1_1ElementIterator_html"><div class="ttname"><a href="classoperations__research_1_1ElementIterator.html">operations_research::ElementIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00104">hamiltonian_path.h:104</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_a6415d912bcce7f3d61e502d9c0047957"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#a6415d912bcce7f3d61e502d9c0047957">operations_research::HamiltonianPathSolver::HamiltonianCost</a></div><div class="ttdeci">CostType HamiltonianCost(int end_node)</div><div class="ttdoc">Returns the cost of the Hamiltonian path from 0 to end_node.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00836">hamiltonian_path.h:836</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_ac6c5e2c56d2c4c7cbf18d8d6cd26f1ff"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#ac6c5e2c56d2c4c7cbf18d8d6cd26f1ff">operations_research::HamiltonianPathSolver::HamiltonianPath</a></div><div class="ttdeci">std::vector&lt; int &gt; HamiltonianPath(int end_node)</div><div class="ttdoc">Returns the shortest Hamiltonian path from 0 to end_node.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00843">hamiltonian_path.h:843</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_ae9c419f7af4bb71f2ef3d9734e14b02f"><div class="ttname"><a href="classoperations__research_1_1Set.html#ae9c419f7af4bb71f2ef3d9734e14b02f">operations_research::Set::Zero</a></div><div class="ttdeci">static const Integer Zero</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00134">hamiltonian_path.h:134</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_acf527d4f2a9de5310586b357f76ef408"><div class="ttname"><a href="classoperations__research_1_1Set.html#acf527d4f2a9de5310586b357f76ef408">operations_research::Set::MaxCardinality</a></div><div class="ttdeci">static const int MaxCardinality</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00135">hamiltonian_path.h:135</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a1743557f4e470ddb1167fe1393fb67d0"><div class="ttname"><a href="classoperations__research_1_1Set.html#a1743557f4e470ddb1167fe1393fb67d0">operations_research::Set::One</a></div><div class="ttdeci">static const Integer One</div><div class="ttdoc">Useful constants.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00133">hamiltonian_path.h:133</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeWithCardinality_html_a03ad5ce85e22b3acb0a25b8c09857b72"><div class="ttname"><a href="classoperations__research_1_1SetRangeWithCardinality.html#a03ad5ce85e22b3acb0a25b8c09857b72">operations_research::SetRangeWithCardinality::begin</a></div><div class="ttdeci">SetRangeIterator&lt; SetRangeWithCardinality &gt; begin() const</div><div class="ttdoc">STL iterator-related methods.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00273">hamiltonian_path.h:273</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeWithCardinality_html"><div class="ttname"><a href="classoperations__research_1_1SetRangeWithCardinality.html">operations_research::SetRangeWithCardinality</a></div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00257">hamiltonian_path.h:257</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeWithCardinality_html_a69748fc40a699f2458bf7099c39b5c7d"><div class="ttname"><a href="classoperations__research_1_1SetRangeWithCardinality.html#a69748fc40a699f2458bf7099c39b5c7d">operations_research::SetRangeWithCardinality::end</a></div><div class="ttdeci">SetRangeIterator&lt; SetRangeWithCardinality &gt; end() const</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00276">hamiltonian_path.h:276</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a1af4b8873ead26e8375650d7cbd80ff9"><div class="ttname"><a href="classoperations__research_1_1Set.html#a1af4b8873ead26e8375650d7cbd80ff9">operations_research::Set::Set</a></div><div class="ttdeci">Set(Integer n)</div><div class="ttdoc">Construct a set from an Integer.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00138">hamiltonian_path.h:138</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeIterator_html_a2b617b0eee1cb874ce18d0fbfbcb0857"><div class="ttname"><a href="classoperations__research_1_1SetRangeIterator.html#a2b617b0eee1cb874ce18d0fbfbcb0857">operations_research::SetRangeIterator::operator++</a></div><div class="ttdeci">const SetRangeIterator &amp; operator++()</div><div class="ttdoc">Computes the next set with the same cardinality using Gosper's hack.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00240">hamiltonian_path.h:240</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_a084e48121cdd1ab05c9d60f8f45114e5"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#a084e48121cdd1ab05c9d60f8f45114e5">operations_research::LatticeMemoryManager::Value</a></div><div class="ttdeci">CostType Value(Set s, int node) const</div><div class="ttdoc">Returns the memorized value f(s, node) with node in s.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00437">hamiltonian_path.h:437</a></div></div>
<div class="ttc" id="classoperations__research_1_1ElementIterator_html_aac756fa71bfc5938f266bf1abeb76ffe"><div class="ttname"><a href="classoperations__research_1_1ElementIterator.html#aac756fa71bfc5938f266bf1abeb76ffe">operations_research::ElementIterator::operator++</a></div><div class="ttdeci">const ElementIterator &amp; operator++()</div><div class="ttdoc">Advances the iterator by removing its smallest element.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00115">hamiltonian_path.h:115</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html"><div class="ttname"><a href="classoperations__research_1_1Set.html">operations_research::Set</a></div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00127">hamiltonian_path.h:127</a></div></div>
2019-06-13 15:51:12 +02:00
<div class="ttc" id="namespaceoperations__research_html"><div class="ttname"><a href="namespaceoperations__research.html">operations_research</a></div><div class="ttdoc">Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in c...</div><div class="ttdef"><b>Definition:</b> <a href="christofides_8h_source.html#l00033">christofides.h:33</a></div></div>
2019-06-13 15:36:14 +02:00
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_a553d0693bed2f847684666077241647e"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#a553d0693bed2f847684666077241647e">operations_research::HamiltonianPathSolver::ChangeCostMatrix</a></div><div class="ttdeci">void ChangeCostMatrix(CostFunction cost)</div><div class="ttdoc">Replaces the cost matrix while avoiding re-allocating memory.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00627">hamiltonian_path.h:627</a></div></div>
<div class="ttc" id="classoperations__research_1_1PruningHamiltonianSolver_html_a2857abdd40d541b03ad21bd053b0ac54"><div class="ttname"><a href="classoperations__research_1_1PruningHamiltonianSolver.html#a2857abdd40d541b03ad21bd053b0ac54">operations_research::PruningHamiltonianSolver::Integer</a></div><div class="ttdeci">uint32 Integer</div><div class="ttdoc">PruningHamiltonianSolver computes a minimum Hamiltonian path from node 0 over a graph defined by a co...</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00892">hamiltonian_path.h:892</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_ab6cacc30b3640c31b723e42570c73bd4"><div class="ttname"><a href="classoperations__research_1_1Set.html#ab6cacc30b3640c31b723e42570c73bd4">operations_research::Set::begin</a></div><div class="ttdeci">ElementIterator&lt; Set &gt; begin() const</div><div class="ttdoc">STL iterator-related member functions.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00198">hamiltonian_path.h:198</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_a1e754bd18247e695674bbb1a3d1187f3"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#a1e754bd18247e695674bbb1a3d1187f3">operations_research::HamiltonianPathSolver::HamiltonianPathSolver</a></div><div class="ttdeci">HamiltonianPathSolver(CostFunction cost)</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00606">hamiltonian_path.h:606</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_ab5f0b45dfc80e6bddba92ea7dc8c018e"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#ab5f0b45dfc80e6bddba92ea7dc8c018e">operations_research::LatticeMemoryManager::Init</a></div><div class="ttdeci">void Init(int max_card)</div><div class="ttdoc">Reserves memory and fills in the data necessary to access memory.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00357">hamiltonian_path.h:357</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a1cfc40ac6c93cea1957a96ea082010ce"><div class="ttname"><a href="classoperations__research_1_1Set.html#a1cfc40ac6c93cea1957a96ea082010ce">operations_research::Set::end</a></div><div class="ttdeci">ElementIterator&lt; Set &gt; end() const</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00201">hamiltonian_path.h:201</a></div></div>
<div class="ttc" id="classoperations__research_1_1PruningHamiltonianSolver_html_aba4aa231b4ea3f9bf71055372a847df7"><div class="ttname"><a href="classoperations__research_1_1PruningHamiltonianSolver.html#aba4aa231b4ea3f9bf71055372a847df7">operations_research::PruningHamiltonianSolver::HamiltonianCost</a></div><div class="ttdeci">CostType HamiltonianCost(int end_node)</div><div class="ttdoc">Returns the cost of the Hamiltonian path from 0 to end_node.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l01005">hamiltonian_path.h:1005</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_aa3639cb771e8dd36bb9092c869cae7c3"><div class="ttname"><a href="classoperations__research_1_1Set.html#aa3639cb771e8dd36bb9092c869cae7c3">operations_research::Set::SingletonRank</a></div><div class="ttdeci">int SingletonRank(Set singleton) const</div><div class="ttdoc">Returns the rank of the singleton's element in the calling Set.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00192">hamiltonian_path.h:192</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_a6d4e7053b1ca9bb72ca86712ba83ed56"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#a6d4e7053b1ca9bb72ca86712ba83ed56">operations_research::HamiltonianPathSolver::BestHamiltonianPathEndNode</a></div><div class="ttdeci">int BestHamiltonianPathEndNode()</div><div class="ttdoc">Returns the end-node that yields the shortest Hamiltonian path of all shortest Hamiltonian path from ...</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00830">hamiltonian_path.h:830</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a2eb0206e8f324178feddb08668851373"><div class="ttname"><a href="classoperations__research_1_1Set.html#a2eb0206e8f324178feddb08668851373">operations_research::Set::IntegerType</a></div><div class="ttdeci">Integer IntegerType</div><div class="ttdoc">Make this visible to classes using this class.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00130">hamiltonian_path.h:130</a></div></div>
<div class="ttc" id="classoperations__research_1_1SetRangeIterator_html_ac33a8fa2bd3858cb38ac4aa7027b14f3"><div class="ttname"><a href="classoperations__research_1_1SetRangeIterator.html#ac33a8fa2bd3858cb38ac4aa7027b14f3">operations_research::SetRangeIterator::SetType</a></div><div class="ttdeci">SetRange::SetType SetType</div><div class="ttdoc">Make the parameter types visible to SetRangeWithCardinality.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00226">hamiltonian_path.h:226</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html_a7c8e0f6e664b391264f519adfeb7eae2"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html#a7c8e0f6e664b391264f519adfeb7eae2">operations_research::LatticeMemoryManager::SetValueAtOffset</a></div><div class="ttdeci">void SetValueAtOffset(uint64 offset, CostType value)</div><div class="ttdoc">Memorizes 'value' at 'offset'.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00323">hamiltonian_path.h:323</a></div></div>
<div class="ttc" id="classoperations__research_1_1Set_html_a25fd2252df71c9531341ea392d639b06"><div class="ttname"><a href="classoperations__research_1_1Set.html#a25fd2252df71c9531341ea392d639b06">operations_research::Set::Contains</a></div><div class="ttdeci">bool Contains(int n) const</div><div class="ttdoc">Returns true if the calling set contains element n.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00162">hamiltonian_path.h:162</a></div></div>
<div class="ttc" id="classoperations__research_1_1LatticeMemoryManager_html"><div class="ttname"><a href="classoperations__research_1_1LatticeMemoryManager.html">operations_research::LatticeMemoryManager</a></div><div class="ttdoc">The Dynamic Programming (DP) algorithm memorizes the values f(set, node) for node in set,...</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00291">hamiltonian_path.h:291</a></div></div>
<div class="ttc" id="classoperations__research_1_1ElementIterator_html_a423bc77da7c559bad4f7da6275a1ed3b"><div class="ttname"><a href="classoperations__research_1_1ElementIterator.html#a423bc77da7c559bad4f7da6275a1ed3b">operations_research::ElementIterator::operator!=</a></div><div class="ttdeci">bool operator!=(const ElementIterator &amp;other) const</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00107">hamiltonian_path.h:107</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_af71c1510258301efccfc6e948ea06a82"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#af71c1510258301efccfc6e948ea06a82">operations_research::HamiltonianPathSolver::VerifiesTriangleInequality</a></div><div class="ttdeci">bool VerifiesTriangleInequality()</div><div class="ttdoc">Returns true if the cost matrix verifies the triangle inequality.</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00809">hamiltonian_path.h:809</a></div></div>
<div class="ttc" id="classoperations__research_1_1PruningHamiltonianSolver_html"><div class="ttname"><a href="classoperations__research_1_1PruningHamiltonianSolver.html">operations_research::PruningHamiltonianSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00876">hamiltonian_path.h:876</a></div></div>
<div class="ttc" id="classoperations__research_1_1HamiltonianPathSolver_html_aa5992cec63596c5d6c2ed51fc4f7c9c6"><div class="ttname"><a href="classoperations__research_1_1HamiltonianPathSolver.html#aa5992cec63596c5d6c2ed51fc4f7c9c6">operations_research::HamiltonianPathSolver::Integer</a></div><div class="ttdeci">uint32 Integer</div><div class="ttdoc">HamiltonianPathSolver computes a minimum Hamiltonian path starting at node 0 over a graph defined by ...</div><div class="ttdef"><b>Definition:</b> <a href="hamiltonian__path_8h_source.html#l00475">hamiltonian_path.h:475</a></div></div>
</div><!-- fragment --></div><!-- contents -->
2019-07-12 13:25:23 -07:00
</div><!-- doc-content -->
2019-06-13 15:36:14 +02:00
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>