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

111 lines
103 KiB
HTML
Raw Normal View History

2019-06-13 15:51:12 +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:51:12 +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:51:12 +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:51:12 +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>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</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('util_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
2019-06-13 15:51:12 +02:00
<div class="header">
<div class="headertitle">
<div class="title">util.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="util_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="comment">// A collections of utilities for the Graph classes in ./graph.h.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#ifndef UTIL_GRAPH_UTIL_H_</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define UTIL_GRAPH_UTIL_H_</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;ortools/base/hash.h&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">
<div class="ttc" id="namespaceutil_html_ad7986b01cf61a31c09a27b4a97db6a83"><div class="ttname"><a href="namespaceutil.html#ad7986b01cf61a31c09a27b4a97db6a83">util::IsValidPermutation</a></div><div class="ttdeci">bool IsValidPermutation(const std::vector&lt; int &gt; &amp;v)</div><div class="ttdoc">Returns true iff the given vector is a permutation of [0..size()-1].</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00143">util.h:143</a></div></div>
<div class="ttc" id="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_html"><div class="ttname"><a href="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph.html">util::UndirectedAdjacencyListsOfDirectedGraph</a></div><div class="ttdoc">This can be used to view a directed graph (that supports reverse arcs) from graph....</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00098">util.h:98</a></div></div>
<div class="ttc" id="namespaceutil_html"><div class="ttname"><a href="namespaceutil.html">util</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="connected__components_8h_source.html#l00056">connected_components.h:56</a></div></div>
<div class="ttc" id="classDenseConnectedComponentsFinder_html_a46780e194c525fa9853fa899d69b4340"><div class="ttname"><a href="classDenseConnectedComponentsFinder.html#a46780e194c525fa9853fa899d69b4340">DenseConnectedComponentsFinder::SetNumberOfNodes</a></div><div class="ttdeci">void SetNumberOfNodes(int num_nodes)</div><div class="ttdoc">Sets the number of nodes in the graph.</div></div>
<div class="ttc" id="namespaceutil_html_a8a06031908a024a50dbdddc394a22490"><div class="ttname"><a href="namespaceutil.html#a8a06031908a024a50dbdddc394a22490">util::RemoveSelfArcsAndDuplicateArcs</a></div><div class="ttdeci">std::unique_ptr&lt; Graph &gt; RemoveSelfArcsAndDuplicateArcs(const Graph &amp;graph)</div><div class="ttdoc">Returns a copy of &quot;graph&quot;, without self-arcs and duplicate arcs.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00324">util.h:324</a></div></div>
<div class="ttc" id="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_1_1AdjacencyListIterator_html_a9c411230b6cd51ca80cb31a1f8387ae8"><div class="ttname"><a href="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_1_1AdjacencyListIterator.html#a9c411230b6cd51ca80cb31a1f8387ae8">util::UndirectedAdjacencyListsOfDirectedGraph::AdjacencyListIterator::operator *</a></div><div class="ttdeci">Graph::NodeIndex operator *() const</div><div class="ttdoc">Overwrite operator* to return the heads of the arcs.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00109">util.h:109</a></div></div>
<div class="ttc" id="namespaceutil_html_ae76339cb2dcd3bc05ad762146f91fdda"><div class="ttname"><a href="namespaceutil.html#ae76339cb2dcd3bc05ad762146f91fdda">util::Graph</a></div><div class="ttdeci">ListGraph Graph</div><div class="ttdoc">Defining the simplest Graph interface as Graph for convenience.</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l02358">graph.h:2358</a></div></div>
<div class="ttc" id="namespaceutil_html_ae469c559688b92f36bae2788c2e6063e"><div class="ttname"><a href="namespaceutil.html#ae469c559688b92f36bae2788c2e6063e">util::ComputeOnePossibleReverseArcMapping</a></div><div class="ttdeci">std::vector&lt; int &gt; ComputeOnePossibleReverseArcMapping(const Graph &amp;graph, bool die_if_not_symmetric)</div><div class="ttdoc">Returns a vector representing a mapping from arcs to arcs such that each arc is mapped to another arc...</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00382">util.h:382</a></div></div>
<div class="ttc" id="classutil_1_1BaseGraph_html_a0f551c921fa0b5aaa334a6e36f61db4a"><div class="ttname"><a href="classutil_1_1BaseGraph.html#a0f551c921fa0b5aaa334a6e36f61db4a">util::BaseGraph::num_nodes</a></div><div class="ttdeci">NodeIndexType num_nodes() const</div><div class="ttdoc">Returns the number of valid nodes in the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l00201">graph.h:201</a></div></div>
<div class="ttc" id="classDenseConnectedComponentsFinder_html"><div class="ttname"><a href="classDenseConnectedComponentsFinder.html">DenseConnectedComponentsFinder</a></div><div class="ttdoc">NOTE(user): The rest of the functions below should also be in namespace util, but for historical reas...</div><div class="ttdef"><b>Definition:</b> <a href="connected__components_8h_source.html#l00081">connected_components.h:81</a></div></div>
<div class="ttc" id="namespaceutil_html_a6b37593970a26f5c88b3d2ea9acea9d2"><div class="ttname"><a href="namespaceutil.html#a6b37593970a26f5c88b3d2ea9acea9d2">util::GraphHasDuplicateArcs</a></div><div class="ttdeci">bool GraphHasDuplicateArcs(const Graph &amp;graph)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00195">util.h:195</a></div></div>
<div class="ttc" id="classutil_1_1ListGraph_html_aba03f198f690155bca2ab23b039cea54"><div class="ttname"><a href="classutil_1_1ListGraph.html#aba03f198f690155bca2ab23b039cea54">util::ListGraph::Tail</a></div><div class="ttdeci">NodeIndexType Tail(ArcIndexType arc) const</div><div class="ttdoc">Returns the tail/head of a valid arc.</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l01107">graph.h:1107</a></div></div>
<div class="ttc" id="namespaceutil_html_a13f0e8f7e15873600cf8e395958c71e1"><div class="ttname"><a href="namespaceutil.html#a13f0e8f7e15873600cf8e395958c71e1">util::GetConnectedComponents</a></div><div class="ttdeci">std::vector&lt; int &gt; GetConnectedComponents(int num_nodes, const UndirectedGraph &amp;graph)</div><div class="ttdoc">Finds the connected components of the graph, using BFS internally.</div><div class="ttdef"><b>Definition:</b> <a href="connected__components_8h_source.html#l00289">connected_components.h:289</a></div></div>
<div class="ttc" id="namespaceutil_html_a97311561fd1f01e9f35b2f7ce18b0af3"><div class="ttname"><a href="namespaceutil.html#a97311561fd1f01e9f35b2f7ce18b0af3">util::GraphIsWeaklyConnected</a></div><div class="ttdeci">bool GraphIsWeaklyConnected(const Graph &amp;graph)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00242">util.h:242</a></div></div>
<div class="ttc" id="connected__components_8h_html"><div class="ttname"><a href="connected__components_8h.html">connected_components.h</a></div></div>
<div class="ttc" id="iterators_8h_html"><div class="ttname"><a href="iterators_8h.html">iterators.h</a></div></div>
<div class="ttc" id="namespaceutil_html_ac4af76993c891ee4ad507783edec2a1c"><div class="ttname"><a href="namespaceutil.html#ac4af76993c891ee4ad507783edec2a1c">util::GraphHasSelfArcs</a></div><div class="ttdeci">bool GraphHasSelfArcs(const Graph &amp;graph)</div><div class="ttdoc">Here's a set of simple diagnosis tools.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00187">util.h:187</a></div></div>
<div class="ttc" id="namespaceutil_html_acfecdce43e9933bde2a94fd879f12f5f"><div class="ttname"><a href="namespaceutil.html#acfecdce43e9933bde2a94fd879f12f5f">util::RemapGraph</a></div><div class="ttdeci">std::unique_ptr&lt; Graph &gt; RemapGraph(const Graph &amp;graph, const std::vector&lt; int &gt; &amp;new_node_index)</div><div class="ttdoc">Creates a remapped copy of graph &quot;graph&quot;, where node i becomes node new_node_index[i].</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00271">util.h:271</a></div></div>
<div class="ttc" id="namespaceutil_html_aa9fb4c9a176acaf72053b11727436e9e"><div class="ttname"><a href="namespaceutil.html#aa9fb4c9a176acaf72053b11727436e9e">util::IsSubsetOf0N</a></div><div class="ttdeci">bool IsSubsetOf0N(const std::vector&lt; int &gt; &amp;v, int n)</div><div class="ttdoc">Returns true iff the given vector is a subset of [0..n-1], i.e.</div></div>
<div class="ttc" id="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_1_1AdjacencyListIterator_html"><div class="ttname"><a href="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_1_1AdjacencyListIterator.html">util::UndirectedAdjacencyListsOfDirectedGraph::AdjacencyListIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00104">util.h:104</a></div></div>
<div class="ttc" id="namespaceutil_html_ad1df170a504d335462a1104a942e6069"><div class="ttname"><a href="namespaceutil.html#ad1df170a504d335462a1104a942e6069">util::GetSubgraphOfNodes</a></div><div class="ttdeci">std::unique_ptr&lt; Graph &gt; GetSubgraphOfNodes(const Graph &amp;graph, const std::vector&lt; int &gt; &amp;nodes)</div><div class="ttdoc">Gets the induced subgraph of &quot;graph&quot; restricted to the nodes in &quot;nodes&quot;: the resulting graph will hav...</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00290">util.h:290</a></div></div>
<div class="ttc" id="classutil_1_1StaticGraph_html"><div class="ttname"><a href="classutil_1_1StaticGraph.html">util::StaticGraph</a></div><div class="ttdoc">Most efficient implementation of a graph without reverse arcs:</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l00396">graph.h:396</a></div></div>
<div class="ttc" id="namespaceutil_html_a784b483eeae1b49164a8a02fe9c0d3ba"><div class="ttname"><a href="namespaceutil.html#a784b483eeae1b49164a8a02fe9c0d3ba">util::GraphIsSymmetric</a></div><div class="ttdeci">bool GraphIsSymmetric(const Graph &amp;graph)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00213">util.h:213</a></div></div>
<div class="ttc" id="classutil_1_1BaseGraph_html_a0eba6e5899924388644dfa2258ae8929"><div class="ttname"><a href="classutil_1_1BaseGraph.html#a0eba6e5899924388644dfa2258ae8929">util::BaseGraph&lt; NodeIndexType, ArcIndexType, false &gt;::ArcIndex</a></div><div class="ttdeci">ArcIndexType ArcIndex</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l00190">graph.h:190</a></div></div>
<div class="ttc" id="classutil_1_1ListGraph_html_ad7d3d076d3c154d89f1eda855a34b487"><div class="ttname"><a href="classutil_1_1ListGraph.html#ad7d3d076d3c154d89f1eda855a34b487">util::ListGraph::Head</a></div><div class="ttdeci">NodeIndexType Head(ArcIndexType arc) const</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l01114">graph.h:1114</a></div></div>
<div class="ttc" id="classutil_1_1ListGraph_html_ab63770fa993b9347586d2852b841bdc2"><div class="ttname"><a href="classutil_1_1ListGraph.html#ab63770fa993b9347586d2852b841bdc2">util::ListGraph::OutgoingArcs</a></div><div class="ttdeci">BeginEndWrapper&lt; OutgoingArcIterator &gt; OutgoingArcs(NodeIndexType node) const</div><div class="ttdoc">Allows to iterate over the forward arcs that verify Tail(arc) == node.</div></div>
<div class="ttc" id="classDenseConnectedComponentsFinder_html_a5090a0bdc205d23778d2b8a742f5c5fd"><div class="ttname"><a href="classDenseConnectedComponentsFinder.html#a5090a0bdc205d23778d2b8a742f5c5fd">DenseConnectedComponentsFinder::GetNumberOfComponents</a></div><div class="ttdeci">int GetNumberOfComponents() const</div><div class="ttdef"><b>Definition:</b> <a href="connected__components_8h_source.html#l00095">connected_components.h:95</a></div></div>
<div class="ttc" id="namespaceutil_html_adbb18bcb2f9d64cbbaeb57c328f57e7b"><div class="ttname"><a href="namespaceutil.html#adbb18bcb2f9d64cbbaeb57c328f57e7b">util::PathHasCycle</a></div><div class="ttdeci">bool PathHasCycle(const Graph &amp;graph, const std::vector&lt; int &gt; &amp;arc_path)</div><div class="ttdoc">Returns true iff the given path contains a cycle.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00371">util.h:371</a></div></div>
<div class="ttc" id="graph_8h_html"><div class="ttname"><a href="graph_8h.html">graph.h</a></div></div>
<div class="ttc" id="classutil_1_1BaseGraph_html_a32ba4a5ca9a4b89f750eb2dc56518b02"><div class="ttname"><a href="classutil_1_1BaseGraph.html#a32ba4a5ca9a4b89f750eb2dc56518b02">util::BaseGraph::AllNodes</a></div><div class="ttdeci">IntegerRange&lt; NodeIndex &gt; AllNodes() const</div><div class="ttdoc">Allows nice range-based for loop: for (const NodeIndex node : graph.AllNodes()) { ....</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l00929">graph.h:929</a></div></div>
<div class="ttc" id="classutil_1_1BaseGraph_html_aefb468e4d4a3128c91b3bad9f5b314c8"><div class="ttname"><a href="classutil_1_1BaseGraph.html#aefb468e4d4a3128c91b3bad9f5b314c8">util::BaseGraph::num_arcs</a></div><div class="ttdeci">ArcIndexType num_arcs() const</div><div class="ttdoc">Returns the number of valid arcs in the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l00204">graph.h:204</a></div></div>
<div class="ttc" id="namespaceutil_html_ab34783e729bb5fc99042893f6bfcbb2f"><div class="ttname"><a href="namespaceutil.html#ab34783e729bb5fc99042893f6bfcbb2f">util::GetWeaklyConnectedComponents</a></div><div class="ttdeci">std::vector&lt; int &gt; GetWeaklyConnectedComponents(const Graph &amp;graph)</div><div class="ttdoc">Computes the weakly connected components of a directed graph that provides the OutgoingOrOppositeInco...</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00132">util.h:132</a></div></div>
<div class="ttc" id="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_1_1AdjacencyListIterator_html_a12996aa34ae37ed7efa6fb2eca4ff54e"><div class="ttname"><a href="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_1_1AdjacencyListIterator.html#a12996aa34ae37ed7efa6fb2eca4ff54e">util::UndirectedAdjacencyListsOfDirectedGraph::AdjacencyListIterator::AdjacencyListIterator</a></div><div class="ttdeci">AdjacencyListIterator(const Graph &amp;graph, ArcIterator &amp;&amp;arc_it)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00106">util.h:106</a></div></div>
<div class="ttc" id="namespaceoperations__research_html_a31d858394c5eed1fa21edc3da47047c1"><div class="ttname"><a href="namespaceoperations__research.html#a31d858394c5eed1fa21edc3da47047c1">operations_research::ArcIndex</a></div><div class="ttdeci">int32 ArcIndex</div><div class="ttdef"><b>Definition:</b> <a href="ebert__graph_8h_source.html#l00201">ebert_graph.h:201</a></div></div>
<div class="ttc" id="classutil_1_1BaseGraph_html_adb271cf4bcf2de5b5bbe300d7054af29"><div class="ttname"><a href="classutil_1_1BaseGraph.html#adb271cf4bcf2de5b5bbe300d7054af29">util::BaseGraph&lt; NodeIndexType, ArcIndexType, false &gt;::NodeIndex</a></div><div class="ttdeci">NodeIndexType NodeIndex</div><div class="ttdoc">Typedef so you can use Graph::NodeIndex and Graph::ArcIndex to be generic but also to improve the rea...</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l00189">graph.h:189</a></div></div>
<div class="ttc" id="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_html_aa3254dffa224cf75efab4e3b034b39d8"><div class="ttname"><a href="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph.html#aa3254dffa224cf75efab4e3b034b39d8">util::UndirectedAdjacencyListsOfDirectedGraph::UndirectedAdjacencyListsOfDirectedGraph</a></div><div class="ttdeci">UndirectedAdjacencyListsOfDirectedGraph(const Graph &amp;graph)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00100">util.h:100</a></div></div>
<div class="ttc" id="classDenseConnectedComponentsFinder_html_aba450cf3f16d9386d043c4354a19a4aa"><div class="ttname"><a href="classDenseConnectedComponentsFinder.html#aba450cf3f16d9386d043c4354a19a4aa">DenseConnectedComponentsFinder::AddEdge</a></div><div class="ttdeci">void AddEdge(int node1, int node2)</div><div class="ttdoc">The main API is the same as ConnectedComponentsFinder (below): see the homonymous functions there.</div></div>
<div class="ttc" id="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_html_a6402dd9e7851af22b907c0af3e240dce"><div class="ttname"><a href="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph.html#a6402dd9e7851af22b907c0af3e240dce">util::UndirectedAdjacencyListsOfDirectedGraph::ArcIterator</a></div><div class="ttdeci">Graph::OutgoingOrOppositeIncomingArcIterator ArcIterator</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00103">util.h:103</a></div></div>
<div class="ttc" id="namespaceutil_html_a06fa201576c927d92657e090fa86bfdb"><div class="ttname"><a href="namespaceutil.html#a06fa201576c927d92657e090fa86bfdb">util::RemoveCyclesFromPath</a></div><div class="ttdeci">void RemoveCyclesFromPath(const Graph &amp;graph, std::vector&lt; int &gt; *arc_path)</div><div class="ttdoc">Given an arc path, changes it to a sub-path with the same source and destination but without any cycl...</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00346">util.h:346</a></div></div>
<div class="ttc" id="namespaceutil_html_a0ed748741b17dad9e6cc485728bb0043"><div class="ttname"><a href="namespaceutil.html#a0ed748741b17dad9e6cc485728bb0043">util::CopyGraph</a></div><div class="ttdeci">std::unique_ptr&lt; Graph &gt; CopyGraph(const Graph &amp;graph)</div><div class="ttdoc">Returns a fresh copy of a given graph.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00258">util.h:258</a></div></div>
<div class="ttc" id="namespaceoperations__research_html_a0e629e35bfa311b31dd7f5065eb834bb"><div class="ttname"><a href="namespaceoperations__research.html#a0e629e35bfa311b31dd7f5065eb834bb">operations_research::NodeIndex</a></div><div class="ttdeci">int32 NodeIndex</div><div class="ttdoc">Standard instantiation of ForwardEbertGraph (named 'ForwardStarGraph') of EbertGraph (named 'StarGrap...</div><div class="ttdef"><b>Definition:</b> <a href="ebert__graph_8h_source.html#l00192">ebert_graph.h:192</a></div></div>
<div class="ttc" id="classutil_1_1ListGraph_html"><div class="ttname"><a href="classutil_1_1ListGraph.html">util::ListGraph</a></div><div class="ttdoc">Basic graph implementation without reverse arc.</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l00297">graph.h:297</a></div></div>
<div class="ttc" id="classutil_1_1StaticGraph_html_a10d877b38553e9d2d0ce6fcfc4427df4"><div class="ttname"><a href="classutil_1_1StaticGraph.html#a10d877b38553e9d2d0ce6fcfc4427df4">util::StaticGraph::AddArc</a></div><div class="ttdeci">ArcIndexType AddArc(NodeIndexType tail, NodeIndexType head)</div><div class="ttdef"><b>Definition:</b> <a href="graph_8h_source.html#l01283">graph.h:1283</a></div></div>
<div class="ttc" id="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph_html_a8d68da65b93ce8e85c66d431858897bb"><div class="ttname"><a href="classutil_1_1UndirectedAdjacencyListsOfDirectedGraph.html#a8d68da65b93ce8e85c66d431858897bb">util::UndirectedAdjacencyListsOfDirectedGraph::operator[]</a></div><div class="ttdeci">BeginEndWrapper&lt; AdjacencyListIterator &gt; operator[](int node) const</div><div class="ttdoc">Returns a pseudo-container of all the nodes adjacent to &quot;node&quot;.</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00118">util.h:118</a></div></div>
</div><!-- fragment --></div><!-- contents -->
2019-07-12 13:25:23 -07:00
</div><!-- doc-content -->
2019-06-13 15:51:12 +02:00
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>