825 lines
57 KiB
HTML
825 lines
57 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>
|
|
</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_1GenericMinCostFlow.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_1GenericMinCostFlow-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">operations_research::GenericMinCostFlow< Graph, ArcFlowType, ArcScaledCostType > 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 Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue><br />
|
|
class operations_research::GenericMinCostFlow< Graph, ArcFlowType, ArcScaledCostType ></h3>
|
|
|
|
<p>Forward declaration. </p>
|
|
<p>Generic <a class="el" href="classoperations__research_1_1MinCostFlow.html" title="Default MinCostFlow instance that uses StarGraph.">MinCostFlow</a> that works with StarGraph and all the graphs handling reverse arcs from <a class="el" href="graph_8h.html">graph.h</a>, see the end of min_cost_flow.cc for the exact types this class is compiled for.</p>
|
|
<p>One can greatly decrease memory usage by using appropriately small integer types:</p><ul>
|
|
<li>For the Graph<> types, i.e. NodeIndexType and ArcIndexType, see <a class="el" href="graph_8h.html">graph.h</a>.</li>
|
|
<li>ArcFlowType is used for the <em>per-arc</em> flow quantity. It must be signed, and large enough to hold the maximum arc capacity and its negation.</li>
|
|
<li>ArcScaledCostType is used for a per-arc scaled cost. It must be signed and large enough to hold the maximum unit cost of an arc times (num_nodes + 1).</li>
|
|
</ul>
|
|
<dl class="section note"><dt>Note</dt><dd>the latter two are different than FlowQuantity and CostValue, which are used for global, aggregated values and may need to be larger.</dd></dl>
|
|
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000050">Todo:</a></b></dt><dd>(user): Avoid using the globally defined type CostValue and FlowQuantity. Also uses the Arc*Type where there is no risk of overflow in more places. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00188">188</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.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:aaf02e6d654d4be1a50507d9d40dd1e99"><td class="memItemLeft" align="right" valign="top">typedef Graph::NodeIndex </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a></td></tr>
|
|
<tr class="separator:aaf02e6d654d4be1a50507d9d40dd1e99"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad66a0601a4f1c5f98079d333d5a465e8"><td class="memItemLeft" align="right" valign="top">typedef Graph::ArcIndex </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a></td></tr>
|
|
<tr class="separator:ad66a0601a4f1c5f98079d333d5a465e8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3c6c7677fb80955e5c7386849596043e"><td class="memItemLeft" align="right" valign="top">typedef Graph::OutgoingArcIterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a3c6c7677fb80955e5c7386849596043e">OutgoingArcIterator</a></td></tr>
|
|
<tr class="separator:a3c6c7677fb80955e5c7386849596043e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0aadf64af2dbb2115943c046e3d14622"><td class="memItemLeft" align="right" valign="top">typedef Graph::OutgoingOrOppositeIncomingArcIterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a0aadf64af2dbb2115943c046e3d14622">OutgoingOrOppositeIncomingArcIterator</a></td></tr>
|
|
<tr class="separator:a0aadf64af2dbb2115943c046e3d14622"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a81e1e8d405058ffdd6aa80978345fa83"><td class="memItemLeft" align="right" valign="top">typedef ZVector< <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a81e1e8d405058ffdd6aa80978345fa83">ArcIndexArray</a></td></tr>
|
|
<tr class="separator:a81e1e8d405058ffdd6aa80978345fa83"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae5cad0c7d9c3eddbc7c3aefbee060457"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457">Status</a> { <br />
|
|
  <a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457a44ab1b2f3c5251267bce749661e4e6de">NOT_SOLVED</a>,
|
|
<a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457a7ba4907297a99141ebd2bc890d5a591c">OPTIMAL</a>,
|
|
<a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457ab78b8e2734f0e777e79b8e5f93948101">FEASIBLE</a>,
|
|
<a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457af323941c683086f71ce1e7cae7a0a1b3">INFEASIBLE</a>,
|
|
<br />
|
|
  <a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457ad79843de8fcdec97ba2ce9b83d6cf3c1">UNBALANCED</a>,
|
|
<a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457a030d97dcea9960e3d1f127024b0e2168">BAD_RESULT</a>,
|
|
<a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457a41523b94852c3cb55c86ce0e291e3719">BAD_COST_RANGE</a>
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="separator:ae5cad0c7d9c3eddbc7c3aefbee060457"><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:a17aff4acf62f808db05d5c43f37efda2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a17aff4acf62f808db05d5c43f37efda2">GenericMinCostFlow</a> (const Graph *<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a8ea0e6e91a6965d8de090ef797bb4185">graph</a>)</td></tr>
|
|
<tr class="memdesc:a17aff4acf62f808db05d5c43f37efda2"><td class="mdescLeft"> </td><td class="mdescRight">Initialize a <a class="el" href="classoperations__research_1_1MinCostFlow.html" title="Default MinCostFlow instance that uses StarGraph.">MinCostFlow</a> instance on the given graph. <a href="#a17aff4acf62f808db05d5c43f37efda2">More...</a><br /></td></tr>
|
|
<tr class="separator:a17aff4acf62f808db05d5c43f37efda2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8ea0e6e91a6965d8de090ef797bb4185"><td class="memItemLeft" align="right" valign="top">const Graph * </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a8ea0e6e91a6965d8de090ef797bb4185">graph</a> () const</td></tr>
|
|
<tr class="memdesc:a8ea0e6e91a6965d8de090ef797bb4185"><td class="mdescLeft"> </td><td class="mdescRight">Returns the graph associated to the current object. <a href="#a8ea0e6e91a6965d8de090ef797bb4185">More...</a><br /></td></tr>
|
|
<tr class="separator:a8ea0e6e91a6965d8de090ef797bb4185"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ace5a6df9ac9993c42cd091f6e9ebbd54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ace5a6df9ac9993c42cd091f6e9ebbd54">status</a> () const</td></tr>
|
|
<tr class="memdesc:ace5a6df9ac9993c42cd091f6e9ebbd54"><td class="mdescLeft"> </td><td class="mdescRight">Returns the status of last call to <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a17e2df29d767d03fc9fc42aee71bf5da" title="Solves the problem, returning true if a min-cost flow could be found.">Solve()</a>. <a href="#ace5a6df9ac9993c42cd091f6e9ebbd54">More...</a><br /></td></tr>
|
|
<tr class="separator:ace5a6df9ac9993c42cd091f6e9ebbd54"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7e4301ebf8c5f86143e390494a0a6f4f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a7e4301ebf8c5f86143e390494a0a6f4f">SetNodeSupply</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> node, <a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> supply)</td></tr>
|
|
<tr class="memdesc:a7e4301ebf8c5f86143e390494a0a6f4f"><td class="mdescLeft"> </td><td class="mdescRight">Sets the supply corresponding to node. <a href="#a7e4301ebf8c5f86143e390494a0a6f4f">More...</a><br /></td></tr>
|
|
<tr class="separator:a7e4301ebf8c5f86143e390494a0a6f4f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0969b64c9993394fb1cc97a2404e12a4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a0969b64c9993394fb1cc97a2404e12a4">SetArcUnitCost</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> arc, ArcScaledCostType unit_cost)</td></tr>
|
|
<tr class="memdesc:a0969b64c9993394fb1cc97a2404e12a4"><td class="mdescLeft"> </td><td class="mdescRight">Sets the unit cost for the given arc. <a href="#a0969b64c9993394fb1cc97a2404e12a4">More...</a><br /></td></tr>
|
|
<tr class="separator:a0969b64c9993394fb1cc97a2404e12a4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a35f31d23e3f300f2e36aa46b2e854c00"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a35f31d23e3f300f2e36aa46b2e854c00">SetArcCapacity</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> arc, ArcFlowType new_capacity)</td></tr>
|
|
<tr class="memdesc:a35f31d23e3f300f2e36aa46b2e854c00"><td class="mdescLeft"> </td><td class="mdescRight">Sets the capacity for the given arc. <a href="#a35f31d23e3f300f2e36aa46b2e854c00">More...</a><br /></td></tr>
|
|
<tr class="separator:a35f31d23e3f300f2e36aa46b2e854c00"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a60875aa935bd9594db707bfd97eab98c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a60875aa935bd9594db707bfd97eab98c">SetArcFlow</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> arc, ArcFlowType new_flow)</td></tr>
|
|
<tr class="memdesc:a60875aa935bd9594db707bfd97eab98c"><td class="mdescLeft"> </td><td class="mdescRight">Sets the flow for the given arc. <a href="#a60875aa935bd9594db707bfd97eab98c">More...</a><br /></td></tr>
|
|
<tr class="separator:a60875aa935bd9594db707bfd97eab98c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a17e2df29d767d03fc9fc42aee71bf5da"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a17e2df29d767d03fc9fc42aee71bf5da">Solve</a> ()</td></tr>
|
|
<tr class="memdesc:a17e2df29d767d03fc9fc42aee71bf5da"><td class="mdescLeft"> </td><td class="mdescRight">Solves the problem, returning true if a min-cost flow could be found. <a href="#a17e2df29d767d03fc9fc42aee71bf5da">More...</a><br /></td></tr>
|
|
<tr class="separator:a17e2df29d767d03fc9fc42aee71bf5da"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a01f13e85a3d12e356f26d80210a6755f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a01f13e85a3d12e356f26d80210a6755f">CheckFeasibility</a> (std::vector< <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> > *const infeasible_supply_node, std::vector< <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> > *const infeasible_demand_node)</td></tr>
|
|
<tr class="memdesc:a01f13e85a3d12e356f26d80210a6755f"><td class="mdescLeft"> </td><td class="mdescRight">Checks for feasibility, i.e., that all the supplies and demands can be matched without exceeding bottlenecks in the network. <a href="#a01f13e85a3d12e356f26d80210a6755f">More...</a><br /></td></tr>
|
|
<tr class="separator:a01f13e85a3d12e356f26d80210a6755f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a60da0a24c813a9ee39f96cc36f8dd9ad"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a60da0a24c813a9ee39f96cc36f8dd9ad">MakeFeasible</a> ()</td></tr>
|
|
<tr class="memdesc:a60da0a24c813a9ee39f96cc36f8dd9ad"><td class="mdescLeft"> </td><td class="mdescRight">Makes the min-cost flow problem solvable by truncating supplies and demands to a level acceptable by the network. <a href="#a60da0a24c813a9ee39f96cc36f8dd9ad">More...</a><br /></td></tr>
|
|
<tr class="separator:a60da0a24c813a9ee39f96cc36f8dd9ad"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a37cb4245bf39c34116d5466d7922f565"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a37cb4245bf39c34116d5466d7922f565">GetOptimalCost</a> () const</td></tr>
|
|
<tr class="memdesc:a37cb4245bf39c34116d5466d7922f565"><td class="mdescLeft"> </td><td class="mdescRight">Returns the cost of the minimum-cost flow found by the algorithm. <a href="#a37cb4245bf39c34116d5466d7922f565">More...</a><br /></td></tr>
|
|
<tr class="separator:a37cb4245bf39c34116d5466d7922f565"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac5a5362a674cfb2a7589bcd77c484c17"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ac5a5362a674cfb2a7589bcd77c484c17">Flow</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> arc) const</td></tr>
|
|
<tr class="memdesc:ac5a5362a674cfb2a7589bcd77c484c17"><td class="mdescLeft"> </td><td class="mdescRight">Returns the flow on the given arc using the equations given in the comment on residual_arc_capacity_. <a href="#ac5a5362a674cfb2a7589bcd77c484c17">More...</a><br /></td></tr>
|
|
<tr class="separator:ac5a5362a674cfb2a7589bcd77c484c17"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a44c22a9d4609a54cfc7034de3e541ce7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a44c22a9d4609a54cfc7034de3e541ce7">Capacity</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> arc) const</td></tr>
|
|
<tr class="memdesc:a44c22a9d4609a54cfc7034de3e541ce7"><td class="mdescLeft"> </td><td class="mdescRight">Returns the capacity of the given arc. <a href="#a44c22a9d4609a54cfc7034de3e541ce7">More...</a><br /></td></tr>
|
|
<tr class="separator:a44c22a9d4609a54cfc7034de3e541ce7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae70575b0b8bbc06301778b172752958b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ae70575b0b8bbc06301778b172752958b">UnitCost</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> arc) const</td></tr>
|
|
<tr class="memdesc:ae70575b0b8bbc06301778b172752958b"><td class="mdescLeft"> </td><td class="mdescRight">Returns the unscaled cost for the given arc. <a href="#ae70575b0b8bbc06301778b172752958b">More...</a><br /></td></tr>
|
|
<tr class="separator:ae70575b0b8bbc06301778b172752958b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a67cea170737362bd37bc8c8f8f024555"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a67cea170737362bd37bc8c8f8f024555">Supply</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> node) const</td></tr>
|
|
<tr class="memdesc:a67cea170737362bd37bc8c8f8f024555"><td class="mdescLeft"> </td><td class="mdescRight">Returns the supply at a given node. <a href="#a67cea170737362bd37bc8c8f8f024555">More...</a><br /></td></tr>
|
|
<tr class="separator:a67cea170737362bd37bc8c8f8f024555"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a15963b8d1126b858e249c58658934305"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a15963b8d1126b858e249c58658934305">InitialSupply</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> node) const</td></tr>
|
|
<tr class="memdesc:a15963b8d1126b858e249c58658934305"><td class="mdescLeft"> </td><td class="mdescRight">Returns the initial supply at a given node. <a href="#a15963b8d1126b858e249c58658934305">More...</a><br /></td></tr>
|
|
<tr class="separator:a15963b8d1126b858e249c58658934305"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afa58296d5399afd27f8bed235e18309d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#afa58296d5399afd27f8bed235e18309d">FeasibleSupply</a> (<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> node) const</td></tr>
|
|
<tr class="memdesc:afa58296d5399afd27f8bed235e18309d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the largest supply (if > 0) or largest demand in absolute value (if < 0) admissible at node. <a href="#afa58296d5399afd27f8bed235e18309d">More...</a><br /></td></tr>
|
|
<tr class="separator:afa58296d5399afd27f8bed235e18309d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a816e24f3a6af98c2b3ae1854f6fc0781"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a816e24f3a6af98c2b3ae1854f6fc0781">SetUseUpdatePrices</a> (bool value)</td></tr>
|
|
<tr class="memdesc:a816e24f3a6af98c2b3ae1854f6fc0781"><td class="mdescLeft"> </td><td class="mdescRight">Whether to use the UpdatePrices() heuristic. <a href="#a816e24f3a6af98c2b3ae1854f6fc0781">More...</a><br /></td></tr>
|
|
<tr class="separator:a816e24f3a6af98c2b3ae1854f6fc0781"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9fffb489dce981de3233b1702b801eb6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a9fffb489dce981de3233b1702b801eb6">SetCheckFeasibility</a> (bool value)</td></tr>
|
|
<tr class="memdesc:a9fffb489dce981de3233b1702b801eb6"><td class="mdescLeft"> </td><td class="mdescRight">Whether to check the feasibility of the problem with a max-flow, prior to solving it. <a href="#a9fffb489dce981de3233b1702b801eb6">More...</a><br /></td></tr>
|
|
<tr class="separator:a9fffb489dce981de3233b1702b801eb6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Member Typedef Documentation</h2>
|
|
<a id="ad66a0601a4f1c5f98079d333d5a465e8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad66a0601a4f1c5f98079d333d5a465e8">◆ </a></span>ArcIndex</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef Graph::ArcIndex <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00325">325</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a81e1e8d405058ffdd6aa80978345fa83"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a81e1e8d405058ffdd6aa80978345fa83">◆ </a></span>ArcIndexArray</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef ZVector<<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a>> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a81e1e8d405058ffdd6aa80978345fa83">ArcIndexArray</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00329">329</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aaf02e6d654d4be1a50507d9d40dd1e99"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aaf02e6d654d4be1a50507d9d40dd1e99">◆ </a></span>NodeIndex</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef Graph::NodeIndex <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00324">324</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3c6c7677fb80955e5c7386849596043e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3c6c7677fb80955e5c7386849596043e">◆ </a></span>OutgoingArcIterator</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef Graph::OutgoingArcIterator <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a3c6c7677fb80955e5c7386849596043e">OutgoingArcIterator</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00326">326</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0aadf64af2dbb2115943c046e3d14622"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0aadf64af2dbb2115943c046e3d14622">◆ </a></span>OutgoingOrOppositeIncomingArcIterator</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef Graph::OutgoingOrOppositeIncomingArcIterator <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a0aadf64af2dbb2115943c046e3d14622">OutgoingOrOppositeIncomingArcIterator</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00328">328</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Enumeration Documentation</h2>
|
|
<a id="ae5cad0c7d9c3eddbc7c3aefbee060457"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae5cad0c7d9c3eddbc7c3aefbee060457">◆ </a></span>Status</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457">operations_research::MinCostFlowBase::Status</a></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae5cad0c7d9c3eddbc7c3aefbee060457a44ab1b2f3c5251267bce749661e4e6de"></a>NOT_SOLVED </td><td class="fielddoc"></td></tr>
|
|
<tr><td class="fieldname"><a id="ae5cad0c7d9c3eddbc7c3aefbee060457a7ba4907297a99141ebd2bc890d5a591c"></a>OPTIMAL </td><td class="fielddoc"></td></tr>
|
|
<tr><td class="fieldname"><a id="ae5cad0c7d9c3eddbc7c3aefbee060457ab78b8e2734f0e777e79b8e5f93948101"></a>FEASIBLE </td><td class="fielddoc"></td></tr>
|
|
<tr><td class="fieldname"><a id="ae5cad0c7d9c3eddbc7c3aefbee060457af323941c683086f71ce1e7cae7a0a1b3"></a>INFEASIBLE </td><td class="fielddoc"></td></tr>
|
|
<tr><td class="fieldname"><a id="ae5cad0c7d9c3eddbc7c3aefbee060457ad79843de8fcdec97ba2ce9b83d6cf3c1"></a>UNBALANCED </td><td class="fielddoc"></td></tr>
|
|
<tr><td class="fieldname"><a id="ae5cad0c7d9c3eddbc7c3aefbee060457a030d97dcea9960e3d1f127024b0e2168"></a>BAD_RESULT </td><td class="fielddoc"></td></tr>
|
|
<tr><td class="fieldname"><a id="ae5cad0c7d9c3eddbc7c3aefbee060457a41523b94852c3cb55c86ce0e291e3719"></a>BAD_COST_RANGE </td><td class="fielddoc"></td></tr>
|
|
</table>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00194">194</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="a17aff4acf62f808db05d5c43f37efda2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a17aff4acf62f808db05d5c43f37efda2">◆ </a></span>GenericMinCostFlow()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::<a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">GenericMinCostFlow</a> </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const Graph * </td>
|
|
<td class="paramname"><em>graph</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>Initialize a <a class="el" href="classoperations__research_1_1MinCostFlow.html" title="Default MinCostFlow instance that uses StarGraph.">MinCostFlow</a> instance on the given graph. </p>
|
|
<p>The graph does not need to be fully built yet, but its capacity reservation is used to initialize the memory of this class. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a44c22a9d4609a54cfc7034de3e541ce7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a44c22a9d4609a54cfc7034de3e541ce7">◆ </a></span>Capacity()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::Capacity </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the capacity of the given arc. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a01f13e85a3d12e356f26d80210a6755f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a01f13e85a3d12e356f26d80210a6755f">◆ </a></span>CheckFeasibility()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::CheckFeasibility </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::vector< <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> > *const </td>
|
|
<td class="paramname"><em>infeasible_supply_node</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">std::vector< <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> > *const </td>
|
|
<td class="paramname"><em>infeasible_demand_node</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Checks for feasibility, i.e., that all the supplies and demands can be matched without exceeding bottlenecks in the network. </p>
|
|
<p>If infeasible_supply_node (resp. infeasible_demand_node) are not NULL, they are populated with the indices of the nodes where the initial supplies (resp. demands) are too large. Feasible values for the supplies and demands are accessible through FeasibleSupply. </p><dl class="section note"><dt>Note</dt><dd>CheckFeasibility is called by <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a17e2df29d767d03fc9fc42aee71bf5da" title="Solves the problem, returning true if a min-cost flow could be found.">Solve()</a> when the flag min_cost_flow_check_feasibility is set to true (which is the default.) </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afa58296d5399afd27f8bed235e18309d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afa58296d5399afd27f8bed235e18309d">◆ </a></span>FeasibleSupply()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::FeasibleSupply </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> </td>
|
|
<td class="paramname"><em>node</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the largest supply (if > 0) or largest demand in absolute value (if < 0) admissible at node. </p>
|
|
<p>If the problem is not feasible, some of these values will be smaller (in absolute value) than the initial supplies and demand given as input. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac5a5362a674cfb2a7589bcd77c484c17"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac5a5362a674cfb2a7589bcd77c484c17">◆ </a></span>Flow()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::Flow </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the flow on the given arc using the equations given in the comment on residual_arc_capacity_. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a37cb4245bf39c34116d5466d7922f565"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a37cb4245bf39c34116d5466d7922f565">◆ </a></span>GetOptimalCost()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::GetOptimalCost </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the cost of the minimum-cost flow found by the algorithm. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00380">380</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8ea0e6e91a6965d8de090ef797bb4185"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8ea0e6e91a6965d8de090ef797bb4185">◆ </a></span>graph()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const Graph* <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::graph </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the graph associated to the current object. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00337">337</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a15963b8d1126b858e249c58658934305"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a15963b8d1126b858e249c58658934305">◆ </a></span>InitialSupply()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::InitialSupply </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> </td>
|
|
<td class="paramname"><em>node</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the initial supply at a given node. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a60da0a24c813a9ee39f96cc36f8dd9ad"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a60da0a24c813a9ee39f96cc36f8dd9ad">◆ </a></span>MakeFeasible()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::MakeFeasible </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Makes the min-cost flow problem solvable by truncating supplies and demands to a level acceptable by the network. </p>
|
|
<p>There may be several ways to do it. In our case, the levels are computed from the result of the max-flow algorithm run in <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a01f13e85a3d12e356f26d80210a6755f" title="Checks for feasibility, i.e., that all the supplies and demands can be matched without exceeding bott...">CheckFeasibility()</a>. MakeFeasible returns false if <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a01f13e85a3d12e356f26d80210a6755f" title="Checks for feasibility, i.e., that all the supplies and demands can be matched without exceeding bott...">CheckFeasibility()</a> was not called before. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a35f31d23e3f300f2e36aa46b2e854c00"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a35f31d23e3f300f2e36aa46b2e854c00">◆ </a></span>SetArcCapacity()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::SetArcCapacity </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">ArcFlowType </td>
|
|
<td class="paramname"><em>new_capacity</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the capacity for the given arc. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a60875aa935bd9594db707bfd97eab98c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a60875aa935bd9594db707bfd97eab98c">◆ </a></span>SetArcFlow()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::SetArcFlow </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">ArcFlowType </td>
|
|
<td class="paramname"><em>new_flow</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the flow for the given arc. </p>
|
|
<p>Note that new_flow must be smaller than the capacity of the arc. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0969b64c9993394fb1cc97a2404e12a4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0969b64c9993394fb1cc97a2404e12a4">◆ </a></span>SetArcUnitCost()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::SetArcUnitCost </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">ArcScaledCostType </td>
|
|
<td class="paramname"><em>unit_cost</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the unit cost for the given arc. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9fffb489dce981de3233b1702b801eb6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9fffb489dce981de3233b1702b801eb6">◆ </a></span>SetCheckFeasibility()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::SetCheckFeasibility </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>value</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Whether to check the feasibility of the problem with a max-flow, prior to solving it. </p>
|
|
<p>This uses about twice as much memory, but detects infeasible problems (where the flow can't be satisfied) and makes <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a17e2df29d767d03fc9fc42aee71bf5da" title="Solves the problem, returning true if a min-cost flow could be found.">Solve()</a> return INFEASIBLE. If you disable this check, you will spare memory but you must make sure that your problem is feasible, otherwise the code can loop forever. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00414">414</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7e4301ebf8c5f86143e390494a0a6f4f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7e4301ebf8c5f86143e390494a0a6f4f">◆ </a></span>SetNodeSupply()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::SetNodeSupply </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> </td>
|
|
<td class="paramname"><em>node</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> </td>
|
|
<td class="paramname"><em>supply</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the supply corresponding to node. </p>
|
|
<p>A demand is modeled as a negative supply. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a816e24f3a6af98c2b3ae1854f6fc0781"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a816e24f3a6af98c2b3ae1854f6fc0781">◆ </a></span>SetUseUpdatePrices()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::SetUseUpdatePrices </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>value</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Whether to use the UpdatePrices() heuristic. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00406">406</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a17e2df29d767d03fc9fc42aee71bf5da"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a17e2df29d767d03fc9fc42aee71bf5da">◆ </a></span>Solve()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::Solve </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Solves the problem, returning true if a min-cost flow could be found. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ace5a6df9ac9993c42cd091f6e9ebbd54"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ace5a6df9ac9993c42cd091f6e9ebbd54">◆ </a></span>status()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classoperations__research_1_1MinCostFlowBase.html#ae5cad0c7d9c3eddbc7c3aefbee060457">Status</a> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::status </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the status of last call to <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a17e2df29d767d03fc9fc42aee71bf5da" title="Solves the problem, returning true if a min-cost flow could be found.">Solve()</a>. </p>
|
|
<p>NOT_SOLVED is returned if <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#a17e2df29d767d03fc9fc42aee71bf5da" title="Solves the problem, returning true if a min-cost flow could be found.">Solve()</a> has never been called or if the problem has been modified in such a way that the previous solution becomes invalid. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="min__cost__flow_8h_source.html#l00342">342</a> of file <a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a67cea170737362bd37bc8c8f8f024555"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a67cea170737362bd37bc8c8f8f024555">◆ </a></span>Supply()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#a5841ff601ab08548afb15c45b2245de7">FlowQuantity</a> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::Supply </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#aaf02e6d654d4be1a50507d9d40dd1e99">NodeIndex</a> </td>
|
|
<td class="paramname"><em>node</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the supply at a given node. </p>
|
|
<p>Demands are modelled as negative supplies. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae70575b0b8bbc06301778b172752958b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae70575b0b8bbc06301778b172752958b">◆ </a></span>UnitCost()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Graph, typename ArcFlowType = FlowQuantity, typename ArcScaledCostType = CostValue> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespaceoperations__research.html#aa7950685633ee869aa9471b2ec5fbcfa">CostValue</a> <a class="el" href="classoperations__research_1_1GenericMinCostFlow.html">operations_research::GenericMinCostFlow</a>< Graph, ArcFlowType, ArcScaledCostType >::UnitCost </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classoperations__research_1_1GenericMinCostFlow.html#ad66a0601a4f1c5f98079d333d5a465e8">ArcIndex</a> </td>
|
|
<td class="paramname"><em>arc</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the unscaled cost for the given arc. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li><a class="el" href="min__cost__flow_8h_source.html">min_cost_flow.h</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
</div>
|
|
<div id="footer-container">
|
|
<div id="footer">
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|