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

173 lines
194 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>
<li class="current"><a href="files.html"><span>Files</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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_a7cc1eeded8f693d0da6c729bc88c45a.html">ortools</a></li><li class="navelem"><a class="el" href="dir_725f3a5915051842f84e3ea508be2a62.html">graph</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">max_flow.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="max__flow_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">// An implementation of a push-relabel algorithm for the max flow problem.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// In the following, we consider a graph G = (V,E,s,t) where V denotes the set</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// of nodes (vertices) in the graph, E denotes the set of arcs (edges). s and t</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// denote distinguished nodes in G called source and target. n = |V| denotes the</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// number of nodes in the graph, and m = |E| denotes the number of arcs in the</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// graph.</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">// Each arc (v,w) is associated a capacity c(v,w).</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// A flow is a function from E to R such that:</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// a) f(
<div class="ttc" id="classoperations__research_1_1MaxFlowStatusClass_html_aa3fbead787cfdfac0b9e7b217e06cbfba288fa96697726e05e63cc28b56c57d36"><div class="ttname"><a href="classoperations__research_1_1MaxFlowStatusClass.html#aa3fbead787cfdfac0b9e7b217e06cbfba288fa96697726e05e63cc28b56c57d36">operations_research::MaxFlowStatusClass::INT_OVERFLOW</a></div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00305">max_flow.h:305</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a92fbc9576b457ceddeb21395181b3273"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a92fbc9576b457ceddeb21395181b3273">operations_research::GenericMaxFlow::check_result_</a></div><div class="ttdeci">bool check_result_</div><div class="ttdoc">Whether or not we check the result.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00638">max_flow.h:638</a></div></div>
<div class="ttc" id="classoperations__research_1_1PriorityQueueWithRestrictedPush_html"><div class="ttname"><a href="classoperations__research_1_1PriorityQueueWithRestrictedPush.html">operations_research::PriorityQueueWithRestrictedPush</a></div><div class="ttdoc">Specific but efficient priority queue implementation.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00264">max_flow.h:264</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html">operations_research::SimpleMaxFlow</a></div><div class="ttdoc">A simple and efficient max-cost flow interface.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00152">max_flow.h:152</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_abaa264696c6c702be6b4a54c5b7947b8"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#abaa264696c6c702be6b4a54c5b7947b8">operations_research::GenericMaxFlow::IncomingArcIterator</a></div><div class="ttdeci">Graph::IncomingArcIterator IncomingArcIterator</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00322">max_flow.h:322</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a553204b2dccf205ff9c00c3c589d309b"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a553204b2dccf205ff9c00c3c589d309b">operations_research::SimpleMaxFlow::OptimalFlow</a></div><div class="ttdeci">FlowQuantity OptimalFlow() const</div><div class="ttdoc">Returns the maximum flow we can send from the source to the sink in the last OPTIMAL Solve() context.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a8f83ce5b69d2e3d4cbf314ed6b3d01a6"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a8f83ce5b69d2e3d4cbf314ed6b3d01a6">operations_research::GenericMaxFlow::graph</a></div><div class="ttdeci">const Graph * graph() const</div><div class="ttdoc">Returns the graph associated to the current object.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00338">max_flow.h:338</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_aeeb216a2384f75c7a46cf54de35027d2"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#aeeb216a2384f75c7a46cf54de35027d2">operations_research::GenericMaxFlow::GetSourceNodeIndex</a></div><div class="ttdeci">NodeIndex GetSourceNodeIndex() const</div><div class="ttdoc">Returns the index of the node corresponding to the source of the network.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00346">max_flow.h:346</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ac0e27ffc0885628dfcc430197434c311"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ac0e27ffc0885628dfcc430197434c311">operations_research::GenericMaxFlow::bfs_queue_</a></div><div class="ttdeci">std::vector&lt; NodeIndex &gt; bfs_queue_</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00611">max_flow.h:611</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a643e76aab33e0ee6c13b0b336af05352"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a643e76aab33e0ee6c13b0b336af05352">operations_research::GenericMaxFlow::check_input_</a></div><div class="ttdeci">bool check_input_</div><div class="ttdoc">Whether or not we check the input, this is a small price to pay for robustness.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00634">max_flow.h:634</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a0497a8b934a2aa9f7307428736f72522"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a0497a8b934a2aa9f7307428736f72522">operations_research::GenericMaxFlow::SetUseTwoPhaseAlgorithm</a></div><div class="ttdeci">void SetUseTwoPhaseAlgorithm(bool value)</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00418">max_flow.h:418</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a9a357ac0cc6e451b5b1b81a9abdeb49b"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a9a357ac0cc6e451b5b1b81a9abdeb49b">operations_research::GenericMaxFlow::SetArcFlow</a></div><div class="ttdeci">void SetArcFlow(ArcIndex arc, FlowQuantity new_flow)</div><div class="ttdoc">Sets the flow for arc.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ad80ce21a3088b4798da0eae774b0bab6"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ad80ce21a3088b4798da0eae774b0bab6">operations_research::GenericMaxFlow::SetCheckResult</a></div><div class="ttdeci">void SetCheckResult(bool value)</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00420">max_flow.h:420</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a693abc3c55e13dbe2f836e562b5a9c0f"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a693abc3c55e13dbe2f836e562b5a9c0f">operations_research::SimpleMaxFlow::GetSinkSideMinCut</a></div><div class="ttdeci">void GetSinkSideMinCut(std::vector&lt; NodeIndex &gt; *result)</div><div class="ttdoc">Returns the nodes that can reach the sink by non-saturated arcs, the outgoing arcs of this set form a...</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a6881e220a50b6ab95192f7f263b5eee6"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a6881e220a50b6ab95192f7f263b5eee6">operations_research::GenericMaxFlow::node_excess_</a></div><div class="ttdeci">QuantityArray node_excess_</div><div class="ttdoc">An array representing the excess for each node in graph_.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00550">max_flow.h:550</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a7cc8b8045738632185c7c0f82eb9791f"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a7cc8b8045738632185c7c0f82eb9791f">operations_research::GenericMaxFlow::active_node_by_height_</a></div><div class="ttdeci">PriorityQueueWithRestrictedPush&lt; NodeIndex, NodeHeight &gt; active_node_by_height_</div><div class="ttdoc">A priority queue used for managing active nodes in the algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00597">max_flow.h:597</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="classoperations__research_1_1SimpleMaxFlow_html_a177f9e6c8a8c603e3cead358da5d1026"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a177f9e6c8a8c603e3cead358da5d1026">operations_research::SimpleMaxFlow::CreateFlowModelOfLastSolve</a></div><div class="ttdeci">FlowModel CreateFlowModelOfLastSolve()</div><div class="ttdoc">Creates the protocol buffer representation of the problem used by the last Solve() call.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a9662fa5cf2007a62968e6c22fb8a4564"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a9662fa5cf2007a62968e6c22fb8a4564">operations_research::GenericMaxFlow::status</a></div><div class="ttdeci">Status status() const</div><div class="ttdoc">Returns the status of last call to Solve().</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00343">max_flow.h:343</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a8a7acde49c4d55f2eb42e2b6869cdb3da2260e76ea3adc21a9cd21f46f232ebbc"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a8a7acde49c4d55f2eb42e2b6869cdb3da2260e76ea3adc21a9cd21f46f232ebbc">operations_research::SimpleMaxFlow::BAD_INPUT</a></div><div class="ttdoc">The input is inconsistent (bad tail/head/capacity values).</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00192">max_flow.h:192</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a6a160e49372bec143572964e6b19f444"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a6a160e49372bec143572964e6b19f444">operations_research::GenericMaxFlow::CheckInputConsistency</a></div><div class="ttdeci">bool CheckInputConsistency() const</div><div class="ttdoc">Checks the consistency of the input, i.e.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a15c425face4a4d1697c7ba298a727192"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a15c425face4a4d1697c7ba298a727192">operations_research::GenericMaxFlow::Opposite</a></div><div class="ttdeci">ArcIndex Opposite(ArcIndex arc) const</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a2d2ffca7a04ecd2975025cb34a3898cb"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a2d2ffca7a04ecd2975025cb34a3898cb">operations_research::GenericMaxFlow::SaturateOutgoingArcsFromSource</a></div><div class="ttdeci">bool SaturateOutgoingArcsFromSource()</div><div class="ttdoc">Tries to saturate all the outgoing arcs from the source that can reach the sink.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_aaf724f9c00dee72b9b2e510e9e88e13e"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#aaf724f9c00dee72b9b2e510e9e88e13e">operations_research::GenericMaxFlow::node_in_bfs_queue_</a></div><div class="ttdeci">std::vector&lt; bool &gt; node_in_bfs_queue_</div><div class="ttdoc">BFS queue used by the GlobalUpdate() function.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00610">max_flow.h:610</a></div></div>
<div class="ttc" id="classoperations__research_1_1MaxFlowStatusClass_html"><div class="ttname"><a href="classoperations__research_1_1MaxFlowStatusClass.html">operations_research::MaxFlowStatusClass</a></div><div class="ttdoc">We want an enum for the Status of a max flow run, and we want this enum to be scoped under GenericMax...</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00300">max_flow.h:300</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_abaf68b768e58ec738030f02c288d4ee2"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#abaf68b768e58ec738030f02c288d4ee2">operations_research::GenericMaxFlow::ArcIndex</a></div><div class="ttdeci">Graph::ArcIndex ArcIndex</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00318">max_flow.h:318</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a9dbc134de4c5e1d424b49f7000c713f4"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a9dbc134de4c5e1d424b49f7000c713f4">operations_research::GenericMaxFlow::CheckRelabelPrecondition</a></div><div class="ttdeci">bool CheckRelabelPrecondition(NodeIndex node) const</div><div class="ttdoc">Returns true if a precondition for Relabel is met, i.e.</div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a8a7acde49c4d55f2eb42e2b6869cdb3d"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a8a7acde49c4d55f2eb42e2b6869cdb3d">operations_research::SimpleMaxFlow::Status</a></div><div class="ttdeci">Status</div><div class="ttdoc">Solves the problem (finds the maximum flow from the given source to the given sink),...</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00180">max_flow.h:180</a></div></div>
<div class="ttc" id="classoperations__research_1_1MaxFlowStatusClass_html_aa3fbead787cfdfac0b9e7b217e06cbfba9b4b284d9cef8bc7ea112971c14584df"><div class="ttname"><a href="classoperations__research_1_1MaxFlowStatusClass.html#aa3fbead787cfdfac0b9e7b217e06cbfba9b4b284d9cef8bc7ea112971c14584df">operations_research::MaxFlowStatusClass::BAD_INPUT</a></div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00306">max_flow.h:306</a></div></div>
<div class="ttc" id="classoperations__research_1_1MaxFlow_html_a13a87ef36714bce2a634ff7b45b11e12"><div class="ttname"><a href="classoperations__research_1_1MaxFlow.html#a13a87ef36714bce2a634ff7b45b11e12">operations_research::MaxFlow::MaxFlow</a></div><div class="ttdeci">MaxFlow(const StarGraph *graph, NodeIndex source, NodeIndex target)</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00654">max_flow.h:654</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a784643a086180b1755f704d652f564a0"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a784643a086180b1755f704d652f564a0">operations_research::GenericMaxFlow::status_</a></div><div class="ttdeci">Status status_</div><div class="ttdoc">The status of the problem.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00606">max_flow.h:606</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a5a2c545458610cc9b1486ae083708574"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a5a2c545458610cc9b1486ae083708574">operations_research::GenericMaxFlow::Discharge</a></div><div class="ttdeci">void Discharge(NodeIndex node)</div><div class="ttdoc">Discharges an active node node by saturating its admissible adjacent arcs, if any,...</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_aa70e526f9be229e52bf598d9cd0e7406"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#aa70e526f9be229e52bf598d9cd0e7406">operations_research::GenericMaxFlow::Relabel</a></div><div class="ttdeci">void Relabel(NodeIndex node)</div><div class="ttdoc">Relabels a node, i.e.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a3b47bff3c2733b198d34aeaa0cbcfa19"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a3b47bff3c2733b198d34aeaa0cbcfa19">operations_research::GenericMaxFlow::InitializeActiveNodeContainer</a></div><div class="ttdeci">void InitializeActiveNodeContainer()</div><div class="ttdoc">Initializes the container active_nodes_.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a8c16f1156b2e038ca0d3f8ba96490ab5"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a8c16f1156b2e038ca0d3f8ba96490ab5">operations_research::GenericMaxFlow::GetSinkNodeIndex</a></div><div class="ttdeci">NodeIndex GetSinkNodeIndex() const</div><div class="ttdoc">Returns the index of the node corresponding to the sink of the network.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00349">max_flow.h:349</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a5b1cf7943417c669c41dc29547f8cd00"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a5b1cf7943417c669c41dc29547f8cd00">operations_research::GenericMaxFlow::CreateFlowModel</a></div><div class="ttdeci">FlowModel CreateFlowModel()</div><div class="ttdoc">Returns the protocol buffer representation of the current problem.</div></div>
<div class="ttc" id="namespaceoperations__research_html_a5841ff601ab08548afb15c45b2245de7"><div class="ttname"><a href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">operations_research::FlowQuantity</a></div><div class="ttdeci">int64 FlowQuantity</div><div class="ttdef"><b>Definition:</b> <a href="ebert__graph_8h_source.html#l00202">ebert_graph.h:202</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a20139b839cd5764939afc8df968a2484"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a20139b839cd5764939afc8df968a2484">operations_research::GenericMaxFlow::InitializePreflow</a></div><div class="ttdeci">void InitializePreflow()</div><div class="ttdoc">Initializes the preflow to a state that enables to run Refine.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a05eb488b184996513248b0dffca59600"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a05eb488b184996513248b0dffca59600">operations_research::GenericMaxFlow::PushFlowExcessBackToSource</a></div><div class="ttdeci">void PushFlowExcessBackToSource()</div><div class="ttdoc">Clears the flow excess at each node by pushing the flow back to the source:</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_aef5b9fc304666691405861f4caf35f45"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#aef5b9fc304666691405861f4caf35f45">operations_research::GenericMaxFlow::Flow</a></div><div class="ttdeci">FlowQuantity Flow(ArcIndex arc) const</div><div class="ttdoc">Returns the flow on arc using the equations given in the comment on residual_arc_capacity_.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00365">max_flow.h:365</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a8a7acde49c4d55f2eb42e2b6869cdb3da18a3ff25435f10be68329d4b39de4700"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a8a7acde49c4d55f2eb42e2b6869cdb3da18a3ff25435f10be68329d4b39de4700">operations_research::SimpleMaxFlow::POSSIBLE_OVERFLOW</a></div><div class="ttdoc">There is a flow &gt; std::numeric_limits&lt;FlowQuantity&gt;::max().</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00190">max_flow.h:190</a></div></div>
<div class="ttc" id="classoperations__research_1_1PriorityQueueWithRestrictedPush_html_a0fa26c84168a6d71010556b0d6541a1f"><div class="ttname"><a href="classoperations__research_1_1PriorityQueueWithRestrictedPush.html#a0fa26c84168a6d71010556b0d6541a1f">operations_research::PriorityQueueWithRestrictedPush::IsEmpty</a></div><div class="ttdeci">bool IsEmpty() const</div><div class="ttdoc">Is the queue empty?</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00661">max_flow.h:661</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a64c1cc700d51eca9eac6bec6542d0bfb"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a64c1cc700d51eca9eac6bec6542d0bfb">operations_research::SimpleMaxFlow::AddArcWithCapacity</a></div><div class="ttdeci">ArcIndex AddArcWithCapacity(NodeIndex tail, NodeIndex head, FlowQuantity capacity)</div><div class="ttdoc">Adds a directed arc with the given capacity from tail to head.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_acc608bd04efcbcc5b72b76795f5d49d8"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#acc608bd04efcbcc5b72b76795f5d49d8">operations_research::GenericMaxFlow::ProcessNodeByHeight</a></div><div class="ttdeci">void ProcessNodeByHeight(bool value)</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00421">max_flow.h:421</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_ae83c98d7dcf6a2d76a5d500273255fe6"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#ae83c98d7dcf6a2d76a5d500273255fe6">operations_research::SimpleMaxFlow::GetSourceSideMinCut</a></div><div class="ttdeci">void GetSourceSideMinCut(std::vector&lt; NodeIndex &gt; *result)</div><div class="ttdoc">Returns the nodes reachable from the source by non-saturated arcs (.i.e.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a75c3aeba25a7c62b4e237d2b34594b0e"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a75c3aeba25a7c62b4e237d2b34594b0e">operations_research::GenericMaxFlow::AugmentingPathExists</a></div><div class="ttdeci">bool AugmentingPathExists() const</div><div class="ttdoc">Returns true if there exists a path from the source to the sink with remaining capacity.</div></div>
<div class="ttc" id="classoperations__research_1_1MaxFlowStatusClass_html_aa3fbead787cfdfac0b9e7b217e06cbfbac3c19ea88d51e9ddc44a20cc13e4fb74"><div class="ttname"><a href="classoperations__research_1_1MaxFlowStatusClass.html#aa3fbead787cfdfac0b9e7b217e06cbfbac3c19ea88d51e9ddc44a20cc13e4fb74">operations_research::MaxFlowStatusClass::NOT_SOLVED</a></div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00303">max_flow.h:303</a></div></div>
<div class="ttc" id="classoperations__research_1_1PriorityQueueWithRestrictedPush_html_ab5a37cc35af8067c734810424d4f395d"><div class="ttname"><a href="classoperations__research_1_1PriorityQueueWithRestrictedPush.html#ab5a37cc35af8067c734810424d4f395d">operations_research::PriorityQueueWithRestrictedPush::PriorityQueueWithRestrictedPush</a></div><div class="ttdeci">PriorityQueueWithRestrictedPush()</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00266">max_flow.h:266</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a022da70970a497438cd0304cf1c6efd9"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a022da70970a497438cd0304cf1c6efd9">operations_research::GenericMaxFlow::GetSourceSideMinCut</a></div><div class="ttdeci">void GetSourceSideMinCut(std::vector&lt; NodeIndex &gt; *result)</div><div class="ttdoc">Returns the nodes reachable from the source in the residual graph, the outgoing arcs of this set form...</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a93990798ae28a85494473072c95072d2"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a93990798ae28a85494473072c95072d2">operations_research::GenericMaxFlow::NodeHeightArray</a></div><div class="ttdeci">ZVector&lt; NodeHeight &gt; NodeHeightArray</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00328">max_flow.h:328</a></div></div>
<div class="ttc" id="classoperations__research_1_1PriorityQueueWithRestrictedPush_html_a2662f061f688af21e19f3ac53027ed4b"><div class="ttname"><a href="classoperations__research_1_1PriorityQueueWithRestrictedPush.html#a2662f061f688af21e19f3ac53027ed4b">operations_research::PriorityQueueWithRestrictedPush::Push</a></div><div class="ttdeci">void Push(Element element, IntegerPriority priority)</div><div class="ttdoc">Push a new element in the queue.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00673">max_flow.h:673</a></div></div>
<div class="ttc" id="namespaceoperations__research_html_a7d4fc0319cb4e28ec175fc9163775a6e"><div class="ttname"><a href="namespaceoperations__research.html#a7d4fc0319cb4e28ec175fc9163775a6e">operations_research::QuantityArray</a></div><div class="ttdeci">ZVector&lt; FlowQuantity &gt; QuantityArray</div><div class="ttdef"><b>Definition:</b> <a href="ebert__graph_8h_source.html#l00209">ebert_graph.h:209</a></div></div>
<div class="ttc" id="classoperations__research_1_1MaxFlowStatusClass_html_aa3fbead787cfdfac0b9e7b217e06cbfba521cd576d678a5c22f21b4a7ec2ff02b"><div class="ttname"><a href="classoperations__research_1_1MaxFlowStatusClass.html#aa3fbead787cfdfac0b9e7b217e06cbfba521cd576d678a5c22f21b4a7ec2ff02b">operations_research::MaxFlowStatusClass::OPTIMAL</a></div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00304">max_flow.h:304</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a90f1c23703ab4e69d7e42549ea005464"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a90f1c23703ab4e69d7e42549ea005464">operations_research::GenericMaxFlow::GetOptimalFlow</a></div><div class="ttdeci">FlowQuantity GetOptimalFlow() const</div><div class="ttdoc">Returns the total flow found by the algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00361">max_flow.h:361</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a65afde65cda262fce8107f3a15d657c4"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a65afde65cda262fce8107f3a15d657c4">operations_research::GenericMaxFlow::node_potential_</a></div><div class="ttdeci">NodeHeightArray node_potential_</div><div class="ttdoc">An array representing the height function for each node in graph_.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00563">max_flow.h:563</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a91d754521a7d43dd215e5d6200ec1062"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a91d754521a7d43dd215e5d6200ec1062">operations_research::GenericMaxFlow::RefineWithGlobalUpdate</a></div><div class="ttdeci">void RefineWithGlobalUpdate()</div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a10899eb2ae1b242c4737e4c9e7ecdae5"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a10899eb2ae1b242c4737e4c9e7ecdae5">operations_research::SimpleMaxFlow::NumArcs</a></div><div class="ttdeci">ArcIndex NumArcs() const</div><div class="ttdoc">Returns the current number of arcs in the graph.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a11a3c0e3b614e504cbb174cf0c4a90db"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a11a3c0e3b614e504cbb174cf0c4a90db">operations_research::GenericMaxFlow::ArcIndexArray</a></div><div class="ttdeci">ZVector&lt; ArcIndex &gt; ArcIndexArray</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00323">max_flow.h:323</a></div></div>
<div class="ttc" id="classoperations__research_1_1MaxFlowStatusClass_html_aa3fbead787cfdfac0b9e7b217e06cbfba64972e5527eb00cc4e60ce5b2f898193"><div class="ttname"><a href="classoperations__research_1_1MaxFlowStatusClass.html#aa3fbead787cfdfac0b9e7b217e06cbfba64972e5527eb00cc4e60ce5b2f898193">operations_research::MaxFlowStatusClass::BAD_RESULT</a></div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00307">max_flow.h:307</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_ab239080405c843687c20d1533b5512be"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#ab239080405c843687c20d1533b5512be">operations_research::SimpleMaxFlow::Head</a></div><div class="ttdeci">NodeIndex Head(ArcIndex arc) const</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a41c3325e4b03cd0763ccf20aa857f7a0"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a41c3325e4b03cd0763ccf20aa857f7a0">operations_research::GenericMaxFlow::OutgoingArcIterator</a></div><div class="ttdeci">Graph::OutgoingArcIterator OutgoingArcIterator</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00319">max_flow.h:319</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_aa094beccfd146238de41da6f8a2b2e4a"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#aa094beccfd146238de41da6f8a2b2e4a">operations_research::GenericMaxFlow::Capacity</a></div><div class="ttdeci">FlowQuantity Capacity(ArcIndex arc) const</div><div class="ttdoc">Returns the capacity of arc using the equations given in the comment on residual_arc_capacity_.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00375">max_flow.h:375</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a5b535e0a581ca57102d6c495a10bc911"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a5b535e0a581ca57102d6c495a10bc911">operations_research::GenericMaxFlow::IsActive</a></div><div class="ttdeci">bool IsActive(NodeIndex node) const</div><div class="ttdoc">Returns true if node is active, i.e.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00437">max_flow.h:437</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ac28ab380716ec139afa31d485bbbd068"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ac28ab380716ec139afa31d485bbbd068">operations_research::GenericMaxFlow::Tail</a></div><div class="ttdeci">NodeIndex Tail(ArcIndex arc) const</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00533">max_flow.h:533</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a4c09a4799a59a5e2947b2da44c7d0ba3"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a4c09a4799a59a5e2947b2da44c7d0ba3">operations_research::GenericMaxFlow::residual_arc_capacity_</a></div><div class="ttdeci">QuantityArray residual_arc_capacity_</div><div class="ttdoc">An array representing the residual_capacity for each arc in graph_.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00581">max_flow.h:581</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a4bfa3888f90a91610caa02c8498c6f67"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a4bfa3888f90a91610caa02c8498c6f67">operations_research::GenericMaxFlow::NodeHeight</a></div><div class="ttdeci">NodeIndex NodeHeight</div><div class="ttdoc">The height of a node never excess 2 times the number of node, so we use the same type as a Node index...</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00327">max_flow.h:327</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a3aaa8be2e8b64b746e6b46fa6463bbde"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a3aaa8be2e8b64b746e6b46fa6463bbde">operations_research::GenericMaxFlow::SetCheckInput</a></div><div class="ttdeci">void SetCheckInput(bool value)</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00419">max_flow.h:419</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a5ae2ad55f2fd8ce704fe695f835c2ed2"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a5ae2ad55f2fd8ce704fe695f835c2ed2">operations_research::SimpleMaxFlow::Solve</a></div><div class="ttdeci">Status Solve(NodeIndex source, NodeIndex sink)</div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_aef35310ddd005652bb2b3db14c323ae9"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#aef35310ddd005652bb2b3db14c323ae9">operations_research::SimpleMaxFlow::Flow</a></div><div class="ttdeci">FlowQuantity Flow(ArcIndex arc) const</div><div class="ttdoc">Returns the flow on the given arc in the last OPTIMAL Solve() context.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a4cc032f9987eb1ae9eaa8ebb013f671b"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a4cc032f9987eb1ae9eaa8ebb013f671b">operations_research::GenericMaxFlow::PushActiveNode</a></div><div class="ttdeci">void PushActiveNode(const NodeIndex &amp;node)</div><div class="ttdoc">Push element to the active node container.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00468">max_flow.h:468</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ad52713e66db4d174006e1c3cac7d9d09"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ad52713e66db4d174006e1c3cac7d9d09">operations_research::GenericMaxFlow::active_nodes_</a></div><div class="ttdeci">std::vector&lt; NodeIndex &gt; active_nodes_</div><div class="ttdoc">A stack used for managing active nodes in the algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00590">max_flow.h:590</a></div></div>
<div class="ttc" id="classoperations__research_1_1PriorityQueueWithRestrictedPush_html_ad5d7012545c74d85dd938ea6bf9e9537"><div class="ttname"><a href="classoperations__research_1_1PriorityQueueWithRestrictedPush.html#ad5d7012545c74d85dd938ea6bf9e9537">operations_research::PriorityQueueWithRestrictedPush::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Clears the queue.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00667">max_flow.h:667</a></div></div>
<div class="ttc" id="classoperations__research_1_1MaxFlowStatusClass_html_aa3fbead787cfdfac0b9e7b217e06cbfb"><div class="ttname"><a href="classoperations__research_1_1MaxFlowStatusClass.html#aa3fbead787cfdfac0b9e7b217e06cbfb">operations_research::MaxFlowStatusClass::Status</a></div><div class="ttdeci">Status</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00302">max_flow.h:302</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a27da86de84ba65849c8aebf7aa153f91"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a27da86de84ba65849c8aebf7aa153f91">operations_research::GenericMaxFlow::graph_</a></div><div class="ttdeci">const Graph * graph_</div><div class="ttdoc">A pointer to the graph passed as argument.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00547">max_flow.h:547</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_af29cd6d6e7b334690d8ebe90ed0be410"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#af29cd6d6e7b334690d8ebe90ed0be410">operations_research::GenericMaxFlow::NodeIndex</a></div><div class="ttdeci">Graph::NodeIndex NodeIndex</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00317">max_flow.h:317</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a57cf9ba195eb368ccd5856ef7de4dcca"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a57cf9ba195eb368ccd5856ef7de4dcca">operations_research::GenericMaxFlow::DebugString</a></div><div class="ttdeci">std::string DebugString(const std::string &amp;context, ArcIndex arc) const</div><div class="ttdoc">Returns context concatenated with information about arc in a human-friendly way.</div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a86dad6a200cad46b7d53305e2837cfb3"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a86dad6a200cad46b7d53305e2837cfb3">operations_research::SimpleMaxFlow::Capacity</a></div><div class="ttdeci">FlowQuantity Capacity(ArcIndex arc) const</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_aecd4716fa878055b30386f0f97a0d907"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#aecd4716fa878055b30386f0f97a0d907">operations_research::GenericMaxFlow::IsAdmissible</a></div><div class="ttdeci">bool IsAdmissible(ArcIndex arc) const</div><div class="ttdoc">Returns true if arc is admissible.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00430">max_flow.h:430</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="classoperations__research_1_1GenericMaxFlow_html_ade3632560edb912b1758628f327dfe3d"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ade3632560edb912b1758628f327dfe3d">operations_research::GenericMaxFlow::ComputeReachableNodes</a></div><div class="ttdeci">void ComputeReachableNodes(NodeIndex start, std::vector&lt; NodeIndex &gt; *result)</div><div class="ttdoc">Returns the set of nodes reachable from start in the residual graph or in the reverse residual graph ...</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a1c31c96effb1f91f800895be2339045b"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a1c31c96effb1f91f800895be2339045b">operations_research::GenericMaxFlow::PushFlow</a></div><div class="ttdeci">void PushFlow(FlowQuantity flow, ArcIndex arc)</div><div class="ttdoc">Pushes flow on arc, i.e.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a6296328813067e9419925f40981f0867"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a6296328813067e9419925f40981f0867">operations_research::GenericMaxFlow::~GenericMaxFlow</a></div><div class="ttdeci">virtual ~GenericMaxFlow()</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00335">max_flow.h:335</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ad7892ad5aa8338015f320267fb7f298f"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ad7892ad5aa8338015f320267fb7f298f">operations_research::GenericMaxFlow::GetSinkSideMinCut</a></div><div class="ttdeci">void GetSinkSideMinCut(std::vector&lt; NodeIndex &gt; *result)</div><div class="ttdoc">Returns the nodes that can reach the sink in the residual graph, the outgoing arcs of this set form a...</div></div>
<div class="ttc" id="classoperations__research_1_1PriorityQueueWithRestrictedPush_html_a9597013d76010425ffc592a32ff4f259"><div class="ttname"><a href="classoperations__research_1_1PriorityQueueWithRestrictedPush.html#a9597013d76010425ffc592a32ff4f259">operations_research::PriorityQueueWithRestrictedPush::Pop</a></div><div class="ttdeci">Element Pop()</div><div class="ttdoc">Returns the element with highest priority and remove it from the queue.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00692">max_flow.h:692</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_aab64a5e41b9e15ab0953a59ef9fd2f49"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#aab64a5e41b9e15ab0953a59ef9fd2f49">operations_research::GenericMaxFlow::IsArcDirect</a></div><div class="ttdeci">bool IsArcDirect(ArcIndex arc) const</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a1da59e63f4d617578a0dc218d7f2f3e9"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a1da59e63f4d617578a0dc218d7f2f3e9">operations_research::GenericMaxFlow::Solve</a></div><div class="ttdeci">bool Solve()</div><div class="ttdoc">Returns true if a maximum flow was solved.</div></div>
<div class="ttc" id="classoperations__research_1_1MaxFlow_html"><div class="ttname"><a href="classoperations__research_1_1MaxFlow.html">operations_research::MaxFlow</a></div><div class="ttdoc">Default instance MaxFlow that uses StarGraph.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00652">max_flow.h:652</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a323ba66c6b6e63c3c7165081614e2689"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a323ba66c6b6e63c3c7165081614e2689">operations_research::GenericMaxFlow::use_two_phase_algorithm_</a></div><div class="ttdeci">bool use_two_phase_algorithm_</div><div class="ttdoc">Whether or not we use a two-phase algorithm: 1/ Only deal with nodes that can reach the sink.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00621">max_flow.h:621</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a3aae9d11f361dfd5c98dcca64987cfb9"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a3aae9d11f361dfd5c98dcca64987cfb9">operations_research::GenericMaxFlow::stats_</a></div><div class="ttdeci">StatsGroup stats_</div><div class="ttdoc">Statistics about this class.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00641">max_flow.h:641</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="classoperations__research_1_1GenericMaxFlow_html_ae78f6137700a6942cee3b8b5bd40817b"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ae78f6137700a6942cee3b8b5bd40817b">operations_research::GenericMaxFlow::GenericMaxFlow</a></div><div class="ttdeci">GenericMaxFlow(const Graph *graph, NodeIndex source, NodeIndex sink)</div><div class="ttdoc">Initialize a MaxFlow instance on the given graph.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a1061c1ce94ccc0d379390b8542bfaa23"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a1061c1ce94ccc0d379390b8542bfaa23">operations_research::GenericMaxFlow::Refine</a></div><div class="ttdeci">void Refine()</div><div class="ttdoc">Performs optimization step.</div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a57296b653813abdd8d711048e87d1212"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a57296b653813abdd8d711048e87d1212">operations_research::SimpleMaxFlow::SetArcCapacity</a></div><div class="ttdeci">void SetArcCapacity(ArcIndex arc, FlowQuantity capacity)</div><div class="ttdoc">Change the capacity of an arc.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a0c56ff7a0c8bac88e8f6e0da3689e838"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a0c56ff7a0c8bac88e8f6e0da3689e838">operations_research::GenericMaxFlow::SetCapacityAndClearFlow</a></div><div class="ttdeci">void SetCapacityAndClearFlow(ArcIndex arc, FlowQuantity capacity)</div><div class="ttdoc">Sets the capacity of arc to 'capacity' and clears the flow on arc.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00442">max_flow.h:442</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_1EbertGraph_html"><div class="ttname"><a href="classoperations__research_1_1EbertGraph.html">operations_research::EbertGraph</a></div><div class="ttdoc">Forward declarations.</div><div class="ttdef"><b>Definition:</b> <a href="ebert__graph_8h_source.html#l00188">ebert_graph.h:188</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ab3915b57ac3d28863ad3372f1598a494"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ab3915b57ac3d28863ad3372f1598a494">operations_research::GenericMaxFlow::use_global_update_</a></div><div class="ttdeci">bool use_global_update_</div><div class="ttdoc">Whether or not to use GlobalUpdate().</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00614">max_flow.h:614</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a200b4dbff9102ee1232e05f569fc2427"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a200b4dbff9102ee1232e05f569fc2427">operations_research::SimpleMaxFlow::NumNodes</a></div><div class="ttdeci">NodeIndex NumNodes() const</div><div class="ttdoc">Returns the current number of nodes.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ad4a6ec3deadedd6c027b8c0fbbdac88d"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ad4a6ec3deadedd6c027b8c0fbbdac88d">operations_research::GenericMaxFlow::Head</a></div><div class="ttdeci">NodeIndex Head(ArcIndex arc) const</div><div class="ttdoc">Handy member functions to make the code more compact.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00532">max_flow.h:532</a></div></div>
<div class="ttc" id="ebert__graph_8h_html"><div class="ttname"><a href="ebert__graph_8h.html">ebert_graph.h</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html">operations_research::GenericMaxFlow</a></div><div class="ttdoc">Forward declaration.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00144">max_flow.h:144</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a1055514c9f93a7ffeea0ae9e8a6a7f58"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a1055514c9f93a7ffeea0ae9e8a6a7f58">operations_research::GenericMaxFlow::SetUseGlobalUpdate</a></div><div class="ttdeci">void SetUseGlobalUpdate(bool value)</div><div class="ttdoc">Sets the different algorithm options.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00414">max_flow.h:414</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a3653a3df1b94e4150486b5149d8eaae7"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a3653a3df1b94e4150486b5149d8eaae7">operations_research::GenericMaxFlow::IsEmptyActiveNodeContainer</a></div><div class="ttdeci">bool IsEmptyActiveNodeContainer()</div><div class="ttdoc">Check the emptiness of the container.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00477">max_flow.h:477</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a05f2661c573eb445212f4eddd694fc2f"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a05f2661c573eb445212f4eddd694fc2f">operations_research::GenericMaxFlow::SetArcCapacity</a></div><div class="ttdeci">void SetArcCapacity(ArcIndex arc, FlowQuantity new_capacity)</div><div class="ttdoc">Sets the capacity for arc to new_capacity.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a4a6b55b37ed5a95debcd86aa40370e28"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a4a6b55b37ed5a95debcd86aa40370e28">operations_research::GenericMaxFlow::source_</a></div><div class="ttdeci">NodeIndex source_</div><div class="ttdoc">The index of the source node in graph_.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00600">max_flow.h:600</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_ada0b88e232c739108184deb35dd54b3f"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#ada0b88e232c739108184deb35dd54b3f">operations_research::SimpleMaxFlow::SimpleMaxFlow</a></div><div class="ttdeci">SimpleMaxFlow()</div><div class="ttdoc">The constructor takes no size.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_aa44b5dfa3bad855a7a7b19750b6db748"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#aa44b5dfa3bad855a7a7b19750b6db748">operations_research::GenericMaxFlow::process_node_by_height_</a></div><div class="ttdeci">bool process_node_by_height_</div><div class="ttdoc">Whether or not we use the PriorityQueueWithRestrictedPush to process the active nodes rather than a s...</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00629">max_flow.h:629</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ac4278804a3c23b3a7f340930a81ff15f"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ac4278804a3c23b3a7f340930a81ff15f">operations_research::GenericMaxFlow::kMaxFlowQuantity</a></div><div class="ttdeci">static const FlowQuantity kMaxFlowQuantity</div><div class="ttdoc">Maximum manageable flow.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00544">max_flow.h:544</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ab6aa151eb19acac7bcbeced26a82f355"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ab6aa151eb19acac7bcbeced26a82f355">operations_research::GenericMaxFlow::OutgoingOrOppositeIncomingArcIterator</a></div><div class="ttdeci">Graph::OutgoingOrOppositeIncomingArcIterator OutgoingOrOppositeIncomingArcIterator</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00321">max_flow.h:321</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ace677adc9ba14e72018a7aa78955df18"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ace677adc9ba14e72018a7aa78955df18">operations_research::GenericMaxFlow::IsArcValid</a></div><div class="ttdeci">bool IsArcValid(ArcIndex arc) const</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="classoperations__research_1_1SimpleMaxFlow_html_a8a7acde49c4d55f2eb42e2b6869cdb3da11ce6c709e3b39a368358f2ee79942d6"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a8a7acde49c4d55f2eb42e2b6869cdb3da11ce6c709e3b39a368358f2ee79942d6">operations_research::SimpleMaxFlow::BAD_RESULT</a></div><div class="ttdoc">This should not happen. There was an error in our code (i.e. file a bug).</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00194">max_flow.h:194</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_aead7fdba72a6048caad9c20150368348"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#aead7fdba72a6048caad9c20150368348">operations_research::SimpleMaxFlow::Tail</a></div><div class="ttdeci">NodeIndex Tail(ArcIndex arc) const</div><div class="ttdoc">Returns user-provided data.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a5ceac4e6ee8eedd556f1cdec11a2b665"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a5ceac4e6ee8eedd556f1cdec11a2b665">operations_research::GenericMaxFlow::CheckResult</a></div><div class="ttdeci">bool CheckResult() const</div><div class="ttdoc">Checks whether the result is valid, i.e.</div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_a5421b464b61e322c676935f312501af8"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#a5421b464b61e322c676935f312501af8">operations_research::GenericMaxFlow::first_admissible_arc_</a></div><div class="ttdeci">ArcIndexArray first_admissible_arc_</div><div class="ttdoc">An array representing the first admissible arc for each node in graph_.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00584">max_flow.h:584</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ad411ee050c1c6a25b5b2abc42a2f0491"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ad411ee050c1c6a25b5b2abc42a2f0491">operations_research::GenericMaxFlow::GetAndRemoveFirstActiveNode</a></div><div class="ttdeci">NodeIndex GetAndRemoveFirstActiveNode()</div><div class="ttdoc">Get the first element from the active node container.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00460">max_flow.h:460</a></div></div>
<div class="ttc" id="classoperations__research_1_1SimpleMaxFlow_html_a8a7acde49c4d55f2eb42e2b6869cdb3da3b60465215ab4363dec64fd313771658"><div class="ttname"><a href="classoperations__research_1_1SimpleMaxFlow.html#a8a7acde49c4d55f2eb42e2b6869cdb3da3b60465215ab4363dec64fd313771658">operations_research::SimpleMaxFlow::OPTIMAL</a></div><div class="ttdoc">Solve() was called and found an optimal solution.</div><div class="ttdef"><b>Definition:</b> <a href="max__flow_8h_source.html#l00183">max_flow.h:183</a></div></div>
<div class="ttc" id="classoperations__research_1_1GenericMaxFlow_html_ad3925f2137b18b1555563ed149ada740"><div class="ttname"><a href="classoperations__research_1_1GenericMaxFlow.html#ad3925f2137b18b1555563ed149ada740">operations_research::GenericMaxFlow::GlobalUpdate</a></div><div class="ttdeci">void GlobalUpdate()</div><div class="ttdoc">Computes the best possible node potential given the current flow using a reverse breadth-first search...</div></div>
</div><!-- fragment --></div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>