222 lines
14 KiB
HTML
222 lines
14 KiB
HTML
<!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"/>-->
|
||
<link rel="stylesheet" type="text/css" href="ortools.css" title="default" media="screen,print" />
|
||
<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">
|
||
<span id="sfml">OR-Tools 7.2</span>
|
||
</div>
|
||
</div>
|
||
<link rel="icon" href="https://developers.google.com/optimization/images/orLogo.png">
|
||
<div id="content">
|
||
<!-- Generated by Doxygen 1.8.15 -->
|
||
<div id="navrow1" class="tabs">
|
||
<ul class="tablist">
|
||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||
<li><a href="files.html"><span>Files</span></a></li>
|
||
</ul>
|
||
</div>
|
||
</div><!-- top -->
|
||
<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&dn=gpl-2.0.txt GPL-v2 */
|
||
$(document).ready(function(){initNavTree('classoperations__research_1_1PruningHamiltonianSolver.html','');});
|
||
/* @license-end */
|
||
</script>
|
||
<div id="doc-content">
|
||
<div class="header">
|
||
<div class="summary">
|
||
<a href="#pub-types">Public Types</a> |
|
||
<a href="#pub-methods">Public Member Functions</a> |
|
||
<a href="classoperations__research_1_1PruningHamiltonianSolver-members.html">List of all members</a> </div>
|
||
<div class="headertitle">
|
||
<div class="title">operations_research::PruningHamiltonianSolver< CostType, CostFunction > Class Template Reference</div> </div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||
<div class="textblock"><h3>template<typename CostType, typename CostFunction><br />
|
||
class operations_research::PruningHamiltonianSolver< CostType, CostFunction ></h3>
|
||
|
||
|
||
<p class="definition">Definition at line <a class="el" href="hamiltonian__path_8h_source.html#l00876">876</a> of file <a class="el" href="hamiltonian__path_8h_source.html">hamiltonian_path.h</a>.</p>
|
||
</div><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
|
||
Public Types</h2></td></tr>
|
||
<tr class="memitem:a2857abdd40d541b03ad21bd053b0ac54"><td class="memItemLeft" align="right" valign="top">typedef uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#a2857abdd40d541b03ad21bd053b0ac54">Integer</a></td></tr>
|
||
<tr class="memdesc:a2857abdd40d541b03ad21bd053b0ac54"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">PruningHamiltonianSolver</a> computes a minimum Hamiltonian path from node 0 over a graph defined by a cost matrix, with pruning. <a href="#a2857abdd40d541b03ad21bd053b0ac54">More...</a><br /></td></tr>
|
||
<tr class="separator:a2857abdd40d541b03ad21bd053b0ac54"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac958d277ef05676ff46e2a48c77e0925"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classoperations__research_1_1Set.html">Set</a>< <a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#a2857abdd40d541b03ad21bd053b0ac54">Integer</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#ac958d277ef05676ff46e2a48c77e0925">NodeSet</a></td></tr>
|
||
<tr class="separator:ac958d277ef05676ff46e2a48c77e0925"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
||
Public Member Functions</h2></td></tr>
|
||
<tr class="memitem:a247ca43d1874d57d28e64bba65c8eeb2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#a247ca43d1874d57d28e64bba65c8eeb2">PruningHamiltonianSolver</a> (CostFunction cost)</td></tr>
|
||
<tr class="separator:a247ca43d1874d57d28e64bba65c8eeb2"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae90975766e34a4bc392f441c85ab0927"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#ae90975766e34a4bc392f441c85ab0927">PruningHamiltonianSolver</a> (int num_nodes, CostFunction cost)</td></tr>
|
||
<tr class="separator:ae90975766e34a4bc392f441c85ab0927"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aba4aa231b4ea3f9bf71055372a847df7"><td class="memItemLeft" align="right" valign="top">CostType </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#aba4aa231b4ea3f9bf71055372a847df7">HamiltonianCost</a> (int end_node)</td></tr>
|
||
<tr class="memdesc:aba4aa231b4ea3f9bf71055372a847df7"><td class="mdescLeft"> </td><td class="mdescRight">Returns the cost of the Hamiltonian path from 0 to end_node. <a href="#aba4aa231b4ea3f9bf71055372a847df7">More...</a><br /></td></tr>
|
||
<tr class="separator:aba4aa231b4ea3f9bf71055372a847df7"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table>
|
||
<h2 class="groupheader">Member Typedef Documentation</h2>
|
||
<a id="a2857abdd40d541b03ad21bd053b0ac54"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a2857abdd40d541b03ad21bd053b0ac54">◆ </a></span>Integer</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename CostType , typename CostFunction > </div>
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">typedef uint32 <a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">operations_research::PruningHamiltonianSolver</a>< CostType, CostFunction >::<a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#a2857abdd40d541b03ad21bd053b0ac54">Integer</a></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">PruningHamiltonianSolver</a> computes a minimum Hamiltonian path from node 0 over a graph defined by a cost matrix, with pruning. </p>
|
||
<p>For each search state, <a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">PruningHamiltonianSolver</a> computes the lower bound for the future overall TSP cost, and stops further search if it exceeds the current best solution. For the heuristics to determine future lower bound over visited nodeset S and last visited node k, the cost of minimum spanning tree of (V \ S) ∪ {k} is calculated and added to the current cost(S). The cost of MST is guaranteed to be smaller than or equal to the cost of Hamiltonian path, because Hamiltonian path is a spanning tree itself. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000035">Todo:</a></b></dt><dd>(user): Use generic map-based cache instead of lattice-based one.</dd></dl>
|
||
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000036">Todo:</a></b></dt><dd>(user): Use SaturatedArithmetic for better precision. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="hamiltonian__path_8h_source.html#l00892">892</a> of file <a class="el" href="hamiltonian__path_8h_source.html">hamiltonian_path.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ac958d277ef05676ff46e2a48c77e0925"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac958d277ef05676ff46e2a48c77e0925">◆ </a></span>NodeSet</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename CostType , typename CostFunction > </div>
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">typedef <a class="el" href="classoperations__research_1_1Set.html">Set</a><<a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#a2857abdd40d541b03ad21bd053b0ac54">Integer</a>> <a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">operations_research::PruningHamiltonianSolver</a>< CostType, CostFunction >::<a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html#ac958d277ef05676ff46e2a48c77e0925">NodeSet</a></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="hamiltonian__path_8h_source.html#l00893">893</a> of file <a class="el" href="hamiltonian__path_8h_source.html">hamiltonian_path.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||
<a id="a247ca43d1874d57d28e64bba65c8eeb2"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a247ca43d1874d57d28e64bba65c8eeb2">◆ </a></span>PruningHamiltonianSolver() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename CostType , typename CostFunction > </div>
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">operations_research::PruningHamiltonianSolver</a>< CostType, CostFunction >::<a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">PruningHamiltonianSolver</a> </td>
|
||
<td>(</td>
|
||
<td class="paramtype">CostFunction </td>
|
||
<td class="paramname"><em>cost</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="hamiltonian__path_8h_source.html#l00931">931</a> of file <a class="el" href="hamiltonian__path_8h_source.html">hamiltonian_path.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ae90975766e34a4bc392f441c85ab0927"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ae90975766e34a4bc392f441c85ab0927">◆ </a></span>PruningHamiltonianSolver() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename CostType , typename CostFunction > </div>
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname"><a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">operations_research::PruningHamiltonianSolver</a>< CostType, CostFunction >::<a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">PruningHamiltonianSolver</a> </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>num_nodes</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">CostFunction </td>
|
||
<td class="paramname"><em>cost</em> </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="hamiltonian__path_8h_source.html#l00936">936</a> of file <a class="el" href="hamiltonian__path_8h_source.html">hamiltonian_path.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Member Function Documentation</h2>
|
||
<a id="aba4aa231b4ea3f9bf71055372a847df7"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aba4aa231b4ea3f9bf71055372a847df7">◆ </a></span>HamiltonianCost()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<div class="memtemplate">
|
||
template<typename CostType , typename CostFunction > </div>
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">CostType <a class="el" href="classoperations__research_1_1PruningHamiltonianSolver.html">operations_research::PruningHamiltonianSolver</a>< CostType, CostFunction >::HamiltonianCost </td>
|
||
<td>(</td>
|
||
<td class="paramtype">int </td>
|
||
<td class="paramname"><em>end_node</em></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Returns the cost of the Hamiltonian path from 0 to end_node. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="hamiltonian__path_8h_source.html#l01005">1005</a> of file <a class="el" href="hamiltonian__path_8h_source.html">hamiltonian_path.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||
<li><a class="el" href="hamiltonian__path_8h_source.html">hamiltonian_path.h</a></li>
|
||
</ul>
|
||
</div><!-- contents -->
|
||
</div><!-- doc-content -->
|
||
</div>
|
||
<div id="footer-container">
|
||
<div id="footer">
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|